Welcome, guest Sign Out

YDN Blog Archive: November 2008

« Previous | Main | Next »


November 28, 2008

Finalists announced for Moblin/YDN Developers' Contest in Vietnam

Back in August, Linux-based mobile open source project moblin.org announced a competition in Vietnam sponsored by Yahoo! to develop the coolest Moblin core, Linux-based applications for MID devices.

Applications were sought for the entertainment, information, and communications segments. Entrants were asked to visualize their concept by explaining the look & feel, why it is cool, and describe how it will work, illustrated by photos or jpegs representing how it might look once developed.

The finalists were chosen online by participants in the Moblin community, who picked the Top 10 most appealing applications they would like to see created. Uniqueness, performance, usability & cool-factor were among the factors in the judging.

As part of their prize, the 10 finalists were invited this week to Yahoo!'s offices in Singapore.

Moblin Vietnam competition finalists at Yahoo! Singapore

The finalists now have until the end of the year to submit the actual executable version of their application for the second round of judging by local industry leaders. The grand prize is two round-trip tickets to an Open Source event anywhere in the world, including a week's accommodation.

Congratulations to all the finalists!

Jason Coates
Sr Manager Communications, Yahoo! Southeast Asia

Posted at 6:12 AM | Comments (1)

November 27, 2008

Hack Day Brazil

Most of us at the YDN couldn't make it to Sao Paolo for Brazil's recent Hack day, but with this video, we're able to spend a few tasty minutes catching the spirit and creative energy of Brazil Hack Day 2008. Props to Ryan Texeira and team for taking Hack to the southern hemisphere and to all the participants who made it rock.


Posted at 7:53 AM | Comments (0)

November 26, 2008

Finding relevant keywords for any term using Yahoo! Boss

One of the new features of Yahoo! BOSS is that it returns relevant keywords for each of the search results. You can use this to match a search term with relevant keywords for example to increase the search engine visibility of your web site. I've just released a free tool to do this for you: Keywordfinder. Here's a short explanation on how you can do the same only using JavaScript.

Before we start, make sure you get an application ID for BOSS. Got one? Good, let's go!

The plan to get to the keywords is simple: perform the search, get all the keywords and find out which keywords are most frequent.

Turning that into to code is not quite as simple but not really magic either.

First of all, we need to get the information from BOSS by assembling the right REST call and define a callback function.

The URL for that is:


  http://boss.yahooapis.com/ysearch/web/v1/{term}?
  format=json&callback=mycallback&count=50&
  view=keywords&appid={your-app-id}

This will search the web for term, return the results as JSON, wrap the information in a function called mycallback, limit it to 50 results and show the keywords Yahoo indexed for each of the sites (this is the view=keywords) parameter.

We could write this in a fixed term function but to keep things flexible, let's create a small wrapper for this to be re-used in all your JavaScript solutions.

You can download the script or see it in action and here is the source with step-by-step explanations:


KEYWORDS = function(){
  var config = {
    appID:'your-app-id',
    amount:20
  }

We create a new module called KEYWORDS and give it a configuration object with two properties: the application ID (replace this with yours!) and the amount of keywords you want to return.


  var out = {};
  var callback = alert;
  function getTerms(term,cb){
    var api = 'http://boss.yahooapis.com/ysearch/web/v1/' + 
              term + '?format=json&view=keyterms&callback=KEYWORDS.seed'+
              '&appid=' + config.appID;
    var s = document.createElement('script');
    s.src = api;
    s.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(s);
    if(typeof cb === 'function'){
      callback = cb;
    }
  }

We define an object called out which will later on store the result of all our work. We predefine the callback of our wrapper as alert which means that if your scripts using this wrapper don't define a callback function the information will be shown as an alert (a good reminder to define a callback). If there is a callback function, it overrides the alert preset. We create a new script node with the correct API call and add it to the head of the document. As we defined KEYWORDS.seed() as the callback for the BOSS call, this method will retrieve the relevant data once the call has been successful.


  function seed(o){
    if(typeof o.ysearchresponse.nextpage !== 'undefined'){
      var next = o.ysearchresponse.nextpage.split('?')[0];
      var query = next.replace(/.*?\//g,'');
    } 
    out.term = query;
    out.keywords = [];
    var results = o.ysearchresponse.resultset_web;
    for(var i=0,j=results.length;i<j;i++){
      out.keywords = out.keywords.concat(results[i].keyterms.terms);
    }
    var filtered = filter(out.keywords)
    out.keywords = filtered[0];
    out.toplist = filtered[1];
    callback(out);
  }

In the seed() function we need to find which query term was used to return the current data set. As BOSS does not bring that back as an own property we need to extract it from the nextpage property (which is a bit annoying but not too hard to do).

We then start populating the out object by storing the query as a term property and creating a new array and storing it as a keywords property.

We loop through all the search results and concatenate the keywords array from the ones in each result set.

We then need to do some heavy filtering (as the resulting array is 200 terms in no particular weighting or order), re-define keywords as one of the returns of the filter method and a toplist property as the other return.

The toplist array will be a comma-separated string of all the top terms.

Once we got all the data and stored it as fitting properties we invoke the callback function and send the information.


  function filter(kw){
    var kw = kw.join(',');
    kw = kw.toLowerCase();
    kw = kw.split(',');
    var kw = kw.sort();
    var count = 0;
    var filtered = [];
    for(var i=0,j=kw.length-1;i<j;i++){
      if(kw[i]!==kw[i+1]){
        filtered.push(count + '|' + kw[i]);
        count = 0;
      }
      count++;
    }
    filtered.sort(function(a,b){
      return parseInt(a) - parseInt(b);
    });
    filtered.reverse();
    filtered = filtered.slice(0,config.amount);
    var toplist = []
    for(var i=0,j=filtered.length;i<j;i++){
      var bits = filtered[i].split('|');
      toplist.push(bits[1]);
      filtered[i] = {term:bits[1],amount:bits[0]};
    }
    return [filtered,toplist.join(',')];
  }

The filter method is a bit of a pain, as JavaScript does not have a array_count_values() function like PHP does. It could be that I am off the mark with this implementation, so if you can shorten this, be my guest and put a link in the comments.

The problem is that we have a random array of keywords and we want to find out which one is used how often. We start by making the array elements all lowercase (using split() and join()) and sorting the array alphabetically. We then create a count variable and an empty array to store the filtered terms.

We then loop over the array and check if the next item is the same as the current one. If the element is the same, we increase the counter, and if it isn't we store the current term in the filtered array as counter|term.

This allows us to sort the resulting array numerically. We then reverse the order and which brings the most common term to become the first item and so on until we reach the least common term. We cut off the terms we don't want with slice() and that's the filtering done.

In order to make the data useful again we have to loop over the filtered array and assemble an array of all the top items containing objects with the properties term and amount. We also assemble a toplist array that only contains the most successful terms without any amount information and join this to a string when we return it.


  return{seed:seed,get:getTerms,config:config}
}();

We return the properties and methods that need to be public and voila - we've got ourselves a wrapper.

How to use the function?

You don't need to do much to use the function, all it needs to get keywords with the wrapper is to call KEYWORDS.get() with a term and a callback function.

For example:


  function foo(o){
    alert(o.toplist);
  }
  KEYWORDS.get('ozelots',foo);

The example page however is a bit more complex as it it progressively enhances a link:


<p>
  <a id="keywordlink" href="http://keywordfinder.org/?term=wombats">
    Get keywords for wombats
  </a>
</p>

<script type="text/javascript" src="keywords.js"></script>

We provide a working link, and include the keywords.js file.


<script type="text/javascript">
  var x = document.getElementById('keywordlink');
  if(x){
    x.onclick = function(){
      var term = this.href.split('=')[1];
      this.innerHTML += ' (loading...)';
      KEYWORDS.get(term,seed);
      return false;
    }
  }

We check if the link with the right ID exists and apply an event handler that retrieves the search term. We add a loading message to the link when it is clicked to tell the user that something is happening and call the keywords API with seed() as the callback function. We return false to make sure the link is not being followed.


  function seed(o){
    var div = document.createElement('div');
    var head = document.createElement('h2');
    head.innerHTML = 'Keywords for '+o.term;
    div.appendChild(head);
    var p = document.createElement('p');
    p.innerHTML = o.toplist;
    div.appendChild(p);
    var head = document.createElement('h3');
    head.innerHTML = 'Details:';
    div.appendChild(head);
    var list = document.createElement('ol');
    for(var i=0,j=o.keywords.length;i<j;i++){
      var li = document.createElement('li');
      li.innerHTML = o.keywords[i].term + '('+o.keywords[i].amount+')';
      list.appendChild(li);
    }
    div.appendChild(list);
    x.parentNode.replaceChild(div,x);
  }
</script>

All the seed() function does is retrieve the data and create a bunch of appropriate HTML using DOM scripting to replace the link.

I hope this has given you some ideas what to do with the keyword output of BOSS. Happy hacking!

Chris Heilmann
Yahoo Developer Network

Posted at 8:05 AM | Comments (3)

November 25, 2008

More Mashup Camp Moments

In case you're wondering what went on at Mashup Camp last week, here are some highlights. Camp started with a bang: these are the rules, this is your number, you're in this event, let's begin. People could roam unconferences, attend sessions, SpeedGeek, and compete in the best mashup contest. Activities ranged from optional to mandatory. This event was structured for geeks, by geeks.

Take Speed Geeking. Based on the concept of speed dating, during the speed geeking sessions small groups of people rotated from demo to demo, sampling different technologies in rapid succession. On day one, solution providers had 3 minutes to present their technologies. On day three, mashup contestants had 5 minutes for their demos.

SpeedGeeking

Guiding people through the furious pace was the unmistakable bullhorn of Mashup Camp co-founder David Berlind. With horn in hand, Berlind diligently herded people through speed geeking, capturing key conference moments on the Mashup Camp website throughout the day.

After the SpeedGeeking session, solution providers gave 30-minute "chalk talks" for attendees to gain deeper understanding of the technology introduced during the SpeedGeeking. In addition to the Yahoo! Developer Network, the other solution providers included AOL dev network, Elfenworks (non-profit social justice advocates), Google Geo, IBM, Mozenda (browser-based data mining), radwebtech (data portability advocates), Wetpaint (easily add wiki interaction to a website), and Zembly.

SolutionProviders

In addition to all the geeking out, there were some quality talks, both formal and informal. On day one, Berlind moderated a panel discussion on Why AJAX Standards Matter. The panel included Jon Ferraiolo, a principle member of the Open AJAX alliance; Christopher Keene, from WaveMaker software, which is producing an open-source AJAX IDE; Nikunj Mehta, from Oracle; and Raymond Yee, UC Berkeley professor who provided an overview on the state of AJAX. The less formal unconferences allowed people to spontaneously present technology topics that mattered to them. People posted their unconference topics on a large white grid on the wall. The conference ended with a keynote by Tim O’Reilly on The State of the Internet OS (available on slidehsare.net).

Unconference

The structure of the conference seemed imposing at first, but it worked to ensure fairness in competitive events and efficient exposure to a multitude of new technologies. It also facilitated interaction between potentially introverted attendees. And, at the end of the day, there were several cool new mashups created as part of the Best Mashup Contest . To celebrate, snacks and model airplane kits were served. People had one last chance to mingle with their new friends and discuss the products and services presented. Or, just eat and hack on model airplanes :)

