<<Previous Archive | Next Archive>>

CopperLicht 1.3.0 released and why Google Closure sucks

I just released the JavaScript WebGL Library CopperLicht in version 1.3.0. It includes several new features and major changes, for example enhanced shader support (callbacks for shader variables), better debugging support, possibility to clone 3D meshes. But the major change is that the whole library is now included in it's own namespace, CL3D, which makes it easier to use it together with other libraries, for example jQuery.

In previous versions, CopperLicht was optimized and minificated using the Google Closure Compiler, shortening lots of function and variable names, and cluttering random new variables all over the global namespace. Since the Closure compiler is quite popular, other libraries usually do the same, and when two such libraries get included together in one website, the generated new global variable names usually collide. Which basically sucks. There are (painful) workarounds for this, but honestly, they were a pain in the ass.

Additionally, once I put CopperLicht into it's new namespace, the closure compiler totally stopped behaving: It would put out invalid warnings and strip out symbols. Especially after updating to the latest compiler versions: Instead of improving the compiler, the developers obviously decided to include lots and lots of random warnings into it. (Come on, you want to force your coding style on me? No thanks. I think I know where I want to use the 'this' keyword and where not myself.) Reading the user forums and documentation, it seems Google Closure now is not intended anymore to be used by library developers (if it was ever, but it worked before for me). It is only useful in this case: Write an application, include all your libraries, and run the compiler over all code together to produce the end result. This works perfectly with Google closure, and produces excellent results.

Of course this isn't nice for my use case. So I tried out the alternative, Yahoo's YUI compressor. And interestingly, this is exactly what I needed: The compressor simply renames local names to produce a javascript code wich still does exactly the same, without any side effects. Perfect for developing a library. Nicely, ycompressor also does this quite fast, since it doesn't really analyze any code in depth for this.

So summarized: I probably should have named this blog post "[...] and why Google Closure sucks for libraries" instead, because it still is a useful tool. There are a lot of Closure vs. YCompressor comparison articles on the web, probably they also should note that those two can be used for totally different areas as well.

Flash coming with real 3D support

Adobe just announced that their next official Flash Player will support real, hardware accelerated 3D graphics. Basically, you will have access to 3D drawing functions with the ActionScript API, which is a great step forward: You will be able to create real 3D games with Flash then as well. Current 3D engines for Flash, like PaperVision, or the Flash 3D renderer included in CopperCube were basically only using the 2D drawing features of Flash and transforming all polygons from 3D into 2D manually. Altough with Flash Player 10, Adobe introduced some transformation functionality in their API, this was slow and lacked all the needed real 3D features, mainly for example a z-buffer, resulting in a lot of artifacts and limitations.

A scene created in CopperCube, rendered with the Flash 'Molehill' Player

'Molehill', now introduces real, GPU-accelerated 3D. Maybe it's because they fear Canvas and WebGL will make Flash irrelevant, but who cares. It's a great step forward.

Duing the last weeks, I also had access to the pre-beta version of Molehill and started porting the 3D engine in CopperCube over to it, and it works nicely. I'm really looking forward to the release of the new Flash player, it will mean that the flash version of CopperCube no longer sucks compared against the other release targets. And because CopperCube still supports also WebGL (and .exe and .app programs) as output besides flash, you will be on the safe side, should either WebGL or the new Flash become abandoned by the web community because of the other. :)

Mac App Store: The new censorship and revenue sucking tool?

Apple recently announced their Mac App Store which is basically their App store already known from the iPhone, but for the Mac Computers. Developers will be able to upload applications starting with November, and it's expected to go live for end users in January.

If you are a developer, the App Store initially sounds like a good idea. But Apple is Apple, and the details don't sound that nice: Apple wants 30% of the revenue if you publish your program on the Mac App Store. And additionally, you need to pay 99$ per year to access the Developer Program, only to get information about the App Store internals in order to develop for it. Additionally, Apple forces you to obey an incredible long list of stuff you may not do in your application: License keys? Forbidden. Own update mechanism? Forbidden. You app is similar to an app created by Apple? Forget it. Using your own copy protection scheme? No chance. And the list also includes other ridiculous stuff like "apps that [...] do not provide any lasting entertainment value may be rejected". Oh come on.

From a developers perspective, and known the bad history of Apple, rejecting plenty of totally valid apps for their own reasons, the App store currently looks to become a censorship and revenue sucking tool generating money for apple and putting us developers at the mercy of this company. And since the distribution of Apps via normal website downloads doesn't generate any money for Apple, I bet they'll make it more and more difficult in the future for developers to go that way instead.

But it's not that bad. Apple won't be that evil, right? Right?


Most people don't know that there is an easy way to create an .exe from your flash .swf files, especially if you are not using the Flash IDE but the flex compiler instead: Simply go to the directory runtimes\player\10\win, start FlashPlayer.exe, open your .swf with it and choose 'File -> Create Projector'. That's it.
Unfortunately, this lacks certain options. Your .exe still will look like the flash projector, with the menu bar and doesn't have the possibility to start in fullscreen and similar. There are various products available on the web which work around this, and create nicer .exe files from your flash file. I just tried out FlashPacker wich does exactly that and really liked it. It also has quite a reasonable price (39 euro).
[Nope, this is not an advertisement ;)]

