Nerding Man is almost here!
Sep 28th
Ok folks, Yahoo! Hackday (a.k.a Nerding Man) is almost here!
You can peep all of the details on the Yahoo! User Interface Blog
As Marco Casario mentions, some Flash/Flex all stars will be there coding! People like Mike Chambers, Danny Dura, Christian Cantrell, and Ted Patrick (all from Adobe). In addition, other really smart people like the creators of Flickr, PHP, the Yahoo! User Interface Library, and the Yahoo! Developer Network will all be in attendance.
Check out my earlier post for more info, hope to see you all there!
Google Analytics
Sep 28th
I just started using Google Analytics, does that make me a bad guy? I certainly hope not. After all, my resume has stated for years that, “My unique industry experience contributes to a balanced, agnostic evaluation and application of technology. As a software engineer and designer I am always developing new prototypes and experimenting with technology.”
Thus, despite the fact that I work at Yahoo!, I can live with and take advantage of the fact that Google has some awesome technology and services available.
Also, if Yahoo! does make an analytics program I’ll be sure to use it, and subsequently deliver an agnostic evaluation of the differing experiences.
In short, I just use whatever works fastest and costs me less. Vinny Lingham has some interesting insite on this topic.
I created a Flash mailing list
Sep 28th
I created a flash mailing list in order to help me keep in touch with all of the really smart Flash people I am fortunate enough to know. The idea behind the list is collaboration, communication, and hopefully establishing mutally beneficial relationships.
The list (along with this site) is powered by sourceforge (big up!). General info about the list may be found here: http://lists.sourceforge.net/mailman/listinfo/caleb-flashpeers
Anyone that I know is welcome to join.
Yahoo! Flash Developer Center
Sep 22nd
The Yahoo! Flash Developer Center is live and open for business!
Check it out at: http://developer.yahoo.com/flash/
The Y! Flash Developer Center aims to be your source for information about using Adobe Flash with Yahoo! Web Services and APIs. We provide you with things like HOWTO Articles, components for use in your Flash applications, and links to other resources on the web where you can find source code and helpful tools. Of course, it’s our new baby and is thus still in it’s infancy. It will no doubt continue to evolve and grow, but we can’t do it without help from people like you (I know that sounds corny, but it’s true).
Additionally, be sure to sign up for the public Yahoo! Flash group at http://tech.groups.yahoo.com/group/ydn-flash/ And if you haven’t already, be sure to read my post on Yahoo! Hack Day.
I wrote a simple article on how to get started using Yahoo! Search APIs in ActionScript 2 or ActionScript 3
There are other interesting articles up there now, including how to:
- Use the Yahoo! Maps Flash API with ActionScript 2
- Creating a Yahoo! Music Jukebox plugin using ActionScript 2
- Mash up Flash and Upcoming.org API using ActionScript 2
We’re working on other articles too. Be sure to check out developer.yahoo.com for more info on our public APIs.
Yahoo! Public Hack Day (Nerding Man)
Sep 21st
We’ve literally opened up Yahoo! with Hack Day (www.hackday.org) and the Yahoo! Developer Network
If you are going to be in the bay area on the 29-30 of September, definitely register at upcoming.org for our public hackday and attend! It’s going to be awesome, check out the details here.
This is an awesome testament to Yahoo!’s commitment to the world community of software engineers and designers. I’m refering it to it as “Nerding Man”, because that’s exactly what is symbolizes to me, a burning man for geeks only. Hackday.org describes it as, “a weekend festival of hacking, camping (yes, the tents-in-the-outdoors kind–we have really, really nice grass!), music, and good times”. How much more “nerding man” can you get?
FlashForward Austin ‘06
Sep 18th
Austin, despite the fact that is centrally located in Texas, one of the most notoriously conservative states, is actually quite a liberal community with a hip, happening night life. East 6th Ave. is populated by upwards of 100 bars and interesting local venues in an area of only a few blocks, and good restaurants are very easy to locate. On top of that, the locals are outgoing, polite, and the Internet industry is thriving there, making Austin a refreshingly fun place to be.
The conference itself was awesome too. I spent time hanging out with some of my favorite people in the industry; people who’s work I have admired for years; people like Branden Hall, Mario Klingemann (a.k.a. Quasimondo), Craig Swann, and Trevor Dodd. It was awesome having a chance to hang out with those guys and discuss whatever interesting subject matter was at hand.
I saw some amazing things there as well. Jared Ficklin from Frog Design did some amazing things with audio visualization. Basically, he took a tube and attached a speaker to one end, and attached a propane canister to the opposite end. He then drilled holes in the tube, turned on and ignited the propane. He then began to play music through the speaker. As a result, you could see the waveform in the actual flame! He then photographed those images and used them in a Flash audio visualization.
Also, Beau Amber of Metaliq showed off some amazing ActionScript 3 projects. Most notable of which was a geo-data visualization in which he plotted a mesh on top of the San Francisco bay area, which represented the wind channels passing through the region. He then simulated wind speed by animating pixels across the wind streams. It was very interesting indeed.
I spent the entire first day at a Flex 2 workshop hosted by Aral Balkan of OSFlash. Flex is definitely a powerful tool. Although without robust skinning capabilities, it is not quite flexible enough to serve a company like Yahoo! as a realistic deployment and development alternative.
Everyone at the conference was really interested in what Yahoo! is doing. I introduced the Yahoo! Developer Network to a lot of developers, many of whom had never heard of it for whatever reason. I was also doing my best to push the public Hack Day, YRB’s Brain Jam, and whatever open Flash positions/internships we have available throughout the company.
My speech itself was well received. The conference room was completely packed, there was standing room only, and no one really left until the end, which I think implies that people were interested. I basically introduced the difference in the approach I had to take in developing the ActionScript 3 version of the Flash Yahoo! Search API as opposed to the ActionScript 2 version. In short, the ActionScript 2 version required me to write several packages of supporting code in order to adhere to sound object oriented programming principles; however, the ActionScript 3 version required exactly none of that. I only had to write the code to accomplish the objective at hand…go figure. I also touched on remoting with AMFPHP and how easy that is to accomplish in ActionScript 3.
All in all, I have to say it was quite fun and interesting, and I think everyone was happy to see Yahoo! taking Flash seriously. It also gave me an opportunity to re-launch caleb.org, so check it out if you have a chance.
AMFPHP in AS3
Sep 11th
Remoting in ActionScript 3 is easy to implement, but there are some important things to keep in mind. Most notably, the mx.remoting package is no longer required. There are no additional packages to install, everything you need is built right in to flash.net
This RemotingConnection class extends NetConnection and sets the objectEncoding to AMF:
package
{
import flash.net.NetConnection;
import flash.net.ObjectEncoding;
public class RemotingConnection extends NetConnection
{
public function RemotingConnection( sURL:String )
{
objectEncoding = ObjectEncoding.AMF0;
if (sURL) connect( sURL );
}
}
}
This class employs the above class, and makes a remote service call:
package
{
import flash.net.Responder;
public class AS3RemotingTest
{
public var dataProvider:Array;
public var gateway : RemotingConnection;
public function AS3RemotingTest()
{
this.init();
}
public function init()
{
var gatewayUrl:String = "http://localhost:88/amfphp/gateway.php";
gateway = new RemotingConnection(gatewayUrl);
var responder:Responder = new Responder(onResult, onFault);
var arg:String = 'foo';
gateway.call( "HelloWorld.say", responder, arg);
}
public function onResult( result ) : void
{
trace('onResult invoked');
trace(result);
}
public function onFault( fault : String ) : void
{
trace('onFault invoked');
trace( fault );
}
}
}
(Note: The above code assumes that you have AMFPHP installed and running out of a folder named amfphp on your localhost)
ActionScript Yahoo! Search API – 3 Simple Steps
Sep 11th
3 simple steps to performing a Yahoo! search in Flash
Download the YahooAPI class and examples
Yahoo! Developer Network provides developers a diverse offering of free web services. These services enable you to easily integrate feature rich functionality (e.g. web search, spellcheck, and contextual term extraction) with virtually no overhead other than loading an XML document via the native XML object (ActionScript 2) or URLLoader object (ActionScript 3).
Additionally, Yahoo! web services provide the developer an enormous pool of internet accessible resources, such as photos, videos, mp3’s, and data which can add complex dimensions to the already engaging Flash user experience.
These resources, and the developer’s ability to construct with them, can illustrate the multiplicity of advantages offered by applications created with Flash as opposed to more conventional client-side web development paradigms.
This article and the code provided will show you how to easily implement any of the Yahoo! search web services in ActionScript 2 or 3. The scope of this article is simply to demonstrate a sound approach to querying the Yahoo! search REST API from within Flash. It is very easy.
3 simple steps to performing a Yahoo! search in Flash
1: Get an application id
First, in order to use the Yahoo! Search web services, you will need an application id (get one here). Both the ActionScript 2 and ActionScript? 3 classes use the same syntax for specifying the id.
Once you have an application id, the first thing your application will need to do is register the id with the YahooAPI class, as follows:
YahooAPI.APPLICATION_ID = ‘lkj34988fgjh2398ife923j4kjk234’;
2: Setup an Event Handler
Next, you need to set up an handler Function which will be invoked when the search response is received, as follows:
function onYahooSearchResult(e:com.yahoo.search.YahooSearchResultEvent):Void
{
trace(‘onYahooSearchResult invoked’);
trace(e.length + “ items found: \nâ€;
var result:YahooSearchResult;
for(var i:Number = 0; i < e.length; i++)
{
result = e.getResult(i);
trace(result.Title);
trace(result.Url + “\nâ€);
}
}
3: Search!
Once you’ve registered your application id, and created the search result event handler, all you need to do is invoke the static search method on the YahooAPI class, as follows.
Note: It is worth mentioning that the signature for the search method on the YahooAPI class differs between the ActionScript 2 implementation and the ActionScript 3 implementation.
The difference is due in large part to syntactical differences between the two languages and an effort on our part to remain consistent with the existing REST API implementations published by Adobe (com.adobe.webapis.*).
In short, the ActionScript 3 Event model works much better than the ActionScript 2 model. In addition, we take advantage of new functionality, such as the URLLoader class available in ActionScript 3.
ActionScript 2
// This example performs a web search for “monkey†which will return a maximum of 25 results:
YahooAPI.search(this, ‘monkey’, YahooAPI.WEB_SEARCH, 25);
ActionScript 3
// This example performs a web search for “monkey†which will return a maximum of 25 results:
YahooAPI.search(‘monkey’, YahooAPI.WEB_SEARCH, new NameValuePair('results', 25));
// The above call returns a URLLoader. You then subscribe to that objects events as follows:
yahooLoader.addEventListener(YahooAPI.ON_SEARCH_RESULT, onYahooSearchResult);
Specifying additional parameters
Of course you can perform different types of searches, and pass additional search parameters.
The following examples demonstrate doing so:
ActionScript 2
// image search w/ 25 results
YahooAPI.search(this, ‘monkey’, YahooAPI.IMAGE_SEARCH, 25);
// news search, with options (25 results, limited to news.yahoo.com)
YahooAPI.search(this, ‘monkey’, YahooAPI.NEWS_SEARCH, 25, ‘&site=news.yahoo.com’);
ActionScript 3
// news search, with options (25 results, limited to news.yahoo.com)
YahooAPI.search(‘monkey’, YahooAPI.NEWS_SEARCH, new NameValuePair('results', 25), new NameValuePair('site', 'news.yahoo.com'));
// image search w/ 25 results
YahooAPI.search(‘monkey’, YahooAPI.IMAGE_SEARCH, new NameValuePair('results', 25));
Download the YahooAPI class and examples
Yahoo! API – ActionScript 2
Yahoo! API – ActionScript 3
Summary
That’s it!
Hello World
Sep 1st
My name is Caleb Adam Haye and I have been developing web applications since 1997. I now work full time in the Yahoo! Media Innovation Group, pushing the boundaries of rich Internet and client media software on a variety of content delivery platforms.
In addition to working at Yahoo!, I have done work for many highly visible clientelle, including: – Xerox Palo Alto Research Center - LVMH group (Moet Hennessy Louis Vuitton) - EVB – Morla Design (permenent member of MOMA NY/SF). I also worked on several music industry related sites, including the official homepages for Violator Records, and top 10 Billboard artists Alicia Keys and Cassidy, to name a few.