Archive for the ‘Python’ Category

Introducing cPyAMF

Sunday, May 4th, 2008

Logo for cPyAMF

There are two parts to PyAMF: the core AMF encoder and decoder, and the gateway/remoting for transporting data between a server and a client.

Currently both parts are written in pure Python but the idea is to create a C version of the AMF encoder/decoder that can be used as a dropin which will increase performance significantly.

Cython

This will become a subproject called cpyamf that will be written with Cython, a language for writing Python extension modules that translates files from .cy, .cyp, .cyh to .c, .cpp, .h files.

For more information check the ticket or browse the sub-project in the repository.

Interactive Python shell with Flex

Saturday, May 3rd, 2008

Google did the Ajax version of the Python shell, running on Google App Engine, we present you with the Flex version (click image to view the sample):

You can browse or download the source from the Subversion repository. You can find instructions on how to run the example yourself on the wiki page.

PyAMF test suite running on Google App Engine

Thursday, May 1st, 2008

The 0.3 release tree has been mostly about building up compatibility with Google’s App Engine.

Because the environment that Google exposes to the developer is quite restricted (for obvious reasons!) we thought it best if we get the entire PyAMF test suite (up to 430 individual tests and counting …!) running.

We have built a simple web app that runs the PyAMF test suite from within the Google App Engine. Its a work in progress and isn’t planning on winning any beauty contests, but works nicely.

Check it out!

Ohloh API and Python

Saturday, April 26th, 2008

Ohloh is a website which provides a web services suite and online community platform that aims to map the landscape of open source software development. The Ohloh API is a free, REST-based programming interface to the Ohloh open source directory. You can use the Ohloh API to create your own applications and web services based on Ohloh data. There’s a Python example client and additional examples are available for Java, Ruby, Bash, Perl, PHP and C++.

I decided to create a simple AMF gateway using PyAMF that pulls the account data from Ohloh and then passes it to a Flex application. The reason I use a AMF gateway is because I don’t want to hardcode and expose my API key in the Flex client application, which could be decompiled easily, allowing others to abuse my key.

You can test their API by entering the emailaddress of a registered Ohloh user in the input text-field below, click Submit, and it will display the user’s general account info and load the user’s avatar.

(more…)

Twisted Guestbook Example

Saturday, April 12th, 2008

We created a Guestbook Example to demonstrate a full featured application using Flex, Twisted, and PyAMF of course. Check it out after the jump!

(more…)

PyAMF and Google App Engine

Thursday, April 10th, 2008



After Google’s announcement on Monday we received a lot of questions about running PyAMF on the Google App Engine so we decided to start working on a tutorial. This is a work in progress and might require some updates to the library. We’re also planning on setting up a demo site on our appspot but more on that later.

Socket example

Sunday, January 13th, 2008

The Socket class enables Actionscript to make socket connections and to read and write raw binary data. This example shows how to:

  • use the Twisted framework and PyAMF to create a socket server
  • create a connection with the socket server using Flex and Actionscript
  • send the system time from Python to the Flash Player as Actionscript Date object, with an interval of 1 second

(more…)

GeoIP example

Friday, January 11th, 2008

Check out the Flex example using the GeoIP APIs:

You can browse or download the source from the Subversion repository. You can find instructions on how to run the example yourself on the wiki page.

ByteArray example

Thursday, January 10th, 2008

We have created a simple PyAMF example for the ByteArray class in ActionScript which provides methods and properties to optimize reading, writing, and working with binary data. The PyAMF equivalent of this class is also called ByteArray that provides the same basic functionality. (more…)

When is NaN not a number with Python 2.4?

Saturday, November 24th, 2007

From Wikipedia:

The IEEE Standard for Binary Floating-Point Arithmetic (IEEE 754) is the most widely-used standard for floating-point computation, and is followed by many CPU and FPU implementations.

Included in this specification is the ability to denote intangible numbers such as positive and negative infinity, and NaN (Not a Number). A floating point number is represented either by 32 or 64 bits (depending on how much precision you require). These bits are split up into 3 sections: a fraction, an exponent and a signed bit. More information on the structure of the floating point numbers can be found on Wikipedia.

We use EchoTest against PyAMF to ensure that what is sent to the server is returned verbatim, this way we can check things like data types, references, class mappings etc. We generally use Python 2.5 to run the server but Thijs Triemstra noticed that some numeric tests were failing when using Python 2.4, specifically NaN.

(more…)