Non-static method Cgn_Session::getSessionObj() should not be called statically, assuming $this from incompatible context


Non-static method Cgn_SystemRequest::getCurrentRequest() should not be called statically, assuming $this from incompatible context


Non-static method Cgn_SystemRequest::getUser() should not be called statically, assuming $this from incompatible context


Non-static method Cgn_ErrorStack::count() should not be called statically, assuming $this from incompatible context

News: AppengineJS, Node.Net, Tracer


Yes, it’s true! You can now run Javascript applications on Google’s App Engine platform thanks to the new AppengineJS project. The project is based on Rhino, the Java-based Javascript runtime, which is why it can run on Google’s Java- and Python-only platform. Of course, since Rhino has been around forever, simply executing Javascript on App Engine’s servers isn’t a new idea (RingoJS is server-side Javascript platform that runs on App Engine). Where AppengineJS stands out is in giving you easy access to many of the App Engine API’s (e.g. storage, memcache, OAuth, etc.). The library wraps the Python APIs to make them more friendly to Javascript developers.

Under the hood, AppengineJS uses the NitroJS library, which brings support for JSGI and CommonJS modules along with it. This gives you a huge amount of power & flexibility in how you build your server applications.

This is a really great set of tools. If you’ve been looking into ways of hosting server-side Javascript applications in the cloud, you really owe it to yourself to check out AppengineJS.


Angus Croll of the javascript, Javascript blog has created a small but impressive tracer utility that tracks when a method is called and how long that method takes to execute. Just provide an object to the utility’s traceAll method, and whenever one of that object’s methods is called, the method name will be printed to the console along with its execution time. It’s a small (~50 lines) but ingenious bit of Javascript metaprogramming that feels like it could have all sorts of uses.

Souders on Frontend SPOF

Steve Souders, the frontend performance guru posted an extremely useful article on his blog regarding frontend SPOF (single point of failure). He looks at several kinds of resources that can interrupt pages loading and/or rendering, as well as workarounds to prevent such blocking. For instance, we all know that scripts should be loaded asynchronously so as to allow the page to render. However, Souders also looks into less-well-known points of failure, such as embedded fonts (Souders says it’s best to declare your @font-face rules inline).

As with everything Souders writes, this article is definitely worth a read.


SQLike is a new library for creating SQL-like in-memory datastores in Javascript. Once you create a SQLike table (with data from the client or from the server via Ajax), you execute queries on it that return Javascript objects. As an added bonus, the code works just as well in ActionScript (if you happen to swing that way).

Of course, besides the ActionScript support, there’s nothing you can do with SQLike that you can’t do with native HTML5 SQL databases, but those aren’t universally supported yet. So rather than falling back on Google Gears, which has been mothballed, for SQL storage, you could fall back on SQLike. You would lose the real persistence you get from the native database, but in some cases that might be acceptable.


Hey, you know what’s awesome? NodeJS. Unfortunately, developers on WIndows machines have just had to take *nix-users’ word for it… until now! The new Node.Net project is a new NodeJS implementation that runs (perhaps unsuprisingly) on the .Net platform. The implementation is a long way from complete, but Windows users who have been itching to see what all of the fuss is about regarding Node might not care.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • description
  • Reddit
  • TwitThis
  • Simpy
  • StumbleUpon

One Comment

  1. Thanks for mentioning AppengineJS.

    A small correction though, AppengineJS is powered by RingoJS, Nitro is just an ‘umbrella project’ for a collection of web development resources.

Leave a Reply

© webdevpublishing 2011