YDN Blog Archive: October 2008
« Previous | Main | Next »
October 31, 2008
WebappsCon2008: Wrap-up
For the second year running, Yahoo! Korea was able to sponsor and participate in WebappsCon, Seoul, Korea. One of the biggest web technology conferences in Korea, WebappsCon2008 was a one-day gathering full of worthwhile programs and workshops.
The morning sessions were divided into front-end and back-end technology. The impressive list of speakers included technology leaders from across the internet industry in Korea. Front-end topics included website performance tuning, mashup web application development, and testing frameworks for accessibility. Back-end talks covered best practices for PHP MVC frameworks, cloud computing, and semantic web linked data technology.
And then it was time for lunch. The cafeteria was conveniently located just a flight of stairs below the auditorium. My choice of menu for lunch was the delicious seafood soondoobu (tofu hot pot).
Throughout lunch, each sponsor cafe went into full gear. To introduce Yahoo! Maps, the Yahoo! Korea team prepared Ubongo puzzles and snacks. Ubongo is a simple game where you complete a puzzle with 2-3 pieces and ring the buzzer.
The prize was a 500-piece map puzzle!
The highlight of the afternoon programs was hearing Joel Spolsky, CEO, Fog Creek Software, give an entertaining and enlightening talk. He made it easy to understand the difference between first-rate and distinctly second-rate services.
I want to thank all the people who worked so hard behind the scenes to make the event happen. We're all looking forward to WebappsCon2009!
Jinho Jung
Yahoo! Developer Network
Korea
Posted at 5:29 PM | Comments (1)
Create a niche search engine with Yahoo! BOSS
The Yahoo! BOSS API allows you to access the Yahoo! search index with new levels of freedom. You can rearrange the results, change their look, have unlimited requests, mash the results with other resources, and you don't even have to let people know that Yahoo! is powering the page. Many people are busy mashing the BOSS results with internal data sets, proprietary logic, and new visual interfaces.
BOSS is perfect for creating a niche search engine. With just a few tweaks, you can create a site that is finetuned to your particular subject. This article will walk you through some of those options.
Any Volkswagen afficianado can tell you it is difficult to find good information in search engines. VWs unfortunately do not have unique model names. Searching for information about a Rabbit, Bug, Beetle, and Golf is frustrating. You have to dig through thousands of results about insects, mammals, and Tiger Woods [sample unfiltered search result (.xml)]. However, we can create a killer VW search engine with just a few BOSS configurations.
First Steps
You'll need to apply for an application ID to create your own BOSS-based site,. Get one at the Yahoo! Developer Network. It will only take a few minutes and you can update your information later.
This article will display suggested api requests. Replace "your-BOSS-app-id" with the ID you receive from the previous step.
Site-Specific Search
This is the easiest configuration. Let's assume you want to search within a single site, such as VW.com. BOSS recognizes many of the search filters you would use in any search box. This includes +, -, "", and site:. Let's make a web service request that searches only the official VW web site.
The key here is the query. We will take the user's request and add "site:vw.com" [ sample site: search result (.xml)]
http://boss.yahooapis.com/ysearch/web/v1/golf+site:vw.com?appid=your-BOSS-app-id&format=xml&start=0&count=15
Define Your Pool of Expert Resources
The site-specific filter is going to limit the usefulness of your site. Let's open the results to a wider range of resources. The "sites" query param lets you define a list of sites for BOSS to search through. While BOSS can handle tons of sites, you are limited by the length of a url in the request. To be safe, keep your list to no more than 30.
The BOSS team is evaluating options for massive lists. However, this isn't an issue for most niche search engines.
The pattern is pretty simple. Insert a sites query param that equals a comma separated list of urls. Here's a very brief list of VW experts for this demonstration [ sample sites based search result (.xml) ]:
http://boss.yahooapis.com/ysearch/web/v1/golf?sites=vw.com,vwtrendsweb.com,performancevwmag.com,caranddriver.com&appid=your-BOSS-app-id&format=xml&start=0&count=15
Now that you've created a set of experts for VW news and information, you can create a second group for parts and stores. This is how you can quickly create sub-categories in your search site.
Refine Your Search Results
As mentioned earlier, the Yahoo! BOSS API recognizes most of the advanced search filters. Let's see how we can start making our results even more specific. These can be used with either of the above techniques.
Tag Search
While BOSS does not have a tag search function, you can use the inurl: filter to get a similar functionality. This will work especially well if your set of resources includes blogs; which have the tag as part of the url, i.e. http://myblog.com/golf/sample-post [ sample inurl: search result (.xml) ]. Notice how the display url in the sample xml has the query term wrapped in b tags. BOSS results make it easier for your visitors to recognize the filter results.
http://boss.yahooapis.com/ysearch/web/v1/inurl:golf?sites=vw.com,vwtrendsweb.com,performancevwmag.com,caranddriver.com&appid=your-BOSS-app-id&format=xml&start=0&count=15
Title Search
You may find better results by using the intitle: filter instead. This will only return pages that have the query in their title.
[ sample intitle: search result (.xml) ]
http://boss.yahooapis.com/ysearch/web/v1/intitle:golf?sites=vw.com,vwtrendsweb.com,performancevwmag.com,caranddriver.com&appid=your-BOSS-app-id&format=xml&start=0&count=15
Get Related Sites
Now let's add another layer to your search results. We can make a secondary request for each result to find related web pages. This would have some performance impact, but could be done as an AJAX request after the page has loaded.
We will use the related: filter. Let's grab this result from the above intitle: search result: http://www.caranddriver.com/car/2006-models/2006-golf.html. We will now create a secondary request for this url to find websites that are related to it. [sample related search result (.xml)]
http://boss.yahooapis.com/ysearch/web/v1/related:http://www.caranddriver.com/car/2006-models/2006-golf.html?appid=your-BOSS-app-id&format=xml&start=0&count=15
Start Innovating
You've now created a set of authorities on your niche subject, you've given the user the ability to fine tune the results, and you've triggered a secondary request for related web sites. Next steps: offer multi-language support, display news and images for the query, use Yahoo! Pipes to mash the results with other services. The possibilities are only limited by your imagination.
Ted Drake
Yahoo! Paris
Posted at 10:17 AM | Comments (3)
October 30, 2008
Using Flash to increase social networking application portability
It’s no secret that each of the major social networking containers implements its own set of rules for how developers can interact with its applications. Even OpenSocial-compliant containers usually don’t implement the full standards body. This usually gives developers additional concerns when it comes time to migrate their application to another container.
Flash is an excellent medium for building high-animation interactive components and decreasing the time that you, the developer, will have to spend adjusting your app to get it working perfectly for a new container. In this case, we used Yahoo!'s ASTRA Flash components to replace some of our graphing components. We passed a JSON string to the Flash object, used a JSON serialization library to parse the data, and then used those data structures to build out our components.
We wanted to display a graph detailing positive versus negative voting with an overall vote line running through the middle. Below is a stripped version of the code base we used to initialize our graphing utility. The pieces that have been removed are those that handled the parsing of the inputted voting structures in order to provide the graphing point data providers with dynamic results:
import com.yahoo.astra.fl.charts.*; //astra library
import com.yahoo.astra.fl.charts.series.*; //astra library
//create a new chart area
var chart:StackedBarChart = new StackedBarChart();
chart.setStyle("textFormat", new TextFormat("Arial", 12, 0x2c6076, true));
this.addChild(chart);
//create astra bar series for positive votes
var upBars:BarSeries = new BarSeries();
upBars.displayName = "Positive";
upBars.dataProvider = [5,6,3,2];
upBars.alpha = 0.7;
//create astra bar series for negative votes
var downBars:BarSeries = new BarSeries();
downBars.displayName = "Negative";
downBars.dataProvider = [-3,-2,-4,-4];
downBars.alpha = 0.7;
//create astra line series for total (positive - negative votes)
var totalLine:LineSeries = new LineSeries();
totalLine.displayName = "Total";
totalLine.dataProvider = [2,4,-1,-2];
//set chart data and styles
this.chart.dataProvider = [upBars, downBars, totalLine];
this.chart.categoryNames = choiceList; //where choiceList is an array of choices
this.chart.setStyle("verticalAxisLabelDistance", 10);
this.chart.setStyle("horizontalAxisLabelDistance", 10);
this.chart.setStyle("seriesMarkerSkins", [,,bullet]);
this.chart.setStyle("seriesColors", [0x66e366,0xff6675,0x2c6076]);
All of the tools we used for this application may be downloaded for free:
Get: ASTRA Library
Description: A library of Flash objects that may be used to build out dynamic components and applications. This was the backbone of our graph.
Get: JSON Serialization Library (corelib download)
Description: A parsing utility that will accept a JSON string and convert it to an ASON structure to allow parsing. Be careful with the data you input into this. All key value pairs must be wrapped in double quotes in order to parse correctly; single quotes or bare values will result in a parsing error.
Jonathan LeBlanc
Senior Software Engineer / Technology Evangelist
Yahoo! Developer Network
Posted at 6:51 PM | Comments (0)
October 28, 2008
Introducing Y!OS 1.0 - live today!
Earlier this month, we introduced a revamped universal profile to all Yahoo! users – but that was just the tip of the iceberg. With the new profile page, you got a peek at our open vision, but today’s Yahoo! Open Strategy (Y!OS) 1.0 platform launch gives you something to get your hands on. Today we’re making Y!OS a reality for developers through the release of the Yahoo! Application Platform (YAP) , Yahoo! Social Platform (YSP) and Yahoo! Query Language (YQL). Now, anyone on the web has access to Yahoo!’s tools and data to start building applications for Yahoo!’s vast audience and the web beyond.
Yahoo! Social Platform
The Yahoo! Social Platform (YSP) consists of a suite of REST-based social APIs from Yahoo! including: Profiles, Connections, Updates, Contacts and Status. These services will make it possible for you to write social applications either on Yahoo! using the Application Platform or on your own website. We are releasing a PHP SDK an a Flash SDK to help you access these web services. Because we make use of standard OAuth and REST (both XML and JSON), standard libraries can also be used.
Yahoo! Query Language (YQL)
YQL is a new web service API that lets you access other web services using a SQL-like language rather than typical programmatic access. You can think of it as a command line version of Pipes. Its goal is to make data from Yahoo! as well as from across the internet universally accessible through a single common interface.
Yahoo! Application Platform (YAP)
YAP will soon become the mechanism for distributing your application to millions of users on Yahoo!’s homepages, media sites, and mail properties, some of the most trafficked sites on the Internet. The initial release supports a few programming models including:
- Developer hosted execution of applications with access to Yahoo's Social APIs and YQL;
- Support for OpenSocial's JavaScript API; and
- Support for server-side YML tags.
Today we are launching the platform itself; for now, we hope you’ll start building apps to view in the canvas view. We will keep you updated on the rollout schedule for embedding third-party applications within the pages of Yahoo!'s properties. In the meantime we’d love to hear from you and see what you’re building.
Yahoo! values user security and privacy. We've put several mechanisms in place to keep YAP secure, so that people are always in control of the data they put into the system:
- All HTML, CSS & JS code will be run through Caja . Check the release notes for what capabilities are supported;
- Users have the option of not sharing their data with their connections applications;
- Spam protection is in place around messaging, invites, and updates.
OAuth
YAP, YSP, and YQL are all accessed using the open standard OAuth to authenticate both the developer and the 3rd-party (user) on whose behalf the developer is accessing the data. This ensures that our users are always in control over who can access their data.
What’s next?
In 2008, it’s been all about building the base platform. For the rest of the year and into 2009, we’ll focus on integrating the platform into rest of Yahoo!. As we rewire Yahoo! in this way, you’ll see two major things start to happen:
1. Users will begin to experience what we call a “social dimension” across Yahoo!.
We’ll activate our network horizontally across Yahoo!. Yahoo! Mail and Yahoo! Messenger will encourage users to connect with the people that they care the most about. For example, Mail will incentivize connections by enabling users to filter their inboxes to see emails just from social connections. And Mail, Messenger, the front page of Yahoo!, and My Yahoo! will allow people to see things their connections have been doing across Yahoo! and the web. Finally, Yahoo!’s media properties (Sports, Music) will contribute to social relevancy by encouraging users to share experiences with each other.
2. We’ll continue to open Yahoo! to developers and publishers like never before.
By opening up, we create experiences that give people choice about the content they consume. We’re committed to giving our users what they want, where and with whom they want it. We’ll continue opening the UI of places like My Yahoo!, the Yahoo! homepage (www.yahoo.com), and Mail to 3rd party applications via YAP, so our users gain access to the best and liveliest of the web. And our Social Platform APIs give developers across the web the tools and data services to create rich experiences for this newly active social user base. You’ll be able to publish activity stream information via Updates and reach users across the Front Page, Messenger and Yahoo! Mail.
This launch also marks Yahoo!’s first implementation of OpenSocial support. As a founding member of the OpenSocial Foundation, Yahoo! is committed to supporting the complete OpenSocial specification and is working with the community to expand the spec to include OSML and OpenSocial templates. In addition, we are currently implementing a Shindig-based OpenSocial container which will allow us to provide full support for the OpenSocial REST Protocols and thus for Portable Contacts. To learn more about YAP and OpenSocial, please visit the OpenSocial blog.
Developers everywhere benefit from the fact that Yahoo!'s audience is worldwide. Our platform is fully internationalized from the start for use in 31 countries. And we’re growing. Come along and go global with Yahoo!.
We hope that you’ll check out the documentation and start creating apps today.
Sam Pullara
Vice President, Yahoo! Application Platform
Posted at 12:15 PM | Comments (4)
Moving on with the style of conferences: <head> was a great success
Last weekend (including Friday) we were part of something new and groundbreaking: the <head> conference was the first fully interactive conference held on the internet with 73 speakers in numerous countries, each of which didn't have to leave their homes to talk to the attendees. The following is a screenshot of the conference organizers inside Adobe Connect (the technology the largest part of the conference relied on):
This was possible because of two factors: dedication by the organizers (especially the father of the conference Aral Balkan) and not being afraid to push technologies to its boundaries.
The amount of technical effort and bleeding edge technology was impressive: the web site consuming the streaming data and allowing the audience to chat with the presenter was written in Python and fully hosted on Google App Engine. There was a pre-party in Second Life and a song performed on stage and broadcast into Second Life.
The London hub
As conferences are much more than just listening to amazing speakers, the Yahoo Developer Network also sponsored a hub in London that allowed people to meet in real life and witness the start of the conference.
The location was reflecting the magic of what was happening here - the magic circle is a members-only club in the centre of London that showcases all of the great magicians coming from or performing here. The stage with the speakers was a real old-school stage with red velvet curtains and an aura of mystique went through the whole building. Think of the sets in the movie The Prestige and you get a good idea. Luckily we did not set off any trapdoors by accident and lost speakers but on the other hand we didn't have Scarlett Johansson either.
The overall line-up of speakers at the conference was impressive and the London hub had a wide variety of talks ranging from accessibility over working more efficiently via saving the world by monitoring our energy identity up to using cloud computing in a safe manner via open standards.
The highlight of the hub was Tim O'Reilly chatting with a very star-struck Aral Balkan about what the future might bring and where O'Reilly is heading with it.
The conference
Apart from several minor technical glitches that can be remedied the conference went remarkingly well. I was not too sure when Aral approached me a year ago that talking to my computer would make for a good presentation format but it seems that my talk went down well and it was easy to answer questions of the audience asked in an online chat. I would have liked more video conferencing going on but I am sure we already pushed the system to the limit with three parallel conference rooms.
I am looking forward to next year and where this can go. From a "green" perspective and in terms of saving money (no travel cost) the conference style is a real winner in these days of cost cutting.
Hats off to Aral and team for making this happen! We'll keep you updated when the videos of the conference are availlable and you can find the slides by following the tag "head2008" online.
Chris Heilmann
Yahoo Developer Network.
Posted at 4:21 AM | Comments (1)
BOSS Hack Day Hits the Road
The BOSS team recently participated in Open Hack 2008 to promote and inspire innovation and openness in search. Developers came out in full force to create hacks and mashups using Yahoo! Search BOSS. With the success of our event in Sunnyvale, we decided to take Hack Day on the road.
We’re inviting developers to take part in Hack Days around the world. We’ll be sharing where the platform is headed, leading technical discussions and encouraging developers to start building innovative new search experiences using BOSS.
Our first Hack Day kicks off in Tel Aviv on November 6th. We’ll be hosting or participating in Hack Days throughout November so check out the schedule below and join us if you can:
- Tel Aviv: November 6, 2008 @ Feature
- Sao Paulo: November 8 – 9, 2008 @ SENAC University
- London: November 10, 2008 @ Wallacespace
- Paris: November 12, 2008 @ La Cantine
- South East Asia: coming soon!
We hope you can come hack with us!
The BOSS team
Posted at 3:36 AM | Comments (3)
October 24, 2008
On Location @ Yahoo! - the OPEN files
Our friends at thesocialweb.tv just posted a new episode featuring special guest Allen Tom, OpenID guru and architect, Yahoo! Membership.
Here's Allen with John "The Real" McCrea from Plaxo, on camera at Yahoo!'s Sunnyvale headquarters on a sunny October morning, discussing last week's "under the hood" launch of Y!OS and this week's historic OpenID/OAuth User Experience (UX) Summit, hosted at Yahoo!.
Posted at 5:22 PM | Comments (0)
October 23, 2008
Social Networking Application Portability – What We Learned the Hard Way
One of the major initiatives within the partner integration group of the Yahoo! Developer Network is to explore new technologies and methods for improving upon existing application development structures. This technology exploration is used to enhance products and services that we build for our partners in order to provide the richest overall user experience we can offer.
Our most recent endeavor focused on social networking application development. More specifically, we wanted to assess the levels of support offered by the leading OpenSocial containers for raw JavaScript (JS), YUI, the OpenSocial JS API, RESTful back-end architectures, and cross-platform (e.g. MySpace to YAP, MySpace to Orkut) code portability.
To this end, we created a JS-driven front-end and a RESTful web-service for our database and developed and deployed our application on MySpace. The web service layer was used to facilitate communication with our MySQL database but all of the application structure and user interactivity was built using JS. We wanted to use the OpenSocial JS API to learn more about it and really see what viable options are available in the API that may be utilized for partner application requirements in a social networking space.
Once our application was built and published on MySpace, our next task was to push it to the Yahoo! Application Platform (YAP). As many readers are aware, YAP will be OpenSocial compliant and use Caja to secure user-generated JS, including JS libraries like YUI and jQuery, CSS, and HTML. YAP will be one of the first full scale, real-world implementations of Caja. Immediately, we ran into some issues with our JS, namely, current versions of YUI are not Caja compliant. We had used YUI extensively, so our JS would not "cajole."
What now?
Placing the application logic entirely on the client-side gave us a rich development experience, but our JS was not portable and we were pushing the limits on browser capabilities fairly hard. Now we needed to build the application in a way that would make it portable no matter what container we were using, OpenSocial compliant or not.
Previously, we used JS libraries to dynamically generate tables and charts as well as to handle our events. We have now replaced much of this code with strict HTML / CSS generated on the server using Smarty , and dynamic flash charts using the Yahoo! ASTRA Libraries, which accept user data as JSON. We have moved a lot of our client-side code to a server-side PHP controller layer, which fits right above our web-service layer. What little JS remains has been run against Caja to make sure all the pieces cajole properly. In addition, we have expanded our web service layer to bundle all of our application data into a single callback.
Our final application model is a highly portable, modularized, and scalable application.
Lessons Learned
Raw JS and JS libraries have their place in programming on the web, and can be used to extend an application in many wonderful ways. When you have complete control over the platform that you are building on, and are building applications without much need for portability, the client-side approach usually works in your favor. In the case of social network programming however, or any programming done on top of a black box environment, to truly build portable applications that can be easily deployed over dozens of different containers, this approach has its drawbacks. Flash, server-side templates, and RESTful web service layers are just some of the ways we were able to meet the requirements of a portable application while maintaining highly modularized code. Once we stopped relying on the container and client-side compliance, and shifted more functionality to our own scalable services, we met all of our goals and were able to port our application.
Jonathan LeBlanc
Senior Software Engineer / Technology Evangelist
Yahoo! Developer Network
Posted at 10:21 AM | Comments (0)
October 22, 2008
Take a seat at the <head> conference
The online/offline conference <head> is this Friday. There is an amazing lineup of speakers.
We've decided to sponsor some tickets for the "San Francisco" hub which is actually at our office in Sunnyvale, California. If you would like to attend email ydngiveaways@yahoogroups.com with a description (or link) to your favourite Hack and explain why you think it's cool. The Hack doesn't have to be your own but we'd love to see what you love and why. We also need your address for legal reasons, but don't worry we won't ever use it for any other purpose.
We'll pick the answers out of a hat on Thursday at noon and let the winners know ASAP via email. For more details on the Ts & Cs see below.
Tom Hughes-Croucher
Yahoo! Developer Network
---
YAHOO! <head> CONFERENCE TICKET GIVEAWAY
OFFICIAL RULES
No Purchase Necessary to Enter or Win.
Eligibility: You must be a legal resident of the 50 United States or District of Columbia and 18 years or older at the time of entry. Void in overseas U.S. territories, possessions, commonwealths and military installations, and where prohibited by law. Employees and agents of Yahoo!, ("Sponsor"), its affiliates, subsidiaries, advertising and promotional agencies, any other prize sponsor, and any entity involved in the development, production, implementation, administration or fulfilment of the Yahoo!
Conference Ticket Giveaway (the "Sweepstakes") (all of the foregoing, together with Yahoo!, collectively referred to as "Promotion Entities"), and the immediate family members and persons living in the same household as such individuals, whether related or not, are not eligible to participate or win.
How To Enter: The Sweepstakes begins at 12:01 AM PT on Wednesday, October 22, 2008 and ends at 12:00:00 PM PT on Thursday, October 23, 2008 (the "Entry Period"). To enter, send an email to ydngiveaways@yahoogroups.com and include your first and last name, physical mailing address (no post office boxes), telephone number, and email address. All entries must be received by 12:00:00 PM PT on Thursday, October 23, 2008.
Conduct: By entering the Sweepstakes, entrants agree to comply with and be bound by these Official Rules. The Official Rules will be posted at the Sweepstakes website throughout the Sweepstakes. Failure to comply with these Official Rules may result in disqualification from the Sweepstakes. Entrants further agree to comply with and be bound by the decisions of the judges, which will be final and binding in all respects. Yahoo! reserves the right at its sole discretion to disqualify any individual it finds to be: (a) tampering or attempting to tamper with the entry process or the operation of the Sweepstakes or any Yahoo! website; (b) violating the Official Rules; (c) violating the terms of service, conditions of use and/or general rules or guidelines of any Yahoo! property or service; or (d) acting in an unsportsmanlike or disruptive manner, or with intent to annoy, abuse, threaten or harass any other person.
Prizes: Thirty-five (35) people will each win one (1) ticket to the October 24, 2008
Conference, which will be held at Yahoo!’s headquarters at 701 First Avenue, Sunnyvale, CA 94089. The ticket includes admittance to the conference, which will take place from 9 AM PT to 5 PM PT. Winners will be provided with lunch. Approximate retail value of each prize: $155. Limit one prize per winner. Tickets must be redeemed on October 24, 2008 and cannot be used in conjunction with any other promotion or offer. Prizes may not be transferred or assigned except by Sponsor. Only listed prizes will be awarded and no substitutions, cash equivalents or redemptions will be made, except that Sponsor reserves the right to substitute any prize package with another prize of equal or greater value in the event that the advertised prize (or any component thereof) is not available. Expenses not specifically stated above, together with the reporting and payment of all applicable taxes, fees, and/or surcharges, if any, arising out of, or resulting from, acceptance or use of a prize, are the sole responsibility of the winner of that prize. Yahoo! expressly disclaims any responsibility or liability for injury or loss to any person or property relating to the delivery and/or subsequent use of the prizes awarded. Yahoo! makes no representations or warranties concerning the appearance, safety, or performance of any prize awarded. Restrictions, conditions, and limitations apply. Promotion Entities will not replace any lost or stolen prize items.Winner Selection and Notification: The winners will be selected in a random drawing conducted on October 23, 2008 after the close of the entry period, from among all eligible entries received. Odds of winning depend on the number of eligible entries received. All prize drawings will be conducted by a representative of the Sponsor, whose decisions are final.
Potential winners will be notified immediately after the drawing date via email and/or telephone. Inability of Promotion Entities to contact a potential winner may result in disqualification and selection of an alternate winner by random drawing. Winners will be notified via the email used for entry into the drawing. Upon notification they will also receive an electronic ticket for the event via email. Any difference between actual value of a prize and the approximated value of a prize as stated in these Official Rules will not be awarded.
General Conditions: This Sweepstakes is governed by the laws of the United States. All federal, state and local laws and regulations apply.
By entering, participants: (a) release and hold harmless Promotion Entities, and their respective parents, subsidiaries, affiliates, directors, officers, employees, and agents from any and all liability for any injuries, loss or damage of any kind to persons, including death, or property damage resulting in whole or in part, directly or indirectly, from acceptance, possession, misuse or use of any prize, participation in this promotion, or while travelling to, preparing for, or participating in any prize-related activity, and (b) grant to Yahoo! the right to use and publish their proper name and state online and in print, or any other media, in connection with the Sweepstakes.
Except where prohibited by law, a winner’s acceptance of a prize constitutes permission for Promotion Entities to use such winner’s name, address (city and state only), statements, photograph, voice and/or likeness for any advertising and promotional purposes relating to the Sweepstakes without further compensation, consideration, review or consent.
Limitations of Liability: Promotion Entities assume no responsibility for lost, late, misdirected, illegible, or mutilated entries, or for theft, destruction or unauthorized access to, or alteration of, entries. Promotion Entities are not responsible for any incorrect or inaccurate information, whether caused by website users, any of the equipment or programming associated with or utilized in the Sweepstakes, or any technical or human error which may occur in the processing of submissions in the Sweepstakes. Promotion Entities assume no responsibility for any error, omission, interruption, deletion, defect, delay in operation or transmission, failures or technical malfunction of any telephone network or lines, computer online systems, servers, providers, computer equipment, software, email, players or browsers, whether on account of technical problems, traffic congestion on the Internet or at any website, or on account of any combination of the foregoing. Promotion Entities are not responsible for any injury or damage to participants or to any computer related to or resulting from participating or downloading materials in this Sweepstakes. If, for any reason, the Sweepstakes is not capable of running as planned, including infection by computer virus, bugs, tampering, unauthorized intervention, fraud, technical failures, or any other causes beyond the control of Promotion Entities which corrupt or affect the administration, security, fairness, integrity or proper conduct of this Sweepstakes, Yahoo! reserves the right at its sole discretion to cancel, terminate, modify or suspend the Sweepstakes and select winners from among all eligible entries received prior to the cancellation.
Winners List: The names of the prize winners will be posted on the Yahoo! Developer Network blog (http://developer.yahoo.net/blog)
Sponsor: Yahoo! Inc., 701 First Avenue, Sunnyvale, CA 94089.
For purposes of these Official Rules, "receipt" of an entry occurs when Yahoo!’s servers record the entry information. In the event of a dispute about the identity of an online entrant, each Online Entry will be declared made by the authorized email account holder of the email address submitted at the time of entry. "Authorized email account holder" is defined as the natural person who is assigned to an email address by an internet access provider, online service provider, or other organization (e.g. business, educational institution, etc.) that is responsible for assigning email addresses for the domain associated with the submitted email address. The potential winner may be required to provide Promotion Entities with proof that he/she is the authorized account holder of the email address associated with the winning entry. Limit one entry per person/email address. Although subsequent attempts to enter may be received, only the first entry received from a particular individual will count; subsequent attempts to enter will be disqualified. The submission of an entry is solely the responsibility of the entrant. Proof of sending (such as an automated computer receipt confirming delivery of email, "thanks for entering" message, or post office receipt) does not constitute proof of actual receipt by Yahoo! of an entry for purposes of these Official Rules. Automated entries (including but not limited to entries submitted using any bot, script, macro, or sweepstakes service), copies, third party entries, facsimiles and/or mechanical reproductions are not permitted and will be disqualified. Only eligible entries actually received by Yahoo! before the end of the specified entry period will be included in the prize drawing. All entries become the property of Yahoo!, and none will be acknowledged or returned.
Posted at 1:23 PM | Comments (1)
Fronteers conference videos available now on the YDN Theater
The Fronteers Conference in Amsterdam, The Netherlands in September 2008 had several world-class speakers "deep dive" on expert subjects. The conference organizers try very hard to make web development a recognized profession and asked experts to come and give hands-on, expert advice.
The videos were filmed by Bachelor ICT and are now all available on the Yahoo Theater.
The videos in detail are:
Stuart Langridge on Secrets of JavaScript Closures
In this talk Stuart Langridge took on one of JavaScript's most powerful feature, closures and tried to make them understandable for non-JavaScript enthusiasts.
Pete LePage on Internet Explorer 8 for developers
Pete LePage is product manager of Microsoft Internet Explorer 8 and explains in this talk the features of IE8 developers can look forward to. This is part two of two.
Christian Heilmann on Maintainable JavaScript
In this talk Christian Heilmann explains what you need to take into consideration when building JavaScript for larger and distributed teams. This is part two of two:
Raph de Rooij on Web Standards - why bother?
Following web standards can sometimes appear to be an annoying overhead when you're developing. Raph de Rooij, who created the Dutch government web guidelines explains in this talk why we need standard compliance and what the benefits are. This is part one of two.
Christian Heilmann
Yahoo Developer Network
Posted at 1:38 AM | Comments (0)
October 20, 2008
What is Web 3.0?
Last week in Santa Clara, forward-looking technologists and entrepreneurs came to Jupitermedia's Web 3.0 Conference and Expo and asked what Web 3.0 might look like. There were some good sessions and lively discussions exploring the pieces of the next generation of the Web. The talks fell into two categories: technology and trends.
The technology tracks looked at best practices around the data web as well as some interesting takes on query languages and the move away from SQL. There was also a panel on using semantic technologies in search. Yahoo's Tom Chi talked about Search Monkey, which uses structured data on the web to enhance search results.
Hank Williams one of the conference co-chairs, hosted a panel where we talked about Open and how Yahoo's Open Strategy applies to the web. Rather than rehash it all here, you can read what other people thought on Read Write Web's write up.
Tom Hughes-Croucher
Yahoo! Developer Network
Posted at 9:57 PM | Comments (4)
October 16, 2008
Swinging through the Jungle with Mash Maker and SearchMonkey
Updated: Spanish and Portuguese translation of tutorials added.
One of SearchMonkey's niftier features is the ability to create custom data services that uses XSLT to extract structured data from a site's markup. If you don't own the site in question, this is a great way to extract meaningful information and use it to build a SearchMonkey application. Conversely, if you do own the site in question, an custom data extractor can help you quickly prototype your SearchMonkey application before you add structured markup (microformats, eRDF, or RDFa) to your site.
Developers who already know XSLT can write a basic extractor with little trouble — the actual XSLT code for a SearchMonkey extractor usually isn't that complicated. But XSLT is an esoteric language, and the learning curve can be steep.
Which brings us to Intel Mash Maker, a nifty browser extension that enables you to extract structured information from disparate websites and create mashups on-the-fly, without having to write any code. Among other things, Mash Maker is a user-friendly creator of structured information... while SearchMonkey is a large-scale consumer of structured information. Some sort of integration seems natural, and indeed we are proud to announce that the Mash Maker team has just added built-in support for SearchMonkey, enabling you to autogenerate the XSLT code for a SearchMonkey application with a few clicks. How does it work? Check out the tutorials below:
Creating SearchMonkey Custom Data Services with Intel Mash Maker, by Lucas Massuh of Intel (video)
SearchMonkey Mash Maker Tutorial, by Chris Lindsey of Yahoo! (SlideShare presentation: English, Spanish, Portuguese; Scribd PDF: English, Spanish, Portuguese).
Currently, this experimental support for SearchMonkey exists in the Firefox version of Mash Maker only. We're hoping to continue to work with the folks down the road at Intel to find new ways to make it easier than ever to create structured information, so try it out and let us know what you think.
Evan Goer
Yahoo! SearchMonkey Team
Posted at 1:31 PM | Comments (0)
Under the hood: New open platforms wiring Yahoo's social dimension
You may not have noticed that we flipped some switches this morning and the consumer release of Y!OS 1.0 is now live, underlying a new user-facing "universal profile" page. The base platform that rolled into production will serve as the foundation for developer-facing technology initiatives in 2009 and beyond.
On the user experience side, we overhauled many of the central identity services that people use every day including the address book and profile. On the platform side, we built an open and extensible architecture that makes it easier to reuse elements across our properties. And very soon we'll open this platform up to the rest of the world, so publishers and developers (you) can build experiences for Yahoo! users anywhere on the web using this same open and extensible architecture.
Here's a quick list of the new platforms that are rolling out today. If you're an avid YDN reader, you probably recognize these as the Social APIs we published in preview mode a few weeks back. Introducing the social suite:
Yes, these are the same social APIs we previewed at Open Hack 2008 and they'll be available to you within weeks (trick or treat!) -- along with several other key technologies, including YQL and YAP. We think of these as the basic ingredients and tools for social experiences. As app developers, you'll bring your own recipe and your own secret sauce. The social APIs unlock Yahoo's vast audience and their implicit social graphs.
Big thanks to all who've been working to make this happen -- inside and outside of Yahoo! - we can't wait to see what you cook up.
Neal Sample
Y!OS Chief Architect
Posted at 4:00 AM | Comments (1)
October 15, 2008
And now for something completely different...
We love lolcats in the YDN office and I bet most of you do too. When the folks from icanhascheezburger.com were in town we couldn't resists doing an interview with them. The video is full of the kind of silliness you might expect from an interview in a big sand pit.
This is the kind of film you can only make when your video professional is out of town on assignment. Please enjoy the bloopers, but don't miss the excellent advice from Eric Nakagawa and Kari Unebasami (in conversation with Hackmeister Eric Wu) on growing a site from a single image to one with millions of visitors.
Tom Hughes-Croucher
Part-time videographer
Yahoo! Developer Network
Posted at 12:23 PM | Comments (0)
YDN services subway map now available as a PDF
One of the things we gave out at the Future of Web apps is a poster showing all the YDN services and APIs in the form of a subway map designed by Stephan Douris. Rightfully a lot of people were asking for a version of this to print out or keep on their hard drive, so here you have the poster in PDF format (zipped PDF - 714kb):
Enjoy!
Chris Heilmann
Yahoo Developer Network
Posted at 4:43 AM | Comments (5)
October 14, 2008
Yahoo! Releases OpenID Research
I'm happy to announce that Yahoo! is releasing the results of a usability study that we did for OpenID. Our test subjects were several experienced Yahoo! users (representative of our mainstream audience) who were observed as they tried to sign into a product review site using the Yahoo OpenID service.
First, the good news. After the users completed their tests, we explained OpenID to them, and they all recognized the value of being able to easily sign into a new site without having to create a new ID and password. They also appreciated the potential of using their Yahoo OpenIDs to automatically verify their Yahoo email address without having to do manual email verification.
Now the bad news. None of the users had heard of OpenID before, and none of them even noticed the OpenID sign-in box displayed below the traditional email/password login form on the site. In many cases, the test subjects entered their Yahoo email address and Yahoo password to try to log in. We had told the test subjects that they could sign into the site using their Yahoo! account without having to register. (See Page 5 of the study.)
Eventually, we coached the test subjects to use the site's OpenID Selector, and they still had some problems with the selector's Yahoo! option. In most cases, the users were confused by the "http://yahoo.com" autofilled in the OpenID sign-in box, and continued to look for for a form in which to enter their Yahoo ID and password. (See pages 7 and 8 of the study.)
After a bit more coaching, the users managed to get to the Yahoo! OP where a lot of them got lost. (OP is jargon for an openID provider.) First time Yahoo OpenID users must navigate through a few screens, where they have to solve a CAPTCHA, and agree to a TOS. They are given opportunities to learn more about OpenID, set up a custom OpenID identifier, set up an anti-phishing sign-in seal for their Yahoo login screen, or view a directory of OpenID RPs. ((RP is jargon for relying party.) In many cases, users were overwhelmed by all these options, and failed to return to the RP because they were sidetracked. (See pages 10-14 of the study.)
Finally, after a little more coaching, the test subjects returned to the product review site, where they were presented with a registration form to set up a profile. Obviously, it would have been more satisfying if the user was able to go directly to their intended destination. (See page 15.)
As a followup, we asked the test subjects to pretend that some time had passed and they were to revisit the site and sign in again. In many cases, they tried to sign in by typing in their Yahoo! email address and password into the login form. (See page 17.)
Observing these tests was more than a bit frustrating for the Yahoo! OpenID team, and the test subjects may have been distracted by the sounds of the groans and head-pounding coming from the other side of the one-way mirror. Certainly there is a lot of work to be done on the OpenID UX (user experience) front.
On the Yahoo! side of things, we streamlined our OP last week, and removed as much as we could. We removed the CAPTCHA and slimmed down the OP to just a single screen, and focused the UI to get the user back to the RP. We expect that RPs will enjoy a much higher success rate for users signing in with their Yahoo OpenID.
On the RP side of things, our recommendation is that they emphasize to users that they can sign in with an existing account, specifically their YahooID. We believe that the YahooID, as well has IDs from other providers, have a higher brand awareness than OpenID. We also believe that first time users signing in with an OpenID should be able to go directly to their intended destination after signing in, instead of having to complete additional registration. Hopefully, as SimpleReg/AttributeExchange are more widely supported (Yahoo does not currently support them), relying parties will no longer feel the need to force the user through an additional registration form after signing in with an OpenID.
I'll be happy to discuss the findings of our first UX study, as well as suggestions for improving the entire end-to-end OpenID UX.
Allen Tom
Architect, Yahoo! Membership
Posted at 7:50 AM | Comments (25)
October 13, 2008
Going Viral: One Strategy for Getting to your First Million Users
I recently attended Startonomics, a one-day conference for startups and their stakeholders. The Mission Bay Conference Center in San Francisco was buzzing with founders, funders, developers, and marketers. Everyone was focused on the metrics and methods that can help startups win on the web. It was refreshing to be with folks who still believe the future is bright in Silicon Valley.
Among the many excellent talks I heard, the workshop by Lance Tokuda, CEO of RockYou, just rocked! Lance offered honest and actionable advice for social web startups trying to get to their first million users. The gist of his message: Go viral with your app. The market for social apps is exploding. Today, an estimated 300 million people are accessible through social platforms like MySpace, Facebook, Hi5, and others. Lance expects that number to triple to 900 million people in 2009, with the opening up of Yahoo! to social application developers.
The key to making the most of this juicy traffic is to go viral with your app. So, what does it mean to go viral? According to Lance, referral traffic is key to viral growth. This is the traffic that comes from people referring apps to their connections. The traffic comes through your install and engagement flows – the steps people take to 1) install your application and 2) return to your application. RockYou has gotten the viral loop down to a science and a formula: x * y > 1 = viral
In this equation, x = invited friends, and y = accept rate. If your viral factor (x * y) is greater than 1, you have “gone viral.” RockYou has been iterating on this equation, adjusting their install and engagement flows as needed to achieve this measurable goal. Their entire application development approach centers on how to get people to invite friends to install an app. RockYou apps aren’t built just to be cool – they’re built to be viral.
Given that 99% of social network applications fail, the fact that RockYou has grown adoption to the tune of 18 million apps installed to date is impressive. To learn more about how RockYou is using simple metrics to drive viral growth, check out Lance Tokuda’s Startonomics presentation embedded below via Slideshare, or watch it on Ustream.
Again, big thanks to Lance for being so open and generous with the secrets that helped RockYou become so successful. And thanks to Dave McClure and the team from Dealmaker Media who put on a fabulous and helpful event! Check out the Startonomics site for links to all the other great talks given that day.
Julie Choi
Yahoo! Developer Network
Posted at 8:21 AM | Comments (0)
Future of Web Apps, London: an attendee's view
Last week we had the Future of Web Apps Expo in London, Europe's largest web design conference. We've covered the view of an exhibitor in the last post, now it is time to hand over to our esteemed colleague Rajat Pandit, search engineer in London, England, to give a first-hand report on what he saw and learnt during the two days at FOWA. Over to you, Rajat:
The Future of Web Apps (FOWA) was one of the biggest web events I attended this year. I'll admit I came back to the office after FOWA motivated and enriched by news and knowledge of the latest in the web industry. Th event had separate tracks for business and development catering to the mix of audience. To be honest, sometimes it was difficult to know which track to choose.
Day One
The first day started with an impressive keynote presentation by Kevin Rose on the Future of News Sharing and Discovery. He spoke about the questions that any community-driven website asks: how to give users an enjoyable experience, make their content more relevant, and improve participation in the community. He talked about changes made over a period of time and showed statistically how it improved user engagement.
Kevin's keynote was followed by Edvin Aoki of AOL who offered an interesting comparison of the present financial crisis with the state of web development. He spoke about how customers are different from developers: They don't really care how applications are built. Instead, they want something that lets them do what they set out to do. Developers, on the other hand, are passionate about everything that goes into building a web-app. They are passionate about building a community and get their kicks from increased user participation. He encouraged the audience to go out and write apps which help their users achieve whatever they want to achieve. He urged developers not to worry about monetization and other "after-effects" of a thriving community around a product.
Suw Charman-Anderson's talk about Technology and Psychology shared insights about human interaction on websites. As a social media consultant, Suw's job involves directing companies to implement features that engage and "addict" site users, encouraging them to come back for more. She made intersting comparisons between icanhazcheezburger and dilbert and showed how simple differences like organized randomness and higher frequency of publication of the posts can increase user anticipation, and encourage users to hit refresh in hope to see new content.
Ron Richards from Revision3 talked about bringing Internet television to the masses. Revision3 which produces shows like diggnation. Ron spoke about the evolution of television from a unidirectional source of entertainment to a bi-directional interactive medium.
After the break we had Dan Recordian who spoke about "Blowing up social networks with Open Tech," he talked about the importance of using open standards to open up social networks so that it lowers the entry barrier for new users and using existing services to create content. He talked about importance of data portability and how to make it easy for one website to use content from another website to empower the user to be able to do more to their data rather than have it just locked up in silo.
"Building desktop caliber web applications" was the topic of talk by Francisco Tolmasky of 280north.com. Francisco talked about how applications are now moving to the web and how people would expect the web applications to act like the usual desktop application. He spoke about Cappuccino & Objective-J and its use in his showcase website 280slides.com to show the power of the framework which enables developers to build websites which look and feel exactly like desktop apps.
The day ended with Crick Waters talking about how the web will learn from its mistakes over a period of time and get better.
Afterwards startups were invited to pitch their ideas in a Dragon's Den style Techcrunch Pitch. The Dragons were Jason Calacanis, Brent Hoberman, Ryan Carson and Mike Butcher. There was loads to take away from that as well in terms of the right approach to do a presentation and the importance of showing actual working software rather than fancy slides.
Day 2
Day 2 kicked off with a keynote by Tim Bray from Sun Microsystems who had loads of experience to share with the audience. His talk was very inspiring and motivating and encouraged everyone in the room to go out and solve all the problems (well most of them) waiting to be solved. He talked about development in current times and how people should look into open source solutions rather than re-inventing the wheel and contribute back to the system to make it better and useful for the community. Definitely one of the most inspiring talks of the day.
I decided to stick to the developer track being a developer myself and watched Cris Messina give a talk about oAuth and how together with openId it can be used as building blocks for the open web. He talked about interesting examples from flickr, fire-eagle and other websites who have implemented the oAuth standard and have helped make the web a safer place to share your data.
Brent Taylor of Friendfeed spoke about the importance of relevance of content in the age of social media and how easy it is to have "friends" in your social network who are not your 'real friends' or don't even share the same interests as you. This quickly results in the content generated by the social group being nothing but noise. He talked about how Friend Feed tries to solve this problem by providing relevant activity streams to the user and listen to even the slightest hints from user activity which can give them an insight about user preferences.
Elaine Wherry of meebo.com talked about problems of a different kind of web application - the synchronous kind. The take away for me from the talk was that when you have issues with your web application, do either a quick fix or go for a home run (a proper fix which scales well) but never do anything in between. Every problem she talked about she mentioned how they got things going by doing the first thing that would buy them time and then work on a longer term fix which would scale well.
Next up on the developer track was our very own Christian Heilmann who presented Y!Os and Yahoo's open strategy and how it was easy to build apps on top of Yahoo open API and what the future holds as well. He talked about the interesting possibilities and the amounts of masses developers could distribute their applications to by running them on the Yahoo network and yes he did mention the Rainbow vomiting panda on flickr.
After a quick break and dealing with an information overload, I settled down to listen to Dave Morin of Facebook who talked about Facebook Connect (http://developers.facebook.com/connect.php) which is still in beta but it is really interesting to see how popular social networks are opening up to make the web a better place to be. The connect API will allow developers to build on top of Facebook data and outside the Facebook iframe limitation. Developers will have access to three key social features of Facebook - Identity, Friends and Publish to the Activity stream. This can be quite useful for anyone who wants to build a social website with a theme without having to worry about the basics. Generally this could lower the entry barrier and make it easy for existing Facebook users to use the application. Hopefully they will soon be moving to open standards as well so that they can join the rest of the world which will make them even more awesome.
With the evening quickly coming to an end with loads of interesting talks, the special treat was the Fireside chat with Mark Zuckerberg who was interviewed by Ryan Carson. It was interesting to hear his views about the vision he has for Facebook and its mission to make the web a more open and connected place. He also mentioned that Facebook Connect will be a little delayed though its not clear how long will it be before it comes out of beta, and yes Mark still does fix a bug or two once in a while.
The post wouldn't obviously be complete without a mention of Kathy Sierra's talk about "How to grow and nurture your community" who has years of experience of managing and nurturing the community at JavaRanch and fair few others.
Does it get any better?
When you think it doesnt, it sure does. Diggnation live was surely the coolest thing I had seen in a while, it was amazing to see people queue up out at the expo to see the recording and how Alex and Kevin manage to keep the audience constantly entertained.
All in all the expo was a great experience, it was motivating and inspiring to listen to the industry experts share their view of the future of web and success stories of their startups. A couple of things I took away from the expo:
- The web will heal itself, browser manufacturers have understood what needs fixing and are addressing the issues - the only trouble is it takes a while.
- Major social networks understand the responsibility they have towards their users for holding their data and making it more and more easy for users to take their data with them as they move from one website to another.
- Success of social networks relies of lowering the entry barrier making it easy for the user to get started quicker rather than having to do the same thing over and over.
- User relevancy and engagement are key to success of websites, signups are no longer important metrics.
- and last but not the least as a developer or an entrepreneur don't stop trying and don't stop being innovative, take up simpler day to day problems and build applications to solve them, don't worry about funding and monetization upfront, have fun in doing whatever you do.
For those who would like to have a peek into the videos, Carsonified has very kindly made the videos available on their website.
I am already looking forward to coming back next year.
Rajat Pandit
Search Engineer, Yahoo London
Posted at 8:13 AM | Comments (0)
October 11, 2008
Yahoo Developer Network at Future of Web Apps London
The last few days saw several hundred developers, designers and web entrepreneurs flock down to Excel in the London Docklands to attend the Future of Web Apps. The yearly conference managed to attract a lot of companies showing off their products and networks and web celebrities and poster-children of the startup world told the interested audience what they needed to know. This is an account from the perspective of us as exhibitors - there'll be coverage of the talks attended by Yahoos - Rajat Pandit to be exact - later on.

More:
The Yahoo Developer Network came along with 5 people, 3 working in shifts to man the stand and answering questions of attendees and 2 speakers delivering 3 talks on Yahoo technology.
We arrived early on day one to put up the YDN stand and get the freebies ready for the attendees. We had YDN foldout maps, sticker collections and YDN bottle openers in the shape of keys.
Day One
On day one Jose Palazon of the Yahoo mobile team showed the audience the hows and whys of our Blueprint mobile development platform in one of the University sessions. These were 30 minute presentations in smaller break-out rooms held during the breaks in between the keynote presentations. Slides of that talk will follow later.
We were pretty amazed that the subway maps of the YDN went away like there was no tomorrow. I guess they can be pretty handy to put up on an office wall to have an overview of what you can use. Of course this makes us very happy - especially me as I had to carry them over to the venue in the morning and paper is heavy.

Day one started great with a lot of people coming to our booth and asking us all kind of questions ranging from "so what is the Yahoo Developer Network?" up to details about implementations of APIs.
The myspace bus situation
Then disaster struck in the form of the people from rummble and myspace starting the impromptu before-the-after-party in the myspace bus. Beer emerged faster than it normally does at the parking lot of a high-school party and someone had to keep an eye on these crazy internet kids not to hurt themselves. I took this burden onto me and ensured to keep the party contained by bringing in new stock of beverages from the nearby supermarket. We thought we had overdone it by bringing in 48 cans of fermented hops and malt, but they were gone in about an hour.

The after party - day one
About that time the normal procedures of the conference were done for the day and those about to party congregated in the nearby Fox bar where Media Temple sponsored the after-party. There was a slight moment of confusion when people wearing an "expo" badge instead of a conference one weren't allowed in. This would have made sense except for the fact that all the sponsors had one of these. When Ryan Carson, the conference organizer, arrived with the same badge things got sorted and we could commence the festivities.
Day two
Day two started less cheerful and loud than day one as a lot of attendees still suffered from the post-party effects. Many people didn't bother leaving the Docklands (as it is tricky with public transport and streets back into London are packed at that time of night) and instead just checked in at a nearby hotel.
YUI3 and Yahoo Open Strategy presentations
In terms of presentations I delivered a tech university talk on YUI3 and told people about the YUI video conference this Thursday in London. In the afternoon I substituted for Neil Sample, who couldn't come over to introduce the attendees of the Future of Web Apps to the Yahoo Open Strategy. I managed to be the firstone of the few speakers to feature pictures of kittens in my slides (come on people!) and bemoan the lack of rainbow-vomiting pandas on other photo sharing sites than Flickr.
Getting out while we could
We had to skip the after party of the event as diggnation turned out to be an amazingly successful event with people queuing up all over the expo floor to get in and we wondered if there'd be any chance to pack up and get our gear back to the office.
My personal highlights (add grain of salt here)
All in all the Future of Web Apps was a great event and we had a lot of good questions from the attendees and managed to knit some closer bonds with other company representatives. For me, there were several highlights when it comes to the expo and non-presentation side of the event:
- The video coverage, editing and release speed of the Carsonified folk is very impressive indeed - check the FOWA web site for more and more videos of talks to appear
- The idea to have barcodes on the attendee badges to allow exhibitors to scan them was great, as was the idea to have drink and snack vouchers on the badges. The procedure of punching a hole through the badge to indicate which voucher has been used up - thus destroying the barcode less so :)
- Sun brought along a very cool surf simulator (which I originally considered to be a bouncy castle) and refrained from adding 1997 slogans like "surf the web here" - kudos for that.
- fav.or.it invited attendees to build a Lego Death Star with them live on their booth. Luckily I did not find this out until it was too late - else I might have missed most of the conference.
- Adobe had their very impressive stand put up in the blink of an eye and provided Wiis for people to play.
- Both O'Reily and Apress came with a lot of books sold at a massive discount and didn't take many back with them - well done.
- MySpace had a bus - the rest was a blur, somehow.
- Rummble had people inside massive foam letters walking around spelling their logo (at times - sometimes they re-arranged themselves to ruder versions)
- Microsoft had the normal array of xboxes, showed off the beauty of Silverlight and most impressive of all brought along one of their surface tables which stole the hearts and imagination of many a developer watching the demos of what is possible with this piece of hardware. They completely failed to assess my £5 offer to get me one and deliver it back to my house so they don't have to carry it home though.
- The AOL Developer Network had a massive amount of stuff to give out and I loved the T-shirt designs - but failed to bag one.
- BT didn't bother much to show off what they have but instead offered a lot of tables and deck chairs for people to lounge and network - good idea, this is *always* lacking at conferences.
- AbilityNet did a great job advocating accessibility to an audience (and other exhibitors) showing very inspiring interview footage of disabled users using web products and finding ways to use them the original developers hadn't thought of putting in from the beginning.
All of the above is my personal experience and should not diminish the efforts of all the other exhibitors. All in all, we had a great time and will probably be back next year. So, if you are at some conference, watch out for the kung-fu stand and have a chat with YDN.
You can find my photos of the Future of Web Apps on Flickr - I did not take all of them so I am not to blame.
Chris Heilmann
Yahoo Developer Network
Posted at 8:07 AM | Comments (2)
October 10, 2008
Opening up Yahoo! to Users and Developers - the Yahoo! keynote at Future of web apps in London
I just came back from day two of the Future of Web Apps in London, England. My task of the day was to follow up Neil Sample's and Cody Simms' amazing introduction to the Yahoo Open Strategy from the Open Hack Day.
Originally Neil was meant to come over and bring the strategy information to FOWA, but he couldn't make it, so he sent me the slides to present instead of him. I've decided to go a different route and give it a more personal, European note. Here are the slides:
The recording of the talk should show up on the Future of Web Apps London site sooner or later, so watch this space.
Chris Heilmann
Yahoo Developer Network
Posted at 1:47 PM | Comments (1)
October 9, 2008
Writing a LinkedIn API library using Yahoo! BOSS web search
BOSS is the great new search API from Yahoo! that provides almost everything you need to add search capabilities to your application or website. However the simplicity and ease of use of BOSS can be deceptive. The seemingly basic API can be used creatively for many different types of applications. I wrote a quick hack a few weeks ago that creates a photo mosaic from images found using the BOSS image search. This time I'll explain how to use BOSS to create an API library from a website that uses microformats.
Sau Sheong Chang
Engineering Director, Yahoo! Southeast Asia
For many developers, the promise of open APIs accessing data on various web sites is heaven-sent. Mashups of Internet data and services are now possible where, only a few years ago, they required expensive partnerships and tie-ups. Companies such as Yahoo! and Google now open up their APIs to their core application platform running their most important assets. Case in point: BOSS allowing access to Yahoo!'s valuable search index or Address Book allowing access to the contact lists of Yahoo's hundreds of millions of users. Still, not all sites provide APIs, even if the data is available publicly on their sites. In such cases, BOSS comes in handy.
One of the features in BOSS web search is the ability to filter your searches on a particular domain. When focusing on a domain, BOSS proves very effective in providing specific search on publicly available pages in that domain. Combined with an HTML parser, an interesting synergy can be achieved that simulates the features of a API library. In this article I'll discuss how to use BOSS to create an API library to search LinkedIn public profiles. Note that the copyright on the data retrieved belongs to the site owner (in this case, LinkedIn). The techniques shown here are for learning purposes only and if you wish to use them in a commercial manner you need contact the copyright owner for permission to re-use their data.
LinkedIn is one of the more popular business-oriented social networking sites, focused on business and professional networking. A registered LinkedIn user is able to build and maintain a list of direct and indirect contacts, which are then used to find jobs, people, or business opportunities. LinkedIn users keep a comprehensive profile which they normally used to describe themselves on a business or professional level. This profile can be kept private or be publicly published for all to view.
The library I wrote for this article allows developers to search for publicly available profiles by various attributes of the profile. Specifically the code I present addresses searching by the given name, family name, locality and organization the person has worked in before. I use Ruby; my end product is a Ruby gem. However the same concept can be applied with most programming languages. LinkedIn public profiles use the hResume microformat so I use mofo (http://mofo.rubyforge.org), the Ruby microformat parser.
There's only one class in the whole library (it's that simple) so let's dive straight in.
class Linkedin
def initialize(count=50,boss_id= 'BOSS ID')
@boss_id = boss_id
@count = count
end
end
We define a constructor for this class that initializes the number of results to return for BOSS and also the BOSS ID. The bulk of the processing is within the find method in the Linkedin class:
def find(query={})
q = query.values.join(" ")
url = "http://boss.yahooapis.com/ysearch/web/v1/#{q}?appid=#{@boss_id}&sites=linkedin.com&format=xml&count=#{@count}"
(res = Net::HTTP.get_response(URI.parse(URI.escape(url)))) rescue puts 'Cannot reach to URL'
d = XmlSimple.xml_in(res.body, { 'ForceArray' => false })['resultset_web']['result']
if d.kind_of? Array
data = d
elsif d.kind_of? Hash
data = [] << d
end
data.delete_if { |rec| true unless (rec['url'].include? 'http://www.linkedin.com/pub' or
rec['url'].include? 'http://www.linkedin.com/in')}
@people = []
data.each { |rec|
resume = hResume.find(rec['url'])
@people << resume if resume.kind_of? hResume
} unless data.nil?
# filter by company person worked for
unless query[:org].nil?
filter_off_by_org(query)
end
# filter by name
unless query[:given_name].nil? and query[:family_name].nil?
filter_off_by_name(query)
end
# filter by current locality
unless query[:locality].nil?
filter_off_by_locality(query)
end
@people
end
The code looks complicated but is quite readable. The find method takes in a Hash named query and the first thing we do is to create a space delimited string with the values in this Hash. This forms the query string that is sent to BOSS web search. The returned results (in XML) is converted into an array of hashes by XMLSimple and is the raw data that we will work on.
Public profiles are only available under http://www.linkedin.com/pub and http://www.linkedin.com/in so we remove all the unnecessary data first. Then for each site that is retrieved, we get the URL of the site and parse it with the mofo microformat parser. Finally, we clean up the returned results and filter away any data that doesn't fit into the given query.
def filter_off_by_org(query)
@people.delete_if {|person|
if person.experience.kind_of? Array
person.experience.each { |exp|
return false if exp.summary.downcase.include?(query[:org].downcase)
}
elsif person.experience.kind_of? HCalendar
return false if person.experience.summary.downcase.include?(query[:org].downcase)
else
return true
end
}
end
def filter_off_by_locality(query)
@people.delete_if {|person|
locality = person.contact.adr.locality.nil? ? "" : person.contact.adr.locality
true unless locality.downcase.include?(query[:locality].downcase)
}
end
def filter_off_by_name(query)
@people.delete_if { |person|
case
when query[:family_name].nil?
true unless person.contact.n.given_name.downcase.include?(query[:given_name].downcase)
when query[:given_name].nil?
true unless person.contact.n.family_name.downcase.include?(query[:family_name].downcase)
else
true unless person.contact.fn.downcase.include?(query[:family_name].downcase) and
person.contact.fn.downcase.include?(query[:given_name].downcase)
end
}
end
Filtering off results that do not fit into the query is relatively straightforward. In this article I describe 3 types of filters, by name, by locality and by the organizations he has worked for. What it does is obvious -- if the name of the returned result is not the actual profile required, we don't want it. You might wonder how this is possible if I search for 'John Smith' -- I should get only profiles of John Smiths, right? As it turns out, if in your profile you even mentions the name 'John Smith' (say you mention in your profile your ex-boss is John Smith), BOSS will return that result to you. This is not the profile you want, of course, so to remove it we need to apply the name filter. In the same way, we apply a locality filter if locality is specified and an organization filter if a particular organization is specified.
Finally, here's a code snippet that shows how this simple LinkedIn public profiles library can be used:
linkedin = Linkedin.new
people = linkedin.find({:given_name => 'Sau Sheong', :family_name => 'Chang', :locality => 'Singapore'})
people.each { |person|
puts person.contact.fn
puts person.contact.adr.locality
puts person.contact.title
puts person.skills
puts person.summary
# experience
person.experience.each { |exp|
puts " - #{exp.summary}"
puts " #{exp.description}"
puts " (#{exp.dtstart} to #{exp.dtend})"
}
# education
person.education.each {|edu|
puts " - #{edu.summary}"
puts " #{edu.description}"
puts " (#{edu.dtstart} to #{edu.dtend})"
}
}
As you can see BOSS can be used in really powerful ways beyond simple searching. In this instance, I showed how we can use BOSS and mofo to build a simple LinkedIn public profiles API but you can use the same techniques to build similar APIs for other sites. All it takes is some creative thinking.
The code and gem described here are hosted at http://rubyforge.org/projects/ruby-linkedin. Enjoy!
Posted at 10:54 AM | Comments (2)
October 8, 2008
The ever pulsing cyber-brain at Yahoo!
What would technical Yahoos talk about at a conference? Well, we recently held the first Tech Pulse conference in San Jose, an internal event where technologists from all corners of Yahoo! came together to share knowledge, exchange ideas, and learn about new tech research, development, and implementations across the company.

