[cwn] Attn: Development Editor, Latest OCaml Weekly News

Alan Schmitt alan.schmitt at polytechnique.org
Tue May 9 06:16:48 PDT 2017


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

========================================================================
1) 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 at 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.
      
========================================================================
2) 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()
)
----
      
========================================================================
3) 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
(alan.schmitt at polytechnique.org) and I'll mail it to you, or go take a look at
the archive (<http://alan.petitepomme.net/cwn/>) or the RSS feed of the
archives (<http://alan.petitepomme.net/cwn/cwn.rss>). If you also wish
to receive it every week by mail, you may subscribe online at
<http://lists.idyll.org/listinfo/caml-news-weekly/> .

========================================================================

-- 
OpenPGP Key ID : 040D0A3B4ED2E5C7
Monthly Athmospheric CO₂, Mauna Loa Obs. 2017-04: 409.01, 2016-04: 407.42
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 454 bytes
Desc: not available
URL: <http://lists.idyll.org/pipermail/caml-news-weekly/attachments/20170509/0b82d15a/attachment.pgp>


More information about the caml-news-weekly mailing list