airplane model

Erik Eldridge, Julie Choi
Yahoo! Developer Network

Posted at 8:21 AM | Comments (2)

November 24, 2008

Greetings from Mashup Camp

Mashup Camp 7 went off without a hitch last week, at the Computer History Museum in Mountain View, CA. YDN was there, with fabulous prizes for the Best Yahoo! Mash-Up. Fortunately, we brought three Flip video cameras, because there were three very worthy entries:

Are you a visual searcher or learner? Check out Mark Kahn's JelloPhoto uses Flickr, Pipes, YouTube, and the Zembly mash-up environment to create a unique display of still and moving images around the search term or user name of your choice.

Remember when you could actually see music videos on MTV? John Bardin and Drew Garcia's Veejay.TV brings back the good old pre-Real-World MTV experience and puts you at the controls. Built in a single night--yes, we checked, it's true--the service combines Yahoo! Music Search, OpenID, and some pretty slick front-end work to allow users to create and share music video sets, just like Adam Curry or Martha Quinn in the old days.

Ready for a complete musical experience on your mobile device? Al Nevarez's iMusicMatch is a website (not a downloadable application!) that runs on your iPhone, iPod Touch, and Android G1, with a little help from YouTube, Last.fm, LyricsWiki, Eventful, Twitter, Wikipedia, Seeqpod, IUI, and Yahoo! BOSS. Start with Al's default playlist--caution: ABBA ahead!--or load up your own iTunes music library and enjoy.

Full results are on the Mashup Camp Wiki. Mashup Camp is highly recommended for people interested in learning more about the people, tools, and history behind Web 2.0; we hope to see you there next year!

Kent Brewster

Posted at 9:14 AM | Comments (2)

November 21, 2008

Hacking with our Friends in Europe

We just returned from two solid events on the BOSS Hack Day world tour. Two weeks ago we were in London and drew a range of developers, including a few who were completely new to the platform and a handful of experienced BOSS hackers (such as the developer from BuildaSearch).

The Paris event stood out for a couple of reasons. First, we were really pleased with the turnout. The event took place at a well-known Parisian co-working center called La Cantine that seemed to be a hub of the developer community in Paris – and it was packed. Even more impressive was how engaged everyone was. We started with a one-hour overview and technical discussion, broke for sushi and beer, and then split into two workshops – one on the BOSS Mashup Framework and one on building niche search engines using the BOSS API.

Almost all developers stayed until 10:30 p.m. or later to learn more about BOSS and shared some excellent feedback on where we should take the product. Although neither of us speaks a lick of French, we had some great conversations. We met with the folks from Veosearch, a BOSS-powered search engine that gives a percentage of its profits to charity, as well as the guys from Iminent, an IM add-on and contextual search company.

We also had the opportunity to host tech talks at the Yahoo! offices in London and Paris and meet with local bloggers and press.

We’d like to thank all the developers who joined us. Hearing directly from you about new features you’d like to see will be help us prioritize our efforts in 2009. Also, big thanks to Yahoo! teams in London and Paris for all their help in setting up and running the events.

If you weren’t able to join us, we’ll continue to host developer events in the coming months. – in the meantime, you can also check out more photos and the slides from our presentation.

Graham Mudd & Vik Singh
BOSS Team