We covered an astonishing range of topics over two days of multiple tracks, including recipes for secret sauce that I can't share, blueprints for internal infrastructure, potentially patentable R&D, and a bunch of exciting stuff that's already available to the world at large.
One of the talks I found really interesting was from the team working on our IPv6 migration. Recently, two studies concluded that the last of the IPv4 IP addresses will be allocated by the end of 2010. Our team pointed out that these studies don't take into account a "run of the bank" scenario. As the current global financial crisis demonstrates, when it gets close to crunch time, people often attempt to hoard when supply dwindles. At Yahoo!, our technologists have been looking at IPv6 for a while, so that we're prepared to scale and meet new demand. Remember, our networking hardware supports billions of page requests from over 500 million users, so supporting IPv6 is a ginormous task. And support doesn't just mean looking at hardware; anyone who serves web pages should check operating systems, code from vendors, as well as any in-house or custom code to make sure everything works well on the IPv6 stack.
There was, of course, a lot of talk about Hadoop. We handle a lot of data at Yahoo!, from our search engine index to the millions of lines of logs from our web servers. In order to process vast volumes of data, grid computing is critical and advances are essential. Tech Pulse featured talks on securing Hadoop grids, best practices for map reduce, and the future of the Grid. Look for much more on Hadoop at Apachecon next month, where we'll be hosting a two-day Hadoop Camp.

