diff --git a/data/planet/ahrefs/building-react-server-components-in-ocaml.md b/data/planet/ahrefs/building-react-server-components-in-ocaml.md new file mode 100644 index 0000000000..a48f3bb7af --- /dev/null +++ b/data/planet/ahrefs/building-react-server-components-in-ocaml.md @@ -0,0 +1,14 @@ +--- +title: Building React Server Components in OCaml +description: 'Enhancing User Experience and Developer Productivity: implementing React + Server Components in OCaml at Ahrefs' +url: https://tech.ahrefs.com/building-react-server-components-in-ocaml-81c276713f19?source=rss----303662d88bae--ocaml +date: 2023-11-02T18:29:55-00:00 +preview_image: https://miro.medium.com/v2/resize:fit:697/1*YsvzQSnttCQcxFPnA-DtfA.png +featured: +authors: +- Ahrefs +source: +--- + +

One of the main goals for our frontend team this year has been to make Melange production-ready and integrate it further into the OCaml ecosystem. We have previously shared how Melange integrates with Dune and opam, and how we are using it to drive our frontend needs.

Removing friction between Melange and OCaml has allowed us to explore projects that one couldn’t even contemplate before. As an example, we embarked on an experiment to render React components to string using OCaml on our servers. The objective was to enhance the user experience when loading Ahrefs product pages in web browsers without introducing the complexity of managing two implementations for each component. You can find a detailed explanation in David Sancho’s blog post.

This exploration was successful, and we are already using the results in some production apps, such as wordcount.com. We now have solid evidence that using OCaml to render React components server-side Blazingly Fast™️ is indeed attainable.

So our next step will be to double down on this effort. We want it all:

Most of the applications on the Ahrefs product site are a series of dashboards that allow users to visualize web and SEO data in informative ways, and navigate through to gain more insights. Because we render a lot of data-intensive components, we believe that React Server Components, Suspense and Streaming are a great fit for our use case.

So our plan is to add full support for React Server Components in OCaml. Andrey Popp (who is part of the Ahrefs backend team, but has a frontend heart ❤️) has already shown this is possible, and now we want to make it work inside our frontend stack.

This plan will require some changes in the underlying toolchain we are using (Dune, Melange and ReasonReact):

React Server Components will be our main focus, but we also plan to continue improving the tools and documentation that we have shared along the way:

We’re truly thrilled with the progress we’ve achieved so far, together with Melange author and maintainer Antonio Monteiro, and Dune maintainer Rudi Grinberg. Without their invaluable guidance and contributions, we couldn’t have reached this milestone. We are now developing upon a stable foundation that we will leverage to build our frontend apps in the coming years.

We owe the initiation of this new chapter to the exceptional groundwork laid by our colleague David Sancho. His relentless efforts have been the driving force behind the integration of React with OCaml. Additionally, Andrey Popp provided the crucial proof that it was indeed possible to use Server Components in OCaml.

Looking forward, we plan on maintaining the parts of Dune and Melange that we use every day, whilst improving them with additional functionality needed to make React Server Components in OCaml a reality. It is our continued commitment to provide top-tier experiences for both Ahrefs developers and users. The journey continues, we don’t know where it leads yet, but we will surely be sharing our progress with you.


Building React Server Components in OCaml was originally published in Ahrefs on Medium, where people are continuing the conversation by highlighting and responding to this story.

diff --git a/data/planet/cwn/ocaml-weekly-news-07-nov-2023.md b/data/planet/cwn/ocaml-weekly-news-07-nov-2023.md new file mode 100644 index 0000000000..6e8b29e32c --- /dev/null +++ b/data/planet/cwn/ocaml-weekly-news-07-nov-2023.md @@ -0,0 +1,13 @@ +--- +title: OCaml Weekly News, 07 Nov 2023 +description: +url: https://alan.petitepomme.net/cwn/2023.11.07.html +date: 2023-11-07T12:00:00-00:00 +preview_image: +featured: +authors: +- Caml Weekly News +source: +--- + +
  1. A second article about Miou
  2. atddiff: report incompatibilities after modifying a typed interface
  3. OCaml implementation of webbench
  4. Using Docusaurus to document an OCaml project
  5. Release of ocaml-sf/learn-ocaml:0.16.0
  6. Discord.ml: Eio-based Discord library with voice support
  7. Release of Fmlib 0.5.7
  8. Survey on the new "Getting Started" Documentation on OCaml.org
  9. Other OCaml News
