Type annotations for the CreateJS Toolkit

Posted in Dart, haxe, Javascript, Typescript on May 19th, 2013 by Philippe – 13 Comments

imageDo you really know CreateJS?

Many people have heard about it, but I often find out that they don’t really know what CreateJS is, what it can do, and why it can really help developing expressive websites in HTML5 today.

Believe me, it’s a topic worth digging!

Continue reading « Type annotations for the CreateJS Toolkit »

Adventures in Dart land

Posted in Dart, Javascript on May 8th, 2013 by Philippe – 8 Comments

The Dart language was unveiled by Google less than 2 years ago as a new “language for the web”, and, like most people, I didn’t give a f… much attention as it was in its early stages and I couldn’t really put my finger on what it was trying to solve, and for whom.

After coding Dart during several weeks (on this cool project) I can pretend to be familiar enough with the language and tools to tell you a bit about it. You’ll be surprised, for Dart isn’t what you think it is.

Did I like it? Yes, I genuinely enjoyed working with Dart.

Should you learn it? Give it a look – you might like it, and learning new languages make you a better coder anyway.

Continue reading « Adventures in Dart land »

What should Adobe do to save AIR?

Posted in AS3, haxe, nme on February 15th, 2013 by Philippe – 20 Comments

ASNext was supposed to solve once and for all AS3 VM performance problems.
ASNext is now canceled, but the problem remains.

Why and how slow is AS3?

We know AS3′s VM and JIT aren’t very efficient in general, partly because the language is fairly rich and dynamic; and even if the VM was awesome, all maths are computed with double numeric types which are known to be massively slower than floats.

However compared to other scripting languages, we shouldn’t complain that it’s slow – AS3 AOT-ed on iOS is definitely much faster than interpreted LUA for instance, so why is that such a problem in AIR and not in Corona/MOAI/Gideros?
Continue reading « What should Adobe do to save AIR? »

CSS, LESS, SASS, HSS support in FlashDevelop

Posted in FlashDevelop on August 2nd, 2012 by Philippe – 10 Comments


Finally, FlashDevelop 4.1 (development build at the time of writing) includes first class CSS (and compiled CSS) support.

Continue reading « CSS, LESS, SASS, HSS support in FlashDevelop »

NME – profiling your app performance

Posted in haxe, nme on June 5th, 2012 by Philippe – 3 Comments

Profilers are some of the most important tools to optimize an application – yet many developers don’t even know such a thing exists.

There are profilers for most runtimes, that is you’ll get a different profiler for C++, .NET, Java and even Actionscript. For instance we’re using JetBrain’s dotTrace to profile FlashDevelop (a .NET application), and for Actionscript you’ll have the fantastic Adobe Scout.

Haxe NME, for desktop/mobile targets, cross-compiles your haxe code into C++ and builds a pure native application, so we’ll use a C++ profiler.

Continue reading « NME – profiling your app performance »

Titanium: the Good, the Bad and the Ugly

Posted in Javascript on January 5th, 2012 by Philippe – 9 Comments

I’ve been following Appcelerator Titanium Mobile with a keen interest since they decided, for mobile, to move from HTML to native UIs. I just love this idea: use the platform’s native UI controls from Javascript. I did have a fairly good experience doing a little test app with Titanium Mobile 1.5 and noted for myself to use it for real when I’ll have a project.

More recently Appcelerator bought Aptana, the arguably most advanced Eclipse plugin for Javascript (and HTML) development, and renamed it TitaniumStudio. Honestly I dislike Eclipse very much but I thought it was a great move to gain the professional developers’ hearts.

Since I had a new occasion to do a mobile app I thought I was time to get up to date by giving Titanium 1.8 another run.

This was a “mixed” experience, but my conclusion is quite positive!

Updated 27/02/12 (see end of the article)

Warning: MacOS stuff ahead ;)

Continue reading « Titanium: the Good, the Bad and the Ugly »

NME: ready for the show!

Posted in AS3, haxe, nme on November 18th, 2011 by Philippe – 7 Comments

NME is an impressive crossplatform technology particularly appropriate for 2D games development. And by crossplatform that mean:

  • Windows/Mac/Linux and iOS/Android/webOS – at full, native, C++/OpenGl speed,
  • and Flash so you can also compile it for the browser.

Activity & contributions around the NME project has increased a lot recently and it seems to have become mature enough as a few companies have started using it to develop (fairly impressive casual) commercial games. If you have an iPhone I warmly recommend trying Ponon Deluxe (free) – it’s incredibly slick and a clever variation on the Tetris theme.

If you know Flash and AS3…

…you’ll be up and running in a few hours:

  • this is most feature complete implementation of the Flash API that you will get your hands on – more complete than what Starling will ever be, and more complete than the subset of AIR you can use to keep performance decent,
  • development is in haxe, a clever language with increasing IDE support that you can however code like AS3 90% of the time.

Continue reading « NME: ready for the show! »

AS3 – Hacking PreloadSwf for fun and profit

Posted in AS3, FlashDevelop on September 28th, 2010 by Philippe – 8 Comments

PreloadSwf is one fine gem in Flash Player’s mm.cfg, the historical and little known Flash Player configuration file.

In this post I will tell you all you have to know about this feature and how you are going to use it in your projects.

This was invented for Flash profiling: Clement Wong, from the Flex SDK team, presents PreloadSwf as a major piece of the “Flash profiling” puzzle in his about the Flex profiler post in 2008.

If you want to know most of the secrets of mm.cfg, dive into Jean-Philippe “jpauclair” Auclair post on mm.cfg hidden treasures. This is a must read if you like bytecode porn :)

Continue reading « AS3 – Hacking PreloadSwf for fun and profit »

AS3 – Fast memory access without Alchemy

Posted in AS3, haxe on May 3rd, 2010 by Philippe – 18 Comments

With the Flash Player 10, Adobe added a new set of instructions allowing to compile C/C++ in a way the AVM2 could execute. By wrapping a little bit of glue code in C, Alchemy allows to reuse some of the numerous open source C libraries available.

And when you appreciate the speed of Alchemy-compiled C code, you can wonder how it can possibly be so much faster than AS3. Unfair!

What makes Alchemy code so fast? The main secret is a faster memory management, because obviously C/C++ is all about pointers & malloc’ing. ByteArray in AS3 is kind of slow so Adobe had to hack the AVM2 to remove this bottleneck or Alchemy would have been pointless.

And the good news for us AS3 geeks is that it is possible to use this fast memory in AS3…

Continue reading « AS3 – Fast memory access without Alchemy »

AS3 – Eaze tween library update

Posted in AS3, Eaze, library on November 6th, 2009 by Philippe – 62 Comments

Let’s state it again: "tweening" is a commodity with plenty of alternatives, which means you’re not obliged to use a) crappy ones, b) bloated ones, and c) commercial ones.

Like many Flash developers I started developping Eaze because a) it’s fun, b) it’s (mildly) challenging, and c) I really had a few ideas to innovate in this field.

Since then I had the occasion to discuss (I should say brainstorm) with other Flash developers (hi Joshua and Steve) about our "tweening needs" (sounds dirty, isn’t it?) and our idea of the perfect library. This was very entertaining and they all gave me lots of crazy syntax ideas which turned out to be possible…

Continue reading « AS3 – Eaze tween library update »