Posted at 9:43 PM | Comments (2)

November 20, 2008

Paris-Web

Paris Web is the biggest technically oriented web conference in France (Le Web being more focused on entrepreneurship). It was put together in 2006 by the Paris-Web non-profit association, which was co-created by Éric Daspet, web developer for Yahoo! in France.

The 2008 edition recently took place on 13 - 15 November and was supported by YDN. It was comprised of two days of conferences and one day of workshops, and for the first time included a second, less technical "decision-maker" track, held on the Day 2.

I had missed the two previous events and heard many good things about Paris Web, but in all honesty it managed to exceed my expectations. The quality of the presentations was of the highest level and the atmosphere was fantastic.

The presentations included a very hands-on demonstration of what accessibility is about (by Stéphane Deschamps and Aurélien Lévy), many details about the future of web browsers (representatives of the four big browser manufacturers were present for a round-table) and a detailed exposé of frontend performance improvement techniques by Yahoos Éric Daspet and Nicole Sullivan. Workshops were also very welcoming (tickets were priced 10€!) and informative.

The quality of the presentations aside, the greatest thing about Paris Web is probably the attendees: a community of professional, passionate people working with the Web, exchanging ideas, experiences, and jokes before and after presentations, and afterwards around a good meal or a round of drinks.

You can get an idea of all this by checking out the photos tagged "parisweb2008" on Flickr. The French community is now buzzing with thanks and praise for the organisers who did a terrific job, and we are all looking forward to Paris Web 2009!

Cyril Doussin
Web Developer, Yahoo! Europe

Posted at 10:41 PM | Comments (1)

Yahoo! OpenID limited testing for Simple Registration support

Today, we are announcing the start of a limited test of the Simple Registration extension for the Yahoo! OpenID service. The Simple Registration extension allows OpenID RPs to request user profile data from the OpenID provider. Yahoo! will be providing Yahoo! OpenID users the ability to share the following Simple Registration fields for this initial test: Full Name, Nickname, Email Address, Gender, Language, and Timezone. The Yahoo! OpenID user will have full control on whether to share their profile data with the OpenID relying party. We will use the Yahoo! Profiles API to populate the user card, which will be presented on the Yahoo! OpenID Review and Confirm page.

The goal of this limited test is to gather feedback on the usability of the current design, optimize performance and detail best practices for consuming Yahoo! profile information via Yahoo! OpenID. We are initially testing this with a limited set of relying parties, including plaxo.com and jyte.com.

Additional details can be found in our user faq: https://open.login.yahoo.com/openid/op/html/us/sreg_faq.php

Questions and suggestions on Yahoo! OpenID are discussed on the Yahoo! OpenID Developer Community forum or via email at openid-feedback@yahoo-inc.com.

View the video coverage from the crew at TheSocialWeb.tv:


Thanks,
Yahoo! Membership Team

Posted at 3:00 PM | Comments (3)

November 19, 2008

YDN Mashups in Bucharest, Romania

Poli20 is a 9-weeks course for approximately 30 students from Politehnica Bucharest, the best known technical university in Romania. The course is the result of collaboration between Yahoo!, Adobe, uberVU, and Politehnica Bucharest. UberVU is a Romanian startup that tracks topical conversations across many varieties of social media, all over the internet - blogs, Twitter, Flickr, YouTube and so on.

The Poli20 students will learn how to create an application in a production environment. They will work in teams to complete a working application by the end of the course, due in December. The applications will use technology from Yahoo!, Adobe, and uberVU. We hope to have many applications to showcase at the end of the course.

Last week we invited Yahoo! engineer Ted Drake to talk about BOSS. He uses BOSS on some of his websites such as v3ggie, a vegetarian search engine. Ted discussed the features, issues, strategies, and opportunities offered by Yahoo! BOSS.

Ted's presentation was interrupted by lots of questions and ideas from the students (we have quite a great bunch of students at the course). We had a little bit of fun with various examples and there was a lot of good vibe in the room. Afterwards we walked to a small, nearby cafeteria and continued the talks till 10-11 in the night.

Young developers in Romania are very interested in Yahoo!'s APIs and the ways they can use them to create their own applications. Yahoo! is a leading service provider in Romania (a vast majority of Romanian Internet users use a Yahoo! service) so mashups of our APIs should prove to be really popular. I have seen some ideas of using Yahoo! Maps and photography that could really provide great use in Romania.


Check out some of my pictures from Poli 20 on Flickr.


Bobby Voicu
Community Manager, Yahoo! Romania

Posted at 7:07 PM | Comments (0)

Y!OS at Refresh Miami

Refresh Miami is a social community for technology. It is based in South Florida and attracts technology enthusiasts from the surrounding area. The group is not only for developers and technical people - I've found web designers, entrepreneurs, web site operators, charity organizations, and foundations.

Refresh Miami holds one meeting a month. Usually this is the last Wednesday of the month, however, because of the U.S. Thanksgiving holiday, this month's meeting will be a week earlier, on 19 November.

We've hosted three Refresh Miami meetings in the Yahoo! office in Coral Gables. Yahoo! bought pizzas, salads and sandwiches as well as drinks. People started to show up around 6:00 PM. Several Yahoos from various teams including product managers, engineers, marketing and legal stayed around to meet the guests. The first part of the event is entirely social and everyone mingled and tried to meet someone new.

The second part of the event consists of presentations. There are typically three short presentations per event. At the last one, Alexandra Leite gave a talk on Agile development, which was informative and entertaining. A presenter from the James L. Knight Foundation spoke about how to get grants for projects.


The Refresh Miami meeting is more social than technical and this works well because of the diverse nature of the members.

If you're in the area, join us at the next Refresh Miami meeting on November 19. I'll be talking about the recent launch of YOS Yahoo!'s open strategy and our new application development platform.

Ryan Teixeira
Architect
Yahoo! Latin America

Posted at 1:56 AM | Comments (1)

November 18, 2008

Open Sourcing BrowserPlus: Q & A with Lloyd Hilaiel

Editor's note: I exchanged email with Lloyd Hilaiel from Yahoo's BrowserPlus team and he answered some of my questions about how the project got started, what kept it alive, and how today we've announced our intent to open source this original technology, enabling open development on a platform for in-browser desktop applications.


1. Where did the idea for BrowserPlus come from?

A couple years ago I was on a team tasked with increasing collaboration and code-sharing between the many different development groups at Yahoo!. We were specifically looking to uncover interesting and innovative ideas in native client applications, and massage them into re-usable libraries. We were extracting gems--good solutions to problems with wide appeal--and making them easy for anyone in the company to apply.

The project, in some respects, was a failure. At the end of our two-year run we had many C++ libraries, which ran on every operating system under the sun, to perform tasks ranging from the mundane (say, logging) to the exotic (peer-to-peer nat traversal). To our dismay, we didn't have client teams all over Yahoo! scrambling to use the stuff we built. We did, however, learn a lot from this experience.

The most useful learnings were the most basic: For a tool to be interesting, it had to provide massive value at low cost. People, especially programmers, like simple solutions that have clear and immediate benefits.

Skylar Woodward should be credited as the father of the idea that ultimately emerged and led to BrowserPlus. The idea was binary: 1.Change our focus. 2. Change our audience. We’d focus on the shiniest, most interesting gems and expose them to the widest and most receptive audience. The initial features of BrowserPlus include some of our favorite gems. The audience: Web developers everywhere.

