Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand GSoC ideas page #492

Merged
merged 8 commits into from
Feb 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 75 additions & 5 deletions _data/gsoc-ideas.yml
Original file line number Diff line number Diff line change
@@ -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]

- 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]
34 changes: 30 additions & 4 deletions _includes/_gsoc_idea_card.html
Original file line number Diff line number Diff line change
@@ -1,12 +1,38 @@
<a href="{{ project.github }}" class="gsoc-item">
<div class="gsoc-item">
<div class="gsoc-item-content">
<div>
<img src="{{ site.baseurl }}/img/assets/icon-about-open-source.svg" alt="">
<h3>{{ project.title }}</h3>
</div>
<p>{{ project.description }}</p>
<p>{{ project.description | markdownify }}</p>

<h5>Prerequisites</h5>
<p>{{ project.prereqs | markdownify }}</p>

<h5>Expected Difficulty</h5>
<p>{{ project.difficulty | markdownify }}</p>

<h5>Expected Length</h5>
<p>
{% if project.length == "short" %}
Short (~ 90 hours)
{% elsif project.length == "medium" %}
Medium (~ 175 hours)
{% elsif project.length == "long" %}
Long (~ 350 hours)
{% endif %}
</p>

<h5>Mentors</h5>
<p>
{% for mentor in project.mentors %}
<a href="https://github.com/{{ mentor }}">@{{ mentor }}</a>
{% endfor %}
</p>
</div>
<div class="project-item-tag">
<p>{{ project.categories | join: " / "}}</p>
{% for category in project.categories %}
<p>{{ category }}</p>
{% endfor %}
</div>
</a>
</div>
8 changes: 6 additions & 2 deletions gsoc/ideas.html
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
---
layout: page
title: "GSoC: Ideas"
title: "Google Summer of Code"
permalink: /gsoc/ideas/
---

<div id="section-page">
<div class="container">
<div class="masthead-page">
<h1><span>{{ page.title }}</span></h1>
<p>Join in on the excitement for this years GSoC ideas!</p>
<p>
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!
</p>
{% include _tab-gsoc.html %}
</div>

Expand Down
Loading