diff --git a/data/planet/cwn/ocaml-weekly-news-14-nov-2023.md b/data/planet/cwn/ocaml-weekly-news-14-nov-2023.md new file mode 100644 index 0000000000..3e955578b6 --- /dev/null +++ b/data/planet/cwn/ocaml-weekly-news-14-nov-2023.md @@ -0,0 +1,13 @@ +--- +title: OCaml Weekly News, 14 Nov 2023 +description: +url: https://alan.petitepomme.net/cwn/2023.11.14.html +date: 2023-11-14T12:00:00-00:00 +preview_image: +featured: +authors: +- Caml Weekly News +source: +--- + +
  1. Release of Topiary 0.3.0
  2. First release of OCaml bindings to the Polars dataframe library
  3. How-To: Buck 2 and OCaml - Build system
  4. Release of Moonpool 0.5
  5. Zipc 0.1.0
  6. New Tutorials on Basics of OCaml
  7. cll 0.2.0 - mutable circular/cyclic doubly linked lists
  8. Global dead code elimination in js_of_ocaml
diff --git a/data/planet/cwn/ocaml-weekly-news-21-nov-2023.md b/data/planet/cwn/ocaml-weekly-news-21-nov-2023.md new file mode 100644 index 0000000000..40a7d10478 --- /dev/null +++ b/data/planet/cwn/ocaml-weekly-news-21-nov-2023.md @@ -0,0 +1,13 @@ +--- +title: OCaml Weekly News, 21 Nov 2023 +description: +url: https://alan.petitepomme.net/cwn/2023.11.21.html +date: 2023-11-21T12:00:00-00:00 +preview_image: +featured: +authors: +- Caml Weekly News +source: +--- + +
  1. opam 2.2.0~alpha3
  2. ocaml and povray
  3. the beginning of a platformer
  4. ocaml shmups
  5. Docfd: TUI fuzzy document finder 1.9.0
  6. Tezt 4.0.0
  7. OCaml 5.1.1 : incoming breaking change in the ~Marshal~ module
  8. The OCaml Platform Roadmap is Adopted
  9. Ppxlib dev meetings
  10. MirageVPN (an OpenVPN™ implementation) is resurrected
  11. Other OCaml News
diff --git a/data/planet/frama-c/metacsl-for-frama-c-27x-cobalt.md b/data/planet/frama-c/metacsl-for-frama-c-27x-cobalt.md new file mode 100644 index 0000000000..b962c98da4 --- /dev/null +++ b/data/planet/frama-c/metacsl-for-frama-c-27x-cobalt.md @@ -0,0 +1,13 @@ +--- +title: MetAcsl for Frama-C 27.x Cobalt +description: +url: '%20https://frama-c.com/fc-plugins/metacsl.html%20' +date: 2023-11-07T00:00:00-00:00 +preview_image: +featured: +authors: +- Frama-C +source: +--- + + diff --git a/data/planet/tarides/how-to-install-ocaml-5-a-video-tutorial.md b/data/planet/tarides/how-to-install-ocaml-5-a-video-tutorial.md new file mode 100644 index 0000000000..e4c9d9dee7 --- /dev/null +++ b/data/planet/tarides/how-to-install-ocaml-5-a-video-tutorial.md @@ -0,0 +1,20 @@ +--- +title: 'How to Install OCaml 5: A Video Tutorial' +description: "Have you had difficulty installing OCaml for your projects? We have + created a video tutorial showing you how to use Opam to install OCaml on\u2026" +url: https://tarides.com/blog/2023-11-21-how-to-install-ocaml-5-a-video-tutorial +date: 2023-11-21T00:00:00-00:00 +preview_image: https://tarides.com/static/6cebb5e1e17cc396d24242afb53aba36/764f4/zoomdogs.jpg +featured: +authors: +- Tarides +source: +--- + +

