Nov 14th at the Tempe Center for the Arts in Tempe, AZ Terralever is hosting a
Facebook Developer's Garage. Highlights of the event include a presentation by Dave Morin of Facebook on the platform and a detailed look at the evolution of the Red Bull Roshambull application by Nate Warner of Red Bull. I will be giving a short presentation on Flash integration for Facebook also.
We have been able to expand the number of seats available to 200. Please
register if you want to go, as there is a very good chance this will fill up. Plus say hi if you do!
http://www.terralever.com/Facebook-Developers-Garage-Phoenix/
Showing posts with label flash. Show all posts
Showing posts with label flash. Show all posts
Wednesday, November 7, 2007
Wednesday, October 31, 2007
How to determine if you're running Leopard in Flash
One of those things that's just right in front of your face:
Returns 'Mac OS 10.5.0'. Hallelujah.
import flash.system.Capabilities;
trace(Capabilities.os);
Returns 'Mac OS 10.5.0'. Hallelujah.
Monday, October 29, 2007
File Upload on Leopard
I've spent a good amount of time today trying to work out this surprise issue. Ironically I got a new macbook pro this weekend...and boy it sure came in handy for a reason I did not anticipate.
File upload is stupendously broken in Flash, on all browsers, on OS X Leopard. As details come out I'll see what I can learn here. We have been searching for potential fixes here today, for some of our applications depend heavily on this feature.
First I found this little post here, and then in the comments of Mike Chamber's Blog people are also experiencing this issue with AIR. Lastly there is this forum post that shows that Adobe has become aware of the issue:
This issue has been addressed and will be implemented in the next release of Flash Player. Regards,
Darren J. McNally,
Technical Support Engineer, Adobe
Flash/Flash Player Support
My first thought is that while its nice that they're going to fix it, I think this needs to be addressed now. I mean, like, right now. Big companies are going to lose money on this. People expect consistent functionality, and this is a real showstopper bug on a big feature.
So far I've looked at the headers being sent by Firefox and Safari to see if there is any useful information:
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8
And Safari:
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-us) AppleWebKit/523.10.3 (KHTML, like Gecko) Version/3.0.4 Safari/523.10
So as you can see, we can tell....that we're on a Mac. Of some sort. Not very positive so far. Hopefully some more useful information should follow.
File upload is stupendously broken in Flash, on all browsers, on OS X Leopard. As details come out I'll see what I can learn here. We have been searching for potential fixes here today, for some of our applications depend heavily on this feature.
First I found this little post here, and then in the comments of Mike Chamber's Blog people are also experiencing this issue with AIR. Lastly there is this forum post that shows that Adobe has become aware of the issue:
This issue has been addressed and will be implemented in the next release of Flash Player. Regards,
Darren J. McNally,
Technical Support Engineer, Adobe
Flash/Flash Player Support
My first thought is that while its nice that they're going to fix it, I think this needs to be addressed now. I mean, like, right now. Big companies are going to lose money on this. People expect consistent functionality, and this is a real showstopper bug on a big feature.
So far I've looked at the headers being sent by Firefox and Safari to see if there is any useful information:
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8
And Safari:
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-us) AppleWebKit/523.10.3 (KHTML, like Gecko) Version/3.0.4 Safari/523.10
So as you can see, we can tell....that we're on a Mac. Of some sort. Not very positive so far. Hopefully some more useful information should follow.
Friday, June 1, 2007
Facebook Platform API for AS3, and group.
I mentioned briefly that we're building an api for working with Facebook's new Platform. As part of the 'release early, release often' open source mantra, we're releasing what we have right now. Its not fleshed out, but I think that the model that we've built is extensible and easy to use.
Download the API here
Our Facebook Group with more information, documentation, etc.
Here's some of our current features -
Authentication- The Facebook object handles authentication and security automatically. Its transparent, you just don't have to think about it.
Ease of use- Authentication can either be 'desktop' or 'web' style. This essentially means that you can test your app locally in desktop mode, and then deploy it web style. Our current testing model is to check a configuration xml to see what our authentication style should be:
And so we deploy a different configXML file on our server which doesn't contain our secret for use in 'widget' mode, but we can test the flash locally, dramatically speeding development time!
Proxy support - When developing a Facebook application, you'll want to pass all requests to the Facebook API through your server for security reasons. This server should just mimic the Facebook api, and work in the same way:
Extensibility - The Facebook AS3 object is extensible. This means that you can extend your proxy on the server with new methods, and extend the Facebook object with new FacebookDelegates to handle your application-specific service calls.
What we're currently looking at improving is fully implementing the Facebook API. After that we'll be adding more helper functions to improve the usability of the api. Things such as automatically grabbing all images in an album, etc.
Enjoy!!
Download the API here
Our Facebook Group with more information, documentation, etc.
Here's some of our current features -
Authentication- The Facebook object handles authentication and security automatically. Its transparent, you just don't have to think about it.
Ease of use- Authentication can either be 'desktop' or 'web' style. This essentially means that you can test your app locally in desktop mode, and then deploy it web style. Our current testing model is to check a configuration xml to see what our authentication style should be:
if(configXML..mode == "desktop")
{
//start us up in desktop mode
var config_api_key:String = configXML..api_key;
var config_secret:String = configXML..secret;
fBook.startDesktopSession(config_api_key, config_secret);
}
else
{
//start us up in widget mode
fBook.startWidgetSession();
}
And so we deploy a different configXML file on our server which doesn't contain our secret for use in 'widget' mode, but we can test the flash locally, dramatically speeding development time!
Proxy support - When developing a Facebook application, you'll want to pass all requests to the Facebook API through your server for security reasons. This server should just mimic the Facebook api, and work in the same way:
fBook.useRedirectServer = true;
fBook.rest_url = configXML..redirect_server_url;
Extensibility - The Facebook AS3 object is extensible. This means that you can extend your proxy on the server with new methods, and extend the Facebook object with new FacebookDelegates to handle your application-specific service calls.
What we're currently looking at improving is fully implementing the Facebook API. After that we'll be adding more helper functions to improve the usability of the api. Things such as automatically grabbing all images in an album, etc.
Enjoy!!
Thursday, May 24, 2007
Facebook opens the gates! And they're off!
Well, about an hour ago, Facebook just announced their new Platform integration API. And we had an announcement ourself.
We've been having a TON of fun as a launch developer, seeing what's possible with their api. We've learned a lot of tricks along the way, specifically about integrating securely with a third party in a stateless REST environment. And all that we've learned should be released soon. We're developing an ActionScript 3 API for Platform, which we will be releasing soon.
Right now Jason is over in San Francisco taking part in a hack-a-thon with the Facebook guys. I knew I shouldn't have let him have all the fun. *sigh*
Why I like Facebook is the sort of 'extroverted internet' approach they've taken. I'm not a big MySpace fan, and a marginal extrovert myself. But I can understand what makes Facebook a great social application.
Facebook understands the concept of signal-to-noise ratio better than any existing social networking site. If you have to surf through tons of crap to find what you want, it makes it less accessible, and less valuable. Google understands this. Getting the user from point A to point B quickly is paramount to user experience. What about in the sphere of social networking? In terms of relationships, Facebook is speed dating, and MySpace is a noisy, loud night club.
Of course there is a place and time for both. Facebook has used discretion in allowing access to its users. It doesn't want to lose its integrity, and the high signal-to-noise ratio. But it has to be competitive on features, without opening the flood gates to the noobs. And so the new 'Applications' features have been developed.
Applications are Facebook's equivalent to MySpace codes. But unlike MySpace codes, which is basically just html, Facebook uses FBML to include html in its pages. Applications must also be registered with Facebook, requiring a certain level of proficiency, and removing anonymity from the application developer. That's important when you've got 27 million+ users to keep secure.
Overall I'm really happy to see a social networking platform rolled out that has this kind of smarts. We'll see where it goes from here!
We've been having a TON of fun as a launch developer, seeing what's possible with their api. We've learned a lot of tricks along the way, specifically about integrating securely with a third party in a stateless REST environment. And all that we've learned should be released soon. We're developing an ActionScript 3 API for Platform, which we will be releasing soon.
Right now Jason is over in San Francisco taking part in a hack-a-thon with the Facebook guys. I knew I shouldn't have let him have all the fun. *sigh*
Why I like Facebook is the sort of 'extroverted internet' approach they've taken. I'm not a big MySpace fan, and a marginal extrovert myself. But I can understand what makes Facebook a great social application.
Facebook understands the concept of signal-to-noise ratio better than any existing social networking site. If you have to surf through tons of crap to find what you want, it makes it less accessible, and less valuable. Google understands this. Getting the user from point A to point B quickly is paramount to user experience. What about in the sphere of social networking? In terms of relationships, Facebook is speed dating, and MySpace is a noisy, loud night club.
Of course there is a place and time for both. Facebook has used discretion in allowing access to its users. It doesn't want to lose its integrity, and the high signal-to-noise ratio. But it has to be competitive on features, without opening the flood gates to the noobs. And so the new 'Applications' features have been developed.
Applications are Facebook's equivalent to MySpace codes. But unlike MySpace codes, which is basically just html, Facebook uses FBML to include html in its pages. Applications must also be registered with Facebook, requiring a certain level of proficiency, and removing anonymity from the application developer. That's important when you've got 27 million+ users to keep secure.
Overall I'm really happy to see a social networking platform rolled out that has this kind of smarts. We'll see where it goes from here!
Wednesday, April 11, 2007
Trace Output on Linux with Flash Player 9
I just spent about 45 minutes getting my flash player to trace to a text file. So as of this writing, here are the current things that you should watch out for when attempting to trace() out with flash on linux:
Make sure that you have the debugger version installed. If you are using Ubuntu, or another distro that uses package management, remove the flash player package. On Ubuntu Feisty Fawn, this is the flashplugin-nonfree package. Open synaptic and uncheck the package. It will warn you that you are removing the ubuntu-restricted-extras package also. Don't worry about this, as its a dummy package.
Install the debugger version from the adobe site. This is pretty straightforward.
Once installed, you must turn on the trace reporting by creating a file in your home directory called mm.cfg with the following contents:
So what exactly will these three lines do? Well the first says that we should print out all trace() function calls to the file ~/.macromedia/Flash_Player/Logs/flashlog.txt. The second option says that we should also print out our stack traces and exceptions to the log file. Lastly MaxWarnings is how many lines the log file will contain until the player stops. This page goes more in depth.
A couple important points: The documentation is incorrect, and the output file is NOT ~/macromedia/Flash_Player/Logs/flashlog.txt but ~/.macromedia/Flash_Player/Logs/flashlog.txt . This is important because files with a '.' in front are hidden, so you won't see a 'macromedia' folder pop up in your home dir.
Secondly, the flash player is smart enough to create the ~/.macromedia/Flash_Player/Logs/flashlog.txt path, directories and all. So you do not need to create this path manually.
Ok, so now you've installed the debug version, and you've created your mm.cfg. Your logging to the file, and now you want to watch the output! Well, you have many options at your disposal. A favorite option is the FlashTracer extension for FireFox. Here is a special version that works on Linux.
Another option is to use 'tail' a basic command line program that displays the tail end of files:
As with all command line programs, you can pipe them to do fun interesting things :)
To just get all the lines with DEBUG on them.
Get the lines that have DEBUG on them, and the lines around them (useful for seeing what happened before and after the line in question).
And here is a simple script that encapsulates the above tail usage into a simple program:
Make sure that you have the debugger version installed. If you are using Ubuntu, or another distro that uses package management, remove the flash player package. On Ubuntu Feisty Fawn, this is the flashplugin-nonfree package. Open synaptic and uncheck the package. It will warn you that you are removing the ubuntu-restricted-extras package also. Don't worry about this, as its a dummy package.
Install the debugger version from the adobe site. This is pretty straightforward.
Once installed, you must turn on the trace reporting by creating a file in your home directory called mm.cfg with the following contents:
TraceOutputFileEnable=1
ErrorReportingEnable=1
MaxWarnings=1
So what exactly will these three lines do? Well the first says that we should print out all trace() function calls to the file ~/.macromedia/Flash_Player/Logs/flashlog.txt. The second option says that we should also print out our stack traces and exceptions to the log file. Lastly MaxWarnings is how many lines the log file will contain until the player stops. This page goes more in depth.
A couple important points: The documentation is incorrect, and the output file is NOT ~/macromedia/Flash_Player/Logs/flashlog.txt but ~/.macromedia/Flash_Player/Logs/flashlog.txt . This is important because files with a '.' in front are hidden, so you won't see a 'macromedia' folder pop up in your home dir.
Secondly, the flash player is smart enough to create the ~/.macromedia/Flash_Player/Logs/flashlog.txt path, directories and all. So you do not need to create this path manually.
Ok, so now you've installed the debug version, and you've created your mm.cfg. Your logging to the file, and now you want to watch the output! Well, you have many options at your disposal. A favorite option is the FlashTracer extension for FireFox. Here is a special version that works on Linux.
Another option is to use 'tail' a basic command line program that displays the tail end of files:
tail -f ~/.macromedia/Flash_Player/Logs/flashlog.txt
As with all command line programs, you can pipe them to do fun interesting things :)
tail -f ~/.macromedia/Flash_Player/Logs/flashlog.txt | grep DEBUG
To just get all the lines with DEBUG on them.
tail -f ~/.macromedia/Flash_Player/Logs/flashlog.txt | grep -C 3 DEBUG
Get the lines that have DEBUG on them, and the lines around them (useful for seeing what happened before and after the line in question).
And here is a simple script that encapsulates the above tail usage into a simple program:
#!/bin/bash
if [ -z "$1" ]
then
tail -f ~/.macromedia/Flash_Player/Logs/flashlog.txt
else
tail -f ~/.macromedia/Flash_Player/Logs/flashlog.txt | grep $1
fi
Subscribe to:
Posts (Atom)