Bandwidth Limit Exceeded

My blog was down for some hours because bandwidth limit (3 GB) exceeded. I need to spend sometime to figure out why 3-4 GB of bandwidth being consumed? I don't blog often, most of the posts are in text and only a few example files are there.

Is it spammers hitting or some kind of DDOS attack?

AWStats and Google Analytics didn't help me much. I generally look at raw-logs in using VIM or one of my local-flex-app. Idea: Wouldn't it be good idea to have an Apollo app that can show server logs in realtime? 

I would appreciate if you have any suggestions on how to figure out the details?

Media RSS - a better way to publish syndication content (audio, video, images)

I have been working on syndication stuff for last some months. I learnt about different standards (feed formats, microformats etc). One of those is Yahoo! Media RSS, which is module (or extension) of RSS 2.0.
Definition (from MRSS FAQ):-
"Media RSS" is a new RSS module that supplements the enclosure capabilities of RSS 2.0 (FAQ).Enclosures in RSS are already being used to syndicate audio files (Podcasting) and images. Media RSS extends enclosures to handle other media types, such as short films or TV, in addition to providing additional metadata with the media. Media RSS enables content publishers and bloggers to broadly distribute descriptions of and links to multimedia content.

YouTube!, Flickr, Google Video, Yahoo! Video, Grouper etc are exposing their content as Media RSS feeds.
There are advantages of using Media RSS:-

  • Allows to embed more metadata for content
  • Allows to group different media-type representing same content with flexibility to mark the default content.
  • Allows to expose content through custom-player (html page, flash-app etc), if content-providers don't want to give away the url for media-files.
  • Search engines (Yahoo!, Google! etc) and feed-aggregators understand media-rss.
  • and more...

I like the flexibility which allows me to expose feeds in different options/ways while following the standard. I recommend, if you are working on some projects where you have content (audio, video, image etc), you to look at Media RSS.
Links:-

I have requested for media-rss feed for video.onflex.org and revision3.com.
I have also extended (locally) Adobe AS3 Syndication lib to support Media RSS module for one of my projects. I need to submit the code after testing. I hope, I get sometime to do that.

Apollo: Use-case analysis

I have been thinking about different use-case for Adobe Apollo platform.
I analysed Democracy Player, which I use a lot for watching and saving videos from web(internet). I can imagine, how much effort would have gone in making it cross-platform (MacOSX/Windows/Linux)?
With Apollo platform, making such things are lot easier, I can develop once and run it on different platforms (Windows, MacOSX, Linux-in-future) in consistent manner. Ok, I am not just repeating which was said for Java-client-applications, it's totally doable, possible and feasible to do that. There are some cool examples FineTune Desktop, YourMinis Desktop etc. Adobe Flash Player has gained the status of true cross-platform, Apollo would also do. I am confident about that.
Though, there are a few things that I would need in Apollo to implement all features of Democracy Player. Things I can't implement as of today (for Apollo Alpha runtime) are:-

  • Play-back different media formats (mov, mpeg, wmv, divx, xvid, mp4 etc)
  • Open ports or listen on ports or P2P capabilities. For example, to take complete advantage of Bittorrent protocol, client needs to open ports. Why?.

I am very hopeful, later releases of Apollo would solve these problems.

Mac OSX tools for performance/memory profiling

You can use following commands to check the memory/performance/memory-leaks of your applications during development.

  • /usr/bin/top or top
  • /usr/bin/vmmap or vmmap
  • /usr/bin/leaks or leaks

If you have XCode and Apple developer tools installed (you get in CD), you can find more tools in /Developer/Applications/Performance Tools
It takes sometime to understand tools, but it's really useful while development. One of the reasons, I started using Mac OSX because it's on top of *nix and there are good free tools that comes with it (in CD/DVD).
You can get lots of Open-Source/FSF tools ported for Mac OSX (and Darwin) using Fink or Darwin Port package management tools.

Flash Player Trust (FlashPlayerTrust) on GNU/Linux

It took me one hour to figure out the path of directories where trust-configuration for Adobe Flash Player 9 for Linux can be stored. I wanted a local-swf to read both local and network data on one of my Linux boxes. I don't want to use Macromedia Settings Manager because the entire thing is going to be automated or part of build-system. So only way left is by creating trust configuration files.
Adobe Flash Player 9 Security Whitepaper has details on Windows and Mac OSX releated configuration but no details on Linux. I believe, Adobe Flash Player 9 for Linux was released after whitepaper was published. It needs to be updated.
I am posting things here so that other developers don't have to waste time.
Flash Player trust file is a text file (with .cfg extension preferably) that contains the path of trusted SWFs or directories on separate lines.
For example, sample.cfg might contain things like this:-
/home/abdul/apps
/home/abdul/myapp/app.swf
/home/tester/app/app.swf
Trust configuration (policy) file can be deployed in following ways:-

  • For single-user (replace with actual username):
    /home//.macromedia/Flash_Player/#Security/FlashPlayerTrust </li>
  • For all users on the machine:
    /etc/adobe/FlashPlayerTrust/
  • </ul>

    You can store any number of trust-files under these directories but I think, Flash Player has to do lot more work while reading many different trust-files from filesystem. So I would probably not create separate file for each configuration, rather small in numbers.

Adobe Apollo Alpha is available on labs

