diff --git a/_data/gsoc-ideas.yml b/_data/gsoc-ideas.yml index fe72898e..7681ffc6 100644 --- a/_data/gsoc-ideas.yml +++ b/_data/gsoc-ideas.yml @@ -1,6 +1,76 @@ -- title: "Scaladoc Search in Protosearch" - description: "Protosearch offers an in-browser search experience for documentation. This project aims to add support for Scaladoc, the documentation system for Scala code. As a result of this work, searching for `flatMap` on the cats-effect documentation, for example, would return hits from the tutorial and the relevant method in the Scaladoc." +# title +# description: What is it about? What need does it address? What is its final goal? +# prereqs: necessary prior knowledge (typically knowing Scala, and maybe other things) +# difficulty: Easy / Medium / Hard. what will the tricky parts be? +# length: short / medium / long (90 / 175 / 350 hours) +# mentors: github handles +# categories: AI / data / dev tools / apps / cloud / media / operating systems / programming languages / science / security / social / web + +- title: Machine learning inference in Cats Effect + description: + We want to make it possible to deploy machine learning inference as part of a larger web service without compromising the latency of other on-going requests. The goal of this project is to create a compiler to transform a pre-trained ML model into a sequence of Cats Effect `IO` steps that perform inference on some input. + prereqs: Scala, ideally some experience with ML + difficulty: Hard but doable. Will draw on knowledge of ML and compilers. + length: long + mentors: [armanbilge, djspiewak, ekrich, valencik] + categories: [AI, web, programming languages] + +- title: "Streaming msgpack implementation" + description: "The [msgpack](https://msgpack.org/) data format allows for efficient binary serialization of data. It would be great to have the ability to parse, transform, and emit data in a streaming fashion using FS2 in the [fs2-data](https://fs2-data.gnieh.org) library." + prereqs: Scala, ideally some experience with FS2 and parsing + difficulty: Medium. + length: medium + mentors: [satabin, ybasket] + categories: [streaming, programming languages] + +- title: Scaladoc Search in Protosearch + description: + Protosearch offers an in-browser search experience for documentation. This project aims to add support for Scaladoc, the documentation system for Scala code. As a result of this work, searching for `flatMap` on the cats-effect documentation, for example, would return hits from the tutorial and the relevant method in the Scaladoc. + prereqs: Scala + difficulty: Medium. + length: long + mentors: [valencik] categories: [data, web] -- title: "Fluent library for files and processes" - description: "The `fs2.io.file` package is powerful, but using it in small scripts can involve boilerplate. This project aims to create a fluent library for working with files and processes in Scala. A particular focus will be easy integration with the Typelevel Toolkit" - categories: [libraries] \ No newline at end of file + +- title: Fluent library for files and processes + description: + FS2 has powerful APIs for streaming I/O but using it in small scripts can involve boilerplate. This project aims to create a fluent library for working with files and processes in Scala. A particular focus will be easy integration with the [Typelevel Toolkit](https://typelevel.org/toolkit). + prereqs: Scala, interest in Functional Programming + difficulty: Medium. + length: medium + mentors: [toniogela, zetashift] + categories: [programming languages] + +- title: Serverless integrations for Feral + description: + Feral is a Typelevel library for building serverless functions that currently supports AWS Lambda. We want to support other cloud providers, such as Google, Cloudflare, and Vercel. + prereqs: Scala, interest in Functional Programming, ideally experience with serverless + difficulty: Medium. + length: medium + mentors: [armanbilge] + categories: [cloud, programming languages] + +- title: Native I/O backend for FS2 JVM + description: + FS2 on the JVM currently implements its networking API using JDK NIO. Unfortunately this indirection incurs a non-trivial performance penalty. We want to replace the use of JDK NIO with direct calls to system I/O APIs such as `epoll` and `kqueue`. + prereqs: Scala, ability to read C + difficulty: Medium. + length: long + mentors: [antoniojimeneznieto, djspiewak, armanbilge] + categories: [operating systems, programming languages] + +- title: Production-ready io_uring interop layer + description: A GSoC 2023 project prototyped a new networking I/O layer for FS2 based on the Linux io_uring syscall interface that improved the performance of HTTP servers by more than 3x. Now we need help to make this production-ready by writing code to interoperate with io_uring from the JVM. + prereqs: Java or Scala, ideally some experience with C and JNI + difficulty: Medium. + length: long + mentors: [antoniojimeneznieto, djspiewak, armanbilge] + categories: [operating systems, programming languages] + +- title: "Streaming implementation of an XQuery subset" + description: "XQuery allows for transforming XML data in a declarative way. Based on the generic streaming query engine added into the [fs2-data](https://fs2-data.gnieh.org) library, write a frontend to implement a streamable subset of XQuery." + prereqs: Scala, ideally some experience with XQuery + difficulty: Hard. + length: long + mentors: [satabin] + categories: [data, streaming, programming languages] diff --git a/_includes/_gsoc_idea_card.html b/_includes/_gsoc_idea_card.html index b3832cfa..b58e3c9f 100644 --- a/_includes/_gsoc_idea_card.html +++ b/_includes/_gsoc_idea_card.html @@ -1,12 +1,38 @@ - +

{{ project.title }}

-

{{ project.description }}

+

{{ project.description | markdownify }}

+ +
Prerequisites
+

{{ project.prereqs | markdownify }}

+ +
Expected Difficulty
+

{{ project.difficulty | markdownify }}

+ +
Expected Length
+

+ {% if project.length == "short" %} + Short (~ 90 hours) + {% elsif project.length == "medium" %} + Medium (~ 175 hours) + {% elsif project.length == "long" %} + Long (~ 350 hours) + {% endif %} +

+ +
Mentors
+

+ {% for mentor in project.mentors %} + @{{ mentor }} + {% endfor %} +

-

{{ project.categories | join: " / "}}

+ {% for category in project.categories %} +

{{ category }}

+ {% endfor %}
- +
diff --git a/gsoc/ideas.html b/gsoc/ideas.html index cefb4ab5..042b769d 100644 --- a/gsoc/ideas.html +++ b/gsoc/ideas.html @@ -1,6 +1,6 @@ --- layout: page -title: "GSoC: Ideas" +title: "Google Summer of Code" permalink: /gsoc/ideas/ --- @@ -8,7 +8,11 @@

{{ page.title }}

-

Join in on the excitement for this years GSoC ideas!

+

+ Our community has identified project ideas that we believe will significantly enhance the Typelevel ecosystem. + Nothing is set in stone: we may be able to adjust a project’s length and difficulty to make it the right fit for you. + So if you see something here that interests you or have an idea of your own, please get in touch! +

{% include _tab-gsoc.html %}