onAir Philly: DiggGraphr Desktop gathers more goodies

I should have posted about this earlier but I have been really slammed with work of late. However I did manage to get away for an evening as the onAir bus rolled into Philadelphia. It was really a cool evening (evenings with free beer usually are) and I did manage to meet a lot of people from the Philadelphia Flash and Flex user groups. The cool part though was the DiggGraphr won an award for the hot air contest run by the Philadelphia Flash UG. I now have the web premium pack from adobe sitting at my desk. sweeeeeet! If you havent tried DiggGraphr yet, try it out and let me know what you think.

DiggGraphr Desktop ported to AIR

A quick update for anyone using or interested in DiggGraphr Desktop. I ported the application to AIR today (it was a fairly painless operation requiring changes to just the application descriptor XML file and the parent tag of the application). So go ahead and get the latest build from here. For the uninitiated, the DiggGraphr Desktop application uses the treemap algorithm (with the theme from the newsmap application by marumushi) to render out Digg stories in treemaps. Customization even include auto refresh and custom pages. Details can be found on the application page here.

Glorified Greasemonkey-esqe applications with AIR

For the last couple of days I have been monkeying around with the HTML control in AIR. One aspect that fascinated me was the ability of AIR to execute arbitrary javascripts to manipulate the DOM of the loaded document. So I wrote this proof of concept application which I LOVE. I use Yahoo news for all my news needs (well that and BBC), but yahoo is too branded and has way too many ads for me. So I wrote this application that lets me browse yahoo news but strips the branding and the ads.


The left column of the application is fed via yahoo rss feeds. When the list item is clicked, the html control loads the link specified and then executes some dom scripts that looks for certain divs and removes them. I also had to change the content’s css style to allow it to float left.

Cool. My news browsing experience has just gotten a lot better 🙂

Woohoo…DiggGraphr is a finalist at the Digg API contest and is featured on TechCrunch !!!

This is amazing. My apollo application is one of the 10 finalists in the Digg API contest. But it gets even better: Techcrunch did an overview of the 4 apollo based entries and only mine has a screenshot up there 🙂 (yay! I am special). I am not going to win the contest itself but I never imagined I would ever be on Techcrunch!!! This rocks !

Check out the DiggGraphr application here and digg it if you like it.
The TechCrunch article can be found here
For more info on DiggGraphr, check the info page here

And here is a screenshot saved for posterity

DiggGraphr on Techcrunch

My entry for the Digg API contest: DiggGraphr Desktop

I just submitted by entry for the Digg API contest. Building on my earlier DiggGraphr tool, I was fairly easily able to port it to Apollo. I even added some customization features, like refresh interval and stuff. For more details on the application, check out the application page here. Feedback is always welcome 🙂

PS, it took me a while understanding some file metaphors that apollo has. So this is just the first version of the application. Hopefully, I will add more features to it soon :).

My first useful Apollo app…

This is for a project I am working on and it works pretty sweet. There were a few lessons learnt during the development of the app so I thought I would write a post on it in the spirit of the rest of the world learning from my mistakes ;). The project (that I cant tell you about yet) required a bunch of songs represented by their spectral-waveforms. I tried to find an application that would generate them for me easily but I couldnt really find a simple one. There are some applications that do it but they have so many controls that I couldnt figure out how to do it really quick. I still had source code from my FlexAmp application lying around so I figured, what the heck, I’ll just write a small application to do it. The result was the SpectrumGrapher application.

The concept is pretty simple:
1) Browse to a song on your filesystem.
2) Select it and it begins playing as well as using the computeSpectrum method to draw the graph (using a function that uses the drawing api thats called by a timer)
3) Click on the ‘Snapshot’ button to take a snapshot of the drawing (using the bitmap information of the UIComponent and the Bitmap to png class in the Adobe corelib)
4) Write the png file to the filesystem with a name like [song]_waveform.png

Screen shots (click for larger image)

Choose File
Choose File

Drawing Spectrum

Drawing the Spectrum

Final Waveform png
The output waveform (as saved to the desktop)

The problem I faced was after about 6-10 seconds of playback, my cpu would start spiking since I had too many vectors on the stage. The solution was a modified version of Grant Skinner’s ‘copy vector into bitmap and clear the vector’ approach. I put another timer that fired an event every 5 seconds to do that. The result: I tried a song that lasted almost 8 minutes and no issues (yeah Dream Theater songs are loooooong…but cool 😉 ). The other thing I just discovered was that using a filetype filter to control enabling/disabling the select button on the browse window doesnt seem to work on the mac ( I am a mac newbie and did this development on my PC). The more interesting output of this project was the file chooser dialog box which I had to write since the apollo alpha release doesnt give access to the native file chooser control (although I have seen it on the beta build demo). Maybe I’ll release that part of the code sometime soon.

Let me know what you think 🙂