Apollo Alpha can be downloaded from Adobe labs. Go get it :-)

Apollo Camp summary

Adobe San Francisco office had a large crowd of around 300+ attending Apollo camp. It was good scene, people hanging around in different corners, talking, hacking, networking, having beer and playing WII. It reminded me of Macromedia MAX 2005 but it was more fun at Apollo camp.
Adobe gave away a free license of FlexBuilder 2 with Flex 2 charting to everyone who attended Apollo Camp. It solved my problem, I couldn't buy FlexBuilder 2 from Adobe India store, I don't have to anymore :-)
It was good experience to be at Apollo Camp. It's always nice to meet people I know through blogs/forums or have been talking online. I met Ted Patrick, Ryan Stewart, Renaun, Clint Modien, Chuck Freedman, Josh Tynjala, LordAlex, Justin et al for first time. Once again, I met JD and Andrew Spaulding, it's nice to meet them.
It was nice to meet ex-teammates from macromedia/adobe. I took this opportunity to convey message to Ely that developers in India are big fan of him and want him to come down to India. He said, he is thinking about it :)
I started feeling sleepy because of Jet lag and got lazy, couldn't click many photographs and also missed meeting/talking many people, one of them is Niall Kennedy, I didn't know if he would be around. He doesn't know me but I am a regular reader of his blog on syndication and standards(rss/atom/microformats).
In particular, I liked FineTune deskop, yourminis and Flash/Flex-Java communication demos. Check out what everyone is talking about Apollo camp.
Apollo Alpha 1 would be on labs very soon, that means we would get to see more cool applications being done once it's out.
Thanks Ted for helping me, without your help I could not attend pre-Apollo-camp session and Apollo camp. It was nice meeting you in person.

Why I am not writing anything technical about Flex?

Yesterday, some developers asked me in Flex India meeting, why I am not writing technical posts about Flex on my blog?

Well, I have never been regular though there was a time I was quite active on flexcoders.

Anyway, there are more reasons for that:-

  1. I am working for a startup, which keeps me busy all the time.
  2. Our product targets Adobe Flash Player 7/8 runtime, which means, my main work is about ActionScript 2.0.
  3. I am also doing some work in Java (server-side), also trying to contribute in user-interaction (just my opinions) and thinking of new features for our product.
  4. In my personal time, if I get some, I play with AS3/Flex 2.0/Other-things.
  5. </ol>

    Working in a startup is fun, I can contribute in many ways. I am trying to use all my experience to help team to come up with new features, better-user-interface (only suggestions or criticism:)), better testing-strategy etc.

    I could imagine the transformation happened in last ten months. I have started thinking beyond a particular technology. I became very user-focused, started thinking about cool features, usable interfaces etc.

    Hey, that doesn't mean, I don't think about ActionScript/Flex; ActionScript/Flash-Player is still my love. I still read blogs, scan-through flexcoders and other mailing-lists, read-docs etc. I am also trying to find ways to use ActionScript 3.0 at work, propose things.

    I am working on couple of personal (free time) projects (in AS3/Flex2.0), which would be released whenever I am done with coding, testing and examples. I learnt from my past small-work (JSFLCommunicator, HTTPURLLoader etc) that don't release unpolished things. There was a reason, why I did it in past - I used to take a problem, solve it and share how I solved. But people, who started using it, considered it finished or stable. I couldn't change things often or broke things when I changed something. There is a responsibility in releasing something in public-domain.

    Hope, that answers the question :-)

Flex and Apollo Videos

Mike Chamber just announced a video site that would feature videos on Flex/Apollo. I feel, videos say more than words. I love watching videos that show tech-stuff.

Check out video.onflex.org

Summary of Flex India meeting in Bangalore

We had meeting with John Koch[1] and Flex developers in Bangalore, it went well. It was good to meet developers from different companies (SAP, Adobe, Student etc)/startups (Mogulus, Sunguard) and learn what they are doing, what kind of problems they face etc. It was great to meet some folks (Mrinal, Mogulus guys et al) whom I have been talking to over email/IM.

John Koch talked about different efforts within Adobe for globalization, documentation localization, community development and his experiences with communities in China and Korea. He also shared his vision for Indian Flex/Apollo community and different community programs he is working on.

Earlier to that, John Koch, Manish Jethani and I met for lunch-dinner on Saturday. We talked, around 5-6 hours, on variety of things ranging from Indian culture, Flex/Apollo, community, open-source/FSF, development culture in India and different Adobe community programs for India and South Asia.

BTW! We might be having a website that would aggregate content from local resources (blogs, mailing-lists, job-posts etc) as well as existing resources (flexcoders, flex_india, mxna, apollocoders, dev-net and different blogs). There is no intention to fork knowledge-bases. However, if there are strong reasons (languages, regional etc), there could be separate mailing-list/website.

I believe in having one central place for knowledge-sharing, we already have in form of flexcoders and apollocoders; flex_india is there for announcements, networking and some small discussions. I suggest everyone to use flexcoders for any technical discussion, most probably you would find answers in archives already.

We might be setting up flex-india.org for such things. I would post more details about it in later posts, we would surely need your help, please let us(flex_india) know if you want to volunteer.

[1] Adobe Developer Relation Manager of Asia

Update: I missed mentioning Mrinal's post about meeting. Thanks to Mrinal for helping out with Venue arrangement.