Red5 Video Tutorial: Object Oriented approach to setting up your Red5 Services

Red5 is quite a complex beast. Understanding how an application should be setup is one of the common pitfalls that developers of all ranges experience. Red5 was built using the Spring Framework, an inversion of control system. By using Spring, the Red5 team opened up the server to be as extensible and flexible as possible. However, flexibility comes with its share of criticism as well. It is my intention to demystify how services should be setup. It is a common programming pattern that will help you build a system that can be extended in a clean and object oriented approach!

Let’s start with some history. I was first approached by Trevor Burton (lead engineer behind Paperworld3d) back in April right before FITC. Paperworld is a Realtime 3D Multi-User Application Framework for the Flash Platform. Trevor was looking for a way to make Paperworld3d flexible and object oriented. I was more than glad to help out Trevor and we eventually built a solid foundation for the Paperworld3D project.  Trevor’s brilliance and extensive knowledge of Red5 and AS3 made him a prime candidate to be a part of the Infrared5 team and a formal offer came soon afterward.  You can check out Trevor’s bio on the Infrared5 site.   You can additionally see Trevor speaking at Flash on Tap.

There is a positive from this flexibility though. With the right knowledge at hand and a good understanding of Red5 and Spring, the approach can be simple! Typically, you want to receive status as to what is going on with the application. This is usually handled from your Red5 application adaptor class. However, you also don’t want a monolithic class to handle all of this event handling. I’ve standardized on injecting the application adapter into my service beans. At this point the service bean can do what its supposed to do while also having the ability to listen to application level events.

View the following presentation:

http://www.newviewnetworks.com/nvnhome/blog/client/uploads/Red5_Services.swf

and you can follow along by looking at how Paperworld3D is setup.

If you liked this tip, then you might be interested in joining us at the Red5 workshop in October where Paul Gregoire and myself (red5 engineers) will be discussing application level design and will probably divulge a few more tips and tricks. For more information about the workshop and the conference in general visit: Flash on Tap!

5 Free Red5Server tshirts - (Flash on Tap Banners)

Like any and all conferences there are banners for Flash on Tap. Here’s the deal. I’ve got 5 Red5Server (sponsor of event) shirts that I can give away. If you add a banner to your site, and I confirm it then I’ll send you a shirt. They are pretty cool shirts. All black with the Red5Server logo. On the back it says “Keep it open”. Great for bed, and I bet your gf will look great in it!

So, just comment with your site and I’ll check to see if theres a banner! Thats it,and feel good knowing that your promoting what will be one very cool event!

choose from the animated banners: http://www.flashontap.com/fot/banners/animated/

or the static banners: http://www.flashontap.com/fot/banners/attendee/

then email me at ((daccattato AT gmail DOT com)) with your information to send it to.

Red5 Workshop, taught by the Red5 team!

If you missed it previously, Paul Gregoire and myself will be providing a Red5 workshop at the Flash On Tap conference. If you’ve ever wanted to understand Red5, there probably isn’t a better way than to sit down with two of the developers who understand it best! To think of it another way, typically if you were to work with us as consultants, you’d get us for a few hours of consulting time and this would be remotely. For the first time, we are going to be face to face with some lucky “golden ticket” developers who will get some hands on experience developing Red5 applications. So go ahead and bug your boss to add this to your budget before all the seats are sold. Join the ranks, make your mark, learn to be a Jedai Framework dude ;)

Grab your seats now!!!

Red5: New FAQ!

The old FAQ was created by me along time ago.  How long ago?  Well it was back in 0.3 and that must have been around November of 2006.  What’s that mean?  Well it means that the mailing-list has grown exponentially!  In addition, there has been way more duplication in answering questions than needs be.  So I took the initiative to start up a new FAQ.  The FAQ is up on the red5 wiki so it can be updated by anyone who signs up with the wiki.  I’d really like to have some participation in filling it with some useful information.  In the mean time I added some well known questions that get asked, however there is a wealth of knowledge that needs to get documented.  In this latest effort, I’m really trying to get the communities participation in adding to the wiki.  This all comes in as we are getting ready to launch Red5 0.7.1.   Please check out the wiki and feel free to demonstrate your knowledge of Red5 by adding some common questions and answers.  Thanks and be well!

View the new Official Red5 FAQ: http://jira.red5.org/confluence/display/docs/Red5+FAQ+r0.7.1

