Skip to content

Commit 8782a6d

Browse files
committed
Commit draft of GSoC announcement
1 parent 878ae63 commit 8782a6d

File tree

1 file changed

+116
-0
lines changed

1 file changed

+116
-0
lines changed
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
import Html exposing (..)
2+
import Html.Attributes exposing (..)
3+
import Markdown
4+
5+
import Blog
6+
import Center
7+
8+
9+
10+
(=>) = (,)
11+
12+
13+
main =
14+
Blog.blog
15+
"Elm + Google Summer of Code"
16+
""
17+
Blog.evan
18+
(Blog.Date 2017 3 1)
19+
[ Center.markdown "600px" intro
20+
, div [Center.style "600px"]
21+
[div [ class "intrinsic-container" ]
22+
[ iframe
23+
[ src "https://www.youtube.com/embed/DSjbTC-hvqQ?start=845&end=1608&rel=0&autoplay=0"
24+
, attribute "allowfullscreen" ""
25+
] []
26+
]
27+
]
28+
, Center.markdown "600px" part2
29+
]
30+
31+
32+
33+
-- CONTENT
34+
35+
36+
intro = """
37+
38+
Elm is participating in Google Summer of Code! **Undergraduate, masters, and PhD students have the chance to work on Elm over the summer with a stipend and mentorship.** I think this will be fun for students, but it will also be a great way to share knowledge and expertise within the Elm community and broader open source community.
39+
40+
The rest of this post is about what students and community members can do so that the Elm community gets the most out of this opportunity. Specifically, students can submit project proposals starting on 20 March, and **I think we will get the best proposals if experienced Elm community members help out!**
41+
42+
43+
> For skimmers, more info is available at [the GSoC FAQ][faq], [the GSoC rules][rules], [Elm’s GSoC entry][org], [the project suggestion page][projects], [this wiki][wiki], and [the #gsoc channel on Slack][slack]. Please read this post if you want to help out though!
44+
45+
[faq]: https://developers.google.com/open-source/gsoc/faq
46+
[rules]: https://summerofcode.withgoogle.com/rules/
47+
[org]: https://summerofcode.withgoogle.com/organizations/6174333933191168/
48+
[projects]: https://github.com/elm-lang/projects/blob/master/README.md
49+
[wiki]: https://github.com/elm-lang/projects/wiki
50+
[slack]: https://elmlang.slack.com/messages/gsoc/
51+
52+
## Ideal Projects
53+
54+
Participating in an open source community is more than just writing code. It is about building relationships and collaborating with people. **An ideal project will take your experience with Elm and channel it toward a concrete problem that interests you.** I highly recommend watching 12 minutes of the following talk to understand this better. The video will automatically start at the 14m6s mark, so just press play!
55+
56+
"""
57+
58+
59+
part2 = """
60+
61+
When it comes to Google Summer of Code, we have a bunch of constraints that make it easier to pick out great projects:
62+
63+
* Time is limited. Only about 12 weeks.
64+
* API design is a craft that takes many years to master, making it a bad project when someone is new and time constrained.
65+
* Students may not finish everything, so the expected results should be valuable even if not everything is completed.
66+
67+
I have outlined [a bunch of good community projects](https://github.com/elm-lang/projects/blob/master/README.md), but I want to highlight a few that are ideal for GSoC.
68+
69+
70+
### Package Search
71+
72+
The search feature of [package.elm-lang.org](http://package.elm-lang.org/) is quite rudimentary. Community members have already created “type search” [like this](http://klaftertief.github.io/elm-search/) which is really cool, but I think we would benefit from a more traditional search feature as well. I outline some ideas for this [right here](https://github.com/elm-lang/projects/blob/master/README.md#package-search).
73+
74+
In the end we’d want this service can live on its own server, so if it goes down, it does not take down the package website. It would also take in JSON and give out JSON, so the scope is limited to writing servers, which can be a great learning experience.
75+
76+
These natural constraints make it a great GSoC project. If the project is incomplete, nothing is blocked. In every case *the community* learns if full-text search is valuable, and if so, how much it costs. And perhaps the project will inspire collaborators or competitors!
77+
78+
79+
### More Academic Stuff
80+
81+
There are a few projects that require a stronger background in compilers and programming languages. I think these would be great for older undergrads, masters students, and PhD students. The [project page](https://github.com/elm-lang/projects/blob/master/README.md) lists [exploring monomorphization](https://github.com/elm-lang/projects/blob/master/README.md#explore-monomorphizing-compilers) and [exploring WebAssembly](https://github.com/elm-lang/projects/blob/master/README.md#explore-webassembly). Both of these projects are primarily *exploratory*. In other words, a big part of the results would be a well-written literature review, so even if the technical artifacts are not perfect, they get things going.
82+
83+
I think there are a bunch of more sophisticated control flow analyses that could be interesting to look into. Maybe that means figuring out test coverage statically or trying to augment [elmjutsu](https://atom.io/packages/elmjutsu) to suggest fancier expressions based on types. So if you see:
84+
85+
```elm
86+
longestName : List User -> Int
87+
longestName users =
88+
users
89+
|> List.map .name
90+
|> ...
91+
```
92+
93+
In the `...` we know we want to get from `List String` to `Int` so we can suggest functions like `List.length`. Perhaps we can rank suggestions based on which file or package they live in.
94+
95+
Point is, these are projects that push the Elm community in interesting directions, they have a large learning component for both the student and community, and you can achieve a great deal before much coordination is needed. For masters and PhD students, there are ways to fit projects like this into a broader research agenda, but we will have a strong preference for projects that (1) do not require language changes and (2) can reasonably expect a concrete result.
96+
97+
For folks with the background for this, I encourage you to talk to the creators of projects like elm-test, elm-format, elmjutsu, and sketch-n-sketch to learn what kind of analyses would be most useful in practice!
98+
99+
100+
## Mentorship
101+
102+
I have created two collaborative resources for mentorship and support:
103+
104+
- **The [#gsoc channel](https://elmlang.slack.com/messages/gsoc/) on the Elm slack.** If you want to help students refine projects, keep an eye on it! Once there are accepted projects, I want that channel to be a place for students, mentors, and knowledgeable community members to work together. This way we can quickly learn from the student’s project and they learn from our collective expertise.
105+
106+
- **The [mentor wiki](https://github.com/elm-lang/projects/wiki).** Students will also have a specific mentor that will meet with them at least once a week. I think finding a match between interests, knowledge, and personalities is important, so please add your information if you are interested in being a mentor. Obviously not everyone can do it, but I think it makes sense to have a bunch of folks willing to help.
107+
108+
109+
## Thanks and Good Luck
110+
111+
First, thank you to the folks who helped out with the Google Summer of Code application. I really appreciate your support!
112+
113+
Second, I am excited to see what kind of proposals we get. Hopefully this blog post helps you refine your ideas into something ambitious and practical!
114+
115+
116+
"""

0 commit comments

Comments
 (0)