let author = “Rudi Grinberg”

Most recent posts:

  • Jul 22 - Free Monads in the Wild - OCaml Edition

    OCaml programmers don’t seem to resort to free monads much. I like to imagine that this is the case because we’re a practical bunch. But it could simply be that this technique like other monads is a bit heavyweight syntactically, let alone the performance implications it might have.

  • Feb 26 - Publishing an OPAM Package - a Checklist

    The process of publishing an opam package has come a long way from its modest beginnings. Nevertheless the opam team deserves praise for choosing an extremely simple and flexible model for contribution - the git commit. To me that explains how it aged gracefully with improvements such as:

  • Feb 15 - Scrap your Camlp4

    ppx has been out for a while but it seems like the community has been taking its time transitioning away from camlp4. There’s probably a couple of reasons for that:

  • Jan 06 - Omegle in N2O

    Recently I’ve been messing around with a new and exciting web framework in erlang called N2O. This framework appeals to me for a few reasons. These include:

  • Dec 13 - Type Safe Routing - Baby Steps

    Type safe routing means different things to different people. So let’s start by clarifying the intended meaning in this post. There are 2 widely used definitions:

  • Dec 11 - Abandoning Async

    There is an old and great schism in the OCaml community. The schism is between two concurrency libraries - Async and Lwt. As usual for these things, the two are very similar, and outsiders would wonder what the big deal is about. The fundamental problem of course is that they’re mutually incompatible. The result of this is a split OCaml world with almost no interoperability, and duplication of efforts.

  • May 23 - Introducing Humane-re

    OCaml is my favorite language, but one area where it (its tools rather) often falls short in practice is common string handling tasks where regular expressions are often involved. The kind of stuff that Awk and and scripting languages often get praised for. In other words, not getting in the way and allowing to get the job done with minimal boilerplate.

  • Apr 11 - Middleware in Opium

    In my previous post I’ve introduced opium in a beginner friendly way, while in this post I’ll try to show something that’s a little more interesting to experienced OCaml programmers or those are well versed with protocols such as Rack, WSGI, Ring, from Ruby, Python, Clojure respectively.

  • Apr 04 - Introducing Opium

    One itch that I usually need to scratch is setting up quick and dirty REST API’s - preferably in OCaml. OCaml does have a few options for web development but I found them to be not so great fits for my needs. To summarize:

  • Feb 10 - Omegle clone in Flask + Gevent + WebSockets

    Python ranks fairly high when it comes getting things done without too much ceremony in the programming community. I briefly had some doubts of this assertion of until I finally found Flask-Sockets. This small library makes it very natural to serve WebSockets in Flask/gevent. You can consider this blog post as an advertisement for this small but extremely useful library.