Today happened a lot in trying to compile alphaTab to Java. Cauê has commited a small change which fixed the bug I encountered. A this time I was able to create a non-error Java build of alphaTab. On this base I was able to create the platform abstraction implementation for Java and to setup a small dummy UI.
Too bad that alphaTab is not running yet.
At this part I encountered a lot of exceptions. I was able to fix two of those minor bugs by changing the generated code. But after that: Still a lot of weird exceptions (NullPointerExceptions, infinite loops, ArrayIndexOutOfBoundException,…).
At least it seems that simple GuitarPro files can already be loaded into the song model. But the layout- and render engine are still producing some errors.
For today it’s way too late to dig deeper into the error causes. We will see what the next days will bring.
A few days ago Cauê Waneck (@cwaneck) contact me if I am interested into testing his new haXe targets. Cauê was working on C# and Java targets quite a long time in order to provide one of the most requested haXe targets.
What is haXe?
Maybe some of you are wondering now: What is haXe?
For me it’s one of the most awesome languages and platforms I ever used.

haXe Logo
On the haXe website it is described like this:
haXe (pronounced as hex) is an open source programming language
While most other languages are bound to their own platform (Java to the JVM, C# to .Net, ActionScript to the Flash Player), haXe is a multiplatform language.
It means that you can use haXe to target the following platforms :
- Javascript : You can compile a haXe program to a single
.js file. You can access the typed browser DOM APIs with autocompletion support, and all the dependencies will be resolved at compilation time.
- Flash : You can compile a haXe program to a
.swf file. haXe is compatible with Flash Players 6 to 11. haXe offers very good performance andlanguage features to develop Flash content.
- NekoVM : You can compile a haXe program to NekoVM bytecode. This can be used for server-side programming such as dynamic webpages (using
mod_neko for Apache) and also for command-line or desktop applications, since NekoVM can be embedded and extended with some other DLL.
- PHP : You can compile a haXe program to
.php files. This will enable you to use a high level strictly-typed language such as haXe while keeping full compatibility with your existing server platform and libraries.
- C++ : You can generate C++ code from your haXe source code, with the required Makefiles. This is very useful for creating native applications. The NME library uses this to run haXe code on iOS, Android, etc.
- C# and Java targets are coming soon! (from @cwaneck)
(http://www.haxe.org/doc/intro, 12.04.2012)
In short this means: You write your application or game in haXe and using the haXe compiler you get the same source code written in JavaScript, Flash, PHP or C++.
The idea of MVC finds his best practice in a language like haXe. You create your application core in haXe and can compile you application library to the platform you need. On top of this you can create a desktop application, web application or whatever you desire.
Java and C# target
A lot of users were requesting a C# and Java target for haXe. It is quite obvious why: Nowadays they are two of the mostly used programming languages and especially in the modern times of SmartPhones and their apps, those targets are needed to target Android and Windows Phone 7. But also for creating desktop applications Java and C# are a major improvement.
Cauê asked me to help him with the core library implementation and if I can provide showcases for his talk on the WWX2012 (Worldwide HaXe 2012). One of my biggest hobby projects I am working on, is written in haXe: alphaTab
alphaTab combines my two major hobbies: programming and playing the guitar. alphaTab is a HTML5 music notation and guitar tablature rendering engine. And it’s written in haXe! I can write my application in an object oriented and typesafe environment, then compile it to JavaScript. alphaTab will use the HTML5 canvas to render the music notation.
Now using Cauê’s target I will try to compile alphaTab to Java and C#. I will probably not be able to create an Android application since I’m not familiar with Android programming yet, but I will try to create a Java Swing Desktop application based on the alphaTab code base I already have.
It seems there are currently only minor bugs in compiling the whole alphaTab source code to Java. One of the major things currently missing are the class definitions of Java which I need. To speed up the development (Cauê’s talk is already on Sunday) I will simply create the required abstraction classes in Java and refer to them using the external class feature of haXe. This way I only have to create two external class definitions of the two major platform abstraction classes needed for alphaTab (Canvas and File Loader).
As far I can see the Java target uses quite a lot of workarounds to support all the language features of haXe (Get this Oracle: An unpopular language like haXe has more and better language features than Java, one of the majorly used languages in the world). Those workarounds are necessary and quite well done. The source code resulting by the target should be usable from non a haXe environment without major problems.
I hope I will be able to create a working Java alphaTab version till Saturday. For now the way how inline functions are generated prevents me from compiling a stable alphaTab version.
I am always encountering the same problem when I create new WordPress theme: How to start?
The problem is that WordPress only ships with the default themes twentyten and twentyeleven. But both of them are not very suitable for creating own themes from scratch. They have a lot of features enabled that you might not have in your own theme.
The solutions are called: Blank/Naked WordPress Themes.
Speckyboy has created a quite nice list of those themes. Simply choose the one most suitable for you and use it as a base.
http://speckyboy.com/2010/03/22/10-blanknaked-wordpress-themes-perfect-for-development/
I will use Starkers HTML5 theme. It is the most modern blank theme I found in the list. It uses HTML5, CSS3 and Modernizer, the CSS files include nice comments assisting your development.

Info: http://starkerstheme.com/
Starkers HTML5 on Github: https://github.com/nathanstaines/starkers-html5
I think it is the 1000st blog I created to post my stuff on. I never managed to maintain the site like I wanted to.
My idea of CoderLine was to create some kind of website where I publish my projects, tutorials and stuff like that. This time I want CoderLine to be my personal blog about software development where I can post my results about my projects and what I am currently working on. Basically: One more blog of a software developer in the millions already existing.
I am not targeting to get a lot of blog followers or stuff like that. Rather I’d like to be one of the search results providing problem solutions for people searching for software development problems.
Currently there is only the default WordPress theme till I have implemented my own new design I created today.

It is a more clean and simple remake of my old design and is more focused on writing simple blog posts, not more.