-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
199 additions
and
0 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,190 @@ | ||
{ | ||
"cells": [ | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"# State of FsLab 2023\n", | ||
"\n", | ||
"_By [Kevin Schneider](https://github.com/kMutagene) on behalf of the FsLab steering committee_\n", | ||
"\n", | ||
"This blog post is part of [F# Advent Calendar in English](https://sergeytihon.com/2023/10/28/f-advent-calendar-in-english-2023/) organized by Sergey Tihon, a decade-long tradition and cornerstone of the F# community.\n", | ||
"\n", | ||
"For FsLab, the last three years were focused on fundamental reorganization, which I would like to recap, as well as provide an outlook on what is to come in 2024.\n" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## History\n", | ||
"\n", | ||
"First, a short look back to contextualize what a 're-organization' means for FsLab.\n", | ||
"\n", | ||
"### First iteration\n", | ||
"\n", | ||
"Initially (around 2015), FsLab was created as a set of .NET data science libraries and tools by prominent F# community figures (see a full list, for example, [here](https://web.archive.org/web/20160310192729/http://fslab.org/)). Together with a Visual Studio extension and literate programming, it was possible to create documents that behaved similarly to interactive Jupyter notebooks. Some extremely valuable contributions to the F# data science ecosystem originate here.\n", | ||
"\n", | ||
"The number of libraries combined with the custom tools needed to make this work proved to be too much for the community to maintain once the initial batch of maintainers moved on to other projects. This led to the significant individual libraries (e.g., FSharp.Data) being maintained, but the glue between them being left behind.\n", | ||
"\n", | ||
"### Update discussions\n", | ||
"\n", | ||
"Don Syme kicked off a [long discussion thread](https://github.com/fslaborg/zzarchive-FsLab/issues/137) on how to update FsLab in 2018, where Timo, Benedikt, and I joined in 2020 and eventually [offered to take over the github organization](https://github.com/fslaborg/zzarchive-FsLab/issues/137#issuecomment-742060792). We were at that time using individual FsLab libraries from the original FsLab together with our own libraries in our research and teaching." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## Two Pushes\n", | ||
"\n", | ||
"The last three years basically consisted of two pushes for FsLab:\n", | ||
"\n", | ||
"- Setting up new foundations in 2021/2022:\n", | ||
" - **FsLab as a center of gravity for F# data science** - I gave a talk about this at the [dotNETConf: Focus on F#](https://www.youtube.com/watch?v=7hg759ErQZ8&list=PLdo4fOcmZ0oV2uhlVIItfXxuRXsv-gXD5&index=4)\n", | ||
" - Set up of an [Open Collective](https://opencollective.com/fslab) to have a place where people can donate money for FsLab\n", | ||
"- Building a cohesive vision on these foundations\n", | ||
" - Coming together as a [Steering Committee](#The-steering-committee) of like-minded individuals with members from the F# community, academia, and industry\n", | ||
" - Getting feedback from the F# community for all facets of FsLab at the [Data Science in F# Conference](#data-science-in-f-conference)\n", | ||
" - Community engagement - special thanks to Beth @Hack and Craft, who organized the conference on site and took care that you can now watch some of the [talks on YouTube](https://www.youtube.com/@FsLabYouTube)" | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## FsLab as F#'s tidyverse\n", | ||
"\n", | ||
"The vision for FsLab was always to kind of be the `tidyverse` of F#. This continued under new management, but until recently, we had no clear vision on how to get there. This changed dramatically this year on both organizational and technical sides:\n", | ||
"\n", | ||
"- [We formed a Steering Committee to make decisions for FsLab](#The-steering-committee)\n", | ||
"- We were able to benefit from overall improvements in the .NET ecosystem that made everything incrementally more stable, and especially the release [dotnet interactive](https://github.com/dotnet/interactive), the official .NET kernel for Jupyter notebooks.\n", | ||
"\n", | ||
"Our main focus includes selecting and maintaining the core libraries of this F# data science stack, and making sure that they work well together. In contrast to the early days of FsLab, we do not need to build and maintain the tooling glue anymore, as this is now provided by the .NET ecosystem. This means that we can focus on the libraries themselves, and on making sure that their APIs are consistent and easy to use together." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## Sustainability\n", | ||
"\n", | ||
"@[zyzhu](https://github.com/zyzhu) correctly [identified back in 2020](https://github.com/fslaborg/zzarchive-FsLab/issues/137#issuecomment-735866220):\n", | ||
"\n", | ||
"> The visions discussed above sound wonderful. However, to be realistic, these visions need a proper business plan and sponsorship for long-term sustainability.\n", | ||
"\n", | ||
"We thought a lot about how to make FsLab more sustainable. It is obvious that a few people picking up the GitHub organization are vulnerable to the exact same problems that FsLab faced before.\n", | ||
"\n", | ||
"Therefore, in addition to the usual donation-based funding, we also thought about how to approach sustainability from a maintenance perspective.\n", | ||
"\n", | ||
"Financial contributions for open-source software from businesses are often use-case specific. I was, for example, approached multiple times by companies that wanted help with specific visualization tasks. I tried to generalize this as an issue sponsorship to our [Open Collective](https://opencollective.com/fslab), which is a one-time donation. [Plotly](https://plotly.com), for example, sponsored a huge part of [Plotly.NET's 2.0 release](https://github.com/plotly/Plotly.NET/releases/tag/2.0.0) with $5,000 in 2021 this way. The other option is to have a more general, recurring sponsorship. [Hack and Craft](https://hackandcraft.com/) for example, contributes monthly since November 2022, while also investing work hours into maintenance and community engagement.\n", | ||
"\n", | ||
"There is less financial pressure in an academic setting, at least in the sense that OSS contributions may be tied to paid work hours or expected gains. This means that FsLab can grow organically as both a resource for new students and a place to contribute cutting-edge research from seasoned (data) scientists. A tight integration of academic members should lead to a steady influx of both users and contributors, which can also benefit financially from this via Open Collective. Timo is doing a lot of work on this front - integrating the FsLab stack into the course curriculum while making sure that many projects can eventually end up as contributions to them. We can see this in practice already, as the maintainers of several core FsLab libraries are part of [our department at RPTU Kaiserslautern](https://csbiology.github.io/)." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## The steering committee\n", | ||
"\n", | ||
"\n", | ||
"We first got together as a steering committee for FsLab in 2023 in the context of planning the [Data science in F# conference](https://fslab.org/blog/posts/conference-berlin-2023.html). The goal of the steering committee is to have a more streamlined way of making decisions for FsLab. We are currently in the process of formalizing this, but the current members are:\n", | ||
"\n", | ||
"### Harry McCarney\n", | ||
"\n", | ||
"<img style=\"width: 128px\" src=\"https://datascienceinfsharp.com/images/page/home/speakers/Harry_McCarney.jpg\"></img> \n", | ||
"\n", | ||
"Harry is the founder and CEO of Hack and Craft. He has been writing software for over 20 years and is passionate about the creative application of Data Science to important real world problems. At H&C he oversees development of Data Science solutions in F# for critical industries including manufacturing and logistics.\n", | ||
"\n", | ||
"### Mathias Brandewinder\n", | ||
"\n", | ||
"<img style=\"width: 128px\" src=\"https://clear-lines.com/images/mathias-brandewinder.jpg\"></img> \n", | ||
"\n", | ||
"Mathias is an active member of the F# community, and has been writing F# code for the past 10 years or so, with a focus on optimization, simulation and machine learning.\n", | ||
"\n", | ||
"### Timo Mühlhaus\n", | ||
"\n", | ||
"<img style=\"width: 128px\" src=\"https://csbiology.github.io/content/images/team/timo.png\"></img>\n", | ||
"\n", | ||
"Timo is a Professor of Computational Systems Biology at University of Kaiserslautern (Germany). His research interests include: algorithms and systems for data analysis in computational proteomics, dynamic system analytics and network modelling to understand biological system responses to environmental changes.\n", | ||
"\n", | ||
"### Benedikt Venn\n", | ||
"\n", | ||
"<img style=\"width: 128px\" src=\"https://csbiology.github.io/content/images/team/venn.png\"></img>\n", | ||
"\n", | ||
"Benedikt is a PhD researcher in the CSBiology group. He's primarily interested in modeling short time series data from biological high throughput methods and maintains [FSharp.Stats](https://fslab.org/FSharp.Stats/), the data analytics and statistical testing library within fslab.\n", | ||
"\n", | ||
"### Kevin Schneider\n", | ||
"\n", | ||
"<img style=\"width: 128px\" src=\"https://csbiology.github.io/content/images/team/schneider.jpg\"></img>\n", | ||
"\n", | ||
"Kevin is also part of the CSBiology as a PhD researcher. His main academic focus is on extracting biological knowledge networks from large datasets, deploying a diverse toolbox - from classical metadata and text crawling tools over network science to AI (e.g., metadata curation with LLMs). He is also the maintainer of [Plotly.NET](plotly.net), the integral data visualization library in the fslab stack." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## Data Science in F# Conference\n", | ||
"\n", | ||
"Our biggest milestone for FsLab this year was the joint organization of the [Data Science in F# Conference](https://fslab.org/blog/posts/conference-berlin-2023.html) in Berlin. We received great feedback, and my personal highlight was the hackathon on the last day, during which I spent time mingling and being amazed by all the different kinds of approaches, ideas, and other interesting side-projects that people had." | ||
] | ||
}, | ||
{ | ||
"cell_type": "markdown", | ||
"metadata": {}, | ||
"source": [ | ||
"## Conclusion and Outlook\n", | ||
"\n", | ||
"In short, I think we are on track to keeping the original vision of FsLab alive and putting it on a solid foundation. I am also very happy with how the conference turned out - if you spend too much time on the internet, everything will look bleak and hopeless. But if you actually meet people in person, you will see that there is a lot of energy and enthusiasm for data science in F#.\n", | ||
"\n", | ||
"Here is a short list of things that we want to do in 2024:\n", | ||
"\n", | ||
"- Make things more formal\n", | ||
" - A statute\n", | ||
" - Transparent recurring steering committee meetings\n", | ||
" - Community calls\n", | ||
"- Find ways of actually using the money in the collective\n", | ||
" - Mark issues identified as important with bounties\n", | ||
" - Pay for conference tickets to spread the word at general data science conferences?\n", | ||
"- More blog posts\n", | ||
" - Maybe even sponsor content?\n", | ||
"- Website rework\n", | ||
" - Sponsor section\n", | ||
" - Roadmap section\n", | ||
"- Hopefully another conference!\n", | ||
"\n", | ||
"We from FsLab hope you end on a high note and wish you a happy new year!" | ||
] | ||
} | ||
], | ||
"metadata": { | ||
"kernelspec": { | ||
"display_name": ".NET (C#)", | ||
"language": "C#", | ||
"name": ".net-csharp" | ||
}, | ||
"language_info": { | ||
"name": "polyglot-notebook" | ||
}, | ||
"polyglot_notebook": { | ||
"kernelInfo": { | ||
"defaultKernelName": "csharp", | ||
"items": [ | ||
{ | ||
"aliases": [], | ||
"name": "csharp" | ||
}, | ||
{ | ||
"aliases": [], | ||
"languageName": "fsharp", | ||
"name": "fsharp" | ||
} | ||
] | ||
} | ||
} | ||
}, | ||
"nbformat": 4, | ||
"nbformat_minor": 2 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
--- | ||
title: "State of FsLab 2023 (#FsAdvent)" | ||
author: Kevin Schneider | ||
author_link: https://github.com/kMutagene | ||
category: announcements | ||
date: 2023-12-28 | ||
preview_image: images/state-2023.png | ||
summary: A recap of the year 2023 for FsLab | ||
--- |