WebGL closer than ever

Google just released Chrome 7.
I'm not a Chrome user myself (I prefer Opera), but this still is great news: Version 7 includes WebGL, although you still need to manually enable it. But the best part: The next version, Chrome 8 is already available in the developer channel, and WebGL is enabled in there by default. This release of version 7 now means that version 8 is very close and that it should not be much longer until WebGL is enabled by default in one of the major browsers. Probably in December already, as the wikipedia page suggests (de)?

Farewell my friend

Two months ago, there were rumors that Starcraft 2 was causing graphics cards to overheat. Although I read that Blizzard fixed the problem in the meantime, apparently Starcraft 2 killed my geForce yesterday. It was a spectacular disaster, with lots of blinking pixels and a flashing monitor, but in the end, it gave up and died.
Farewell my friend. I slayed countless virtual enemies with your help. Time to replace your dead remains with a new Radeon.

Looking for a good WYSIWYG HTML web editor on Linux?

If you are working with Linux and looking for a easy WYSIWYG web editor for creating HTML, PHP, ASP and whatever pages, you might want to try Website Painter. Simply download the windows version and run it using Wine, it seems to run perfectly:

Also featured on the official wine page for websitepainter. Quite impressive what those Wine developers did, the editor is using quite a lot of Windows functions.
Thanks to Nick Law for pointing this out (I didn't know it would run using wine) and creating the Wine page for the editor.

Twitter feed now embedded on this blog

Thanks for all the feedback, I've now embedded my twitter feed directly on the front page of this blog. Since I'm using a very old, manually enhanced version of Pivot, I've also embedded it manually using TwitterJs, a pretty nice piece of software. Simply download the .js (or even hotlink it from googlecode), and add code like this to your website:
<div id="tweetcontainer"><p>Loading tweets...</p></div>
  getTwitters('tweetcontainer', {
    id: 'yourtwittername',
    count: 5,
    enableLinks: true,
    ignoreReplies: true,
    clearContents: true,
    template: '<span class="status">%text%</span> <span class="time"><a href="http://twitter.com/%user_screen_name%/statuses/%id%">%time%</a></span>'

Not that complicated to do.

To tweet or not to tweet

Since I'm using Twitter now, I'm not always entirely sure what to blog and what to tweet. I don't want to write everything twice, so usually very short things which are just a few sentences now usually are tweeted, and the blog gets less postings, too bad. An option would be to embed the last few tweets into the side of this blog, but I'm not sure about this. But maybe it's better now anyway: The blog will only contain high quality articles from now on ;)
Any opinions about this?

Singlebörse zu verkaufen

Trying to sell my german dating website here, so this in in german, sorry. google translated version if you are curious.

Seit in etwa 2 Jahren betreiben wir hobbymäßig eine kleine aber erfolgreiche Singlebörse, die wir 'Bienen und Blumen' genannt haben. Leider fehlt uns aus diversen Gründen die Zeit, diese wesentlich länger weiter zu betreuen und auszubauen, darum haben wir uns überlegt diese nun abzugeben.

Die Börse ist im deutschsprachigen Raum (D,Ö,CH) als seriöser Gratis-Anbieter etabliert, hat derzeit ein wenig mehr als 15000 registrierte User, und jeden Monat kommen alleine über Suchmaschinen ca. 300 dazu. Wenn man ein wenig Werbung macht, werden es dementsprechend mehr. Die Singlebörse ist derzeit gratis zu benutzen, und macht Gewinn über Werbung, einfache Google ads. Die Seite hat ohne nachzuhelfen (was man tun sollte) derzeit ca. 15000 visits und 400000 views im Monat und eine durchschnittliche Besuchszeit von 10 Minuten pro user, was ziemlich überdurchschnittlich ist. Männeranteil ist 75%, Frauenanteil: 23%, Paare: 2%.

Die Software der Website ist wesentlich umfangreicher als die ähnlicher Börsen und enthält Forum, Gästebuchfunktion, Direktnachrichten, Chat, Statistiken, Merk- und Ignorierliste, umfangreiches Admininterface, und eine Schnell- sowie Detailsuche. Würde man eine Firma damit beauftragen sowas zu programmieren käme man vermutlich schnell auf Kosten zwischen 30000 bis 90000 euro, und ich kenne ein paar die sogar noch mehr nehmen würden :) (was bitte jetzt nicht für einen möglichen Verkaufspreis für die Seite verstanden werden soll)

Zusätzlich gibt's dann auch noch die angemeldete Marke 'Bienen und Blumen', die ich gratis dazu mitgebe :).

Auf jedenfall wäre es schön wenn sich jemand finden würde der die Seite übernehmen und im Idealfall auch so weiterführen möchte wie bisher. Ich würde die Seite dann auch übertragen und helfen sie auf 'nem neuem Server einzurichten. Ernstgemeinte Angebote oder Rückfragen bitte an mich, niko [at] ambiera.com.