Monthly Archives: May 2004

2000 Installs of Icon Builder


2000 Installations took 2 months, 14 days, 18 hours and 35 minutes. Here are some Icon Builder / Central stats.&

(10%) 201 Mac Installations

(90%) 1799 Win Installation

Version 1.4 should be out in June. Image import and export make the app fairly useful for conversion of graphic formats.

I am using the graphics format for a massive multi-player game due out in July. The game uses PowerSDK SYNC server and characters were created with Icon Builder. Think platform independent Zelda times web-wide multi-player. The game will ship as a Central app.

Cheers,

ted ;)

PowerSDK Partners with Christian Tismer of Stackless Python


I am pleased to publicly announce a partnership with Christian Tismer of Stackless Python to co-develop a high performance internet server framework. The server will be presented at the Euro-Python 2004 in June.&

The project has created a reusable high performance server framework using Stackless Python. The server framework allows high performance servers to be written by simply defining the message protocol in Python. The first server in development provides presence services (instant messaging and chat) optimized for communication with Macromedia Flash called PowerSDK SYNC.

The server design is unique in that it utilizes a light thread model called tasklets. Tasklets provide a single thread in under 800 bytes of memory which operates independent of the C stack. Under this model the server can easily manage 1,000-100,000 tasklets processing data in parallel. Testing shows the servers are materially faster and more scalable than any server in the marketplace. Combined with clustering, the servers provide ample support for any scale project.

In the coming weeks we will be announcing a beta test of the SYNC Flash Client SDK. The toolset will allow developers to create Flash clients that work against a public SYNC server.

Cheers,

Ted ;)

PowerSDK PRIM – Reference Path


PRIM ships with support for a new type of reference called Prim.REFERENCE_PATH. Unlike plain references, a reference path always uses path to determine its value and is never frozen. Although confusing at first, I have found myself using reference path in all sorts of cases. &



// create a prim reference path in global

// set value to mirror _level0._x

_global.createPrim ( Prim.REFERENCE | Prim.PATH , “my_x” , “_level0._x” )

trace ( _global.my_x ) // 0

_global.my_x = 30 // movie is shifted 30px horizontally

trace ( _level0._x ) // 30

trace ( _global.my_x ) // 30

_level0._x = 90

trace ( _global.my_x ) // 90

The key here is that every “get operation” retrieves the value of _level0._x by path and every “set operation” sets the value in the scope of the path property. Shifting _x around remotely is cool but there are far more practical uses.



// create a prim reference path in global

// set value to a path that has yet to be created

_global.createPrim ( Prim.REFERENCE | Prim.PATH , “mydog” , “_level0.dog” )

trace ( _global.mydog ) // undefined

_global.mydog = { a:23 , b:”Hello World” }

trace ( _level0.dog.a ) // 23

_level0.dog = new XML( “” )

trace ( _global.mydog ) //

_level0.createEmptyMovieClip( “dog” , 2000 )

trace ( _global.mydog.getDepth() ) // 2000

//global seems allot more useful now doesn’t it ;)

Typically this would not be the case. As soon as you set the value of _global.mydog all association with _level0.dog is gone and changes to _level0.dog are irrelevant. The above case lets you bind 2 properties together based on path making them seemingly identical. Better still is the fact that you can chain many properties together so 5, 10, 15 properties can all point to a single value. This is especially useful in a class that needs to provide a local property yet is linked to a global property. If the property is modified in a class instance, the global property is modified transparently and changes are provided seamlessly to all other instances. Even methods of a class can be Reference Paths that execute on a different objects altogether yet seam local to the class.

PRIM Documentation

Cheers,

ted ;)

Sneak peek of PowerSDK PRIM


I have been busy working on PRIM, a new product from PowerSDK Software. Thanks to the contributions of the PRIM Beta team, we very close to a 1.0 release. I wanted to introduce you to PRIM and provide a discount for pre-release licenses.&

What is PRIM?

PRIM is a new primitives library for Flash. PRIM provides 50 new primitive types for use with Actionscript, compatible with Flash Player 6 or higher. The new types manage data by value through get and set operations in unique ways. It is best to think of PRIM as a library of pre-defined getter/setters with unique behavior.

Here is an example using Prim’s Integer Type:



//create a prim integer

createPrim ( Prim.INTEGER , “myInt” , 34)

trace ( myInt ) //34

//set the value

myInt = 22.34243234

trace ( myInt ) //22

//prevent set operation

myInt = “Hello World”

trace ( myInt ) //22



A key to PRIM is understanding that all functionality happens at runtime not at compile-time like AS2 strict typing. In providing new behavior, PRIM types eliminate redundant data management code from your software and generally make development more exact. The above example provides an integer that can only be an integer at runtime. If you attempt to set it to a value that is not an integer, it will convert the value to an Integer or resist the modification.

PRIM also provides a more strict version of integer that can only be set by passing a valid integer as follows:



//create a prim integer

createPrim ( Prim.INTEGER | Prim.STRICT , “myInt”, 34)

trace ( myInt ) //34

//prevent set due to non-integer value

myInt = 22.34243234

trace ( myInt ) //34

//set the value

myInt = 99

trace ( myInt ) //99



PRIM supports a powerful event model to allow you to subscribe to value changes on PRIM types. The events allow you to see exactly what has occurred externally to the property.

PRIM is licensed per developer annually providing all updates and email support for one calendar year from license date. When the development team adds new types to the release, these will be available to all current licensed users without cost. In licensing PRIM, you will also get access to pre-release builds, development list-serv, and will be able to influence the development of new PRIM types.

PRIM is priced at $50 per developer annually. Currently you can license PRIM at a pre-release discount of 30% or $35.00. Pre-release licensees will receive access to the PRIM beta prior to the public release.

If you have questions or comments about PRIM, please feel free to email me at mailto:ted@powersdk.com .

cheers,

Ted ;)