- Verification of a reader-writer lock with TLA+A concurrent program is like a complicated state machine: the number of possible states increases exponentially with the number of threads and steps in the program logic. Reasoning about it can get quickly out … Continue reading Verification of a reader-writer lock with TLA+
- Optics: a hands-on introduction in ScalaOptics: purely functional abstractions to manipulate immutable objects Here’s a dummy 👶 domain model: case class Street(number: Int, name: String); case class Address(city: String, street: Street); case class Company(name: String, address: Address); case class … Continue reading Optics: a hands-on introduction in Scala
- Auto-reconnecting and address-tracking WebSocket clientA common requirement for any web app taking advantage of WebSockets is to maintain the link open, even in occurrence of errors or disconnection. It’s also often the case that we want to allow … Continue reading Auto-reconnecting and address-tracking WebSocket client
- Installing NixOSThis is just a small introduction to a Linux distribution that’s been getting traction lately, especially in functional programming ecosystems. NixOS: The purely functional Linux distribution NixOS is a really cool idea: the OS … Continue reading Installing NixOS
- Conversational agents (aka “bots”): an overviewIntroduction Conversational agents or in short Bots are interfaces emulating a conversation with the user via textual entry or speech, typically to carry out some action. This field has seen some recent interest and … Continue reading Conversational agents (aka “bots”): an overview
- Natural Language Interfaces to Databases (NLIDB)This article presents an overview the history of this field and describes some recent and less recent attempts at natural language interfaces to databases. Definition A natural language interface to a database (NLIDB) is … Continue reading Natural Language Interfaces to Databases (NLIDB)
- Marble testing redux-observable epicsOne great benefit of defining the sequence of redux actions as an observable is the ability to mock the scheduler to unit-test the asynchronous behavior of the application, redux-observable epics in particular. One can … Continue reading Marble testing redux-observable epics
- Grpc-java generic gateway/reverse proxy (in scala)In certain scenarios, exposing a grpc service through a gateway or reverse-proxy is an interesting option. Examples of such cases are: * Authentication of incoming calls is sometimes best handled by a dedicated party … Continue reading Grpc-java generic gateway/reverse proxy (in scala)