Have you had difficulty installing OCaml for your projects? We have created a video tutorial showing you how to use Opam to install OCaml on Linux and macOS.

+

All you need to complete the tutorial is a computer running either Linux or macOS, and an internet connection. By the end of the tutorial you will have OCaml 5 installed on your machine, and can start your journey with OCaml. For ideas of what to do next, check out the tutorials on OCaml.org.

+

OCaml Tutorial – Downloading and Installing OCaml on Linux and macOS

+

Our goal is to promote and encourage wider adoption of OCaml, and to that end we support the OCaml Platform. The Platform gives users an overview of the active tools available in OCaml, streamlining their experience in setting up an OCaml toolsuite. The video uses the recommended toolchain outlined in the OCaml Platform.

+

As a part of encouraging the adoption of OCaml, we are committed to simplifying the process of learning the language. We recognise that everyone learns differently. Some people prefer to read tutorials and do exercises, and others use videos to understand concepts visually. Since most of us combine different ways of learning to fit our needs, it’s important for us to provide a visual alternative to the installation instructions.

+

There are several great content creators making videos about OCaml, including streamers that let you follow along as they are hacking. We are excited to see the community growing in this way, and welcome this contribution to the OCaml ecosystem. If you would like to engage more with the OCaml community check out OCaml Discuss.

+

Depending on whether users find this kind of content helpful, we will continue to create more tutorials. So let us know what we can improve and if there are topics you would like us to cover next! You can comment directly on the video, or chat with us on X (formerly known as Twitter) or LinkedIN.

diff --git a/data/planet/tarides/ocaml-hacking-day-in-chennai.md b/data/planet/tarides/ocaml-hacking-day-in-chennai.md new file mode 100644 index 0000000000..60a84d2481 --- /dev/null +++ b/data/planet/tarides/ocaml-hacking-day-in-chennai.md @@ -0,0 +1,82 @@ +--- +title: OCaml Hacking Day in Chennai! +description: "It is a truth universally acknowledged, that a programmer in possession + of a free Saturday afternoon must be in want of a good old OCaml\u2026" +url: https://tarides.com/blog/2023-11-09-ocaml-hacking-day-in-chennai +date: 2023-11-09T00:00:00-00:00 +preview_image: https://tarides.com/static/18ab75716002f9a9cc41bf009fc2fcba/2070e/groupchennai2.jpg +featured: +authors: +- Tarides +source: +--- + +

It is a truth universally acknowledged, that a programmer in possession of a free Saturday afternoon must be in want of a good old OCaml hacking session. To address this pressing need, we recently hosted another OCaml Hacking Day event – this time at our Tarides India office in Chennai. We had a total of twelve hackers with varying levels of experience participating. Everyone gathered for talks, snacks, mingling, and most excitingly some hands-on hacking!

+

A Talk and a Welcome

+

People began to arrive at the office at 14.30, getting themselves situated in the dining room (probably admiring all the beautiful plants on the way). To kick things off, KC Sivaramakrishnan gave a talk welcoming the participants and introducing them to OCaml and Tarides.

+

+ + + KC is sitting on a bar stool with his laptop open in front of him on the right hand side of the image. He is speaking and making a gesture with his hands, looking to his right towards his presentation slide. The slide is at the centre of the image, and it says OCaml Hacking Today with some smaller bullet points beneath the heading. There are two other people in the image also looking at the presentation slide, both sitting on chairs on the right hand side behind KC. + +

+

For the uninitiated: we’re a tech company of over 70 people from across the world, in countries including Denmark, Spain, USA, Australia, and Finland. This is in addition to our three main offices in France, India, and the UK. KC further explained how we focus on building robust and high-performing systems in OCaml. In a nutshell, this includes working on big features like OCaml Multicore; the OCaml Platform with build, package, editor, and documentation tooling; cutting-edge technologies like Mirage and SpaceOS; and finally on community-focused projects including OCaml.org and the maintenance of essential OCaml libraries.

+

