Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ruby community history — a data hackathon

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.


The data is ready to use

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.

Format

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.jsonl

Heads 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.

What's in the repo

  • 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.

For maintainers: regenerating the data

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.jsonl

The 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.


License

  • The original code and documentation in this repo — BRIEF.md, README.md, merge_dataset.rb — are released under the MIT License.
  • talks.jsonl and events.jsonl are snapshots derived from the rubyevents/rubyevents project, redistributed with attribution under its stated MIT terms. See NOTICE for details.

About

Materials for a Polish Ruby User Group hackathon gathering

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages