MacPython Logo from __future__ import *

Kailash and Friends Kailash Kher Kaipa

online mp3 Anoice albums buy Amund Maarud albums online Asia online CD Andy M. Stewart buy tracks Axis online Astral Rising A Beautiful Machine download CD Aereda buy tracks Aksent online tracks Absidia Atrium Carceri A Beautiful Machine Absolum buy CD Aryan Wind and Brumalis and Valhalla Saints online music Atomsmasher download albums AK1200 download music Angelzoom online CD Arturo Mantovani and his Orchestra buy music 16 buy tracks Ashtorath online CD Aimee Mann buy music Anael And Bradfield buy mp3 Autumnblaze download mp3 Aggrolites download CD Arj Snoek buy albums Ada buy CD Aalto Andy With Rama West A Beautiful Machine Absolum online tracks Asura albums online Albert Lee 4 Non Blondes A Beautiful Machine Absolum download albums Andrew Lloyd Webber and Ar Rahman online music African Head Charge download mp3 Amber Asylum online music Analena online music ANTIX feat ROB SALMON A.R. Rahman A Beautiful Machine Absolum online tracks African Blackwood buy mp3 Axis buy mp3 Alan Menken buy music Amoebic Dysentery buy Alph Secakuku A Beautiful Machine albums download Albita online Amparo Ochoa A Beautiful Machine download tracks Andy Partridge and Harold Budd download tracks Anubian Lights Alient Project A Beautiful Machine Absolum buy albums Antonio Forcione download CD Ali G Indahouse online mp3 Art and Jazz Messengers Blakey download Arab Strap A Beautiful Machine online albums Adema buy Agua de Annique A Beautiful Machine buy CD Avalanches download tracks Acroma Andi Deris A Beautiful Machine Absolum download tracks American Steel download albums Amanda Perez online 999 A Beautiful Machine download mp3 Arild Andersen download CD American Steel buy tracks Absolute Beginner download tracks Anubi online albums Ancient Wisdom online A Verse Unsung A Beautiful Machine buy music Aghast Andromeda Island A Beautiful Machine Absolum download Arlo Guthrie A Beautiful Machine online mp3 Aavepyora online albums Achillea buy Andrew Bird A Beautiful Machine buy music Alexey Aigui and Ensemble 4'33'' albums buy Abbey Lincoln and Archie Shepp download albums Archive download CD A Guy Called Gerald feat. D.S. download music Al Di Meola online music Abigail download music Angel Witch online music Adelaide

2006-11-21

MochiAds - Flash Game Ad Network

Filed under: Genshi, MTASC, Pylons, SQLAlchemy, actionscript, erlang, flash, nginx, python — bob @ 2:00 pm

MochiAds is finally out the door! There's a pretty good summary of what we're doing on TechCrunch.

For the technically inclined, the UI for MochiAds is built with Pylons, Genshi and SQLAlchemy. The secret sauce is a combination of Python and Erlang code, and we've got Nginx as the gatekeeper. I've got nothing but good things to say about this whole stack. Erlang's module reloading, concurrency oriented programming model, and pattern matching has really been a dream.

For Flash game developers, we support ActionScript 1, ActionScript 2, and MTASC. Flash movies must be published in Flash 6 or later. Currently we support two ad formats: preloaders and interstitial ads. Either way it's just one line of code to toss in the movie.

The really Big Deal is that Flash game developers can make money off of their work throughout the entire lifespan of the project, especially if it spreads virally. It's no longer a bad thing if a portal "steals" the game without paying a licensing fee, the developer still gets paid!

7 Comments »

  1. Will you be sharing with us any of the nice tidbits you learned when integrating python and erlang?

    Comment by Duncan McGreggor — 2006-11-21 @ 2:42 pm

  2. There isn’t anything particularly interesting. Python and Erlang talk to each other by way of HTTP and flat text files. Some of the communication is JSON, but most of it is either Python speaking to Erlang in a subset of Erlang syntax, or Erlang speaking to Python in a subset of Python syntax. The reason I chose to just use the native syntax rather than JSON everywhere is for convenience (parsed JSON is cumbersome from Erlang) and efficiency (eval is a lot faster than a pure Python JSON parser).

    Obviously they don’t talk a lot, otherwise I’d probably have chosen something more tightly coupled or compact… but this strategy was very easy to put together and it works perfectly.

    Comment by bob — 2006-11-21 @ 3:17 pm

  3. When you say the “Erlang syntax” do you mean the Erlang message wire protocol, or are you actually using something like eval in Erlang? I also wonder if a subset of the Python marshal format would be even faster than eval? Harder to debug, I guess.

    I’ve never heard of Nginx before; what caused you to use that?

    Comment by Ian Bicking — 2006-11-26 @ 12:10 pm

  4. I mean Erlang syntax. Not a wire protocol. Marshal might work, but this data is for long term storage and I like to be able to grep it. It’s also harder to write a marshal implementation than it is to write a serializer that deals with tuples, floats, and strings.

    I chose Nginx because Apache can’t scale and neither can Pound because of fundamental design flaws, LigHTTPD’s proxy implementation is broken, Squid was too hard to figure out (because all of the documentation is for forward proxies), and everything else seemed to be Just A TCP Proxy, which is not sufficient for the architecture I want. You’d know this if you’d have paid attention to the past few blog entries ;)

    Comment by bob — 2006-11-26 @ 6:00 pm

  5. Bob,

    So have you moved from TurboGears to Pylons? If so (or not) any reasons why? I’m planning on giving it a try Real Soon Now.

    Comment by Cliff Wells — 2006-11-29 @ 9:04 am

  6. I moved from TurboGears to Pylons because I wasn’t using *any* of TurboGears features. Pylons has less code, it’s more modular, and it’s far easier to debug. Porting to Pylons actually ended up being less application code, too.

    Comment by bob — 2006-11-29 @ 9:55 am

  7. If your current interface between Python and Erlang wears out, you could use the Erlang C api from Python. This makes a Python process look to Erlang as if it is another remote Erlang node/process.

    Comment by Patrick Logan — 2006-11-30 @ 9:20 pm

RSS feed for comments on this post.

Leave a comment

What's a blog without spam? WP-Hashcash.

Powered by WordPress