Welcome! This is a small, self-contained hackathon about how the Ruby community changed over time — told through data. Everything you need is already in this repo.
→ Start by reading BRIEF.md
That's the challenge: what you're exploring, the three tracks you can pick from (topics over time / community geography / speaker graph), and the traps hiding in the data. This file is just the map of the repo — the brief is where it starts.
talks.jsonl — talks from across the Ruby world (conferences, meetups, retreats),
merged from the rubyevents/rubyevents
project into one static snapshot.
events.jsonl — every event edition, including the many with no recorded talks.
talks.jsonl only sees editions that have talks — for questions about communities
appearing and going quiet, this is the file that sees them all.
One JSON object per line (JSONL) — easy to stream line by line, no need to load it all
into memory. In talks.jsonl each line is one talk, enriched with the context of its
event and series:
| Group | Fields |
|---|---|
| Talk | talk_id, title, raw_title, description, date, year, track, language, speakers, video_provider |
| Event | event_id, event_title, event_kind, location, country, latitude, longitude |
| Series | series_id, series_name, series_kind, series_aliases |
In events.jsonl each line is one event edition: the same event and series fields,
plus start_date, end_date and talk_count.
Take a peek:
head -1 talks.jsonl | ruby -rjson -e 'pp JSON.parse($stdin.read)'
wc -l talks.jsonl events.jsonlHeads up: this is messy data — empty fields, naive country parsing, entries from
the future, the same community under different names. Handling that mess is part of the
challenge. The full trap map is in BRIEF.md § 3.
BRIEF.md— the challenge. Read this first.talks.jsonl— the talks dataset.events.jsonl— all event editions, with or without talks.merge_dataset.rb/merge_events.rb— the scripts that built the datasets from the raw YAML. You don't need them to participate; they're here for transparency, and if you'd rather write your own parser or extend them.README.md— this file.
talks.jsonl and events.jsonl are snapshots built from the raw YAML files in
rubyevents/rubyevents. To rebuild them from
scratch:
git clone --depth 1 https://github.com/rubyevents/rubyevents.git
ruby merge_dataset.rb rubyevents/data > talks.jsonl
ruby merge_events.rb rubyevents/data > events.jsonlThe scripts use the standard library only (yaml, json, date) — no gems, no external
dependencies. They write the JSONL to stdout and a summary to stderr.
Recommendation: regenerate both files together once before the event and commit the result. New events keep landing upstream, so committing a snapshot pins the bundled data to a fixed point, and regenerating together keeps the two files consistent with each other.
- The original code and documentation in this repo —
BRIEF.md,README.md,merge_dataset.rb— are released under the MIT License. talks.jsonlandevents.jsonlare snapshots derived from the rubyevents/rubyevents project, redistributed with attribution under its stated MIT terms. SeeNOTICEfor details.