From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id 3F1747EE9C; Wed, 30 Nov 2016 23:46:45 +0100 (CET) Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=martindemello@gmail.com; spf=Pass smtp.mailfrom=martindemello@gmail.com; spf=None smtp.helo=postmaster@mail-ua0-f171.google.com Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of martindemello@gmail.com) identity=pra; client-ip=209.85.217.171; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="martindemello@gmail.com"; x-sender="martindemello@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of martindemello@gmail.com designates 209.85.217.171 as permitted sender) identity=mailfrom; client-ip=209.85.217.171; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="martindemello@gmail.com"; x-sender="martindemello@gmail.com"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-ua0-f171.google.com) identity=helo; client-ip=209.85.217.171; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="martindemello@gmail.com"; x-sender="postmaster@mail-ua0-f171.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3ATlV7YByh6ad1KNrXCy+O+j09IxM/srCxBDY+r6Qd?= =?us-ascii?q?2uwQIJqq85mqBkHD//Il1AaPBtSAra4cwLKL+4nbGkU4qa6bt34DdJEeHzQksu?= =?us-ascii?q?4x2zIaPcieFEfgJ+TrZSFpVO5LVVti4m3peRMNQJW2aFLduGC94iAPERvjKwV1?= =?us-ascii?q?Ov71GonPhMiryuy+4ZPebgFGiTanbr5+MBq6oRnRu8ILnYZsN6E9xwfTrHBVYe?= =?us-ascii?q?pW32RoJVySnxb4+Mi9+YNo/jpTtfw86cNOSL32cKskQ7NWCjQmKH0169bwtRbf?= =?us-ascii?q?VwuP52ATXXsQnxFVHgXK9hD6XpP2sivnqupw3TSRMMPqQbwoXzmp8rxmQwH0hi?= =?us-ascii?q?gZKzE58XnXis1ug6JdvBKhvAF0z4rNbI2IKPZyYqbRcNUdSmRcQ8ZRTDRBDZ2g?= =?us-ascii?q?YIsTAeQBOuNYoJP8p1sIsBCyAQahCefqxjJOm3T437A10/45HA7E0gwuH9wAvn?= =?us-ascii?q?fJotvrKKgfSvq6wLXSwDjZc/9axTXw5Y7VeR4hu/GMWrdwfNLWx0Y1DQPFklSQ?= =?us-ascii?q?qYr4ND2byOsDtHaU7+5kVeKolmUqrARxrSK1xscwi4nJgJ8axU7B9SpnxIY1Id?= =?us-ascii?q?q4RVV0Yd6hCpRQtiWaO5FqTcMlRmFloSA3waAIt568eSgF0pUnxxjHZvyGdYiI?= =?us-ascii?q?+BPjW/yLLTd2nnJpYL2/hxeu8Uig1+3zTdO430pNripAitXNtmoC1xzU6siAUP?= =?us-ascii?q?dy4kCh2TOJ2gvO6e9EOVg5mbTHJ5Ml2LI9lZoevV7dEiPrmkj6lrKae0c59uWu?= =?us-ascii?q?9u/peK/ppoWGOI9xkgz+Mrohmsi4AekgNwgBRWmb+eCl2L3+50L1XKxGjvMrnq?= =?us-ascii?q?TbrZzWP8sbpqm+Aw9a1oYs9QyzACuh0NQdhXUHLVRFdwybj4XxJV3CPPT1Ae28?= =?us-ascii?q?jlmsijtn2e3KM7/7DpnQLHXPja/tfbNn5E5dzAozw8pf55VRCrwZJfL8QFXxtM?= =?us-ascii?q?DZDh8/LgO73ePnB8t51oMaXmKCGaCZMKbIvl+J4uIjOfWDZIgQuDrlMfgq++bu?= =?us-ascii?q?jWMlmV8aZaSp2ocYaGu5HvRpPUqZZ2HhgswBEGcPpgoxVvbmiFyEUT5JZna9Rb?= =?us-ascii?q?gw5j8hCIi+F4fMWpitgKCd3Ce8BpBZenpJClWIEXvxc4WEWuwMaD6JL896kj0E?= =?us-ascii?q?UKChRJU72RGvsg/60btnIfDO9i0Wr5KwnORyssTXnBA0vRJuDt+W0ynZRmV9n2?= =?us-ascii?q?VOSSU3x6t/iUhw2laN0O5zhPkORvJJ4PYcdw4gKZ/ah8B3Lt32XgWJKtKAUkqn?= =?us-ascii?q?RNmrBDw1StUZzNoHYkI7ENKn2EOQlxG2CqMYwuTYTKc/9bjRij2sfss=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0AOCgBdVj9YhqvZVdFdHQEFAQsBGQYMg?= =?us-ascii?q?w0BAQEBAT06gQMHpEeCN4YqjBWCBimFeQKBdgdBEgEBAQEBAQEBAQEBEgEBAQg?= =?us-ascii?q?LCwkdMEIBAQMJBIFfGoIcAQEDARIRHQEbEgsBAwELBgUEBwcTHQICIgERAQUBC?= =?us-ascii?q?gQOBhMICgIOiDABAw8IDp56gTI/MotQggQFAR+DDQWDXgoZJwMKVIM0AQEBAQE?= =?us-ascii?q?BBAEBAQEBAQEBFwIGEoYshFuEdoJXgl0FhwoMiFmKaIZLikSBck+NcYdZhhqCS?= =?us-ascii?q?BMegRMPFg6BWxGCaywgggkdNIJ/gWODSAEBAQ?= X-IPAS-Result: =?us-ascii?q?A0AOCgBdVj9YhqvZVdFdHQEFAQsBGQYMgw0BAQEBAT06gQM?= =?us-ascii?q?HpEeCN4YqjBWCBimFeQKBdgdBEgEBAQEBAQEBAQEBEgEBAQgLCwkdMEIBAQMJB?= =?us-ascii?q?IFfGoIcAQEDARIRHQEbEgsBAwELBgUEBwcTHQICIgERAQUBCgQOBhMICgIOiDA?= =?us-ascii?q?BAw8IDp56gTI/MotQggQFAR+DDQWDXgoZJwMKVIM0AQEBAQEBBAEBAQEBAQEBF?= =?us-ascii?q?wIGEoYshFuEdoJXgl0FhwoMiFmKaIZLikSBck+NcYdZhhqCSBMegRMPFg6BWxG?= =?us-ascii?q?CaywgggkdNIJ/gWODSAEBAQ?= X-IronPort-AV: E=Sophos;i="5.31,723,1473112800"; d="scan'208,217";a="202387038" Received: from mail-ua0-f171.google.com ([209.85.217.171]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 30 Nov 2016 23:46:43 +0100 Received: by mail-ua0-f171.google.com with SMTP id 12so229566434uas.2; Wed, 30 Nov 2016 14:46:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=XRJb/1hF+pcUBLX+L/4wa6BPLAa7oThpcUnfP2vqmdY=; b=SI6ohMRyH5smavRNknmUqrqRmXCxKPsfayCj2KaQMqtHsI7swJwGgo1ofxKXKE+xw1 SJnHNJMFYQnwYnU25o+k5/T7eHclhVi3ulLZIXePcJFR9KovlxNwNW27zYw4F4aaKptH vso5n5lnsXuVcD+hffD+1gB41udOhwyFQErFuAko/tBienM4WAQAbeNXjjlEKu0Acwqu 0w2ohDkL5voodyKjrQDhwvXaSzQAgXjiQy1pF7F6KELGQxhbcb1QVERdzBQdngKZGMZN 38hOH8qE98VRaBF8+6WPMSoBVmmvbj+V53rifeiCz4h+OmqmDXrIILSa4GUEot5pIDO2 zFnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=XRJb/1hF+pcUBLX+L/4wa6BPLAa7oThpcUnfP2vqmdY=; b=KDOEFgNJswOOKs5ft+67zCN6+FIogKkxqBIdU1Xm9e6LeHAhHUBcRbapH/uLgT1EFQ nu7GUh4uqf/MeWj19Qj7X0lkBJB+SzqLb+tmaEMQ2Fkhby/lFe4r9YKWEFyXX/hhNqtZ NM8vTGrGA7SQGJWCU9C1uTA6ybZdeGPj1m8Wt2pKUnId3HBfTK7YO9imv0k+N4pZ7l5q tb2+bkOKGS4sE0KSshfa4WnqAJ4jtH28YFUFisaEiCEH6DUQvYUvZ5KwrQ67Yr8qS1J9 3Mc5Nw4dgete0xWq/lOezl1ghefppqW1ygUfLaffQGrjuzEyRE+YsC6B8oYvPq/xei59 Y5OQ== X-Gm-Message-State: AKaTC018SYnkfgkZwgKGS9qI3fPjm5FFsOFj5HJ9DOcgGDVHrpdfWXsR9C7Ur07GbRHgwpAPAkeN53cGgmO09w== X-Received: by 10.159.40.97 with SMTP id c88mr1196483uac.17.1480546002248; Wed, 30 Nov 2016 14:46:42 -0800 (PST) MIME-Version: 1.0 Received: by 10.31.172.68 with HTTP; Wed, 30 Nov 2016 14:46:41 -0800 (PST) In-Reply-To: <96757896-e79c-f940-fc3a-090fc1419df2@lexifi.com> References: <96757896-e79c-f940-fc3a-090fc1419df2@lexifi.com> From: Martin DeMello Date: Wed, 30 Nov 2016 14:46:41 -0800 Message-ID: To: Alain Frisch Cc: ocsigen@inria.fr, OCaml Mailing List Content-Type: multipart/alternative; boundary=94eb2c0483c089cc4005428c7a60 Subject: Re: [Caml-list] Announce: ocaml-vdom (pre-release) --94eb2c0483c089cc4005428c7a60 Content-Type: text/plain; charset=UTF-8 Looks very exciting, thanks for the release! Any tips on setting up a project? For example, with elm I use elm-webpack-starter [https://github.com/moarwick/elm-webpack-starter], which sets up an asset pipeline and a dev environment with live reloading. martin On Wed, Nov 30, 2016 at 8:52 AM, Alain Frisch wrote: > Dear all, > > You might be interested in the ocaml-vdom project which has been used by > LexiFi for some time and open-sourced recently. It contains two components > which we use to create our browser-side UIs with js_of_ocaml and which > might be useful to the community: > > - Bindings to the DOM and other browser APIs, implemented with > gen_js_api. (Partial bindings, expanded on demand.) > > - An implementation of a "virtual DOM" and the "Elm architecture", i.e. > a programming model where the UI is specified by a state type, a view > function (producing a functional version of the DOM), and an update > function that modifies the state based on messages (generated by UI events > or external interactions). > > > Project page: > > https://github.com/LexiFi/ocaml-vdom > > > -- Alain > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > --94eb2c0483c089cc4005428c7a60 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Looks very exciting, thanks for the release!

