Skip to content

Commit 38bf0a5

Browse files
authored
Merge pull request #492 from armanbilge/topic/gsoc-ideas
Expand GSoC ideas page
2 parents d72a1bc + 1fdf0c1 commit 38bf0a5

3 files changed

Lines changed: 111 additions & 11 deletions

File tree

_data/gsoc-ideas.yml

Lines changed: 75 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,76 @@
1-
- title: "Scaladoc Search in Protosearch"
2-
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."
1+
# title
2+
# description: What is it about? What need does it address? What is its final goal?
3+
# prereqs: necessary prior knowledge (typically knowing Scala, and maybe other things)
4+
# difficulty: Easy / Medium / Hard. what will the tricky parts be?
5+
# length: short / medium / long (90 / 175 / 350 hours)
6+
# mentors: github handles
7+
# categories: AI / data / dev tools / apps / cloud / media / operating systems / programming languages / science / security / social / web
8+
9+
- title: Machine learning inference in Cats Effect
10+
description:
11+
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.
12+
prereqs: Scala, ideally some experience with ML
13+
difficulty: Hard but doable. Will draw on knowledge of ML and compilers.
14+
length: long
15+
mentors: [armanbilge, djspiewak, ekrich, valencik]
16+
categories: [AI, web, programming languages]
17+
18+
- title: "Streaming msgpack implementation"
19+
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."
20+
prereqs: Scala, ideally some experience with FS2 and parsing
21+
difficulty: Medium.
22+
length: medium
23+
mentors: [satabin, ybasket]
24+
categories: [streaming, programming languages]
25+
26+
- title: Scaladoc Search in Protosearch
27+
description:
28+
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.
29+
prereqs: Scala
30+
difficulty: Medium.
31+
length: long
32+
mentors: [valencik]
333
categories: [data, web]
4-
- title: "Fluent library for files and processes"
5-
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"
6-
categories: [libraries]
34+
35+
- title: Fluent library for files and processes
36+
description:
37+
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).
38+
prereqs: Scala, interest in Functional Programming
39+
difficulty: Medium.
40+
length: medium
41+
mentors: [toniogela, zetashift]
42+
categories: [programming languages]
43+
44+
- title: Serverless integrations for Feral
45+
description:
46+
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.
47+
prereqs: Scala, interest in Functional Programming, ideally experience with serverless
48+
difficulty: Medium.
49+
length: medium
50+
mentors: [armanbilge]
51+
categories: [cloud, programming languages]
52+
53+
- title: Native I/O backend for FS2 JVM
54+
description:
55+
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`.
56+
prereqs: Scala, ability to read C
57+
difficulty: Medium.
58+
length: long
59+
mentors: [antoniojimeneznieto, djspiewak, armanbilge]
60+
categories: [operating systems, programming languages]
61+
62+
- title: Production-ready io_uring interop layer
63+
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.
64+
prereqs: Java or Scala, ideally some experience with C and JNI
65+
difficulty: Medium.
66+
length: long
67+
mentors: [antoniojimeneznieto, djspiewak, armanbilge]
68+
categories: [operating systems, programming languages]
69+
70+
- title: "Streaming implementation of an XQuery subset"
71+
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."
72+
prereqs: Scala, ideally some experience with XQuery
73+
difficulty: Hard.
74+
length: long
75+
mentors: [satabin]
76+
categories: [data, streaming, programming languages]

_includes/_gsoc_idea_card.html

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,38 @@
1-
<a href="{{ project.github }}" class="gsoc-item">
1+
<div class="gsoc-item">
22
<div class="gsoc-item-content">
33
<div>
44
<img src="{{ site.baseurl }}/img/assets/icon-about-open-source.svg" alt="">
55
<h3>{{ project.title }}</h3>
66
</div>
7-
<p>{{ project.description }}</p>
7+
<p>{{ project.description | markdownify }}</p>
8+
9+
<h5>Prerequisites</h5>
10+
<p>{{ project.prereqs | markdownify }}</p>
11+
12+
<h5>Expected Difficulty</h5>
13+
<p>{{ project.difficulty | markdownify }}</p>
14+
15+
<h5>Expected Length</h5>
16+
<p>
17+
{% if project.length == "short" %}
18+
Short (~ 90 hours)
19+
{% elsif project.length == "medium" %}
20+
Medium (~ 175 hours)
21+
{% elsif project.length == "long" %}
22+
Long (~ 350 hours)
23+
{% endif %}
24+
</p>
25+
26+
<h5>Mentors</h5>
27+
<p>
28+
{% for mentor in project.mentors %}
29+
<a href="https://github.com/{{ mentor }}">@{{ mentor }}</a>
30+
{% endfor %}
31+
</p>
832
</div>
933
<div class="project-item-tag">
10-
<p>{{ project.categories | join: " / "}}</p>
34+
{% for category in project.categories %}
35+
<p>{{ category }}</p>
36+
{% endfor %}
1137
</div>
12-
</a>
38+
</div>

gsoc/ideas.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
---
22
layout: page
3-
title: "GSoC: Ideas"
3+
title: "Google Summer of Code"
44
permalink: /gsoc/ideas/
55
---
66

77
<div id="section-page">
88
<div class="container">
99
<div class="masthead-page">
1010
<h1><span>{{ page.title }}</span></h1>
11-
<p>Join in on the excitement for this years GSoC ideas!</p>
11+
<p>
12+
Our community has identified project ideas that we believe will significantly enhance the Typelevel ecosystem.
13+
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.
14+
So if you see something here that interests you or have an idea of your own, please get in touch!
15+
</p>
1216
{% include _tab-gsoc.html %}
1317
</div>
1418

0 commit comments

Comments
 (0)