Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Planet - Python realtime framework, the framework behind battlefields battlelog (planetframework.com)
69 points by mars on Nov 16, 2011 | hide | past | favorite | 37 comments


For reference: Battlelog: Modern Web Applications are Here (blog post by Werkzeug/Flask dev) [1] and HN discussion [2].

[1] http://lucumr.pocoo.org/2011/11/15/modern-web-applications-a...

[2] http://news.ycombinator.com/item?id=3236820


To all the people wondering: "why is this better than Flask" or "why should I pay XXXXX$ for something I can get for free". The huge difference is the fact that by purchasing this you have a right to ask for support and if it doesn't work out maybe even sue them. If you are running Battlelog XX thousand dollars is nothing. Imagine what it would cost them if Battlelog was down for a day. If they used Flask they may depend on Armin being available to fix a critical difficult bug. That is why these companies pay the big bucks: support and accountability.


Accountability eh? I'll remember this next time I'm using a paid web service, it goes down, and they put up a Status page saying "Don't worry folks, our lawyers are on it."


Well one of the author of Flask was the author of that blog post Armin Ronacher, right?

The third option is, just pay the team to finish up for you, which is what EA did, I guess.


There seem to be two approaches when a problem occurs:

- Find someone to blame (sue them)

- Fix it (myself or pay someone to fix it)

I like to use tools that give me the second option (and planet probably does, but I disliked the "maybe even sue them" - better to have the freedom to fix than the freedom to sue).


Planet Framework is designed from the ground up to be real-time and scalable, but it also uses a lot of existing open-source projects.

For Planet Framework customers, we offer "partner source". Meaning, that customers will get full access to source code and also submit their own patches.


Are you also going to open-source some parts of the project?


A couple of the components used are actually already open-source:

https://github.com/esnme/ultrajson - Super-fast JSON serializer.

https://github.com/esnme/locust - Scalable load testing tool capable of simulating millions of users.

https://github.com/esnme/amysql - 100% async/event driven MySQL driver.

https://github.com/hjlarsson/gevent-memcache - memcached driver for gevent.


Thanks for this list.

We've been building our own load testing tools on python, and it will be quite helpful to learn from the implementation of locust.


"""The huge difference is the fact that by purchasing this you have a right to ask for support and if it doesn't work out maybe even sue them."""

Yeah, that would work...

Like when AWS or GAE are down, and we sue and get our money back.


IANAL, but I would think that if downtime that is not covered by an SLA occurs (and you can prove monetary loss because of it) you should be able to sue. Maybe a lawyer can pitch in...


Not sure what to think about this. Seems very well documented and thought out, and the developer tools seem great. However, the price is very steep. It's a bit unusual to see Python frameworks with this kind of pricing. Perhaps I'm too used to open source, though.


This looks very interesting, though it definitely needs a free edition for developers to play around with. Perhaps limit the maximum number of concurrent clients or other artificial scaling limits. At €99/month there's no way I'd try this out even for 1 month; these prices are definitely targeted at the enterprise.


The video runs into an edge/problem case inside of the first 60 seconds, the solution to which is apparently something you have to memorize or get used to.

"...to add a component I do this... you see the error here saying that... to fix it, just click on this word and hit alt+enter.."

I couldn't continue after that.


You totally missed the point.

The video was showing how to use the IDE to add support for their DB migration tool to a specific model class. Initially, the class did not have the XML metadata required to track migrations so the IDE underlined the class name. This wasn't a edge/problem case, just the IDE being helpful.


That's just laziness on your part.

Do you expect them to explain all the concepts and underlying code in one video?

Also, the click+fix it thing actually showcases a very helpful IDE feature.


What I was pointing out was bad defaults and a lack of polish. The very first introduction should not start with a warning or an error case. When I'm learning "yet another server technology and IDE", I don't expect to walk through a bunch of exceptions just to get started. It's a big turn-off.

Check out any of the recent string of popular technologies and see how much effort people put into making smooth first impressions.


Seems like they are using a derivative of PyCharm for the IDE-part?


Indeed, I wonder if they have a deal with Jetbrains for that.


Yes, we do.


I guess they have to have that. Or perhaps they built it on top of intellij community edition?


I wonder if the timing of this release (and the relation to the Battlefield 3 web presence) is a poke at Activision's infrastructure/scaling problems of the Call of Duty Elite web platform?

The problem of large dynamic (to avoid "real-time") distributed web applications with big teams of developers that have to scale quickly sometimes during crunch or for emergency scaling post-launch, is not the easiest thing to solve so it's nice to see products aimed specifically at that space.


For some definitions of real-time.


Why did they invent yet another framework-specific template language? What is wrong with Jinja2 and Mako?


The reason behind "yet another template language" is that we compile down to both Python and JavaScript. Allowing us to render templates both on the server-side and client-side. Sharing templates between these two gets very important when you develop real-time web sites.

(I'm one of the developers behind Planet Framework)


Ah. That makes sense. Both Jinja2 and Mako are very much tied to Python. (Though compiling a subset of Jinja2 AST's to JavaScript would be an interesting exercise...)


Armin Ronacher's article explains why they couldn't use either: http://lucumr.pocoo.org/2011/11/15/modern-web-applications-a...

(He's the author/maintainer/we_need_a_new_word_for_this of jinja2, btw)


Ok, nice fancy IDE. I use vim, how is this different to me compared to flask/django? If it is repetition of code in the templates you want to avoid, what about noir+hiccup?

I don't know, am I missing something?


Isn't the IDE similar to IntelliJ Idea or PyCharm?


It's based on PyCharm from the "Licenses" page.

ref:http://www.planetframework.com/documentation/1.10/Licenses/


Someone has recently mentioned that this framework is soon going to be "released". Was it meant as in "free to use"? The pricing is quite steep, but otherwise it looks amazing.


I'm not sure I'd use BattleLog as the shining example of our framework. Battlelog is quite flaky and not as responsive as it should be.


When have you experienced this? I've found it to be pretty rock solid. Especially compared to the game client...


I just wonder it turned out that all hackers, after all, are in hn (together with lame ones like me). Small world it is.


Not to be confused with Planet[1], the feed parser/reader).

[1]: http://www.planetplanet.org/


Not a great advert to have an internal server error on the contact page!


When I saw real-time, I thought you meant real-time as in medical devices, where data incorrectly processed in the interval means someone may die.

I believe that would be a novel and very interesting use of Python, possibly even requiring a new interpreter...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: