February 17, 2006

The skinny on FMS2.0.1 Licensing

The new licensing scheme got you confused? Need to know what's up, get the 411? Look no further then because here it all is in laymans terms.

First off, with this new update to version 2.0.1 there is a new license scheme.

In case you are wondering what the old one was (the one that was introduced upon the release of FMS2.0) it was 150 max connections with unlimited BW. This caused an uproar around the world and Adobe changed their minds :)

So, the new licensing scheme and how it works. The brand new licensing manager programmed inside of FMS is setup to handle connection/bandwidth profiles now.

What are profiles and what does that mean to you?

Currently there are three profiles that come with the install of FMS2. Once you have installed the server, you can check in "licenses" directory in the install directory and you'll see the following profile files:

150.pro
1000-40.pro
2500-25.pro

These are used when you tell FMS what profile you want to use (I'll talk about this farther down). Each profile has different settings in it. Like, 150.pro is the original 150 connections and unlimited bandwidth. 1000-40.pro is 1000 connections and 40Mbps, and to finish it off 2500-25.pro is (you guessed it) 2500 connections and 25Mbps (which is exactly what FCS1.5 Pro had).

So what does this mean to you? Well, the first thing off is that upgrading to FMS2 from FCS1.5 is a logical choice. With the original of only 150 connections and unlimited BW, if you had apps that required more connections (which was very highly likely), you would actually have to go out and buy more licenses just to run what you were originally running..

Anyways, you can only have one profile in service at one time, but in turn, you can switch profiles whenever you want. This means that say for example this week you have a video seminar that you want to get out to a limited amount of people. In this case you are most likely to need a lot of BW, but not so many connections. For that you might change to the 150.pro profile. On the flip side, say next week you have a huge chat conference that you want to get on. For this, you would switch it over to the 2500-25.pro profile.

As you can see, you can match up your server to your apps now. This gives a bit more leverage of what you have bought in comparison to FCS1.5, and far more over that original licensing scheme that was thought up.

What does this mean for the future?

Well, thanks to this line of thinking, it's now possible for Adobe to create profiles based on perhaps a request. If somebody says they don't need 1000 connections, but need more than 40Mbps. Perhaps at that time if there was enough demand, Adobe would put out a new profile that was 500 Connections and 50Mbps or something like that (I'm not doing the math.. but you get the picture I think).

So now that we all understand what is going on and why, how do we go about setting the server up for this? At the time of this writing, the information is not available except on the mailing list from figgyleaf, Flashcomm.

If you have done a clean install, you will find in your install directory a directory called "conf". Inside there is a file called fms.ini. This is a special file that sets all kinds of things, and one of those things is the license profile. If you have upgraded without uninstalling and deleting the files in the install directory, then this file will not get overwritten on the install and you have to add the tags in yourself.

So, inside the fms.ini file there is going to be an entry like this:

SERVER.ACTIVE_PROFILE =

This is where you want to set the above profiles, like for example the 2500-25.pro license setting would look like this:

SERVER.ACTIVE_PROFILE = 2500-25.pro

That's about it. If you do change this value, make sure to restart the server.

Now if you have done an update over a previous install, you'll need to add that line, along with one more in the server.xml file.

It's in the Root/Server tag and looks like this:

<ActiveProfile>${SERVER.ACTIVE_PROFILE}</ActiveProfile>

That may look funny at first, but it is just accessing the variables in the fms.ini file. You could in turn just forget the fms.ini file and write this:

<ActiveProfile>2500-25.pro</ActiveProfile>

It's the same thing.

That's about actually. If anybody has any questions, feel free to stick them in the comments and I'll do my best to answer them.

On a final note, pricing information is available here, you can also buy from reseller Uvault here, and upgrade purchase here, and here is the link to the details on this update (which is free of course to the current customers of FMS2)

Posted by Graeme at 04:36 PM | Comments (3)

You got FMS2? Go get the updater then 'cause it's out now!

Yes, at long last the updater to the Flash Media Server 2.0 licensing nightmare is out along with a whole bunch of fixes to some bugs that made it through the QA team in the first release round.

Go get the updater here

Details are here

We're up to FMS 2.0.1 now. I hope they get another updater with all those remaining known issues fixed up.

Posted by Graeme at 07:42 AM | Comments (0)

February 14, 2006

Ask an FMS Guru #3: How do I access a shared object on the server side that was created on the client side?

So here's an interesting question that to most intermediate to advanced people in FMS would consider quite easy, but taking myself back to my younger days in programming I too would have scratched my head.

So here's the Q: How do I access a shared object on the server side that was created on the client side?

Answer: Any remote shared object that is created on the client side can be accessed just the same on the server side. Meaning that it doesn't matter which side you create it on, you can still access it from the other side.

There is one gotcha that I have to mention because this catches so many.

When creating the SO on the client and server side remember to keep your persistance value the same. Which by the way you are only just creating a pointer to the shared object on the server. You aren't actually recreating the SO when you make another reference on the server or client side after creating it on the other.

A quick example to make it all clear.

On the client side you would do it like this (nc is the netConnection object already connected up by the way):

var mySO = new SharedObject.getRemote("SO_name_goes_here", nc.uri, false);

As you can see above with the final "false" value, I've created a non persistant Shared Object, meaning that it gets deleted when nobody is connected to it. A persistant SO gets saved as a file on the server in the application directory.

Now, the gotcha is that on the server side, some will do this:

var mySS_SO = SharedObject.get("SO_name_goes_here", true);

As you can see above, I've written "true" for the persistance value. Even though the SO name is the same as the client side one, because the persistance value is different the SO is completely different. It would have to be written like this to make the server side get the same SO as the client side:

var mySS_SO = SharedObject.get("SO_name_goes_here", false);

So with the above code, I can access the data in the shared object from the server or client side. Both can take advantage of the send() method and of course onSync(). Handy stuff I think.

I hope that helps somebody :)

I think this almost calls for a quick tute on the pros and cons for managing SO's on the client and/or server side... hmm..

Posted by Graeme at 03:39 AM | Comments (0)

February 13, 2006

This is so cool, I love this stuff (stereograms)

Made entirely in flash, I want the code... If anybody knows how to do this, can you let me know?

Go here:
http://www.flash-gear.com/stereo/

Create a picture, then press done and you get your stereogram.

Here's mine:
http://three.flash-gear.com/stereo/stereo.php?c=v&id=131811&k=20394491

Posted by Graeme at 08:15 AM | Comments (0)

In need of a budget friendly lobby/private chat application?

Just wanted to note that we have released a basic lobby/private chat application for a budget friendly price.

http://www.solid-thinking.com/applications/basic_chat/basicprivatechat.html

What you can do with it:

- Text/Audio/Video chat
- Lobby chat with all in the lobby
- Invite another user to a private chat
- Accept or deny an invite (other user will be notified)
- Have a private chat with another user, again text/audio/video functionality
- change your text color
- automatic link creation for url's
- study with it, the code is well thought out and provides a strong framework for future customization

This is not a resellable application at the license fee we are advertising, nor is there any support. More information is available on the page:

http://www.solid-thinking.com/applications/basic_chat/basicprivatechat.html

Posted by Graeme at 07:07 AM | Comments (0)

February 07, 2006

Looking for some mixed up tunes to work to? :: Neverrain.com ::

Just wanted to stick this out there to those who have yet to see it as I have only just now stumbled on it.

I usually code to some tunes of some sort, in fact I listen to an iTunes radio station called Playdio a lot. It's a mix of techno and dance music that just goes and goes. Sometimes though I find that the same songs keep getting played over and over again, and just seems to lack imagination. So I find myself constantly looking for stuff that I'm just not going to find on a local radio station, or even in the music store.

On that note..

If you like a mix of techno/dance then on neverrain.com you'll find Eric Jordan's mixes from the last 4 months in mp3 format and it looks like he's sticking one up every month. These mixes are about an hour each and sound pretty damn good to me.

Go check it out: neverrain.com

Posted by Graeme at 09:26 AM | Comments (0)

February 04, 2006

Ask an FMS Guru #2: Is there any static variable type available in server side?

I thought this would be a great second question for the infamous FMS Guru :)

Question:
Is there any static variable type available in server side ? so that I can change that variable globally.

Answer:
Yes. With FMS2 you can actually set variables in the application.xml file. Now if you set these variables in this file and put the application.xml file in the application directory, the variables you set will be available to instances of that application only. Not any others.

If you don't put an application.xml file in the application directory of the application that you are running, then FMS will default to the level higher which would be the conf directory for the virtualhost you are running and look in there. That's where we are going to set our variable.

So, open up the application.xml file in some text editor and jump down to the tag
<JSEngine>

In there we are going to add a couple of new tags:
<ApplicationObject>

Inside there:
<config>

And in there we are going to add a super user tag and put my name in it:
superUser

Graeme Bull

So it looks like this:
<JSEngine> <ApplicationObject> <config> <superUser>Graeme Bull</superUser> </config> </ApplicationObject> </JSEngine>

Now, save the file, restart the server and make a main.asc file because we are now going to trace this value out:

application.onAppStart = function(){
trace("The Super User is: " + application.config.superUser);
}

Now when you start up the application you should see the following trace:

The Super User is: Graeme Bull

That's it :)

Posted by Graeme at 02:21 AM | Comments (0)