Skip to content

Instantly share code, notes, and snippets.

@pesterhazy
Last active June 9, 2023 18:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pesterhazy/b0d1864c1118bfca9202ca06f65eb886 to your computer and use it in GitHub Desktop.
Save pesterhazy/b0d1864c1118bfca9202ca06f65eb886 to your computer and use it in GitHub Desktop.
What is a Birds of a Feather Session?

What is a Birds of a Feather Session?

Birds of a Feather sessions (BoFs) are participant-oriented meetings in which attendees discuss shared interests in an informal environment and without a pre-planned agenda.

What does this look like at babashka-conf?

  • At the conference, there will be a whiteboard where you can register a BoF topic (or you can mention your topic to any of the organizers). You can also propose a topic by leaving a comment below on this gist
  • In the afternoon, we have reserved a 50-minute slot for BoF sessions. We will gather in small groups at the venue or in the park in front of the entrance
  • BoF owners – attendees who propose a BoF session – create a group and moderate the discussion

What topics will be discussed?

BoF sessions are driven 100% by conference attendees, so it's all up to you. Here are a few ideas:

  • Building community around Babashka and Clojure
  • Use of specific domains (cloud computing, databases, etc) with BB

How to run a successful BoF

  • Meet at the appointed time and clearly signal that you're creating a BoF group.
  • The format is up to you! In our experience, free-form discussion with prompts by the moderator work well.
  • Encourage participation from attendees and get everyone's input.
  • Make sure everyone can get heard. Don't hesitate to use you role as moderator to summarize results, interrupt tangents and get the discussion back on track.
@teodorlu
Copy link

teodorlu commented Jun 4, 2023

Idea for a Clojure BOF session that I might not have time to explore: cljup

Problem definition: People who have never used Clojure don't know what to do to get a Clojure environment up and running, and don't know which tools solve which problems. Questions show up in #beginners on Slack where clojure-lsp / clj-kondo would have catched the error. Let's fix that.

Sketch:

  • Build cljup.org
  • Take inspiration from https://rustup.rs/
  • Bundle a list of tools that beginners might want
    • Incomplete, rough sketch: clj, bb, neil, clj-kondo, clojure-lsp, bbin
    • not sure about java, perhaps better to encourage using homebrew or installing manually
    • should probably provide a good default package + the ability to opt-in to get more stuff (like rustup)

Solution draft:

  1. bootstrap a babashka environment with a shell script
  2. pass control to the cljup babashka script
  3. ask the user if they want the default collection of tools, or if they want to choose tools themselves.
  4. explain to the user what's happening, where binaries end up, etc.

Prior work: https://bbup.teod.eu/ / https://github.com/teodorlu/bbup.teod.eu. I got stuck because it was too hard to debug how to make it all work on different systems, plus I have zero experience with native compilation with graalvm + didn't have time. See bbup issues. I believe bbup is the wrong scope, we should make cljup instead.

Ideal group:

  • someone who is motivate to help beginners by making user friendly tools
  • someone familiar with babashka/cli or other cli parsing tools
  • someone familiar with graalvm
  • someone familiar with shell scripts
  • someone familiar with Windows
  • perhaps someone familiar with how Rustup works

Rustup supports these components:

$ rustup component list | grep -v rust-std | grep -v rustc-dev
cargo-x86_64-unknown-linux-gnu (installed)
clippy-x86_64-unknown-linux-gnu (installed)
llvm-tools-x86_64-unknown-linux-gnu
rls-x86_64-unknown-linux-gnu (installed)
rust-analysis-x86_64-unknown-linux-gnu
rust-analyzer-x86_64-unknown-linux-gnu
rust-docs-x86_64-unknown-linux-gnu (installed)
rust-src (installed)
rustc-x86_64-unknown-linux-gnu (installed)
rustc-docs-x86_64-unknown-linux-gnu
rustfmt-x86_64-unknown-linux-gnu (installed)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment