20 May 2019
This blog post is the third in a series, which describes how to implement a type-safe GraphQL server library in OCaml. In part 1, we described how define GraphQL scalars and objects in a type-safe manner, and in part 2 we extended this to include the notion of type modifiers (non-null and list).
05 Jan 2018
This blog post is the second in a series, which describes how to implement a type-safe GraphQL library in OCaml (see part 1 here).
29 Nov 2017
In July 2016, I spent some time writing a GraphQL endpoint for an existing application in Go. I chose to implement the endpoint in Go based on prior experience, good concurrency support and the desire to have static type system. The GraphQL library for Go, graphql-go
, worked pretty well, and I was able to build the desired functionality. Still, I was left frustrated by the lack of type safety offered in Go. Everywhere the library neccessitated the use of interface{}
types, and the application was littered with type casts. Code like the following was the rule rather than the exception:
04 Feb 2015
Amazon Key Management Service is a service for creating and controlling encryption keys in a safe manner, using Hardware Security Modules under the hood. KMS also offers hassle-free yearly key rotation, and logs all key usage to CloudTrail by default.
05 Oct 2014
In a previous blog post, I used Core, Async and bitstring to write a tiny library for talking to Memcached using the binary protocol. Reader and Writer are the primary I/O abstractions used in Core and also underlies my implementation. To better understand the mechanics of Reader and Writer and how to use them efficiently, I decided to examine the implementations and APIs more closely. The following is a summary of my findings.