Cairngorm gone OSS, now how about tooling? I might have an answer!

Yesterday, the buzz hit the streets that Adobe was releasing Cairngorm to their Adobe Open Source Program.  I am a big fan of cairngorm.  I’m not going to go into why right now, but maybe I’ll express my opinions in a future post.  Regardless, there’s now some where to go when we have issues or suggestions for our beloved framework.  There’s even some discussion already in the forums.  I suggest you participate!  I am actually quite interested in the tooling support.  Many of you may know that I released the Red5Plugin which has an initial shot at cairngorm folder structure generation.  In addition, the plugin sets up some of the initial codebase needed.  I do plan on adding more to that in my next release, but I’m still wondering whether I’m duplicating effort or adding to the ecosystem.  For one, I was sick and tired of hearing about people saying they were working on Cairngorm tooling support and nothing would come from it.  I believe in iteration.  Maybe that’s one reason why I’m useful in the open source community.  I get things out the door, and then iterate, iterate, iterate!  Anyways, I’d be quite interested in the Adobe tooling support.  In the mean time if someone would like to help me out in my Cairngorm tooling support, I could really use someone to write out use cases, wireframe up wizards, and write documentation.  Thanks!

To see a feature list and download the plugin: http://www.red5.org/projects/red5plugin/

Save $200, Flash on Tap - Super Early Bird Registration ends in 10h 32m

Just want to bump this up for those wishing to save themselves a little money! Two hundred dollars in fact off the full conference price. I just want to add that not only is there great speakers and free beer, but the food is going to be impressive as well. Hope to see you there.

http://www.flashontap.com/fot/index.html#/tickets/

Flash ON the Can

LOL, Great post by Sean McSharry pokin some fun about the vast amount of conferences out there!  I love the video and how he mentions that some of the greatest ideas come right while he’s on the toilet :).  Thanks Sean, we will keep your conference in spirit over here at Flash on Tap!

 http://www.flashcoder.net/blog/?p=141

Red5: New Location for Red5 Javadoc API’s

The old location of online Red5 API docs was getting stale.  Nobody is really sure what happened.  Joachim was maintaining them but he hasn’t been active in a while.  So I’ve taken the torch on this one as I’ve seen some chatter on the list lately.  The documentation is now generated once per day.  We can change the interval if needed but I think that once per day is sufficient.

Javadocs: http://red5.newviewnetworks.com/red5docs/

SVN Repository Directory Structure

I was looking through the latest feeds and noticed a post about setting up repositories. This question is actually more common than you may think. Anyone who has ever been in charge of setting up repositories/projects/permissions has at one time or another wondered what the best way is to setup a repository. There are quite a few different ways, but I’ve found one way that I believe works and have used time and time again.

Each client gets their own repository… nuff said!

Well, I’ll explain a little more on why :) so that I add substance to the convention I use.

Clients often come to a group for development. This is usually a one time engagement. At this point, your thinking that you can just put all your clients on one repository. However, that would be a grave mistake. Your whole goal is to keep that client coming back for more, right? On that note, you will often have the same developers that worked on project 1 for the client work on project 2. Keeping the client on it’s own repository allows for easier maintenance of access control lists.

I know, I know, you can do this with a branch. However, what happens when a client decides they want the source code. You could offer them a snapshot or you could provide an added service of a backup of the repository. If you’ve placed all your eggs in one basket you won’t be able to do this as easily :(.

Another reason is that you can setup certain services to be associated with the repositories. For instance, cvsdude adds on bugzilla, trak etc… for each repository. Even if your not using these services today, you may want to in the future. Hey it can’t hurt.

So now that I’ve explained why it makes sense to have 1 repository per client, I’ll explain the underlying directory structure:

  • [CLIENT_NAME]/
    • [PROJECT_NAME]/
      • branches
      • tags
      • trunk
        • lib
        • .project
        • .flexlib
        • etc…
        • src
          • com
            • company_name
              • project
                • etc…

last, this folder structure might change sometimes.  For instance, you may have a client and a server in which case you would have 2 folders under trunk [client, server].

Hope this helps some of you out there still wandering the long road to repository bliss.

Saw a post on DesktopKeeley and couldn’t resist!

Just installed my very own personal Keeley ;)

Now go get your own! http://www.thesun.co.uk/sol/homepage/desktopkeeley/article1377719.ece