The user interface track also got a lot of attention. YUI's Eric Miraglia and Matt Sweeney presented YUI 3.0. You too can take a look at the Yahoo! User Interface Library 3.0 preview release. On the mobile side, the folks from Yahoo! Connected Life showed the latest on Blueprint. You can see what they are up to on the Blueprint Blog.
This is just a sampling from the jam-packed two days of Tech Pulse. I've barely scratched the surface of how overwhelmed I was by amazing technology, but you can get more of a feel for it on my post for Yodel Anecdotal.
Tom Hughes-Croucher
Yahoo! Developer Network
Posted at 10:37 AM | Comments (0)
October 6, 2008
Jammin in Atlanta
Last weekend an illustruous group of known designers and developers came to Atlanta, Georgia to share their ideas and give direct feedback to the audience. The Webmaster Jam Session or short WJS organized by Coffeecup software is a refreshingly different conference that allows to reach attendees you don't normally see at other conferences.
I went to Atlanta after speaking at the Ajax Experience conference in Boston, Massachussets (on YUI for control freaks) and arrived in Atlanta to give a talk about Computing for Good covering Scripting Enabled at Georgia Tech. After that I arrived just in time for the speakers dinner of the WJS. The WJS is an annual conference formerly held in Texas but now moved to Atlanta. The line-up of the conference was impressive, featuring a lot of long-standing designers and developers that had quite an impact forging the web as it is now.
The really cool thing about the WJS is the format. While there are formal presentations there are also break-out sessions allowing the audience to show off their products and get feedback from the speakers about possible improvements. These "website smackdown sessions" are a great opportunity for both the attendees (getting professional reviews without having to pay a lot) and the speakers (getting a healthy dose of reality in terms of what people have to build within which constraints).
The overall conference theme is that none of the sessions are set in stone and questions from the audience and specialist input from other speakers during presentations is highly encouraged. Furthermore there was no problem with speakers giving impromptu lunch-break talks or call a quick workshop should they feel inclined to do so.
As you might have guessed, this is what I did. During one of the smackdown sessions we got to review a site that was still using tables for layout and got to know that the reason was the lack of resources in the company to have a go at creating a proper CSS layout. Therefore I took the YUI CSS grids and showed the audience how it was possible to create a nicer and easier to maintain layout for the site in 15 minutes. Following are the screenshots of the original and the redesigned site:

