Using NodaTime in SQLite.Net

For a project I wanted to try out NodaTime, because of its nice handling with timezones.
In this project I have also to save the values into a SQLite database and for that I normally use for that.
Normally does not know how to handle the NodaTime types, but there are 2 places to add your own support for types.

1.) ExtraTypeMapping
You can specific for your types which SQLite type it should be. That could be INTEGER, REAL, TEXT or BLOB.
It’s a simply Dictionary<System.Type, String> you provide as constructor parameter, where you set the Type to BLOB.

2.) IBlobSerializer
When you save your values as Blob, you can use the BlobSerializerDelegate of and provide the appropriate delegates to serialize and deserialize your types.

When you combine both, you can simply save your own types as blob in your database.

The code for saving LocalDate, OffsetDateTime and Duration you can find here:

It is in F#, but it is understandable by C#-only developers. 😉

I am on GitHub

I finally found some time to push some of my projects to GitHub.

.) Efl- Sharp –
My C# bindings for the Enlightenment Foundation Libraries. I didn’t have much time in the last weeks to work further on them, but I will need them for another project, so there will be more new stuff in the future.

.) uTouch Gentoo ebuilds –
I ported my intial ebuilds to the latest versions of various packages and took the opportunity to also push these to GitHub.
In the repository will be also other ebuilds, as an ebuild for the driver for the Ralink rt3572 wlan chip.


Have fun with it.

Resurrect this blog & my current personal project

It is long ago that I wrote the last blog post here, but in the future I hope there will be more posts with lots of interessting development stuff 😉

And here is the interessting stuff.

I started writing C# bindings for the Enlightenment Foundation Libraries (EFL). They are used in the windowmanager E17 and are designed for usage from small, embedded devices up to multi core desktop pc’s.

You will find all important information on their website:

You can find the sources here:

I started implementing some common elementary widgets and some methods of edje to load an edje-file and get the loaded widgets.

What does currently not  work:
.) EinaList
There is some code for that already there, but it does not work at all.

.) The autotools build system
I used MonoDevelop as my IDE, which should generate Makefiles and all the stuff. But there are some major bugs in this generation. I didn’t have the time until now to fill bugs or patch MonoDevelop, but this is on top of my todo list.

How to get something build that is working
1.) run
2.) build the bindings with MonoDevelop
3.) run sudo make install
4.) go to %PREFIX%/lib/efl-sharp – here are the assemblies installed
5.) add executable right to all dll’s with sudo chmod +x *.dll
6.) install the libraries in the Global Assembly Cache: run for every dll-file sudo gacutil -i %FILENAME% -package efl-sharp

Now you have installed the libraries and you can work with it.

As an example app I started to write the RSS- reader efeed.
You can get the sources from here:
A screenshot:

Currently it is more an example and test app, but I plan to extend it to a more usefull application.

I appreciate any feedback and suggestions for efl-sharp and efeed

Mono 1.9.1 for Openmoko Freerunner

After long work and switching to another machine I was able to build mono 1.9.1 for the freerunner.

To install it, download the file and rename it to openmoko_mono_1.9.1.tar.gz. This archive contains all necessary dependecies to install mono, but I removed the debug versions to save space.

I am using the stable repository on my freerunner, but build mono with the branch because there was already the openembedded bitbake recipts. So before you can install mono you have to update libglib and libgthread.

Next install mono. Opkg will install several dependecies from the version and download them from Openmoko. Let him do and after opkg is finished, execute opkg list_installed | grep mono. Then simply update every single package to version 1.9.1 until all installed mono packages are from version 1.9.1. At the end, you have to update libnunit.

After all you should get this on the terminal on your phone:

I added also an updated sqlite version to the package, because with the installed version, mono has a problem to find an entry point in the native lib.

Download for unstable/testing Branch Users:

(see Post:

Mono 1.9.1 for Openmoko Freerunner

My next steps are to get gtk-sharp and NDesk.DBus to work and to get my changes for the bitbake recipts into the Openmoko/OpenEmbedded branch.

Have fun and stay tuned