From this somewhat vague starting point, a conversation began. We did a little talking, and a lot of listening, and eventually BrowserPlus took shape.


2. I heard that BrowserPlus was built by a remote team. How did you manage the remote collaboration? How did it happen that way?

The team is indeed scattered across the United States. The initial members had already been working together and had developed strong working relationships. When we refocused our client-side explorations on the BrowserPlus project, there seemed no need to fix what wasn't broken... And, given that we wanted to serve Yahoo! folks all over the map, this turned out to be an advantage. We were able to interact with the groups we served in the same way we already interacted with each other.

To keep folks informed of our progress and elicit feedback we employed a smattering of tools: irc, blogs, and email lists. This demanded that every member of the team take extra care to communicate precisely, and also bred an extremely transparent development process. The absence of private conversations prevents a lot of miscommunication.

3. People view Yahoo! BrowserPlus as a competitor to Google Gears. Can you talk about that?

Sure. I think the best way to understand how the two technologies are related is to understand some key differences. Gears runs on desktop and mobile platforms; BrowserPlus is focused primarily on the desktop. Gears is more likely to implement HTML5; while BrowserPlus is off playing around with motion sensors. Gears is a single monolithic download; BrowserPlus draws a clear line between the "platform" and the services.

Once you consider these differences, the distinct focus of each of the projects becomes more clear. Gears is attempting to accelerate the evolution of the web by enabling features with wide appeal that can be implemented everywhere. BrowserPlus is more interested in fixing the web plug-in environment, making rapid experimentation possible.


4. Where do you want to go next with BrowserPlus? What new services are you thinking about?

As far as BrowserPlus the platform goes, it needs to be rock solid. We're looking forward to more of the precise and well thought-out feedback we’ve received from the developer community. We want BrowserPlus to be portable, crash-proof, secure, and tiny.

Services? Folks on the forums are talking about peer-to-peer support. People are suggesting screen capture technology for better bug reporting. Webcam integration! Easy import of calendaring data! Drag-and-drop of Word documents! Bittorrent! There's no shortage of ideas. Mainly I'm excited to see what the community creates in the coming weeks and months.


5. Why are you open sourcing BrowserPlus today? What do you hope to get out of it?

Openness is a key initiative and a major theme for Yahoo! this year and beyond, and open sourcing BrowserPLus is part of that commitment. In 2008, Yahoo! has released Y!OS 1.0 and opened Search with powerful, potentially disruptive tools like BOSS and SearchMonkey. Major Yahoo! properties including My Yahoo!, the Yahoo! homepage, Yahoo! Mail, and the Yahoo! media properties (News, Sports, Finance, etc.) will continue to open up for publishers and developers in the months to come. We’re dedicated to supporting open application development, open standards, and other open technologies such as OpenSocial, OAuth, and OpenID.

For today’s release of BrowserPlus, we've announced our intent to open source this original Yahoo! technology, enabling open development on a platform for in-browser desktop applications. This will allow developers to rapidly extend the platform in a distributed fashion. Our hope is that community contributions and review will ensure BrowserPlus stays a secure, robust platform running on all popular operating systems and browsers. I’d like to see BrowserPlus become a valuable piece of Internet infrastructure.

In the meantime, I don’t think we should be scared of different approaches and overlapping efforts between competitors. The more people working to accelerate the web the better, because the more paths we explore, the more we improve our chance of building useful and playful online experiences and a richer future on the web for all of us.

Got more questions or feedback? I hope so. Please ask away here, or join us in the forums.


Lloyd Hilaiel
Yahoo! BrowserPlus team

Posted at 3:36 PM | Comments (3)

November 17, 2008

Build your own site specific search engine with BOSS

We've written a lot about BOSS here before, but somehow I thought there's a quick example missing how you can use it to build a full custom search box on your server.

