Today is a great day, it is MLK day. It’s a day marked to honor someone that changed our society for the better. In honor of this day, CNN had me do the programming for a small tribute piece about Martin Luther King. It’s just a simple sliding timeline with imagery, audio, and bullet points. Though it took me only a few hours to code, its a beautiful piece for a beautiful person. Its always feels good to contribute to small educational piece like this.
Right before Christmas 06 I got to create a quick and “interesting” e-card application for Adult Swim’s show Assy McGee. The app allows you to choose a type of recipient and a greeting, it then blends the choices together with related props, clothes, and message pieces into a single e-card for your loved ones to enjoy. The only external piece other than the Flash was a backend service that sent an email containing the html page the SWF was embeded on with query params that reflected a user’s selections. When your unexpecting recipient visited the url, the SWF was fed the params via FlashVars and they were fed an Assy greeting full of wisdom.
Now I have to point out that for those who aren’t comfortable with things that contain a lewd sense of humor to the tune of the South Park genre, the app is definitely not for you. If it’s any forewarning, the character the e-card is based on is a pair of legs and a backside. So with that said, for those who think they may get a good laugh, send your friends some Assy!.
Have you ever wanted to manipulate a url request on the fly (change the header, modify query params, etc.)? The reasons for doing this can vary from production debugging to manipulating requests made by another site. Though I haven’t really seen it highlighted, Charles, one of the common tools used by Flash developers for monitoring HTTP traffic has this feature built in. The feature is called rewriting and is quite easy to use.
To explain how to use this feature, I’ll illustrate it with a technique that tricks the Target.com store into telling you where all the Nintendo Wii’s are in your area.
- Open Tools -> Rewrite from the application menu
- Select Enabled
- Add a Set, name it Target Wiis, which just gives a label for you to recognize the requests you want to match
- Add a Host, use *.target.com, which will match all request made by target.com
- Add a Rule
– select type Modify Query Param
– in match’s name field type asin (we are going to replace the query param asin with our own custom param)
– in new’s value field type B0009VXBAQ (we are going to replace the product identifier with a Wii console, so we can view results for Wii’s in the area)
– click ok
- Go to a product page on Target.com that has a Find at Stores button (sample product page)
- Enable Charles, click the find store button, enter your zip code, the results will not show the product that you clicked but the locations of Nintendo Wiis instead.
This is a great feature, especially if you are wanting to do general request changes. However, if you are doing specific query parameter changes and don’t want to set them up as a stored process, I’d recommend the FireFox plugin Tamper Data. The plugin allows you to view the request data laid out in a form and change it as it is being requested instead of setting it up before hand.
Hopefully this can help someone with their debugging/development process as well as give those searching for a Wii a little trick to use to their advantage.
For the past few years, most everything I’ve read has been technical. This past year I decided to feed the other part of my scholastic upbringing by reading business oriented books as well. Though I still maintained a healthy technical intake, that reading was reserved to documentation and online materials. For those with any curiousity, below is the list of some of the books I read during 2006 in no particular order.
10. The Google Story
14. Getting Real
Flash’s new fullscreen mode does not work when you set the wmode param in the embed code to transparent or opaque. Fullscreen mode will only work if wmode is not set by the embed. I saw the issue come up on a project, so I thought I’d point it out for others since it is not outlined in Adobe’s documentation.