Reading recently great Philip K Dick novel The Man in the High Castle I learned about I Ching – ancient Chinese philosophical, cosmological, but mainly divination text. I’m no big fan of divination, so in case of I Ching I would generally agree with this critical review. However the procedure of divination used within I Ching is quite interesting – hexagrams actually represent one of oldest binary codes. Idea that one’s fortune could be represented by 6 bits (actually it’s 12 bits, because for practical divination purpose we use 6 x 4 states) is quite amusing. So I decided to create online I Ching application as an exercise to learn bit more about Ocsigen web framework. You can check result of my effort here. Continue reading Ocaml, Ocsigen, I Ching and Web Applications
I slowly continue with learning of OCAML – as a training project I work on simplified Map-Reduce framework (utilizing Core and Async libraries). Here I had a need to plug a selectable code (map reduce algorithm) to main program. Ocaml provides Dynlink library, which can dynamically link either byte-code or native object/library to running program. This can be utilize to create simple plugin framework as explained below. Continue reading Plugins in OCAML with Dynlink library
As noted in this post I’ve been exploring OCaml language. OCaml is a compiled language and can be compiled either to native code (for supported platforms) or to byte code, which runs interpreted in provided run-time environment. I was wondering, what is performance difference between these two target codes. Continue reading Ocaml performance – native code vs byte code
I decided to increase my perspective in programming and this time to look at some functional language. Functional languages are here for quite some time, but never got into mainstream, however recently they are getting more popular. And some features from functional programming made their way into other languages (first class functions, closures, higher order functions, … ), so I was curious to learn a bit more of functional programming. For my exercise I decided to try OCAML.
Continue reading Learning OCAML