Seeing that I had trouble to access search results of this blog on the Blackberry (not our blog's fault, but the browser it comes with), I had a go and created a much easier interface to searching this blog. Here's a quick how-to explaining the steps to the interface.

Check out the example

First of all, check out the result of the whole exercise. Following are some screenshots with explanations:

The search result display with unexpanded keywords

Unexpanded search results

The search result display with expanded keywords

Expanded search results


The search result display with previous and next links

Unexpanded search results

Download the example

You can download the whole solution, ready for uploading to your server. The code is heavily commented so we won't go through it here line by line here.

Requirements

The example as it is requires you to get an own application ID for boss and have a server with PHP, the simpleXML and curl extensions (most PHP5 servers will have this).

Configuring your search

In order to change the search to your needs, open the boss-search-config.php file and change the settings to your needs. You have to add your application ID and you can change all the labels and messages in this file:

// insert your app id here, get it at https://developer.yahoo.com/wsregapp/
$appID = '';
// filename to point back to the search result page (keywords and pagination)
$filename = 'index.php';
// urls to restrict the search to 
$sites = 'developer.yahoo.net/blog';
// messages to display 
$noresultsmessage = 'No results found.';
$resultsmessage = 'Showing $start to $end of $all results';
$badtermmessage = 'Illegal search term, please only use words and spaces';
// labels 
$keywordslabel = 'Keywords:';
$nextlabel = 'next';
$previouslabel = 'previous';

Code explanation - HTML

If you open index.php in your editor you will see that all you need to do make the search work is to provide a form and add two includes where you want the results to appear:

  
<form action="index.php" method="get" accept-charset="utf-8">
<p><label for="s">Search for:</label>
<input type="text" id="s" name="s"><input type="submit" value="Search"></p>
</form>
<?php include_once('./boss-search-config.php'); ?>
<?php include_once('./boss-search.php'); ?>
  

In the rest of the HTML you can go wild styling your search. All the look and feel is defined in searchstyles.css

Code explanation - PHP

For detailed step-by-step information open the boss-search.php file in your editor and check the comments. In essence all the script does is check the url parameters, sanitize them and assemble a call to the BOSS API using curl. There's not much clever magic to it and the result sets of BOSS having nextpage and previouspage urls makes it very easy to create pagination.

The API call to BOSS uses the so far undocumented view=keyterms parameter which gives you keywords related to the search result page. In this example we are using these to allow for detailed filtering - users can click the keywords to drill down deeper in the search.

Code explanation - JavaScript

Technically there is no real need to add any JavaScript to make this search work, but I thought it would be nice if the keywords are not visible all the time but can be hidden and shown if the user wants it.

The JavaScript uses YUI3 and is explained in the comments of boss-search.js. In essence what it does is add a class called js to the element with the ID results. You can use this in the CSS to hide all the nested UL elements.

The script then turns all the "keywords" labels into links and shows and hides the nested lists by applying or removing a class called show to them. The paragraph containing the "keywords" labels get a class called open when the keywords are shown. All of this makes it possible for you to fully style the experience.

I hope this can help you get started in building your own search engines for yourself or clients.

Chris Heilmann
Yahoo Developer Network

Posted at 4:01 PM | Comments (1)

Join us this week

We are going to be at a few events around the Bay Area this week before the Thanksgiving break. We hope you'll join us. Adobe MAX is in San Francisco. We'll be there Monday through Wednesday with the Flash team talking about the ASTRA components for Flash and Flex and anything else you'd like to know. We are also going to be hacking at Mashup Camp, Silicon Valley. We'll do some exciting stuff with our new Yahoo! Open Strategy Platform, including our application platform and social graph APIs.

Last, but not least, we're launching BrowserPlus at the Yahoo! campus in Sunnyvale, CA, on Tuesday, November 18. You can also check out BrowserPlus online.
Browser Plus

As always keep an eye on @ydn on Twitter or @ydnlive for our live micro-blogging.

Tom Hughes-Croucher
Yahoo! Developer Network

Posted at 11:24 AM | Comments (0)

Internet Identity Workshop 2008

The IIW is an "unconference" where ideas related to user-centric identity are discussed in an open, freeform manner and conversation topics are determined by the event participants. Last week I went to the Internet Identity Workshop held at the Computer History Museum in Mountain View, California.

People manage their online identities across the range of websites, services, companies, and organizations that they belong to, purchase from, and interact with. In its simplest form, Internet identity covers the technical and user-experience aspects of site signup, login, profile usage and permissions, social networking, data-sharing, storage of personal information, and the associated issues of privacy and security that arise. At the IIW, companies that normally compete in the marketplace collaborate to explore and solve the challenging issues around Internet identity.

This year's hot topics of conversation included, but were not limited to:

OAuth and data portability w/OpenID
OpenID and OAuth are powerful methods for getting a user signed up and into a site and moving that user's profile data between websites. The implications for having a combined spec for both OAuth and OpenID are quite exciting.

Open profile sharing
Using methods such as OpenID Attribute Exchange 1.0, companies like Yahoo!, MySpace and Google can feature Open Profile Sharing, allowing users to take their data with them to other trusted sites. The integration of totally portable data across many sites on the Internet is vital for the social Web communities.

Single sign-on
A seamless logged-in user experience is the ideal scenario for many users, especially the growing number of users who traverse the Internet, checking multiple social networks and content providers during one session. The ongoing discussion of single sign-on continues to be an important theme at this workshop.

Activity streams data formats standards
Activity streams, like the activity stream feature in Yahoo!'s MyBlogLog, is a feature that both providers and relying parties (RP) want to integrate into their sites. The benefits of having a relying party's data available on another relying party's site and/or featured on a provider site are huge; portable activity data can help a relying party's business evolve to the next level.


Jono Kane
Design Prototyper / Web Developer
Yahoo! Developer Network


One of the fantastic advantages of an unconference is that when there is down-time, anyone is at liberty to start their own ad hoc panel session. I had a chance to sit down with my colleague Jonas Hinn from Yahoo! and Max Engel of MySpace and the three of us discussed the future of data portability and activity streams, and how those features play out between sites like Yahoo! and MySpace.

For the three of us, our primary concern was design for the average user: so that anyone can log in to a site, authenticate with the other site, and bring data back and forth, and not have to think about it as a chore or pain-point. We discussed the "connect" method, where a user must enter his/her email/password in order to connect features/data of the RP with the provider site. A primary concern is that if we make this too easy, we may be teaching users to be less careful about where and when they enter and share their login credentials. However, the advantage is that the user has a simple, seamless experience.

We also discussed the usability issues around a user importing his/her social graph to a RP site, and how that site then handles the imported social graph data. This brings up a lot of questions, since many providers have rules about what data gets carried over and stored locally from the provider. Say, for example, Mary imports her MySpace Contacts to a new site that features movie favorites and reviews. Mary has a friend named Nicole in her friends list. Does Mary want Nicole to see the same things Mary's family gets to see? If Mary and Nicole decide they don't want to be friends on that site, how is that handled? Even more of a concern is the fact that Mary has imported and/or included Nicole on her social graph at this new movie reviews site, but is that something Nicole consented to?

We talked at length about the importance of raising the user's awareness of what data is shared with whom on their social graph. Furthermore, there is an unaddressed requirement for the possibility of different types of social graphs. Maybe there's a "wild friends" graph that differs from a "family" graph. Does your family graph really want to read your review of Zack and Miri Make a Porno? While I'm sure it's a great review, remember, your grandmother could be on the same feed (that is one hip, Web2.0 grandma)! So, there are a lot of usability issues with the process of importing a social graph and maintaining it on a RP site. These issues may make sense to us geeks, but do they make sense in the real world of consumer end users. Interaction design exploration is needed to find simple, logical ways to communicate complex processes to the end user, without creating tasks that will drive users away.

These unstructured discussions led to a very intense level of idea-sharing and openness to new thoughts and innovation in the identity realm. I enjoyed the opportunity to participate in the the key purpose of the IIW, which is to enhance an end user's login, profile, and data-sharing experience on the Internet.

Posted at 7:46 AM | Comments (1)

Yahoo! Hack Day in Israel

Yahoo! has held its first developer events in Israel, and I think all of us who went were struck by the energy and entrepreneurship of the industry there.

YDN partnered with the BOSS team’s international roadshow on two very different events in Tel Aviv, the country’s high-tech hub.

More than 200 people attended the opening event at GarageGeeks, a digital community space in the Holon industrial zone.

It’s an amazing place created from, yes, a garage complete with lots of machine parts, a BBQ made from half a car, and Guitar Hero on the PlayStation. Think Mythbusters meets Hackday.

GarageGeeks

It was a beautiful evening so the presentations and socialising were held outside. BOSS was incredibly well received by the audience, made up of internet folk from coders to marketeers to VCs. A lot of people we talked to were really enthusiastic and felt that this is a potentially disruptive technology.

All together an edgy, fun evening, and the party was still going strong when we crept away at midnight.

By contrast, the following afternoon’s BOSS Hack was a much more chilled out affair.

About 100 developers and entrepreneurs gathered in a swanky nightclub in Herzliya Pituah for a deep dive into the BOSS API, presented in Hebrew by BOSS Engineering Director Eran Palmon.

BOSS Hack Herzliya

To get the coders’ creative juices flowing, the BOSS team announced a BOSS Hack prize of $2,000.

This wasn’t a full 24-hour Hack Day (as recently held in Sunnyvale, Taipei and São Paulo) but we had lots of great entries and thanks to everyone who took part.

The winning team, http://www.getthepicsure.com wrote an addictive phrase guessing game (similar to Hang-Man), based on Yahoo! BOSS image, news and web search APIs. An honourable mention goes to the very close runner-up http://www.whatdoesthewebthink.com which shows how the wisdom of crowds doesn't always shine through on the web.


We met lots of great people in Tel Aviv, and we're hoping to organise more YDN events in Israel in 2009.

Sophie Major,
YDN International

Posted at 1:50 AM | Comments (1)

November 14, 2008

Our templates are changing: YDN site and blog updates

Howdy,

I'm mich. I do some of the web dev work for this website. As you've no doubt noticed, YDN has been updating things recently. It's taken a little while to get it out to all Yahoo! Developer Network pages (we're probably about 90-something % complete), but we're getting there. This week we finished migrating the blogs to the new design. Hopefully you already know that we currently host three blogs here on developer.yahoo.net: the YDN Blog (which you are currently reading), YDN Theater for video, and the Hadoop Blog.

Everything should pretty much be the same, but you will notice that I created new MyBlogLog communities for YDN Theater and the Hadoop Blog. Previously, these were combined with the YDN Blog community. Now each blog has its own distinct community of people sharing an interest in that particular blog.