With introductions out of the way, KC moved on to the heart of what it means to contribute to open-source projects. He likened it to maintaining a public garden, a useful simile that emphasises the key aspects that make open-source ecosystems successful. In open-source, you need to work collaboratively, balancing the needs and wants of the many with your own interests. Open-source community projects are designed to benefit not just the contributors but also others in the community who may not be part of that particular effort. Projects also (hopefully) outlast just one contributor: as more people join and care about something, it takes on a life of its own. Finally, open-source community projects require that participants allot significant amounts of time toward maintenance.

+

Public gardens also require a sense of community planning and collective responsibility. No one person can (hopefully) put down a pool or an ice rink in a public park just because they want to, it has to benefit the entire community that uses it. For public gardens to retain their value, a group of people have to take on necessary but unglamorous tasks: weed pulling, leaf raking, bulb planting, and so on. A garden that’s properly maintained and cared for can bring value to an entire community for multiple generations.

+

This idea is particularly impactful for people who are used to working on code in individual projects that have distinct ‘beginnings’ and ‘ends’ – for example university students who work on things in class. The public garden simile helps us understand the traits that define open-source systems and make them beneficial.

+

Lastly, KC encouraged everyone to get stuck into some hacking – inspiring several participants to make their first open-source contribution during the day!

+

+ + + Five people are sitting outside on a large covered roof terrace. They are gathered around two coffee tables with their laptops. Three of them are having a discussion, and the two others are looking at a laptop and focusing on that. There are several potted plants along the railing of the terrace, and we can see the wall of a white house in the background as well as a tree. + +

+

Get Hacking!

+

To make things as easy as possible for the participants, the engineers at the Chennai office made a great list of projects suitable for different experience levels. Each project had a description, a difficulty level from one to five, and any extra references that could be useful. Everyone would pick a project and get started, with Sudha, Shakthi, and KC on standby to help out if anyone got stuck.

+

An impressive amount of contributions came out of the Hacking Day, with several pull requests created by the end of the session:

+ +

Snacks & Swag

+

We couldn’t let our visitors leave hungry or empty-handed! There was a delicious assortment of samosas in the afternoon and of course pizzas in the evening. Having food together was a great opportunity for people to have discussions and share their experiences even after the main hacking was done.

+

+ + + Five women are seated around a dining table on the terrace having food. The angle is from head of the table looking at the other end. One woman is looking into the camera and smiling. In the background are two young children playing. The wall behind the table is white, and to the right is a banister behind which is the white wall of another house. + +

+

We also gave attendants an assortment of swag to take home – including a t-shirt, custom keyrings, stickers, and flyers.

+

+ + + A satchel type back with a black-and-white chevron design and a brown handle and shoulder strap lies on a white table. Attached to the bag is an OCaml keychain,which looks like a black square with the orange OCaml camel silhouette on top. Next to the back is a set of keys which also have the same keychain attached. + +

+

Until Next Time!

+

It was great to see such interest in OCaml and open-source programming – hopefully it has given everyone a taste for more. We look forward to seeing more people attend our Hacking Days in the future, so keep an eye out for future announcements. You should follow us on X (formerly known as Twitter) and LinkedIN to stay up-to-date with what we’re up to as well as when we host events.

diff --git a/data/watch.yml b/data/watch.yml index 403f0f5fb1..debefa30a6 100644 --- a/data/watch.yml +++ b/data/watch.yml @@ -323,6 +323,16 @@ watch: published_at: 2023-09-20T11:27:06.813Z language: Unknown category: Science & Technology +- name: Develop Cross-Platform Software using 2+ Languages + description: "Explore how high school robotics software was developed that works + on Android phones and desktop PCs. Use OCaml alongside common programming languages + like Java and Python.\r\n\r\nDkSDK Subscription: https://diskuv.com/pricing/\r\nLearning + OCaml: https:..." + embed_path: /videos/embed/6162e7b7-f2dd-47e6-8133-c4126ce1b508 + thumbnail_path: /static/thumbnails/4a50eb98-ab79-4a57-87d9-a55a91654301.jpg + published_at: 2023-11-16T22:18:27.526Z + language: Unknown + category: Unknown - name: Digodoc and Docs description: In this talk, we will introduce a new tool called digodoc, that builds a graph of an opam switch, associating files, libraries and opam packages into