Here is the latest OCaml Weekly News, for the week of May 08 to 15, 2018.
Archive: https://discuss.ocaml.org/t/student-intern-positions-sap-innovation-center-network-potsdam-germany/1966/1Keiko announced:
SAP Innovation Center Network is looking for intern students to research, evaluate and extend MirageOS in the context of cloud applications. Our team is located in Potsdam, Germany. See job descriptions at https://jobs.sap.com/job/Potsdam-Intern-Mirage-OS-Research-&-Development-Job-BB/465260101/ and https://jobs.sap.com/job/Potsdam-Working-Student-OCamlReason-Developer-Job-BB/465257901/ Potsdam is a beautiful green city with many parks (and many of them are included in the UNESCO World Heritage). Berlin is reachable in less than 30 minute by local trains. For more details and questions, please contact email@example.com
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2018-05/msg00016.htmlGerd Stolpmann announced:
there is now ocamlnet-4.1.6 available: - compatibility with upcoming OCaml-4.07 See the project page for download, documentation, a detailed changelog, and the mailing list: http://projects.camlcity.org/projects/ocamlnet.html The repository has been moved to https://gitlab.camlcity.org/gerd/lib-ocamlnet3 opam follows soon.
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2018-05/msg00017.htmlGabriel Scherer announced:
From Friday 18 to Sunday 20 of this month, we are organizing a DocJam, a remote event where people are invited to contribute to the documentation of OCaml projects. This is open to all skill levels and should not require more than one or two hours at a time. Anyone is warmly welcome to participate. For more information, see the announce webpage http://gallium.inria.fr/~scherer/events/ocaml-docjam-may-2018/announce.html which links, in particular, to a Discuss thread ( https://discuss.ocaml.org/t/may-2018-ocaml-docjam-thread-may-18-19-20/1957 ) where you can ask any question (also feel free to send me an email), and group communication channels to chat with co-participants during the event. Happy documenting
Archive: https://discuss.ocaml.org/t/an-experimental-unofficial-ocaml-wiki/1972/1Yotam Barnoy announced:
There's a lot of stuff that isn't currently being documented in the OCaml world. Much of it has to do with the ecosystem, what libraries are good, which ones exist, which ones have issues, where to focus developer attention etc. [Awesome OCaml](https://github.com/rizo/awesome-ocaml) does some of this, but is hard to maintain via github. Other things that need to be properly documented are compiler internals, easy-find-links to good articles etc. Then there are many things I haven't even thought of that need to be documented. I'm a firm believer in feedback loops and incrementalism: I think once some things are documented, more and more will be as well, and that this will encourage more community growth. In that spirit, I've created a wiki at [ocaml.wikidot.com](ocaml.wikidot.com) to attempt to meet these demands. Again, it's entirely possible that this will fail - hence the point of calling this an experiment - but I hope it won't. Please note that I consider this a temporary home for the content. Good content can be copied gradually to `www.ocaml.org`, or perhaps the whole thing can be hosted on an official OCaml wiki at some point (perhaps at `wiki.ocaml.org` ?). As such, there are some guidelines to pay attention to, posted [here](http://ocaml.wikidot.com/meta:Contributing). Discussion channels for making large changes are in this forum (with the `wiki` tag) and the discord server in the #wiki channel. To contribute to the wiki, you need to register with wikidot, and then just via the widget at the bottom of the Contribution Guidelines. Now go forth and document stuff!Yotam Barnoy then added:
@kakadu made an excellent point on IRC, which is that wikis aren't really necessary nowadays since github provides very similar functionality with its combination of readme.md and links to other markdown documents. I think this may be true, and the advantages of using github's infrastructure over wikidot's are plenty. For one thing, wikidot has a different syntax from markdown, and markdown has become the industry standard. For another, not everyone wants a wikidot account, but everyone has a github account. Finally, using github means we're using git for version control, whereas wikidot has its own weird page-lock and history system. I briefly considered using github wikis, but I strongly dislike their look, and additionally, github's robots.txt file prohibits google from indexing any of the wikis. For these reasons, I've made a clone of the wiki on github. Right now I'm still evaluating, but I'm heavily leaning towards this version rather than the wiki version. The repo can be found [here](https://github.com/bluddy/ocamlverse) or with the shorter path https://git.io/ocamlverse, and is fully usable as is. Additionally, the pretty github pages version is [here](https://bluddy.github.io/ocamlverse) or at https://git.io/overse. I really think github changed the rules of the game here. Let me know if you like this version. The benefit of having such a simple system cannot be overstated.Ashish Agarwal replied:
@bluddy Thanks for setting this up. I think we can relax the view that ocaml.org has to adhere to some higher standard of quality or stability. There is some structure in ocaml.org that is difficult to change (which is not necessarily a bad thing, you can't have a good design and stable links if people keep re-organizing pages entirely). We have 4 primary landing pages: Learn, Documentation, Community, and Packages. These pages are heavily styled and are not so easy to change (in hindsight, this was perhaps a mistake). If you do change them significantly, it is expected that you have a pretty good grasp of all the content on ocaml.org because they are the gateway to *all* the content. You can't just delete items because then there is no link to that content from anywhere. So we would have to review such a PR carefully. However, you can have a lot of freedom on other pages, which are mostly content, exactly what you want to focus on. For example, OCamlverse's [Learning](https://bluddy.github.io/ocamlverse/learning/learning.html) page is similar to ocaml.org's [Tutorials](http://ocaml.org/learn/tutorials/) page, so I think all this content in essentially the exact same format could have been added directly to ocaml.org. A PR for something like this would be accepted easily. As pointed out, your Learning page is similar to awesome-ocaml, and I long ago proposed that an awesome-ocaml style list of links replace the content of the current Tutorials page. See [issue 502](https://github.com/ocaml/ocaml.org/issues/502). Just to give one more example, the FAQ page could be improved too. It's just a list, grouped into some categories. Anyone could add a FAQ or re-group the items. Such a PR would be accepted pretty easily. These pages are very "dynamic" in the sense you're saying. Only problem is no one has submitted such PRs.Bobby Priambodo said and Yotam Barnoy replied:
> I however notice some duplicate content from awesome-ocaml (especially in the > Ecosystem pages). I took most of that from awesome-ocaml so we have a good starting point. I changed some of the categories though and tried to make it more orderly, splitting up into multiple pages where I felt the content justified it. > How do you see the two collaborates? Will ocamlverse eventually supersede > awesome-ocaml? I see ocamlverse as a community-maintained site, organized for the needs of the community. Awesome ocaml by definition fits into the 'awesome' line of sites, and suffers somewhat for adhering to that format. Describing the state of the ecosystem is just one sub-function I foresee for ocamlverse. I'm happy to make just about anyone a maintainer of ocamlverse so that we can have a near-wiki experience, simply one maintained with git and using markdown. Any radical changes should probably be done through the PR process, but small to medium sized ones can be done directly. > Also, will using github pages solve the indexing issue? The github pages is a bonus -- a slightly nicer way of browsing the content that was just too easy to set up. github's robots.txt allows crawling only of the master branch of a repo (for this reason, ocaml's 'trunk' branch isn't indexed directly, for example), so we should be covered by that. > (I also saw your note on documentation best practices section; I’m okay with you > putting it inline, perhaps deprecating my repo and pointing it there if needed.) Great! I'd be happy to add you to the maintainers and you're welcome to do that if you want, or I can do it when I get a chance. In general, anyone who wants to help maintain ocamlverse (even if it's just to modify something small) can post their github username here and I'll be glad to add them. Just pay attention to the contribution guidelines (which need to be rewritten a little since it's no longer a real wiki).
Archive: https://discuss.ocaml.org/t/ann-passmaker-1-0/1974/1Dario Teixeira announced:
I'm happy to announce the release of Passmaker 1.0, a library and associated command line utility for the generation of memorable passphrases. The rationale for this project is fairly simple: Suppose you had to quickly memorise 64 bits of entropy. Which of the following would you rather memorise? - `8505741ffe0224c0` - `Orbital ape witnesses melodic berry from London` Please check out the README at [the project's homepage](https://github.com/darioteixeira/passmaker) for a full overview of its features. Passmaker is now available in OPAM, and is split into two packages: The library itself is available under the `passmaker` package, whereas the command line utility is available under `passmakercmd`. As always, comments / suggestions / bug reports are welcome!
Archive: https://discuss.ocaml.org/t/pyre-type-checking-in-ocaml-for-python/1986/1Shalok Shalom announced:
In case you missed it: Facebook does a Python type checker in OCaml https://pyre-check.org/
Archive: https://discuss.ocaml.org/t/orsetto-assorted-structured-data-interchange-languages/1991/1james woodyatt announced:
I have made available one of my personal side projects, [Orsetto](https://bitbucket.org/jhw/orsetto), for community review. My plan is for this library is for it to be an assortment of structured data interchange languages organized around a common foundation of various general purpose utilities. At the moment, only JSON is implemented, and I'm planning to implement CBOR next. Much of the foundation layer in Orsetto originated in my now outdated _Oni_ project. That project also included some experimental work in concurrent network I/O, which I'm hoping to revisit in the context of the algebraic effects feature in development on the OCaml multicore project. In the meantime, Orsetto is generally useful in OCaml 4.06.1 and later. I haven't posted a package on OPAM yet. I'm waiting for the OPAM 2.0 migration. If you're interested in playing with it now, then you'll need to be using OPAM 2.0, then clone the repository and install it with a pinned local source tree.
Archive: https://discuss.ocaml.org/t/regenerate-test-generation-for-regular-expression-engines/1994/1Gabriel Radanne announced:
I’m happy to announce the release of Regenerate, a tool to generate test cases for regular expression engines. You can read the details in the link below, or play around with the [online demo](https://drup.github.io/regenerate/). https://drup.github.io/2018/05/08/regenerate/
Archive: https://sympa.inria.fr/sympa/arc/caml-list/2018-05/msg00024.htmlMark Rafferty announced:
Fancy applying your functional skills in the world-changing decentralization industry? Please consider joining the team at DFINITY building the “Internet Computer”. Check out some sample functional maestros on the team:- *Andreas Rossberg* Previously a Google Staff Engineer, Andreas is co-creator of WebAssembly https://webassembly.org/, and maintains the reference specification in OCaml. WebAssembly is a fast evolving open virtual machine standard that is already supported by all the major Web browsers and will be run by backend processes on the Internet Computer. In earlier lives, Andreas lead the V8 language team and was a researcher in programming language semantics, type systems, module systems and functional programming. Coding WebAssembly systems is the next big thing! Location: Germany *Paul Liu* Previously an Intel Staff Engineer, Paul is a functional programming specialist who was previously responsible for Intel Labs’ Haskell compiler, which unlocked new levels of performance for software running on advanced multi-core chipsets such as the Xeon Phi. Paul has deep software development experience and currently works on the DFINITY client. He has a PhD from Yale where his advisor was Paul Hudak (one of the inventors of Haskell). Location: California *Ben Lynn* Previously a senior engineer at Google, Ben has numerous claims to fame. These include being the “L” from the groundbreaking BLS cryptography https://en.wikipedia.org/wiki/Boneh%E2%80%93Lynn%E2%80%93Shacham scheme applied by a DFINITY protocol to rapidly bring massive networks to consensus. Ben currently works on the DFINITY client, his own implementation of a WebAssembly virtual machine written in Haskell, and various new languages and compilers for WebAssembly also written in Haskell. Generally speaking, he likes making cool stuff https://crypto.stanford.edu/~blynn/. Location: California *Maciej Wos* Maciej is a programming language enthusiast with a background in compilers, cloud computing, and financial software. He studied Computer Science at Oxford University and Cambridge University and joined DFINITY after three years at Fugue where he helped build Ludwig, a modular, compiled language for infrastructure as code. Location: Japan *This is just a small sample of people in our fast-growing functional engineering team, which we are seeking to double in size. You will be working for the DFINITY Foundation, which has accumulated enormous funding to pursue one of the most ambitious technology projects of modern times.* Our functional code provides reference implementations for sophisticated distributed protocols, virtual machines, compilers, cryptography and other interesting things. The main requirement is that you are an awesome senior engineer and care about this field. We encourage applications from people with unusual backgrounds (autodidacts, hackers, and all comers). We provide brilliant salaries, benefits and incentive packages. Please contact firstname.lastname@example.org
Archive: https://discuss.ocaml.org/t/london-tezos-meetup-ocaml-programming-speaker-needed/1997/1stephenyang announced:
We are hosting a small meetup for Tezos in London. The topic is: [Is this the Next Big Cryptocurrency? TEZOS: The Digital Commonwealth](https://www.eventbrite.co.uk/e/is-this-the-next-big-cryptocurrency-tezos-the-digital-commonwealth-tickets-46039110218?ref=estw). We really hope there is an OCaml developer can be at the meeting and talk to the audience about some key advantages (or disadvantages) of OCaml language. Will you be free and interested in joining us to be one of the speakers? The time and location is: Fri 1st June 2018 19:30 – 22:00 BST Imperial College London Kensington, London, SW7 2AZ Please be in contact. email: email@example.com
Here are links from many OCaml blogs aggregated at OCaml Planet, http://ocaml.org/community/planet/. Ann: Regenerate | Drup's thingies https://drup.github.io/2018/05/08/regenerate/
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.