The feedback on this was great and it inspired me to create some more "refit your site with frameworks" tutorials in the future.
My real purpose at the conference was a joint presentation with Dan Rubin telling people how to make accessibility sexy:
The idea is that it is high time for us to stop seeing accessibility as something that stifles creativity and beauty. Instead we should see that making our products more available and inclusive is an opportunity to create pretty and useful products that please everybody - regardless of ability.
Overall the WSJ was a blast. I had an amazing amount of fun and realized that the famed southern hospitality is not a myth but fact. I've never felt as pampered as a speaker. The audience was very different to other conferences and I had a great time being challenged to help people find ways to be more productive in their companies and sell web standards to upper managements who just don't care. This is where we should be helping out, as this area of our market is keeping us all in the 90ies when it comes to technical infrastructure.
The mood of the conference was friendly, engaging and never felt rushed. Technical issues like a less than stable wireless and presentation projectors with a max resolution of 800 x 600 pixels were more the reason for joking with the audience and collectively finding ways around them ("Who has a cell that can be used as a 3G modem?") than a show-stopper.
The sponsored after-parties can only be described as epic and both the chosen locations and the wonderful sunny autumn weather made it is easy to let your hair down and network without time pressure.
Watch out for the presentations and information on the conference by monitoring the "WJS08" tag on social networks, and - given that there is interest - I'll be very happy to hop over to Atlanta again next year.
Chris Heilmann
Yahoo Developer Network
Posted at 4:43 AM | Comments (4)
October 5, 2008
Gugi Map Day Comes to Seoul
Yahoo! Korea Gugi Map Day took place on September 23 at the COEX Intercontinental Hotel in Seoul. More than 220 developers and bloggers attended, eager for an introduction to Yahoo!'s open strategy. They came to learn more about the global popularity of map mashups, and how they could now participate through the use of local and traffic APIs, newly launched from Y! Korea, along with Yahoo! Maps and Yahoo! Local features for the iPhone. The Map Day also included a draw for prize giveaways -- one lucky winner went home with a notebook bag, another won an iPod Touch!
The conference included six presentations about maps on the Web. My talk was about map mashups and the use of public information to create interesting data visualizations via mashups. I was rated most popular speaker of the day. The secret of my success -- I think it was the screencast demo. Instead of doing a live demo, I prepared a high-quality screencast video. It’s not easy to make a helpful screencast in a short time, but it’s much more effective and impressive than presenting static screen captures. The screencast helped me make the most of the 25 minutes I had for my presentation.
In Korea, many developers want to try making mashups. But getting started can be challenging. So there is plenty of excitement about our new tools that make it easy to start building mashups. For example, the Yahoo! Korea Maps Open API wizard is interesting.
The screencast demo is here:
Although the menu is in Korean, you can probably understand how it works without reading. The Open API wizard automatically makes basic skeleton HTML according to the options you select. Thanks to the YUI team for providing the tools to build this.
Attendees walked away from Gugi Map Day with a new puzzle in hand -- a Y! Maps jigsaw puzzle. This swag came in four flavors, including puzzles for Seoul, Korea and Paris, France.
If the jigsaw puzzle is too hard to solve, you can take a peek at the hint here.
Jinho Jung
Yahoo! Developer Network,
Korea
Posted at 5:28 PM | Comments (0)
October 2, 2008
Flash on the Beach: Day Three (October 1)
This is the last in a series of articles reporting on Flash on the Beach, one of Europe's premier Flash conferences held in Brighton, UK. Since there are a tonne of sessions I'm only going to pick out my personal highlights, but you can always check the Flash on the Beach for more information on the other sessions.
On the train down to Brighton this morning I was considerably more bleary-eyed than yesterday, which may or may not have something to do with playing Call of Duty 4 until midnight last night. Consequently I was up late and didn't get time for my ritual cup of tea or to grab any breakfast, so my sleep-filled train journey was punctuated by dreams of pancakes, waffles and muffins. Having arrived in Brighton and sated my caffeine thirst and hunger thanks to the Millies Cookies stand at the station, I headed to the dome for one last day of inspiration and learning by the sea.
Rob Bateman: Finding Away3D
---------------------------
I was spoilt for choice on the first session of the day, with all of the session descriptions tickling different parts of my inner geek (okay, okay... maybe it's more of an outer geek). In the end I opted for Rob Bateman's session on Away3D as I get a real kick out of interactive 3D interfaces but know virtually nothing about the Away3D project.
From Rob's description, it seems like the Away3D team are in an arms race with the Papervision3D team, with each project pushing the other one forward in terms of features and performance. Both are open source, and while they differ slightly in terms of their development philosophy I'm sure there's plenty of code sharing going on too. After all, Away3D started as a fork of the Papervision3D code.
Rob started the session with an award winning old-school demo that was created using Away3D. If you're not old enough to remember the early 90's demo scene, fear not: there's still a pretty active community. They may use new tools like Away3D rather than coding in x86 assembly language, but the community has lost none of its creativity. Check out demoscene.info if you want to know more.
After the kick-ass demo, Rob showed off a whole bunch of features of Papervision3D's lesser known (but slightly prettier) cousin. He showed us demonstrations of phong shading, normal shading, specular lighting, triangle interpolation and caching, texture projection, bones and a whole bunch of other features and techniques I can't remember. Every time I see 3D in action in a Flash movie I can't help but gawp and realise how far we've come in such a short space of time. I get the feeling that this is what all the PC programmers were feeling when John Carmack started showing off the Doom engine, and I can't wait to see the Flash community really let rip with tools like Away3D.
Rob finished off the session with an interactive 3D scene featuring everyone's favourite mushroom-loving Italian plumber. Rob had hooked up four Wiimotes to his Mac via WiiFlash (specifically the Mac version), and used them to individually control each of Mario's limbs as he sprinted comically around a barren landscape. A fittingly hilarious end to a great session.
Seb Lee-Delisle: Papervision3D Simplified
-----------------------------------------
Seb's mission for his session was to debunk the myth that it's difficult to get started with Papervision3D. He managed to pack a heck of a lot into his session, starting with setting up a simple 3D scene in under 20 seconds and finishing off with 3D space cow pong. If that doesn't make sense (and unless you have as twisted a mind as Seb, it probably doesn't) then you can always download the examples and see for yourself.
Seb is a great speaker, and despite being intimately involved with Papervision3D's development he was able to convey the basics of Papervision3D development to a jam-packed audience of eager developers. I've flirted with Papervision3D in the past, and Seb has convinced me to find an excuse to play with it again.
André Michelle: Adobe made some noise!
--------------------------------------
Last year André delivered a session on generative audio in Flash, and he ended that session with a stark warning. From what I can remember, André's technique was to generate sound data in a `ByteArray` object, and then load that data into a `Sound` object for playback. However, for this to produce continuous uninterrupted audio the Flash Player has to give precise notification of when the current sound finished playing, so that the next lot of audio data can be generated. To fix an audio/video synch issue in Windows Vista, Adobe had to make some low level changes in Flash Player 9 that meant the `SOUND_COMPLETE` event occasionally fired a few milliseconds before or after the sound finished playing, causing breaks in audio playback.
André mounted an online campaign to get Adobe to fix this issue and provide a way to dynamically manipulate audio being sent to the sound card. Adobe responded with a low-level API that allows ActionScript developers to write data directly to the sound card's audio buffer, with notification ahead of time that more audio data is required through the `SOUND_DATA` event.
Explaining all of the above, some basics on generative audio and a walk-through of how to use the new low-level APIs took up most of André's session. He finished off by showing off AudioTool. André used to be a DJ in the days before he became an A-list Flash celebrity, and this really showed as he worked the dials and knobs on a series of virtual TB-303s and TR-909s wired up to a variety of effects boxes, mixers and some more obscure pieces of audio equipment I didn't recognise. If he wasn't playing to an audience of reserved, socially awkward geeks I'm convinced he would have had the whole place jumping.
AudioTool is free and available to play with online now. The current demo uses Java in the background to overcome the current limitations of the Flash Player, but André says that the new version in the works will be 100% Flash and released on or around the same time as Flash Player 10.
Jonathan Harris: The Art of Surveillance and Self-Exposure
----------------------------------------------------------
Aside from having a very apt title for a conference called Flash on the Beach, Jonathan's session was also the very last session of the final day and was for me the only notable session of the afternoon. Jonathan worked on the Yahoo! Netrospective: 10 Years, 100 Moments project for Yahoo's 10th birthday
I'm finding it really hard to put Jonathan's session into words - every time I try I can't seem to express what I saw and felt. Instead, I'm just going to link you to some of Jonathan's online works and let you experience them for yourself:
- WordCount
- We Feel Fine
- The Whale Hunt
- I Want You To Want Me
Jonathan also challenged the Flash community, and the producers of online media as a whole, to actually start saying something. He compared the tools we use to language, and made the point that language isn't worth a damn if we don't actually say something meaningful. After three days of fun and frivolity, this was a little bit too profound (and, to be honest, a little too serious) for me to comprehend.
End of Day 3
------------
So, that's it. Flash on the Beach is over for another year. I am exhausted, buzzed, inspired, and slightly disappointed at not having won anything in the mass giveaway at the end of the last session, all at the same time. I think I've consumed my body weight in tea, and absorbed more information than I can rightly expect to fit into my puny human brain. I'm sure there are going to be consequences for that, like forgetting my wedding anniversary or something, but I'll worry about that later. For now, I can't wait to get home and start playing.
If you're going to be in or around Miami between the 5th and 8th of April next year, I highly recommend booking tickets for Flash on the Beach: Miami as soon as they become available. And, by-the-by, if you need someone to blog about the event, and you have room in your suitcase, I'm sure I can make myself available.
Steve Webster
Front-End Engineer
Yahoo! Europe
Posted at 6:00 PM | Comments (0)
Report from University of Waterloo Hack Day
Editor's note: I've been asked to lead with a special thanks to IMPACT consulting group who helped plan, promote, and organize the Waterloo events and Professor Bill Bishop, who served as a guest judge. Also a shout-out to Yahoo! Canada, and the developers who came out in force from the Toronto office, including Ambles Kwok, an occasional YDN blogger, who also helped out as a judge.
The Waterloo University Hack Day has finished. We had a glorious 24 hours of hacking where Search Monkey tech lead Paul Tarjan, and I helped students with CSS, BluePrint, BOSS, YUI, PHP, Java, SearchMonkey, XSLT, SQL, and lots of Javascript questions. We hacked alongside the students, making a webpage(1) which shows all your open socket connections on a map. See the links section at the bottom of this post for links to most of the hacks mentioned.
The real stars were the students. Many of the teams lasted the full 24 hours. We camped out in the lounge on the 3rd floor of the Math building. Pasta for dinner, then a midnight pizza delivery along with more Twizzlers than anybody should ever eat. Breakfast, then lunch, and before you knew it the deadline was on us. There was a lot of last-minute hacking to get the hacks to a presentable state and in the end the quality of all the hacks presented was amazing.
Like the hack day at UIUC last week we had special categories for BluePrint, BOSS, and SearchMonkey along with our top-3 overall prizes. Unfortunately we can't give prizes to everyone. A few of my personal favourites didn't end up winning prizes: The Tiny Vector Graphics(2) editor was one. That slick little vector language brought back memories of Logo and Turtle for me and it is great fun to play with it. Try it out. I also liked the ideas in the CalendrViewr2.0Beta hack(3). Are they perhaps trying to poke a little fun at Web product names, numbers, and everlasting beta cycles with that name? MaybeNotSpam presented an interesting way to give our sent messages that ended up in someone's spam folder on Yahoo Mail or GMail a second chance to be moved back to the Inbox. In the process of building this hack, Holden caused a bit of a stir with his Slashdot posting on how the Zimbra Desktop client communicates with the Yahoo IMAP server. And Edgar A. Bering gave us a lesson in quantum computing and Scheme that I didn't grasp a word of, but
was fascinating nonetheless.
Other highlights included a mobile RSS reader written using the BluePrint API called Feedy! and a Web directory index enhancer simply called DIR. We also saw another stellar batch of SearchMonkey apps: the simplest and funniest being the "Canada Eh?" app that added an "Eh?" to the end of all Canadian URLs. A combination of IMDB, Torrent searches, and Last.fm apps along with a tv.com app, a WorldOfWarcraft app(4), and a nice Map Infobar with driving directions from your geoip-located location.
In the end we had to pick some winners. In the BOSS category, we liked Clustr(5) by Alex Leong, Nick Engelking, Danielle Alessio, and Josh Lamontagne. It does a number of BOSS searches to determine the relationship between search terms, finds images to represent each and gives you a graphical cluster where the size of the images and the distances between them indicate correlation between them.
In the BluePrint category, we chose Mobill(6) by Chong Su, Toshio Wang, Carol Yu, and Jason Cham. It keeps track of your expenses, giving you some nice sorting and graphical visualization tools right on your phone. Also included: a Web service where you can download your expenses into a spreadsheet.
In the SearchMonkey category, we chose Jeff Pound's API Monkey app(7). It is able to provide language-specific reference help for a number of languages. And it does a really nice job of showing the most relevant parts of the various reference docs. He did a cute hack to pull out the query string and found a bug in our URL parsing.
Overall third place went to a friend-visualizer hack called Globami(8) by 1st-year student Renaud Bourassa. It let you easily see where anybody's friends are on a couple of networks either in a nice Web UI or in a SearchMonkey Infobar.
Second place went to Flare(9) by Michael Campagnaro and Niall Wingham. Flare is a semantic markup tool written in JavaScript. Anything that helps push the Web towards more semantic markup is important. Flare currently only supports RDFa, but I really hope Michael and Niall continue working on it and add eRDF and all the popular microformats to it. They parsed the vocaulary file and pulled out the definitions, which in theory could let a user apply it to any arbitrary vocabulary. I can see myself using this constantly to go back and fix my Web content
written before I became semantically enlightened.
And finally, the first overall prize went to an impressive hack by Addy Cameron-Huff named HackDemocracy(10). Addy managed to organize an incredible amount of data and put an easy-to-use and very polished UI on top of it. In the end what we get is an incredible political research tool that allows us to dig into how your local MP has represented you by looking at what he/she has said on-record in Parliament. You can see see the excerpt about the topic you care about or the entire speech. You can also see how the parties stand on issues you care about based on how often they talk about those issues. And finally he added a simple RSS API for you to fetch the text of speeches by topic to let you build off of his hard data mining work.
I graduated from Waterloo 15 years ago. I spent 5 years in a dingy Systems Design classroom. I see the poor Systems students are still stuck with those same old classrooms, but I am told there is hope for a change soon. We didn't have laptops with wifi in class. We didn't have the fancy food court in the Campus Center. The Bomber
was called the Bombshelter and we didn't have the Tatham Center with its computerized co-op system. We shuffled papers around in Needless Hell, watched lectures written in chalk or on overhead projectors instead of Powerpoint slides and I don't think I ever set foot in the Math building. Even though just about everything has changed, and I felt every bit of the 40 years I will be turning next month walking around campus, somehow Waterloo hasn't changed at all. It is full of bright kids with a fire in their eyes bound to change the world.
Rasmus Lerdorf
Technical Yahoo
(1) http://progphp.com/sockets.php (only tested on OSX/Firefox)
(2) http://www.jimmyhe.com/
(3) http://www.forgethotchicks.com/calendarFinal/calendar/testo.php
(4) http://gallery.search.yahoo.com/application?smid=ajv.s
(5) http://clustr.wolfjourn.net/
(6) http://beta.m.yahoo.com/w/devtest-chongasu-mobill
(7) http://gallery.search.yahoo.com/application?smid=09H.s
(8) http://globami.rhinosphere.com/
(9) http://flare.impact.org/
(10) http://yahoo.summerhilldesign.com/
Posted at 8:48 AM | Comments (1)
October 1, 2008
YUI for control freaks - a presentation at The Ajax Experience
The last three days had about 300 developers come to Boston, MA to listen to an impressive array of speakers about everything JavaScript and Ajax related. The Ajax experience conference had the who's who of JavaScript world available for Q&A: Brendan Eich, inventor of the language, Douglas Crockford, spokesman for the "Good parts of JavaScript", John Resig from jQuery, Andrew Dupont of Prototype and Dylan Schiemann of Dojo to name but a few.
When the organizers asked me to come around and speak about something YUI related I was very flattered and happy to take the 6 hour hop from London to Boston. In terms of weather there is no difference between the two anyways.
I managed to sneak into the 'Top 10 Cross-Browser Issues' keynote panel moderated by Peter-Paul Koch of Quirksmode.org on day one to represent YUI together with the other experts of jQuery, Dojo and Prototype. Despite the four of us looking like we're candidates on the dating game there was a lot of consent on the panel and I hope we managed to hammer the message home that whilst there are many different libraries with different APIs and ideas, all we really want to do is make life easier for developers.
I was scheduled to speak in the last track of the three day conference, which is a bit of a drag as the attendees would be quite worn out from the amount of information and refreshing after-party beverages, but all worked out fine.
In my talk I wanted to make very clear that while YUI is a library much like the others, the real power of it lies in the control it gives you over the whole frontend development process from start to end.
- The CSS components make sure that creating CSS based layouts and typography are as easy cross-browser as libraries make JavaScript development
- The YUI DOM control allows you to monitor the size of the browser window, the position of the document in the window and the dimensions of any element. You can use this power to control things like fixed positioning and element overlap and even monitor font resizing.
- I explained the concept of Custom Events and how the -debug versions of YUI will notify you as a developer at any moment of execution about the internal happenings.
- I showed the development tools - the YUI logger, profiler and test suite and how they make your development process much less random.
The slides are available on slideshare and here are the code examples mentioned in the slides for browsing and to download as a zip.
All in all I am very proud to have been in Boston and part of a great conference. It was interesting to meet a lot of developers you normally don't meet in Europe or at the West Coast and there was an amazing amount of knowledge and experience sharing going on.
Chris Heilmann
Yahoo Developer Network
Posted at 8:44 PM | Comments (0)
Subscribe
Recent Blog Articles
view all
The state of mobile browsers - PPK in London
Thu, 02 Jul 2009
GeoMaker - Turning web content into maps made easy
Wed, 01 Jul 2009
Tue, 30 Jun 2009
Hacking Up North : Winners of the Sunderland Hack Challenge
Fri, 26 Jun 2009
ConvergeSC web event comes to South Carolina
Wed, 24 Jun 2009
Recent Links
Junta42 blog: News Flash: Guardian Seeks to Grow through Products, Not Content
Fri, 03 Jul 2009
Twitter Approval Matrix - June 2009 - O'Reilly Radar
Thu, 02 Jul 2009
YUI 3.0 with Jonathan LeBlanc from the Yahoo Developer Network | Unmatched Style
Wed, 01 Jul 2009
Yahoo! Search Blog: VoCampers Converge at Yahoo! Headquarters in Sunnyvale
Thu, 25 Jun 2009
Make: Online : Dorkbot London June 23
Mon, 22 Jun 2009
Archives
2009
2008
2007
2006
2005



