You've probably noticed that the new YDN design uses a lot of YUI. I've been a big fan of YUI's JavaScript libraries for quite a while - even before joining the YDN team. When working on the new site, we've found YUI to be very useful, time-saving, and easy to use.

I estimate that I migrated about 700 pages, and I admit I haven't had the time to go back and check each one yet. There may be a few rough edges, and we're already tracking a few issues, but for the most part, the update was successful.

We'll continue to improve and expand YDN. For the blogs in particular, we have plans to improve performance and give blog authors better tools to make it easier for them to keep you up to date. Got feedback about the site? Please let us know what you think.

Have a good weekend and ttyl,

mich (rhymes with "bike")

Posted at 6:23 PM | Comments (0)

November 13, 2008

OpenSocial Turns One!

We're on site at the MySpace office in San Francisco for the OpenSocial first birthday celebration. Presentations were given by social networking application development companies such as RockYou, containers (websites which integrate an application development interface to allow user-built applications) such as Yahoo!, Linkedin, Orkut, and Hi5 as well as official talks from Google and MySpace on some of the standards.

As the OpenSocial developer community grows its base among official containers and independent application developers, the main focus for the future of OpenSocial is to encourage all individuals, regardless of company affiliation, to contribute to the community as a whole. At today's event we saw the true meaning of open and social, where companies who've traditionally been at odds are sharing impressive technologies. Competitors are allowing open access to their platforms and tools with the hope of delivering an ungated community for developers and all users as a whole.

With the introduction of the new OpenSocial 0.9 standards, the focus returns to the need for community input. From application hosting containers to individual developers, you can contribute back your ideas by participating in the OpenSocial groups or on the mailing list. As part of today's hands-on event, container crawls introduced developers to OpenSocial containers from around the world. Developers tried their hands at migrating their applications onto a variety of containers within the span of an hour. Grand prizes of t-shirts and schwag were raffled off by the containers!

The social web is growing, and it's tearing down the walls of traditionally closed companies, bringing developers together to share experiences and learn from each other. It's a great time to be a developer where everything you could ever want to do is right at your fingertips.

Event Photos from the Desk of Tom Hughes-Croucher
MySpace Registration  Open Social Guests

You can find more photos at http://flickr.com/photos/opensocial1stbirthday/

Jonathan LeBlanc
Senior Software Engineer / Evangelist
Yahoo! Developer Network

Posted at 3:36 PM | Comments (0)

Open Social 1st Anniversary

It's the Open Social 1st Anniversary today. We love Open Social which is why we built our Yahoo! Application Platform on it. I am going to be live blogging it for the Open Social Foundation on Twitter. Why not follow the action by following @opensocialdev?

Of course, I'll do a recap of what happened on the blog so if you can't catch us on Twitter you can keep up with the announcements.

Update: photos are starting to appear on our Flickr account.

Tom Hughes-Croucher
Yahoo! Developer Network

Posted at 10:33 AM | Comments (0)

November 12, 2008

Open Hack: From Sunnyvale to São Paulo

On a beautiful afternoon last week, I boarded a plane bound for Brazil along with Zach Graves, coworker, ActionScript developer on the Yahoo! Application Platform, and author of the Y! OS ActionScript SDK. Thirteen leg-cramping hours later, we descended through rain clouds and over forested hills interspersed with estates and farms, to land in São Paulo, the location of the first ever Brazil Open Hack Day.


At one point in the long ride from the airport to the city, we crested a hill and caught our first glimpse of the metropolitan area: a jagged, white wall of skyscrapers stretched across our entire field of view. Yahoo!'s São Paulo office is located in a bustling commercial district. From my room on the 22nd floor of a hotel just down the block, I was treated to another perspective of the city: looking between and across the tops of high-rises as far as I could see - the city is as deep as it is wide. And it's growing. Directly across the street another tower was under construction with workers on the site 24-hours a day.


I mention this impression of industry and growth because it permeated Hack Day as well. The event was scheduled to start at 8 AM on a Saturday, a bit early for some, but by 8:00 a line of hackers had already formed. When we opened the doors, they filed in and set immediately to work. In all, 120 hackers participated. I was very impressed with the level of focus in the room throughout the event. Later, during the hack presentations, I would be impressed again by the degree of creativity expressed in the projects.


SENAC University hosted Hack Day and provided us with a large, well-equipped, multi-room facility that appeared to be new. The Yahoos and hired staff who planned and oversaw the event did an amazing job priming the location for hacking. Colorful signs featuring the Hack Day robots denoted points of interest and a large projection screen displayed the Hack Day Flickr-Twitter real-time collage. They installed industrial-grade wireless, and furnished the space with lots of oversized, purple beanbag chairs, aka puffs, long rows of tables with numerous power supplies, and 50 desktop computers for those without laptops. Search Flickr for the tag brhackday08 to get pics of the event and the venue.


Classes for the day were organized into two tracks: one focused on SearchMonkey, BOSS, Blueprint, and Y!OS; track two covered OAuth, the Social APIs, YQl, YAP, Caja, and OpenSocial. All of the talks were well-attended and afterward the hackers put to use many of the concepts discussed. Much interest was expressed for BOSS and YQL. Flickr and Blueprint were also widely explored. Some hackers worked individually, while others coalesced into teams of 2 and 3. One team had around 15 members and brought in their own desktop computers, whiteboard, two $100 laptops, and assorted circuit building hardware. The team took up such a large area and consisted of so many people, I didn't realize they were a single group until they presented.


The food provided was delicious and worth noting. Attendees received lunch and dinner, with vegetarian and non-veg options. Additionally, the food service staff periodically brought out fresh, nutritious, and tasty snacks including empanadas, soup, a variety of cakes and cookies, fresh-squeezed fruit juices, whole fruit, flan, rice pudding, and fresh coffee. My favorite was the fresh-squeezed pineapple-mint juice served early Sunday morning. We were well fed.


Throughout the event, an eclectic mix of R&B, hip hop, rock, alternative, and trance music served to keep us awake, motivated, and relaxed. To lighten the mood late in the night, we were treated to the entire Iron Man movie, clips from Dr. Horrible and Monty Python's Holy Grail, and, in honor of the Sunnyvale Open Hack Day, Free Bird by Lynyrd Skynyrd.


As usual, Yahoos were on hand all night for technical support. When he wasn't answering questions, Chris Heilmann hacked together a JavaScript wrapper for BOSS that simplifies BOSS usage to a few lines of JavaScript. One big stumbling block we observed was the authentication processes required by many web services, including many of Yahoo!'s recent releases. BOSS was the notable exception here, which is perhaps one reason it was widely embraced.


Ryan Teixeira, software architect and hack day organizer from Yahoo!'s Miami office, discussed this issue at length with Zach and I. We reaffirmed a commitment to clarifying the authentication process and developing more tools like YOS's PHP and ActionScript SDKs and Flickr's API explorer to help make the authentication flow easier to work with.


The deadline for hack submissions was 3PM on Sunday. We all migrated to the lecture rooms, which had been merged into a single hall for the presentations. Rows of puff chairs lined one wall. Ryan broadcast the presentations on live.yahoo.com, and the event was translated into English for the benefit of the non-Brazilians. Senior administrators and student journalists from SENAC also attended the event.


