Previous week Up Next week

Hello

Here is the latest OCaml Weekly News, for the week of May 02 to 09, 2017.

  1. OCaml / Ocsigen developer positions
  2. tjr_btree 0.1.0 (initial release)
  3. Other OCaml News

OCaml / Ocsigen developer positions

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2017-05/msg00004.html

Be Sport announced:
Be Sport is looking to hire developers for fulltime positions in Paris, for a
development and research work.

If you are interested, please email jobs@besport.com

Jérôme Vouillon and Vincent Balat

Profile 1: Development and animation of the Ocsigen project (Js_of_ocaml, Eliom,
...)

The developer will be integrated to the Ocsigen team, and will take in charge
the implementation and improvement of some modules for Web and mobile
development in OCaml. In particular, she/he will possibly work on off-line
mobile apps with Eliom, Ocsigen for ReasonML, Eliom apps on MirageOS,
client-server widgets for Js_of_ocaml and Eliom, etc. She/he will also take part
in the animation of the developers community, relations with users,
documentation, etc.

Profile 2: OCaml developers (mobile/Web)

The developers will take part in the development of some features of our apps.
They will be integrated in the programming team: participation in the writing of
specifications, implementation (client / server), stylesheets, testing … They
will initially work on improving existing features, before progressively taking
the lead on some components.

Skills in databases, Web technologies and/or machine learning are welcome.

The company:

Be Sport is a young tech company with an ambitious research and development
program. We believe in the use of modern technologies coming from research to
build strong basis for our apps. We work in close relationship with research
laboratories (CNRS, Inria, univ. Paris Diderot, Univ. Pierre et Marie Curie
...). Our main focus at the moment are languages and typing for Web and mobile
apps, recommendation algorithms for social networks, classification algorithms.

Our first app is a social network dedicated to sport.

Be Sport premises are located in the center of Paris.
      

tjr_btree 0.1.0 (initial release)

Archive: https://sympa.inria.fr/sympa/arc/caml-list/2017-05/msg00016.html

Tom Ridge announced:
tjr_btree is a B-tree library written in OCaml. The examples include a simple
on-disk key-value store.

https://github.com/tomjridge/tjr_btree

Example:

----
(** A simple example of a kv store. *)

open Small_string.O
(* SS is now an alias for Small_string *)

open Ss_ss_map_on_fd

(* filename *)
let fn = Default.default_filename

(* construct keys and values from an int *)
let k x = "k"^(string_of_int x) |> SS.of_string
let v x = "v"^(string_of_int x) |> SS.of_string

(* create and init store, write some values, and close *)
let do_write () = (
  print_endline "Writing...";
  (* create and initialize *)
  let s = ref (from_file ~fn ~create:true ~init:true) in
  (* get map operations *)
  let map_ops = imperative_map_ops s in
  (* write values *)
  for x=1 to 1000 do
    (* TODO this would be much faster if we used insert_many *)
    map_ops.insert (k x) (v x);
  done;
  (* close *)
  close !s
)

(* open store, delete some values, and close *)
let do_delete () = (
  print_endline "Deleting...";
  let s = ref (from_file ~fn ~create:false ~init:false) in
  let map_ops = imperative_map_ops s in
  for x=100 to 200 do
    map_ops.delete (k x);
  done;
  close !s
)

(* open store and check whether various keys and values are correct *)
let do_check () = (
  print_endline "Checking...";
  let s = ref (from_file ~fn ~create:false ~init:false) in
  let map_ops = imperative_map_ops s in
  assert(map_ops.find (SS.of_string("k100")) = None);
  assert(map_ops.find (SS.of_string("k1000")) = Some(SS.of_string("v1000")));
  close !s
)

(* actually execute the above *)
let _ = (
  do_write();
  do_delete();
  do_check()
)
----
      

Other OCaml News

From the ocamlcore planet blog:
Here are links from many OCaml blogs aggregated at OCaml Planet,
http://ocaml.org/community/planet/.

Full Time: Software Developer (Functional Programming) at Jane Street in New York, NY; London, UK; Hong Kong
 http://jobs.github.com/positions/0a9333c4-71da-11e0-9ac7-692793c00b45

Preprocessor extensions for code generation
 http://blog.shaynefletcher.org/2017/05/preprocessor-extensions-for-code.html

New opam features: “opam install DIR”
 http://www.ocamlpro.com/2017/05/04/new-opam-features-opam-install-dir/
      

Old cwn

If you happen to miss a CWN, you can send me a message and I'll mail it to you, or go take a look at the archive or the RSS feed of the archives.

If you also wish to receive it every week by mail, you may subscribe online.


Alan Schmitt