YDN Blog Archive: January 2009
« Previous | Main | Next »
January 31, 2009
Where in the world is Yahoo!'s pattern detective?
It's that time of the year again, the spring conference season, and I've got a full schedule of appearances on tap for the next few months. Here's a quick rundown:
| When? | Where? |
| February 5-8 (that's next week!) |
![]() Vancouver: At Interaction 09, I'll be teaching a design patterns workshop with fellow Yahoo Lucas Pettinati and former Yahoo (and founder of the Yahoo! Design Pattern Library) Erin Malone from Tangible UX. This is the shorter, half-day version of our workshop. It's not too late to sign up! |
| March 2-4 |
Dallas: At the 18th conference of JA-SIG (an organization of open source communities working in higher education), I'll be giving a keynote called User Experience is Everybody's Business. It's at 8:30 am on Tuesday, so don't stay out too late Monday night if you want to catch it. |
| March 18-22 |
Memphis: At the IA Summit, I'll be teaching two workshops and giving a presentation. On Wednesday, March 18, Lucas, Erin and I will be teaching our full-day patterns workshop. People seemed to really like it last year and we've only made it better. On Thursday, March 19, I'm teaching an updated version of the architecture of social websites workshop I did last year with Christina Wodtke from LinkedIn and Joshua Porter from Bokardo. This year Yahoo social platform designer Bryce Glass (and co-author of the upcoming Designing Web 2.0 Reputation Systems from Yahoo! Press) will be joining us. At some point during the conference proper (final schedule not determined yet), Erin and I will be giving a talk on "Designing Social Interfaces: Principles, Best Practices and Patterns for Designing the Social Web" (essentially the topic of our book and wiki). |
| March 31 |
San Francisco: At the Web 2.0 Expo, Erin and I will be teaching a workshop called (surprise), Designing Social Interfaces: Principles, Best Practices and Patterns for Designing the Social Web on 9:00 am Tuesday. |
| May 12 |
New York. At the Enterprise Search Summit, I'll be moderating a panel on Emergent Social Search Experiences, featuring Rob Spiro from the Mechanical Zoo, Susan Chun from Steve.Museum, and Christina Wodtke from LinkedIn. |
Who?
Christian Crumlish
Pattern Detective
Yahoo! Developer Network
Posted at 10:46 AM | Comments (1) | Permalink
International University Hack Days are go!
We're right now here in Delhi, India, at IIT University to bring hack magic to the students of IIT. This sounds very corny but fact of the matter is that we've been greeted by a massive amount of huge signs announcing the university hack day sporting the little Hack-U wizard - so let's just roll with it:

For the last two days, we've introduced the students to hacking, Yahoo! web services, and the technologies used to build hacks. We covered BluePrint, BOSS, the YUI, YQL and Rasmus Lerdorf went through his veritable box of tricks how to retrieve, mix, and use the data in these using PHP.
My presentations covered the basics of hacking: I explained how every student can be an innovator as long as they believe in their idea and find the right people to make it happen together. My slides are available on SlideShare:
The second presentation covered the YUI and showed how easy it is to actually build good-looking working interfaces without having to deep-dive into the wonders of CSS and JavaScript. We wanted to make sure that people get the feeling that they can concentrate on the idea and effect of their hacks and not get stuck in wondering why things don't display the right way.
On the second day Saurabh Sahni introduced our open search product, BOSS:
All in all we had an overwhelming number of students sign up for the hack day and are very much looking forward to the hacks coming out of IIT Delhi.
Next on the agenda is IIT Bombay and the Open Hack Day in Bangalore, India. Then we head back to the US and bring hack to the University of Washington (Seattle), Georgia Tech, and the University of Michigan there. Check out the Hack U web site for details.
In Europe, we've already started with the Hack Challenge in Sunderland, England, and will go up to Dundee, Scotland next. There are some busy months ahead of us and we will keep you updated on the hacks and the happenings in the different universities here.
Chris Heilmann
Yahoo Developer Network
Posted at 10:16 AM | Comments (2) | Permalink
January 24, 2009
Leonardo da Vinci: Hacker
Here at Yahoo, a bunch of us get together every week for Hack Lunch, where Yahoo developers and their friends show off hacks and ongoing projects, talk about new Yahoo technologies, and just hang out. Last week for the first Hack Lunch of 2009 we went to visit the Leonardo da Vinci exhibit at The Tech Museum of Innovation in downtown San Jose.
The exhibit is incredibly thorough, spanning Leonardo's life as apprentice of Verrocchio to his death allegedly in the arms of King François I. Large and small scale working models of Leonardo's designs are scattered throughout the exhibit, as well as detailed drawings and diagrams showing his interest in anatomy (which was quite heretical at the time) and engineering. Among the many pieces, which take a couple hours to walk through, you'll find a couple models of Leonardo's flying machines, a piece on his Vitruvian Man, and a large section deconstructing the Last Supper painting that would make Dan Brown proud.

Eric Wu
Hack Team
Yahoo! Developer Network
Posted at 1:34 PM | Comments (0) | Permalink
January 22, 2009
Whaddyathink? & the Yahoo! Application Platform
![]()
Several months ago, inspired by an idea from hacker/summer intern Mattt Thompson, we developed an app on MySpace called Whaddyathink?. Whaddyathink? enables users to create simple opinion polls for their friends, and although we think it's a good product, part of the motivation for building it was also to get our feet wet with OpenSocial and to build up a code base so we could get experience porting it to the Yahoo! Application Platform (YAP).
Last December, we started adapting the code for YAP, and last week, we released the app on YAP. Although the YAP development team is constantly rolling out features and fixes, there are a few aspects of the platform we think deserve special attention at this time:
Coding for the Small View
To ensure your app loads quickly in My Yahoo!, only a subset of YML, YML Lite, is available, and JavaScript and Flash are disallowed. To implement asynchronous behavior in the small view, we made extensive use of yml:a's "insert" and "replace" attributes.

Note: your app must be in the "live" state to see it in context on My Yahoo!. If it isn't, go to the dev dashboard and click the edit button for your app. In the top right corner of the editing screen, there is a button with the text "push live." Click this, and in a couple seconds, a small notification will pop up stating the push is complete. Click the live segment indicated by the notification to see the app's canvas as it will look to users who install the app. On the canvas, look in the yellow bar above the app for a link to install the app on your My Yahoo! page. Click the link and accept the installation on My Yahoo!. You will now see the small view as it appear to your users. By accepting the install, you are now, literally, a user. The content of the small view is the default content defined in the developer dashboard.
Default code for the small view
In the developer dashboard, clicking on the edit button for an app will open a perspective that includes an area for defining the default small view. The code that goes here is, as the name suggests, the default content for the small view. In other words, it's the content shown on My Yahoo! before new content is cached. The simplest way we found for pushing new content is to use the setSmallView method in the PHP SDK. A discussion on doing this can be found in the documentation. The "Preview Open Application Small View" tutorial covers a method of previewing the small view from the canvas view.
Refreshing the small view content from the small view
In the settings for My Yahoo!, there is an option for auto-refreshing the modules installed on the page. At this time, however, there is no way to auto-refresh app content. The most reliable method we found for ensuring fresh content requires clicking a button so that new dynamic content is displayed. By doing this, we are able to incorporate a call for the most up-to-date data into the content request.
Large and Small views
OpenSocial defines canvas, home, and profile views, yet the YAP platform references "Full" and "Small" views, so what gives? For the purpose of discussion, "Full View" and canvas are interchangeable, as are "Small View" and home. However, there are a couple technical details to be aware of:
- the "YahooFullView" keyword in a url represents the url defined in the app dashboard.
- if the url defined in the developer dashboard ends with a file name, this file will be loaded by default. For example, if the url is "domain/path/file.php" then browsing to "apps.yahoo.com/-yourAppId/YahooFullView/" will load "file.php" Browsing to "apps.yahoo.com/-yourAppId/YahooFullView/anotherfile.php" will load "domain/path/anotherfile.php." This same logic holds true in the params attribute of the yml:a, yml:form, and yml:message tags.
- Setting the view to "YahooSmallView" in either yml:a, yml:form, or yml:message and defining either "insert" or "replace" will load the content of the small or home view into the element with the designated id. If you want to actually navigate to the home view, use a regular a tag and set the href to: http://my.yahoo.com.

Caja enforces the W3C standards for JavaScript, HTML, and CSS, regardless of browser (!).
Yes, you read correctly, if your code cajoles, it will run in Firefox and IE. This is amazing and its value cannot be overestimated.
Keep your client-side code base simple.
Caja is a great resource, but it does rewrite your code to be more secure. If your code is complicated to begin with, debugging the Caja-processed cajoled code will be difficult. Please check out the Caja page of the YAP docs for help debugging Caja's error messages
Start using YML quickly to reduce your code base
If you're resistant to learning another language, be aware that a similar markup language is incorporated in OpenSocial 0.9 as OSML, so you've got nothing to lose. In the YAP version of our app, we use YML extensively as an easy way to put friends' pics and names on a page and link to their profile. Also, because JavaScript and Flash are disallowed in the small view, yml:a is the only way to achieve asynchronous behavior.
Navigation using yml:a
Hallelujah for the ability to navigate between files on your server using traditional, synchronous interactions: the yml:a tag allows you to do this whether your app is in preview or live mode. For our app on MySpace, we used asynchronous calls to swap out content. You can do this in YAP as well using yml:a's "insert" and "replace" attributes or io.makeRequest, but it's much simpler to just link between your files. Note that Caja's client-side component strips YML from io.makeRequest responses, and CSS blocks and JavaScript from yml:a responses. For more information, please refer to Jon's forum post.
Adding event listeners
Use addEventListener instead of the onclick assignment shorthand. It's a bit wordier, but in Caja, it works in IE and Firefox, which is great! Additionally, the event object is consistently passed as an argument to the event handler regardless of browser. For example, instead of this:
<a href="#">before</a>
<script>
var a = document.getElementsByTagName('a')[0],
handler = function(e){
var target = e.target || window.event.srcElement;
target.firstChild.data = 'after';//set link text to 'after'
};
a.onclick = handler;
</script>
You would use:
<a href="#">before</a>
<script>
var a = document.getElementsByTagName('a')[0],
handler = function(e){
e.target.firstChild.data = 'after';//set link text to 'after'
};
a.addEventListener('click', handler, false);
</script>
POST data is sent to browser with all synchronous requests
OpenSocial 0.8 now defines a way to sign requests made back to your server so you can get some basic data about the owner and viewer from the request variables, but, as referenced above, YAP does this automatically for you. This eliminates the need to request user data when the app is initializing. For our app on MySpace, we chained everything to an initial request for owner and viewer data, which seemed like cumbersome architecture at the time and we are glad to be rid of it.
Caja restricts access to insecure aspects of JavaScript
One example of a restricted element is the this object. A reasonable use case for this is in an event handler to access the element that's clicked. Because this is inaccessible, try to use the target property of the event object passed to the handler, as in this example:
handler(e){
var href = e.target.href
}
Instead of:
handler(){
var href = this.href
}
Another restricted element is document.location. MySpace developers accustomed to retrieving the user and viewer ids from the url, should use the POST data sent with the request for the app instead. Note also that Caja eliminates the need to silo untrusted JavaScript within an iframe. This improves performance, but it alters the relationship between the app and the page on which it resides. As mentioned above, data that is typically passed to the app through the iframe URL is accessible in YAP as POST data in the content request.
CSS hacks are stripped
What! No CSS hacks, filters, or coding? But the layout will look très horrible in (browser name here). Not to worry. Use the yml:if-env tag instead. For example, instead of this:
* a{color:red}
Use:
<yml:if-env ua="ie">
a{color:red}
</yml:if-env>
Again, it's wordier, but it's self-descriptive and works in all grade-A browsers.
YAP doesn't use an XML file to define an app
Yes, the platform supports the OpenSocial 0.8 JavaScript API, but in your app definition, instead of referencing an XML spec file, you simply state the base url for the canvas view of your app. When the user loads the app, content is requested from that url. This app architecture is very similar to the way the view @href attribute of the "Content" block defined in OpenSocial 0.9 will work.
Closing remarks
By the time you read this, new features may be implemented and bugs fixed. Please refer to the YAP documentation in general for the most up-to-date information about the platform. For quick reference on the top ten or so issues observed in the latest version of the platform, please read the FAQ section of the docs.
Erik Eldridge, Jon LeBlanc, & Dan Theurer
Yahoo! Developer Network
Posted at 9:30 AM | Comments (1) | Permalink
January 21, 2009
Making the new Yahoo! Currency Converter accessible
When my fellow coworker, the user experience designer Graham Beale, and I started thinking about the new Yahoo! Currency Converter we had a few clear objectives:
- make it as easy as possible to use
- make it work without page reloads
- make it fast
- make it accessible to everyone
For the last, but not at all least, point we were lucky and very happy to have Artur Ortega on our team. Artur is not only a brilliant backend engineer but also a screenreader user himself. Without his endless testing and suggesting workarounds, this application would not have been possible.
To arrive at the application you can use today, we went through an intense prototyping and user testing phase with many different iterations. Some of those iterations are still in the converter as parts of our progressive enhancement concept and all of them are based on pretty much the same markup.
The right markup
The good thing about using the right markup is not only that it is semantically correct and therefore pleases the Standardistas, but also that it makes perfect sense by itself. The Currency Converter without CSS and JavaScript not only works, but is also still easily understandable for users who can see as well as for those who cannot.
Progressive enhancement
The basic non-JavaScript version consists of 2 select fields, 1 input field, and a submit button in a fieldset. The select fields contain a selection of the 20 most common currencies to convert from and to. The input field is used to insert the amount of money to be converted from and the submit button is of course to send the data to the server where the actual conversion happens.
The first enhancement is done by replacing the submit button with another input field to contain the converted result. Doing the conversion in realtime has multiple upsides. Not only is it a very nice effect which is fun to use, but also it's a very handy accessibility feature. If we'd used Ajax to make the conversion, the resulting load times between selecting the currencies, entering the amount, and tabbing to the result field would render the application very hard to understand for users unable to see what's happening.
Extending existing YUI widgets
Real-time availability of data is also one of the secrets behind the accessible currency search, which the select fields are progressively enhanced to allow. We've implemented the YUI AutoComplete widget so that as you type it suggests currency types based on your input. To make this widget fully screenreader accessible, we had to extend the existing class with a few small features. Hopefully this will no longer be needed in future versions.
One of our extensions permits additional text in the label of the auto-complete field. Using DOM methods, an extra span is added to the label simply containing the info: "Use the cursor down key to get suggestions based on your search" so screenreader users realize this input field has additional functionality. To make this text invisible in the layout but still available to screenreaders, the element is positioned off-screen using:
position:absolute;
left:-999em;
This info text is read aloud by the screenreader every time the input field is updated, the text is then removed after the screenreader user enters form mode. At that time, the onfocus() method of the field is triggered, which removes the text. onblur() (when the user leaves the field), the text is added again, so it can be read again the next time the user enters the field.
We enhanced the AutoComplete widget to work with a screenreader by updating the content of the field with the selected value from the list of suggestions. When a screenreader is operating in forms mode it ignores everything that's not a form element. Therefore, the whole AutoComplete drop-down, which is a list element, is invisible to it. The screenreader is able to "see" the content in the input field that is in the process of being updated by the current user.
The YUI AutoComplete widget does not have this capability by itself, but another little extension makes it possible. Every time the user navigates in the suggestions list using the up-arrow and down-arrow keys, the active item is written to the input field. Thus, this useful functionality becomes completely available to screenreader users as well.
Focus() on what's important
By default, the source order of the field elements should define the tab order. (Please don't use tabindex - it just makes everything more complicated and inflexible.) Whenever the workflow needs to break out of this order, focus() helps. When a user clicks on the button to select an historic exchange rate, the YUI Calendar widget shows up. This is simply done by showing a div that had been hidden before. By default this means nothing to a screenreader. To make the screenreader aware of this change, set focus() on it. The same functionality is used in the currency select window. Setting focus() to the next logical element (which is not in the natural tab order) makes applications like this more usable for screenreader users as well as for keyboard-only users and anyone who's discovered how much faster one can work without a mouse.
WAI not?
Although WAI ARIA is a brilliant technology which does awesome things, it has a clear downside. A lot of screenreader users don't yet use software that supports it. At the moment, WAI ARIA is a great way to progressively enhance already accessible applications to be even more usable when WAI ARIA is available. WAI ARIA is not yet an effective way to make inaccessible applications accessible.
As you can see in this example, it is possible to achieve accessibility without the use of WAI ARIA and, I think, whenever possible it should be done.
Screenreader demo
This screencast shows how Artur Ortega uses the converter with Jaws (and a very slow and understandable voice setting so we're able to understand it too):
please activate Javascript to watch the video
Dirk Ginader
Web Developer, Yahoo! London
Posted at 8:19 AM | Comments (5) | Permalink
January 18, 2009
Retrieving and displaying data from Wikipedia with YQL
Ever since YQL announced support for Microformats as a data source, I wracked my brain for a cool code example. The solution came in the form of Bhasker V Kode commenting on Jonathan's blog:
Just noticed that microformat queries for wikipedia topics seem to be amazingly insightful.select * from microformats where url =”http://” ++ Lang ++”.wikipedia.org/wiki/”++ SomeEntity
Examples of everything from hcards to geodata,etc :
2008 summer olympics
http://query.yahooapis.com/v1/public/yql?
q=select%20*%20from%20microformats%20
where%20url%20%3D%22http%3A%2F%2Fen.wikipedia.org%2Fwiki%2F2008_Summer_Olympics%22
&format=xmlList of impact craters on Earth
http://query.yahooapis.com/v1/public/yql?
q=select%20*%20from%20microformats%20
where%20url%20%3D%22http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FList_of_impact_craters_on_Earth%22
&format=xmlNow if only there was some better form of name-entity relationship metadata from either YQL or wikipedia - it would be the icing on the cake.
~B )
I was especially intrigued by the list of Meteor impact craters as this one had vcard information with geo information - yummy hack fodder, that.
Now, using YQL and its JSON output, I can easily turn the information in the microformats into a list of locations with latitude and longitude and feed that into Yahoo Maps. The result of this is a wikipedia powered map of meteor impacts.
The code is far from rocket science:
<div id="map"></div>
<script type="text/javascript" src="http://api.maps.yahoo.com/ajaxymap?
v=3.8&appid=YD-8g8nS1E_JX4cg5VZ84djrJsYURhuXbm4">
</script>
<script type="text/javascript">
var meteora = function(){
function getloc(data){
var locs = data.query.results.result.adjunct[1].item;
var locations = [];
for(var i=0;i<locs.length;i++){
locations.push({
n:locs[i].type.meta.content,
lat:locs[i].type.item[1].type.meta[0].content,
lon:locs[i].type.item[1].type.meta[1].content
});
}
startMap(locations);
}
function startMap(locations){
var map = new YMap(document.getElementById('map'));
map.addTypeControl();
map.addZoomLong();
map.addPanControl();
map.drawZoomAndCenter('London,UK', 16); // where else?
for(var i=0;i<locations.length;i++){
var point = locations[i];
var geoPoint = new YGeoPoint(point.lat,point.lon);
var newMarker= new YMarker(geoPoint);
newMarker.addAutoExpand(point.n);
map.addOverlay(newMarker);
}
}
return {set:getloc};
}();
</script>
<script type="text/javascript" src="http://query.yahooapis.com/v1/public/yql?
q=select%20*%20from%20microformats%20where%20url%20%3D%22
http%3A%2F%2Fen.wikipedia.org%2Fwiki%2F
List_of_impact_craters_on_Earth%22&
format=json&callback=meteora.set">
</script>
The main trick is the last script node retrieving the microformats data, converting it to JSON and sending it to the getloc() method. In this one, I am retrieving the necessary data (name of the location and its latitude and longitude) and storing them in an array. The property chains (f.e. locs[i].type.item[1].type.meta[0].content) can be a bit daunting but using FireBug they are easy to grasp.
We then send the locations array to startMap(), which creates a simple Yahoo Map as explained in the maps documentation.
This is a very easy way to take content from Wikipedia for your mashups, and shows that marking up data in a predictable manner is a great way to allow developers to play with your information.
Chris Heilmann
Yahoo Developer Network
Posted at 3:35 AM | Comments (1) | Permalink
January 14, 2009
Skills matter - that's why Yahoo will share them every month in the UK!
We're very proud to announce that the Yahoo! Developer Network has teamed up with Skills Matter in the UK to allow our developers to go out and give free technical talks for developers outside the normal conference and unconference circuit:
YDN Tuesdays are a way to meet and hear technical presentations from Yahoo experts for free. They will be held on the first Tuesday of every month throughout 2009.
Skills Matter is located in East London and is providing us with a great venue to deliver talks on all the subjects we want to share with developers. The talks will be free and recorded to be published on the Yahoo Developer Network afterwards.
James Broad will open the series with a talk about PHP, oAuth and Web Services on the 3rd of February 2009.
This is a great opportunity: It lets Yahoo developers tell the world about the things we're proud of doing and gives London-based developers a way to get hands-on information straight from the source, even if they cannot afford to travel and attend conferences.
See you Tuesdays!
Chris Heilmann
Yahoo Developer Network
Posted at 1:05 PM | Comments (1) | Permalink
January 13, 2009
YQL now supports microformats!
Microformats are the revolution that still has to happen. The idea is great: use information that is already published on the web and mark it up to be reusable in other ways. The classic example given in almost any microformats presentation is how you can turn a person's details into a downloadable vCard by adding a few spans with the right classes around the appropriate text content.
Since we publish in HTML anyways, it was deemed a good idea to add this extra layer of semantic goodness to allow software to extract structured data instead of having to write an extra API. Adding microformats is not hard (although there are disputes about the readiness of microformats in terms of internationalization and accessibility) - the consumption however is.
Naturally the best place for this to happen is the browser - the idea was to have the user agent recognize information in microformats and allow the user to re-use this information where it makes sense. Whilst there are several extensions for Firefox that do exactly that, none of the out-of-the-box browser configurations are microformat-aware.
Which means that if we wanted to re-use microformats, we need to write our own parser. Luckily enough this has been done for us in various languages. The pain is still to convert them into other formats once we retrieve them (not to mention the problem of not being able to pull them from a resource on another domain via Ajax).
Yahoo! likes microformats. We've been sneaking them into a lot of our products and we've already started to make their discovery and re-use a lot easier in SearchMonkey.
Now, with the release of YQL, we've gone a step further. We took the content-mixing capabilities of Pipes, and added a SQL-style language and REST interface to access directly without having to paint your data retrieval and filtering flow.
After discussing the microformats capabilities of SearchMonkey with the YQL team over a mug of coffee at my last visit stateside, we decided to see if it would be possible to get YQL to retrieve microformat data from web documents. I am proud to say that my wish has been granted.
If you check the YQL console you'll find that in the "Available Tables" section you can now see "Microformats" (spookily enough with my blog as the demo example). Together with the public REST API you can use this to retrieve information, filter it down, and return it as XML or JSON for re-use.
Say for example you want to get all the location information for a venue in Upcoming without using the API - this is now easy. The Bricklayer's Arms is the notorious location of the London Pub Standards, and you can retrieve the Microformats with the following REST call:
Use filtering to get only what you want:
You can switch to JSON and provide a callback parameter to use the information directly in JavaScript:
This will hopefully make it much easier for people to write software that consumes microformats and maybe bring the "chicken" of adding microformats and the egg of finding good uses for them a bit closer together.
Chris Heilmann
Yahoo Developer Network
Posted at 6:40 PM | Comments (3) | Permalink
January 12, 2009
Open Hack Day India - Registration now open
The Open Hack Day returns to India! On the weekend of the 14th and 15th of February (yes, Valentine's) we booked the Taj Residency Hotel in Bangalore and are already setting up to repeat the success and fun of last year's event.

Now all we need is hackers that are eager and ready to show us what they can build in 24 hours that makes us go "wow" using APIs, SDKs and data stored on the web and on Yahoo servers.
We've split the tickets into two categories, as some people told us last year they cannot stay for the hacking but would love to hear the tech talks. This is now an option, so even if you are too chicken not planning to come and hack, you are welcome to learn about the things we have to offer.
Registration for the even is handled with EventWax and this is the *only* official way to get a ticket. Don't email, don't RSVP on Facebook, just go to the Open Hack Day India 2009 registration page and claim your free ticket.
The agenda so far:
var hackDayAgenda = {
"days":{
"one":{
"date":"14/02/09",
"name":"Saturday",
"timetable":{
"8am":"Registration starts",
"9am-1pm":"Technology Presentations",
"1pm":"24 hour overnight hacking starts",
"7pm-10pm":"Special Valentines Entertainment" +
" for Hackers and 1 Guest (Details " +
"To Be Announced)"
}
},
"two":{
"date":"15/02/09",
"name":"Sunday",
"timetable":{
"12pm":"Hackers Last Hour Call" +
" – Start registering your hack for Demos",
"1pm":"Hacking Ends – Lunch",
"2pm":"Hack Demos begin",
"6pm":"Judging & Awards",
"6pm":"Wrap-up & disperse"
}
}
}
}
See you there!
Chris Heilmann
Yahoo Developer Network
Posted at 2:53 AM | Comments (1) | Permalink
January 11, 2009
UX Heavies Gather in London this June
The same guys who brought you the awesome dConstruct event last September are at it again this June 15-17, with a conference designed by and for user experience professionals.
As I told Whitney Hess recently, I believe user experience, taken broadly, is everyone's business. Look at the track record of the folks organizing UX London: both personally, and professionally, the Clearleft crew are good eggs and well rounded, hybrid-type, designer-engineers. Add in the calibre (note UK-friendly spelling) of the speakers, and it's clear to me that these people get it in a big way. Look at their beautiful site, with its clean url structure, strong visual design, and smooth third-party integrations: Dopplr, Upcoming, Twitter, Flickr.
The lineup is amazing:
- Eric Reiss, "the Lion of IA," principal of FatDUX, champion of the Euro IA Summit, an always entertaining and thought-provoking speaker, on customer service and copywriting
- Our own LukeW on the redesign of Yahoo.com, the world's most accessed page and how to be more influential in your organization.
- A veritable murderer's row of headliners: Don Norman, Jared Spool, Peter Merholz, Dan Saffer, Leisa Reichelt, Jeff Veen (the Adaptive Path alumni network mafia going strong)
- Donna Spencer, card sorting Aussie IA pioneer, Mags Hanley who, among other things, founded the UX management mailing list hosted by the IAI, and more.
Registration has opened already, so add it to your calendar now!
Christian Crumlish
Design Evangelist, Pattern Recognizer
Yahoo! Developer Network
Posted at 2:59 PM | Comments (2) | Permalink
January 9, 2009
#geomob in London, January 29th
Our friends in Yahoo! Geo have just announced an event in London on 29th January - the latest meetup of #geomob, the London geo and mobile developers' group.
The event is in YDN's favourite London venue wallacespace and promises to be a really interesting evening, exploring the connection between context, location and device.

Photo credit: Rain Rabbit
If you're interested in finding out more, head on over to the Yahoo! Geo Technologies blog for details about the event and to sign up.
Sophie Major
YDN International
Posted at 9:12 AM | Comments (0) | Permalink
January 8, 2009
Get more done - an update on documentation
We're pretty busy here at YDN so we understand the need to get stuff done. That's why we've been putting some extra effort into our Yahoo! Open Strategy documentation -- to help you get more done. Since we launched Y!OS, there's been an incredible wealth of information to digest.
We've just released a new batch of documentation starting with a Y!OS docs landing page, to make it easier to find the information you need. We've split the page into 2 easy sections. The first section includes the stuff to quickly get started: overviews of the terminology, tutorials, examples, and other quick-start guides. Don't worry though, the second section contains an index of all technology references you'll want to use day to day.
We released a number of new Y!OS tutorials, Y!OS code examples, and a Y!OS FAQ. The tutorials cover everything from getting start with your first application to accessing data using YQL. These all come with ready-to-use code. Tutorials are complemented by code examples to provide real world cut-and-paste snippets you can use right away in your existing projects.
We'll be adding more tutorials, examples, and question throughout 2009 and we'd love to hear your feedback. So if you have the best code snippet since AJAX was invented, or there's something you'd love to see a tutorial for, please let us know.
Tom Hughes-Croucher
Yahoo! Developer Network
Posted at 7:11 PM | Comments (1) | Permalink
January 6, 2009
Twitter replies in your inbox without giving out your login data?
There's been quite an uproar in the blogosphere about the sale of Twply, a service that would allow you to get email updates every time someone sends you a reply on Twitter. The issue is that Twply asked users for their Twitter login data to get their services, and then stored this information.
This would not be that much of a problem, if Twply hadn't been sold for $1200 on Sitepoint. A lot of people considered this quite a small price to pay for a lot of private user information.
While the maintainers of Twply have now announced that the sale was for traffic and that the user database is not part of the deal, it *is* a bad plan to give out any login data to a third party. This is why oAuth is getting more and more traction.
All that aside, you can get the same functionality Twply offers without having to give any of your data away. All you need is a Yahoo account.
Step 1: Find the data
What we need is a data feed that contains the tweets people send with @yourname in it. This can be done with Twitter's own search. For example to search for all people answering me you can use http://search.twitter.com/search?q=@codepo8.
Twitter search also has a feed of that data, available at: http://search.twitter.com/search.atom?q=%40codepo8.
Step 2: Set up a Yahoo Alert
You can then use this feed and add it to a Yahoo Alert, which either sends you an email when it changes, notifies you on messenger or even sends you a mobile message. To achieve that, all you need is the following URL:
Simply change codepo8 to your twitter name and that's that.
Step 3: There is no step 3
That's all there is. Technically the best solution to this problem would be Twitter providing the replies-as-email functionality themselves, but in the interim this should do the trick.
Chris Heilmann
Yahoo Developer Network
Posted at 8:28 AM | Comments (4) | Permalink
Subscribe
Recent Blog Articles
view all
YQL Open Table for Google Buzz now live
Tue, 09 Feb 2010
INSERT INTO twitter.status ...
Mon, 08 Feb 2010
Announcing the Yahoo! Brasil Open Hack Day 2010, 20-21 March
Mon, 08 Feb 2010
Marketing hacks, linchpins, and tech women of valor
Sun, 07 Feb 2010
Yahoo! India invites you to join the first India Hadoop Summit
Thu, 04 Feb 2010
Recent Links
Appcelerator Titanium + Yahoo YQL on Vimeo
Mon, 08 Feb 2010
Tue, 02 Feb 2010
PhoneGap | Cross platform mobile framework
Sat, 30 Jan 2010
Web developers can rule the iPad - O'Reilly Radar
Sat, 30 Jan 2010
rc3.org - Is the iPad the harbinger of doom for personal computing?
Thu, 28 Jan 2010
Archives
2010
2009
2008
2007
2006
2005
Recent Readers