Of the 36 hacks submitted, my three favorites were the Puff Hacking video, (also noted by Christian and Yodel Anecdotal), the Twitter-Answers mashup oracle Fasassim that often fell comically short of omniscience, and the real-time audio-visual representation of Hack Day-related Twitter and Flickr traffic. Chris Heilmann's post on the YDN blog details the winning submissions. The Brazil Hack Day wiki describes all the projects submitted.

A brief after-party gave us all a chance to chat with our new friends before we disbanded and returned to our homes. Although I am admittedly biased, I think the event was a huge success. Everyone involved, and especially the Yahoos from São Paulo and Miami and all the participants, deserve much praise for their efforts.


Erik Eldridge
YDN Engineer/Evangelist

Posted at 12:38 PM | Comments (2)

November 11, 2008

The Art of Capacity Planning - A Developer's Book Review

Recently I had the chance to read through "The Art of Capacity Planning" by John Allspaw (Engineering Manager, Operations at Flickr). To be honest, I thought I would be poring through mathematical theory on the implementation of capacity planning in this book, logging facts and high-level theory into my head but only retaining half or less of it. I was happily surprised that I was completely wrong.

This book ran through the practical implementation of capacity planning from an operations point of view, pointing out commonsense solutions to real-world problems using practical examples from Flickr and other companies along the way. I want to reiterate the "commonsense" portion of my last statement. John is clear to state that many times the easiest solutions are the best. This may be commonsense for everyone, but how many of us actually use this approach? Most of the time, whether in operations, software engineering, or website development, I see engineers take an approach that brings complexity to a whole new level, even when a simple solution is staring them in the face. I must admit, I sometimes partake in this group as well, building out complex algorithms to solve a problem (using a jackhammer on a nail). That is the point John is trying to hammer home: When it comes to building a scalable, reusable model for any project, the tried and true simple methods are often the best.

In the preface John states that the audience for this book includes "systems, storage, database and network administrators, engineering managers, and of course, capacity planners." I've worn a lot of hats in my employment over the years, sometimes falling into those categories. To be honest, I believe the audience for this book extends to software engineers, web developers, and any person building a product on top of these systems. It's important for all developers to know how what they are developing will affect the systems they are building upon, whether it's about understanding how the number and size of database queries affect the server in a high-load situation or how proper caching methodologies help reduce that same server load. I can definitely say that I am a better software engineer after reading this book.

John ties in concepts such as using database replication to assist in normal REST requests, proper methods for determining and implementing a server capacity plan, using load testing techniques to test and measure web-server ceilings, and how to plan for unknowns such as disaster recovery or additional load through API accesses.

One of my favorite sections was the discussion on cloud computing, which ripped through all of the marketing buzzword hype to give readers real company implementations of this technology, weighing why this approach works in some applications and fails in others. This is all done in light language with practical examples and comparisons that kept this reader's interest throughout the entire book.

In short, the audience for this text reaches far beyond those people that were originally assumed as interested parties. If you take away one key idea from this book it should be that everything you do in a development environment, whether it be in operations or web application development, affects your business in many ways you may not have thought of. Proper capacity planning is the responsibility of everyone, and understanding what you can do to help will make you a better engineer, network administrator, or any other hat you wish to don on any given day.

Jonathan LeBlanc
Senior Software Engineer
Yahoo! Developer Network

Posted at 7:35 AM | Comments (1)

Oi! Open Hack Day Brazil was a blast

Last weekend hundreds of Brazilian (and other Latin American) hackers came to the Senac University in Sao Paulo, Brazil to compete, meet and share information at the Open Hack Day.

brazilopenhackday.jpg

I arrived a day early to help the local team plan the tech talks and set up the hack day. I was joined later by my Sunnyvale colleagues Erik Eldridge and Zach Graves and we distributed the topics we wanted to talk to the hackers about. We ended up covering the whole spectrum of the Yahoo Open Strategy - YQL, YAP, BOSS, SearchMonkey, oAuth and so on. With the help of local colleagues (who presented in Portuguese and thus making it easier for hackers) we also covered the basics of ethical hacking, where to find mashable data and how to approach a hack.

The hack day was organized into a few hours of tech talks, followed by hours and hours of hacking, playing games (Wii, Air Hockey, Table Football, a real pinball machine and some Brazilian version of table football using small disks), listening to music and watching some movies on the big screen. Contrary to the UK and US hack days there was no band, but instead we finished the hack day with a small cocktail reception and the award ceremony.

As the most seasoned hack day traveller and judge my task was also to explain to the panel of judges (two senior Senac University executives, a senior Yahoo LatAm executive, the leader of Python Brazil, a journalist from IDG and little me) the rules and non-rules of hack days, judging them and what to look out for.

The hack day organization was flawless and I cannot thank the local organizers enough for making it such a success. Getting around town in Sao Paulo can be a daunting task as it seems to be local custom to negotiate any kind of decision for several minutes in the most of amiable terms and a torrent of Portuguese. As non-native speakers this can both be confusing and frankly not possible which is why I have to thank everyone who helped us out getting to where we needed to be in time and in the most relaxed fashion.

This was my first time in Brazil and I was very much taken by the warmth of both the weather and the people. Helping each other and constantly being on the lookout for each other's needs seems to be commonplace and it is very nice to see a crowd of total strangers click instantly and overcome obstacles (language and technology related) together and having a great time doing it.

The amount of submitted hacks and the quality was amazing and all the colleagues I talked to had the same impression I got that there is a refreshing and encouraging thirst for knowledge in the Brazilian community. People were not afraid to ask questions, drag you to their table and use your expertise to get faster where they wanted to instead of trying to muddle along. The BOSS wrapper library I wrote on the hack day to make things easier spread like wildfire and several of the hacks (including one of the winners) were based on it. Another out-of-the-box product that was used a lot was the Yahoo mobile SDK BluePrint.

My colleagues in Brazil promised to publish a full list of the hacks as soon as they finished wrapping up the hack day aftermath, but for now here are my personal descriptions of the winning hacks.

We had four categories: BOSS, SearchMonkey, Mobile and Open and made up four more after seeing the hacks.

Best Mobile Hack

The winner in the mobile category was a BluePrint application that allowed users to look up government information and laws applying to the region they are in at the moment. We were especially impressed that this was a requirement that customers of the hacker's company had been wanting for a quite a while but he had no idea how to build something like this until he got introduced to BluePrint on hack day.

Best BOSS Hack

The winner in the BOSS category was a band information application that would find all kind of information about your favourite bands, including upcoming concerts in your area taken from Brazilian data providers.

Best Open Hack

The winner of the open category was an application to track the change of licensing in photos posted on Flickr. As it is possible to change the license of a photo from Creative Commons to full copyright this can lead to problems in using them in your products. The tool provided would allow for an API to tell you when the licensing of the photos you are using (marked as favourites) changes.

Best SearchMonkey Hack

The winner of the SearchMonkey category pushed XPATH and XSLT to its limits by including category links scraped from Wikipedia articles into search results from WikiPedia.

Best Green Hack

The first made-up category - green hack - was a mobile application that allows you to track your fuel consumption by entering the information of how much petrol (or alcohol in Brazil!) you used and what mileage you got every time to fill up your car. The system gives you a graph to show your consumption habits and in a second phase will allow you to share and compare the information with other users.

The "Bridging the gap" Hack