Any tips on setting up a project? For example, with elm I use elm-web= pack-starter [h= ttps://github.com/moarwick/elm-webpack-starter], which sets up an asset= pipeline and a dev environment with live reloading.

mar= tin

On Wed, Nov 30, 2016 at 8:52 AM, Alain Frisch <alain.frisch@lexi= fi.com> wrote:
Dear all,

You might be interested in the ocaml-vdom project which has been used by Le= xiFi for some time and open-sourced recently.=C2=A0 It contains two compone= nts which we use to create our browser-side UIs with js_of_ocaml and which = might be useful to the community:

=C2=A0 =C2=A0- Bindings to the DOM and other browser APIs, implemented with= gen_js_api.=C2=A0 (Partial bindings, expanded on demand.)

=C2=A0 =C2=A0- An implementation of a "virtual DOM" and the "= ;Elm architecture", i.e. a programming model where the UI is specified= by a state type, a view function (producing a functional version of the DO= M), and an update function that modifies the state based on messages (gener= ated by UI events or external interactions).


Project page:

=C2=A0 =C2=A0 =C2=A0https://github.com/LexiFi/ocaml-vdom


-- Alain

--
Caml-list mailing list.=C2=A0 Subscription management and archives:
https://sympa.inria.fr/sympa/arc/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs

--94eb2c0483c089cc4005428c7a60--