Amfphp and Baguette AMF update

I just made a minor Amfphp/Baguette AMF release.

Details here


Pin It

Amfphp 2.2.1 released

I just released a small update to Amfphp, version 2.2.1.

It’s mostly a bugfix release. The changelog is below. Get Amfphp 2.2.1 here.

fix basic typing of parameters in client generator
fix error message handling in back office
fix flex message monitoring
fix API doc
other small bugfixes
Pin It

Amfphp 2.2 Profiler Released

I just released Amfphp 2.2. Profiler!  The main feature is a performance profiler. The idea behind these new features is to help you better understand how your server shall perform live, and to give you easy access to the information you need to eliminate bottlenecks and fine-tune performance.

Pin It

Hacking AMF Objects

While working on the upcoming AmfPHP 2.2 I came upon an interesting challenge: Sending AMF typed objects without knowing the types at compile time.

This would allow users of the service browser to send typed objects both with JSON and AMF.
The difficulty is the following: For Flash to send an object as typed, you must provide an alias for its class. This can be done either with the RemoteClass meta data tag, or with registerClassAlias. This works fine, but is designed with the idea that you know what the alias shall be at compile time. So I had to find a workaround so that the user can state:

“take this object, use this alias, and send it to the server. “

Continue reading →

Pin It

AmfPHP 2.2 Teaser #1 Putting your code comments to good use.

I’ve put in quite some time in working on the next version of AmfPHP. Rather than just working in isolation and just posting when the final version is ready, I thought it would be useful to give access to preview version. Hence the first “teaser”:

Please give it a try!

Pin It

Pros and Cons of AMF

I just posted an article about the pros and cons of using AMF

Obviously you’re advised to use Baguette AMF at the end, but I’ve tried to keep things factual, informative, and accessible.

Pin It

Baguette AMF Public Beta

The AmfPHP community has repeatedly asked for a performance boosting PHP extension.

My answer to these requests was to create Baguette AMF.

AMF is a very compact binary format, useful for transferring large amounts of complex data. It is however very demanding for a server. AmfPHP on its own does a good job, but it takes time, as it is written in PHP. Baguette AMF uses C, and therefore enjoys native performance. Install it on your server and enjoy up to 20 times faster conversion times.

It’s been in private beta for a few months, and I haven’t communicated much about it. It’s finally in public beta, so the time has come to get the word out.

Below is a performance chart, comparing server performance with and without Baguette AMF. Notice that for small amounts of data, Baguette AMF doesn’t make much difference. However when transferring large amounts of data, using Baguette AMF can make a huge difference in server performance and response times.

With Baguette AMF you can now enjoy both the low bandwidth of AMF and the server performance you need for your applications.

So please try it out!

Please note that this is a commercial project and therefore not directly associated with Silex Labs.

Pin It

AmfPHP 2.1.1 Released

It’s AmfPHP release time! get the latest and greatest here

Pin It

Building a Debug Environment for PHP Extensions on OSX

Update: added mod_rewrite to apache config.

While working on Baguette AMF, the beta testers and myself have run into the dreaded ‘segmentation fault (11)’ error. By default, you won’t get any information in your logs about what happened and you will be powerless to fix the problem. The aim of this post is to explain to you how to be able to use GDB, the GNU (command line) debugger to get a stack trace that will help you find where your code is failing. Once you’re there, you can also do what you can usually do with a debugger, such as step through the code, get variable values etc.

So, there are various ways to do this, but what I’ve found works for me is rebuilding debug versions of Apache, PHP, and my extension.

Before we Start

  • Please note that this is not for the faint of heart, that it will require quite some time and patience, and that this tutorial assumes that you know quite a bit about programming, compiling etc. If you have trouble, please comment and I will try to add any missing info.
  • You’ll need root access to your server and the source code for Apache, PHP and the extension you want to debug.
  • You will need quite a few libraries installed to be able to build Apache and PHP. If you’re on a Mac like myself, I’ve found the simplest is to use MacPorts to install Apache and PHP, and it will install all the dependencies for you.

There are quite a few tutorials out there on the question, but here is the command line anyway. Obviously, install Macports first.

sudo port install php5 +apache2 +mysql5 +pear

Make sure you have a working Apache+PHP5. If you do, it means all the libraries are installed and you can get started for real.

  • You’ll also need developer tools such as the GCC compiler. I’ve found the simplest way to get them is to install XCode.

Continue reading →

Pin It

AmfPHP survives Zend AMF

Zend AMF smells funny, whereas AmfPHP is doing well. What happened?

Pin It