One hack that was very close to my heart and that got the "Bridging the Gap" award was actually a whole set of hacks built by a group of about ten developers that started collaborating at the hack day. All of these hacks revolved around the concept of bringing Yahoo APIs - and especially BluePrint - to the Java Developer world by integrating information into Java IDEs (NetBeans) and building SDKs and wrappers for Java Technologies. I hope we can follow this up very closely and get all this information up on the Yahoo Developer Network soon.

The "What the Hack?"

The "What the Hack?" category winners were a group that took the word "hack" very much to their heart and integrated everything but the kitchen sink into a hack that showed the flow of information of the hack day on all kind of interfaces. Using Python, Flickr, Twitter and open source hardware the team did not only bring their own whiteboard after realizing we didn't provide any but they also built a circuit board with LEDs that flickered more or less intensely depending on how many people tagged photos on Flickr with the official hack day tag. Which of the LEDs blinked and their colour was defined by how may people twittered about the hack day. There was also a sound component that would make the circuit board play differently pitched sounds depending on other activity on the web related to the hack day. In general the hack was as impressive as it was confusing and it was simply a joy to behold when the group of eight hackers all went up on stage with all kind of mobiles, notebooks, sub-notebooks, cameras and newly built hardware to show us what is happening on the web right at this moment related to the hack day.

The "Using the environment" Hack

The "Using the environment" category winner was a video that showed what the beanbags provided to sleep and relax on can be used for. The team showed an immense creativity in this building kayaks, race cars, TV sets and lots lots more and watching the movie had the whole hack audience in stitches. You can watch it for yourself:



Puff Hacking from fczuardi on Vimeo.

All in all I am very happy to have been a part of this hack day, and there are far too many stories to be told and things to be shown to cover in one blog post. Simply make sure to follow the tag "brhackday08" on the web and see more and more things being released, written and shown in the next few days.

Chris Heilmann
Yahoo Developer Network

Posted at 5:45 AM | Comments (13)

November 9, 2008

What's up with BrowserPlus?

Last Friday we quietly pushed an update to the BrowserPlus™ platform. This update includes better browser support and a couple new features. More important, it makes it possible for anyone to use BrowserPlus on their own website to implement better in-browser uploading and desktop notifications.

What's better about the upload? To start, it's easier for end users to select the files they want to upload. You can drag and drop files or folders directly into your web browser. An enhanced "File Browse" implementation supports file multi-select as well as folder select. For sites focused on the upload of photos, we've built a component that lets you manipulate images on the client before uploading them. Once the content is selected and the image is ready to upload, our service includes a progress bar that shows accurate upload progress. The PhotoDrop demo shows how all of these features come together for a smooth and intuitive photo-editing and in-browser upload experience.

Desktop notifications are interesting because they give websites an unobtrusive hook to inform users about important events or content changes. Wouldn't it be useful if your favorite in-browser mail client could show "you've got mail", even with the web app minimized or buried by other windows on your desktop?

Some more new features now available: simple client-side storage and playful support for motion sensors (or "accelerometers") on specific laptops. Hop over to our brand new developer page for more on the release, and all the tools you need to get started. Also, don't hesitate to come get quick answers to questions or share code and concepts in our forums.

Lloyd Hilaiel
BrowserPlus team

Posted at 7:24 PM | Comments (4)

BOSS at the Open Hack Day in Sao Paulo, Brazil

This weekend we were in Sao Paulo, Brazil to have about 400 hackers deliver 30 hacks on the first South American Open Hack Day. Further to Erik's general thoughts on the Open Hack Day (more to follow) here's a quick overview about the BOSS related happenings.

With the idea of promoting the Yahoo Open Strategy the Yahoo speakers present (Erik Eldridge, Zach Graves and me) agreed to concentrate each on one of the components of YOS. I got the task to introduce BOSS to the hack crowd and took the obvious route by explaining how to use it to find donkeys on the web:

During the course of the hack day I had more and more hackers ask me how to get and - more importantly - how to convert and display information when using BOSS. To make this whole affair a lot easier, I decided to write a small JavaScript wrapper library for BOSS called yboss. Using this one you can for example display the top search results, images and news items for the search term "obama" with the following few lines of code:

<div id="results"></div>
<script type="text/javascript" src="yboss-lib.js">
</script>
<script type="text/javascript">
YBOSS.get(
  {
    searches:'search,news,images',
    query:'obama',
    count:10,
    callback:change
  }
);
function change(o){
 var all = '<h4>Web Sites</h4>' + o.webHTML + 
           '<h4>News</h4>' + o.newsHTML +
           '<h4>News</h4>' + o.imagesHTML;
 var out = document.getElementById('results');
 out.innerHTML = all;
}
</script>

I've seen the library used in several hacks (including the winning hack for the BOSS category) which made me very happy. It is nice to make things easier for people.

Infected by the hack spirit of the event I also decided to have a bit of pointless fun with the API and created Yahoo! Fight!, a site to compare the amount of search results for two different terms.

yahoofight.png

Please notice the amount of getting overboard with this by checking out the API this is based on and the JavaScript wrapper to style the API output. If wanted, I am happy to do a writeup on how they work.

So, why not have a go at hacking together some BOSS-based products yourself?

Chris Heilmann
Yahoo Developer Network

Posted at 4:19 PM | Comments (0)

November 7, 2008

YDN University Seminars in Turkey

In October, five big universities in Turkey invited us to talk about the Yahoo! Developer Network. This was really important for us, as the time coincided with a special period for Y!OS. We had Yahoo! Profiles launch in Turkey and got the chance to announce it while giving presentations to many university students. Profiles launch may have a special side for Turkey as we really love social networks in Turkey. As an example, we have the fourth biggest network on Facebook. So, Turkey has a very special profile in our minds as it's the youngest country of Europe and has a fast growing internet penetration.

Volkan Bicer presenting

YDN seminars were hosted by Boğaziçi, ODTU, Bilkent, TOBB ETU, Hacettepe Universities with their Engineer/Computer Clubs and the IEEE student org. It’s very honorable for us to be invited by them and we got the chance to talk about how YDN can help them on their projects. We gave examples of API usage and showed them how simple it is to use an API in their projects. YUI Library is another part that they’re really interested in.

Entrepreneurship on web based projects is now very popular in Turkey, we also tried to show them that with the community based work using YDN, their start up projects can grow faster. The audience was mainly computer engineering students which make the presentations very valuable both for them and us to catch the right audience with the right content.

Audience listening

We also delivered YDN t-shirts at the end of the seminars and the participants really liked them. After 5 days we had no more t-shirts left, having delivered more than 300. We promised to send more supplies for the later talks.

For these seminars, our special thanks to Boğaziçi Engineering Society, ODTU Computer Club, Bilkent Computer Club, Hacettepe IEEE student organization, TOBB ETU Computer Club.

Volkan Biçer
Turkey Community Manager, Y! East Europe

Posted at 12:57 AM | Comments (12)

Subscribe

YDN Blog: Get Yahoo! Developer Network Blog on your personalized My Yahoo! home page.

Add To My RSS Feed

YDN Link Blog: Get Yahoo! Developer Network Linkblog on your personalized My Yahoo! home page.

Add To My RSS Feed

Recent Readers

YDN LIBRARIES & BEST PRACTICES

YAHOO! APIs & WEB SERVICES

LANGUAGE CENTERS

Copyright © 2009 Yahoo! Inc. All rights reserved. Copyright | Privacy Policy

Help us continue to improve the Yahoo! Developer Network: Send Your Suggestions