Skip to content

Instantly share code, notes, and snippets.

View zshipko's full-sized avatar
🐢

zach zshipko

🐢
View GitHub Profile
@zshipko
zshipko / fields.ml
Created July 16, 2022 19:02
An example using `Obj` to index a record using an enum or int
(** An example using [Obj] index a record using an enum or int *)
module type Record = sig
(** [Record] defines two types, [t] and ['a field], [t] is the record type and ['a field]
defines the representation used for fields *)
type t
(** record type *)
type 'a field

Based on the outstanding changes and issues, it seems do-able to plan the release for sometime around April 3rd. This gives us two weeks to get everything together, which should be enough for what's listed below and in #658. Ifthat timeline is too agressive then we can re-adjust, but the goal is to release what we already have (with the necesarry fixes.)

Timeline

  • March 26th: finalize CHANGES.md and migration guide, make sure tutorial is up-to-date.
  • March 29th: finish outstanding PRs
  • April 1st/2nd: final code review
  • April 3rd: publish Irmin 2.0

Irmin 2.0 Release

The Irmin team is happy to announce the 2.0.0 release of Irmin, an OCaml library and command-line tool for building Git-like databases. This release includes many improvements made to the usability and consistency of the API in addition to some new features. A website and tutorial have also been created: irmin.io!

Updates

  • Added irmin-graphql package for serving Irmin data over GraphQL
    • You can also use irmin graphql on the command-line to start a server
  • Added irmin-test package to enable external Irmin backends to reuse the existing test suite
  • Irmin.Contents.Json and Irmin.Contents.Json_value content types were added
@zshipko
zshipko / config.ml
Created October 31, 2018 01:38
Example using irmin-graphql on MirageOS
open Mirage
let main =
foreign
~packages:[
package "irmin-mirage"
]
~deps:[
abstract nocrypto
]
git clone https://github.com/opencv/opencv || git -C ./opencv pull origin master
git clone https://github.com/opencv/opencv_contrib || git -C ./opencv_contrib pull origin master
rm -r opencv/build
mkdir -p opencv/build
cd opencv/build
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DWITH_FFMPEG=1 \

Keybase proof

I hereby claim:

  • I am zshipko on github.
  • I am zshipko (https://keybase.io/zshipko) on keybase.
  • I have a public key whose fingerprint is 1FDA DC8A 763B 78A1 2025 627B 16D2 BD94 6BC7 ECC9

To claim this, I am signing this object:

#use "topfind"
#require "hiredis"
let create_cluster start_port n =
let config = [
"cluster-enabled", ["yes"];
"cluster-config-file", ["nodes.conf"];
"cluster-node-timeout", ["5000"];
"appendonly", ["yes"];
"pidfile", ["redis.pid"];
#!/usr/bin/env sh
# This is used to create a minimal GNOME desktop, typically from an image like:
# https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/weekly-builds/amd64/iso-cd/firmware-testing-amd64-netinst.iso
# Install core desktop components
apt install xdg-utils xclip build-essential gnome-core git neovim gnome-builder clang
# Install neovim + config
git clone https://github.com/zshipko/vim-config
@zshipko
zshipko / redismod
Last active December 4, 2017 06:13
A script that simplifies the creation of Redis modules
#!/usr/bin/env sh
redis_path=${REDIS_SRC=/tmp/redis-src}
base=`pwd`
generated_header="// DO NOT EDIT - This file was automatically generated by redismod"
fetch_or_update_redis () {
git clone https://github.com/antirez/redis $redis_path || \
(cd $redis_path && git pull origin unstable && cd $base)
}
type time =
| Time of float
| Duration of float
exception Invalid_time
let to_float = function
| Time f -> f
| Duration f -> f