← Extractions

Reforging the support for open-source (wroclove.rb 2023)

Tomasz Donarski's wroclove.rb 2023 talk on the broken incentives of open-source funding, using Homebrew, log4j, core-js, left-pad, colors.js/Faker.js and event-stream as case studies, and proposing tea — Max Howell's new package manager + proof-of-stake rewards system — as a way to automatically compensate maintainers and all dependencies in the graph.

Model
claude-opus-4-7
Ingestion
cf82a501
Input tokens
424,256
fresh
313,474
cached
99,045
cache write
11,737
Output tokens
13,028
Duration
204.2s
Roundtrips
7
Tool calls
21
Cost
$0.00
Nodes/edges extracted
27 / 44
Read set (nodes/edges)
246 / 2

Nodes (27)

create core-js tool
kind (empty) → tool
name (empty) → core-js
slug (empty) → core-js
attrs (empty) → {"category" => "library", "language" => "JavaScript"}
description (empty) → JavaScript polyfill library downloaded roughly 30 million times a week and present in 99% of websites or apps. Despit...
short_description (empty) → Foundational JavaScript polyfill library downloaded ~30M times per week.
update Tomasz Donarski person
attrs (empty) → {"role" => "Ruby developer / OSS enthusiast", "employer" => "Upside"}
description Conference speaker. → Ruby developer and open-source enthusiast. At the time of wroclove.rb 2023 he was helping Upside develop Spree Commer...
short_description Conference speaker. → Ruby developer and open-source enthusiast; contributor to Spree at Upside.
update Reforging (or rather rebrewing) the support for open-source talk
attrs {"type" => "talk"} → {"date" => "2023-03-31", "type" => "talk"}
description Talk at wroclove.rb 2023. → Tomasz Donarski's wroclove.rb 2023 talk, structured in two parts. Part one catalogs the pollutants of the open-source...
short_description Talk at wroclove.rb 2023. → wroclove.rb 2023 talk on broken OSS funding incentives and Max Howell's tea project.
create tea project
kind (empty) → project
name (empty) → tea
slug (empty) → tea
attrs (empty) → {"status" => "active", "license" => "open-source", "category" => "package manager / blockchain"}
description (empty) → Work-in-progress project by Max Howell (creator of Homebrew). A package manager positioned as Homebrew's successor, b...
short_description (empty) → Max Howell's package manager and proof-of-stake rewards system for funding open source.
create Max Howell person
kind (empty) → person
name (empty) → Max Howell
slug (empty) → max-howell
description (empty) → Creator of Homebrew, the macOS package manager with the largest contributor base of any open-source project (a viral ...
short_description (empty) → Creator of Homebrew; founder of the tea open-source rewards project.
create Homebrew tool
kind (empty) → tool
name (empty) → Homebrew
slug (empty) → homebrew
attrs (empty) → {"category" => "package manager"}
description (empty) → macOS package manager created by Max Howell. Designed to be viral: easy to contribute to, so it attracted the biggest...
short_description (empty) → Popular macOS package manager created by Max Howell.
create log4j tool
kind (empty) → tool
name (empty) → log4j
slug (empty) → log4j
attrs (empty) → {"category" => "library", "language" => "Java"}
description (empty) → Java logging library widely adopted across commercial, enterprise, and critical governmental systems. A severe securi...
short_description (empty) → Widely-used Java logging library; subject of a severe 2021 security vulnerability.
create curl tool
kind (empty) → tool
name (empty) → curl
slug (empty) → curl
attrs (empty) → {"category" => "library"}
description (empty) → Ubiquitous data-transfer library and command-line tool. Cited at wroclove.rb 2023 as a victim of industry ignorance a...
short_description (empty) → Ubiquitous data-transfer library/CLI maintained by a small volunteer team.
create left-pad tool
kind (empty) → tool
name (empty) → left-pad
slug (empty) → left-pad
attrs (empty) → {"category" => "library"}
description (empty) → Small npm package. Its maintainer lost an npm trademark dispute when npm hijacked one of his other libraries and tran...
short_description (empty) → Tiny npm package whose 2016 yanking broke CI pipelines worldwide.
create colors.js tool
kind (empty) → tool
name (empty) → colors.js
slug (empty) → colors-js
attrs (empty) → {"category" => "library"}
description (empty) → Popular npm terminal-styling library. In protest over persistent lack of sponsorship from unicorn companies and other...
short_description (empty) → Popular npm terminal-styling package deliberately sabotaged by its author.
create Faker.js tool
kind (empty) → tool
name (empty) → Faker.js
slug (empty) → faker-js
attrs (empty) → {"category" => "library"}
description (empty) → npm fake-data library. Same maintainer as colors.js; deliberately broken to protest unpaid labor, contributing to bro...
short_description (empty) → npm fake-data library sabotaged by its maintainer over lack of funding.
update Event Stream concept
attrs {"category" => "pattern"} → {"category" => "library"}
description The most important kind of stream in event sourcing: it contains every event that has happened for an entity (e.g. 'o... → npm package targeted by a social-engineering supply-chain attack: the attacker gained the maintainer's trust by contr...
short_description Stream containing all events produced for a particular entity instance. → npm package compromised via social-engineering backdoor that stole Bitcoins.
create Peter Solnica person
kind (empty) → person
name (empty) → Peter Solnica
slug (empty) → peter-solnica
attrs (empty) → {"role" => "OSS maintainer"}
description (empty) → Ruby open-source maintainer associated with the dry-rb ecosystem. Cited in Donarski's wroclove.rb 2023 talk: his GitH...
short_description (empty) → Ruby OSS maintainer (dry-rb); example of chronically underfunded OSS work.
create Nate Berkopec person
kind (empty) → person
name (empty) → Nate Berkopec
slug (empty) → nate-berkopec
attrs (empty) → {"role" => "Puma maintainer, Rails consultant"}
description (empty) → Maintainer of the Puma Ruby web server. Also runs a Rails consultancy agency which effectively funds his Puma work. A...
short_description (empty) → Puma maintainer; runs a Rails consultancy agency.
create xkcd Dependency / Nebraska Problem concept
kind (empty) → concept
name (empty) → xkcd Dependency / Nebraska Problem
slug (empty) → xkcd-dependency-nebraska-problem
attrs (empty) → {"category" => "practice"}
description (empty) → Reference to xkcd's 'Dependency' comic, also dubbed 'the Nebraska problem': the entire stack of modern digital infras...
short_description (empty) → Famous xkcd comic depicting modern infrastructure balanced on one unpaid maintainer.
create Steeping concept
kind (empty) → concept
name (empty) → Steeping
slug (empty) → steeping
attrs (empty) → {"category" => "pattern"}
description (empty) → Mechanism specific to the tea project (distinct from generic proof-of-stake 'staking'): the action of locking tokens ...
short_description (empty) → tea mechanism: staking tokens against a library to back a claim and earn rewards.
create Proof of Stake concept
kind (empty) → concept
name (empty) → Proof of Stake
slug (empty) → proof-of-stake
attrs (empty) → {"category" => "architecture"}
description (empty) → Blockchain consensus mechanism in which participants lock tokens to secure the network. Used by the tea project as th...
short_description (empty) → Blockchain consensus mechanism requiring validators to lock tokens as stake.
create Tea Taster concept
kind (empty) → concept
name (empty) → Tea Taster
slug (empty) → tea-taster
attrs (empty) → {"category" => "pattern"}
description (empty) → Role in the tea ecosystem (a pun on tea tasting and software testing). Third-party code reviewers who validate new re...
short_description (empty) → tea role that validates new package releases by staking tokens on review outcomes.
create Stack Overflow Podcast Episode with Max Howell on tea resource
kind (empty) → resource
name (empty) → Stack Overflow Podcast Episode with Max Howell on tea
slug (empty) → stack-overflow-podcast-episode-with-max-howell-on-tea
attrs (empty) → {"type" => "article"}
description (empty) → Episode of the Stack Overflow Podcast (aired ~2022) in which host interviews Max Howell about Homebrew and the design...
short_description (empty) → Podcast conversation with Max Howell detailing the design and ambitions of tea.
create tea White Paper resource
kind (empty) → resource
name (empty) → tea White Paper
slug (empty) → tea-white-paper
attrs (empty) → {"type" => "documentation"}
description (empty) → White paper of the tea project describing the package manager, registry, reputation system, and proof-of-stake reward...
short_description (empty) → tea project white paper detailing the rewards, staking and registry design.
create npm tool
kind (empty) → tool
name (empty) → npm
slug (empty) → npm
attrs (empty) → {"category" => "service"}
description (empty) → JavaScript package registry and manager. Cited repeatedly in Donarski's wroclove.rb 2023 talk: the left-pad author's ...
short_description (empty) → JavaScript/Node package registry and manager.
create Hacktoberfest event
kind (empty) → event
name (empty) → Hacktoberfest
slug (empty) → hacktoberfest
attrs (empty) → {"format" => "remote"}
description (empty) → Annual October event (transcribed 'Oktoberfest') encouraging developers to start contributing to open source. The 11t...
short_description (empty) → Annual October event encouraging people to start contributing to open source.
create Pay the open-source maintainers you depend on takeaway
kind (empty) → takeaway
name (empty) → Pay the open-source maintainers you depend on
slug (empty) → pay-the-open-source-maintainers-you-depend-on
attrs (empty) → {"type" => "recommendation"}
description (empty) → Nate Berkopec's recommendation, cited by Donarski at wroclove.rb 2023: the way to fix unpaid OSS heroes is for depend...
short_description (empty) → As OSS customers, dependents should financially support the maintainers of their dependencies.
create OSS support needs automation, not goodwill takeaway
kind (empty) → takeaway
name (empty) → OSS support needs automation, not goodwill
slug (empty) → oss-support-needs-automation-not-goodwill
attrs (empty) → {"type" => "insight"}
description (empty) → Core argument of Donarski's wroclove.rb 2023 talk. Current sponsorship reaches only the most visible packages (Rails,...
short_description (empty) → Without automated, graph-wide support, leaf dependencies and mid-tier gems go unfunded.
create 17% of OSS bugs are planted deliberately takeaway
kind (empty) → takeaway
name (empty) → 17% of OSS bugs are planted deliberately
slug (empty) → 17-of-oss-bugs-are-planted-deliberately
attrs (empty) → {"type" => "warning"}
description (empty) → Figure cited by Donarski at wroclove.rb 2023 from GitHub: roughly 17% of all bugs in open source are planted delibera...
short_description (empty) → GitHub estimates 17% of open-source bugs are planted as exploits, largely unaddressed.
create How does tea's token scheme monetize? question
kind (empty) → question
name (empty) → How does tea's token scheme monetize?
slug (empty) → how-does-tea-s-token-scheme-monetize
attrs (empty) → {"answer_summary" => "Unclear and community-driven; supply is finite like Ethereum; worst case tea still yields a usa...
description (empty) → Audience question about tea's monetization scheme, voiced by a skeptic of web3/NFTs: where does real money come from,...
short_description (empty) → Given tea's talk of blockchain/web3/NFTs and tokens, how do tokens translate to real money?
create Should OSS developers learn sales and marketing instead? question
kind (empty) → question
name (empty) → Should OSS developers learn sales and marketing instead?
slug (empty) → should-oss-developers-learn-sales-and-marketing-instead
attrs (empty) → {"answer_summary" => "Developer sales/marketing skills would help; some maintainers still prefer pure OSS, so tea may...
description (empty) → Audience comment during Q&A at wroclove.rb 2023: an alternative developers tend to reject is learning sales and marke...
short_description (empty) → Audience comment: developers reject sales/marketing as a profession; Sidekiq-style monetization is possible.

Edges (44)

update Tomasz Donarski → authored → Reforging (or rather rebrewing) the support for open-source
context (empty) → Donarski delivered the talk at wroclove.rb 2023.
update Reforging (or rather rebrewing) the support for open-source → presented_at → wroclove.rb 2023
context (empty) → Presented during the wroclove.rb 2023 single-track program on 2023-03-31.
create Tomasz Donarski → works_at → Upside
attrs (empty) → {"role" => "Ruby developer helping with Spree"}
context (empty) → Donarski introduces himself as currently helping Upside develop Spree Commerce.
relation (empty) → works_at
source_node_id (empty) → 307a6428-a50f-4a2f-8608-38352609f96f
target_node_id (empty) → c99a9df4-e84c-47ae-a936-91e092184ff0
create Tomasz Donarski → works_on → Spree
context (empty) → Helping Upside develop Spree Commerce as of wroclove.rb 2023.
relation (empty) → works_on
source_node_id (empty) → 307a6428-a50f-4a2f-8608-38352609f96f
target_node_id (empty) → bb8d5927-6044-47cf-b709-85ad5a42d86e
create Reforging (or rather rebrewing) the support for open-source → about → tea
context (empty) → The second half of the talk explores tea's design and how it addresses OSS funding problems.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 3ff4c728-ab5f-4a65-b91d-b527c30815ac
create Reforging (or rather rebrewing) the support for open-source → about → Homebrew
context (empty) → Opening fictional-then-true story of Max Howell cycling between day jobs and maintaining Homebrew.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 661a09e0-1309-411c-8109-76f7e4cc1d56
create Reforging (or rather rebrewing) the support for open-source → about → log4j
context (empty) → Used as an example of maintainers abused after a severe vulnerability and then forgotten once patched.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → c707264f-8da2-4dd2-993c-2cbe35685a92
create Reforging (or rather rebrewing) the support for open-source → about → curl
context (empty) → Cited as an example of a Fortune-500 company demanding a 24-hour security response with no SLA.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → c24eebf8-1c00-4d2a-bdc0-28eddc3eb4d1
create Reforging (or rather rebrewing) the support for open-source → about → core-js
context (empty) → Used as an example of an underfunded leaf-node dependency present in ~99% of websites.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → e55d28d6-e4d2-47e1-8a7b-487f2af7705e
create Reforging (or rather rebrewing) the support for open-source → about → left-pad
context (empty) → Cited as a sabotage/yanking case that broke CI pipelines globally after an npm dispute.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 391382af-5f9d-42eb-904a-0868c1436500
create Reforging (or rather rebrewing) the support for open-source → about → colors.js
context (empty) → Cited as an example of deliberate sabotage in protest over lack of sponsorship.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 69a3d7e4-296a-41c2-8005-7c43384d8337
create Reforging (or rather rebrewing) the support for open-source → about → Faker.js
context (empty) → Cited alongside colors.js as deliberate package sabotage over lack of funding.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 3e27987f-70ee-400e-8238-7fdd6214898b
create Reforging (or rather rebrewing) the support for open-source → about → Event Stream
context (empty) → Cited as a social-engineering malware attack stealing Bitcoins.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 8c314bcf-2bbd-4b0d-b2aa-5cdc649e632d
create Reforging (or rather rebrewing) the support for open-source → about → Max Howell
context (empty) → Donarski's fictional developer story is revealed to be about Max Howell, and Howell is the creator of tea.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 9646c5f6-eff2-4d52-be22-2db45aee3f2a
create Reforging (or rather rebrewing) the support for open-source → about → Peter Solnica
context (empty) → His GitHub sponsorship page and progress bar are shown as an example of an underfunded Ruby maintainer.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 29178205-e6bf-4baa-bd82-f726ffa681ba
create Reforging (or rather rebrewing) the support for open-source → about → Nate Berkopec
context (empty) → Donarski references Berkopec's RubyConf EU argument that customers should pay the OSS maintainers they use.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 5ae06655-4eb0-4f8d-afad-c29f6e0945cd
create Reforging (or rather rebrewing) the support for open-source → about → xkcd Dependency / Nebraska Problem
context (empty) → Donarski shows the xkcd comic to frame the fragility of OSS dependencies.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → c0c713d3-a43a-4c22-b1e3-afbb6d62a613
create Reforging (or rather rebrewing) the support for open-source → about → Steeping
context (empty) → Steeping is explained as tea's primary mechanism for supporting OSS contributors.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 7011a071-3e4d-445c-9e4c-90b047190a02
create Reforging (or rather rebrewing) the support for open-source → about → Tea Taster
context (empty) → The tea-taster role is presented as a third-party reviewer role staking tokens on release quality.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 7be64c83-8da4-4e45-8512-8085a515b183
create Reforging (or rather rebrewing) the support for open-source → about → Proof of Stake
context (empty) → tea's rewards are distributed as tokens on a proof-of-stake blockchain.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 9a32c066-51b4-45e6-9081-bbc3bbcce4f7
create Reforging (or rather rebrewing) the support for open-source → about → npm
context (empty) → npm appears in the left-pad story and in typosquatting malware examples.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 49f1ad82-d33e-4615-8a25-21780126c972
create Reforging (or rather rebrewing) the support for open-source → about → Victor Shepelev
context (empty) → Donarski dedicates the talk to Victor Shepelev, who is fighting for Ukraine's freedom and could not attend.
relation (empty) → about
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → 3bef231a-c5d0-4622-bc53-1a9567a0a906
create Max Howell → works_on → Homebrew
attrs (empty) → {"role" => "creator"}
context (empty) → Max Howell is the original creator and long-time maintainer of Homebrew.
relation (empty) → works_on
source_node_id (empty) → 9646c5f6-eff2-4d52-be22-2db45aee3f2a
target_node_id (empty) → 661a09e0-1309-411c-8109-76f7e4cc1d56
create Max Howell → works_on → tea
attrs (empty) → {"role" => "founder"}
context (empty) → Max Howell is the founder and driver of the tea project.
relation (empty) → works_on
source_node_id (empty) → 9646c5f6-eff2-4d52-be22-2db45aee3f2a
target_node_id (empty) → 3ff4c728-ab5f-4a65-b91d-b527c30815ac
create tea → uses → Proof of Stake
context (empty) → tea distributes rewards as tokens on a proof-of-stake blockchain.
relation (empty) → uses
source_node_id (empty) → 3ff4c728-ab5f-4a65-b91d-b527c30815ac
target_node_id (empty) → 9a32c066-51b4-45e6-9081-bbc3bbcce4f7
create tea → uses → Steeping
context (empty) → Steeping is tea's primary mechanism for supporting a package and its dependencies.
relation (empty) → uses
source_node_id (empty) → 3ff4c728-ab5f-4a65-b91d-b527c30815ac
target_node_id (empty) → 7011a071-3e4d-445c-9e4c-90b047190a02
create Nate Berkopec → works_on → Puma
attrs (empty) → {"role" => "maintainer"}
context (empty) → Berkopec is the Puma maintainer.
relation (empty) → works_on
source_node_id (empty) → 5ae06655-4eb0-4f8d-afad-c29f6e0945cd
target_node_id (empty) → 39300066-39d4-4bb3-b15b-0fb67a3d3867
create Peter Solnica → related_to → Pay the open-source maintainers you depend on
context (empty) → Solnica's sponsorship page argues OSS is unsustainable without support — the same thesis as this takeaway.
relation (empty) → related_to
source_node_id (empty) → 29178205-e6bf-4baa-bd82-f726ffa681ba
target_node_id (empty) → 5fbd0971-9707-4569-badb-884b0482e30b
create Pay the open-source maintainers you depend on → from_talk → Reforging (or rather rebrewing) the support for open-source
context (empty) → Donarski endorses and extends Berkopec's 'pay maintainers' message in the talk.
relation (empty) → from_talk
source_node_id (empty) → 5fbd0971-9707-4569-badb-884b0482e30b
target_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
create OSS support needs automation, not goodwill → from_talk → Reforging (or rather rebrewing) the support for open-source
context (empty) → Central argument of the talk and motivation for tea.
relation (empty) → from_talk
source_node_id (empty) → 3f20bc6f-b2bd-42fd-b335-861e6360beae
target_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
create 17% of OSS bugs are planted deliberately → from_talk → Reforging (or rather rebrewing) the support for open-source
context (empty) → Cited by Donarski as the unaddressed need that tea's taster role is designed to fix.
relation (empty) → from_talk
source_node_id (empty) → 61e9f2b1-5876-4942-be08-6cebd5f6ba89
target_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
create Tomasz Donarski → recommends → tea
context (empty) → Donarski dedicates half the talk to endorsing tea's vision as a promising fix for OSS incentives, while disclosing no...
relation (empty) → recommends
source_node_id (empty) → 307a6428-a50f-4a2f-8608-38352609f96f
target_node_id (empty) → 3ff4c728-ab5f-4a65-b91d-b527c30815ac
create Tomasz Donarski → recommends → tea White Paper
context (empty) → Recommends reading the tea white paper for the full detail not covered in the talk.
relation (empty) → recommends
source_node_id (empty) → 307a6428-a50f-4a2f-8608-38352609f96f
target_node_id (empty) → 435663d6-81e2-4b18-90fd-2be8f4aa202b
create Tomasz Donarski → recommends → Stack Overflow Podcast Episode with Max Howell on tea
context (empty) → Recommends the podcast where Max Howell discusses tea's design; this is how Donarski learned about it.
relation (empty) → recommends
source_node_id (empty) → 307a6428-a50f-4a2f-8608-38352609f96f
target_node_id (empty) → 8ebd3d4d-c799-4773-b87e-8f970fa2012c
create Stack Overflow Podcast Episode with Max Howell on tea → about → tea
context (empty) → The podcast episode is a conversation with Max Howell about the tea project.
relation (empty) → about
source_node_id (empty) → 8ebd3d4d-c799-4773-b87e-8f970fa2012c
target_node_id (empty) → 3ff4c728-ab5f-4a65-b91d-b527c30815ac
create tea White Paper → about → tea
context (empty) → The white paper details the tea project's design and mechanics.
relation (empty) → about
source_node_id (empty) → 435663d6-81e2-4b18-90fd-2be8f4aa202b
target_node_id (empty) → 3ff4c728-ab5f-4a65-b91d-b527c30815ac
create How does tea's token scheme monetize? → asked_at → Reforging (or rather rebrewing) the support for open-source
context (empty) → Audience Q&A at the end of the wroclove.rb 2023 talk.
relation (empty) → asked_at
source_node_id (empty) → 8af95f6f-23fd-4be5-adc6-e5ba919fbd9c
target_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
create How does tea's token scheme monetize? → about → tea
context (empty) → Question targets tea's token economics and real-money convertibility.
relation (empty) → about
source_node_id (empty) → 8af95f6f-23fd-4be5-adc6-e5ba919fbd9c
target_node_id (empty) → 3ff4c728-ab5f-4a65-b91d-b527c30815ac
create Should OSS developers learn sales and marketing instead? → asked_at → Reforging (or rather rebrewing) the support for open-source
context (empty) → Audience comment during the Q&A proposing an alternative to tea.
relation (empty) → asked_at
source_node_id (empty) → 5840a9f3-4828-41e0-b18d-42ac21924c95
target_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
create Should OSS developers learn sales and marketing instead? → about → Sidekiq
context (empty) → Cites Sidekiq as a successful example of a developer monetizing open-source work through paid tiers.
relation (empty) → about
source_node_id (empty) → 5840a9f3-4828-41e0-b18d-42ac21924c95
target_node_id (empty) → 2365c22d-c83e-4553-b865-ec22d0b5b225
create Should OSS developers learn sales and marketing instead? → about → Mike Perham
context (empty) → Audience member references an article by the Sidekiq maintainer about monetizing open source.
relation (empty) → about
source_node_id (empty) → 5840a9f3-4828-41e0-b18d-42ac21924c95
target_node_id (empty) → d72c57bc-0d08-47cf-a54a-8fea4105eee6
create Hacktoberfest → related_to → Reforging (or rather rebrewing) the support for open-source
context (empty) → Q&A at the talk noted that Hacktoberfest's 11th edition was starting next month as a way to begin contributing to OSS.
relation (empty) → related_to
source_node_id (empty) → a5694bdf-0d13-4bd2-95cf-de6a57cc8450
target_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
create Reforging (or rather rebrewing) the support for open-source → related_to → Devise pitfalls and way to tighten security
context (empty) → Donarski cites Rafał Rothenberger's 2022 Devise disclosure as the model for how tea tasters would handle negative rev...
relation (empty) → related_to
source_node_id (empty) → afec6a76-36bd-405d-a57c-b70867d361f8
target_node_id (empty) → e6de36cb-0179-45f5-a1c3-164fe0066ca4
create Tomasz Donarski → attended → wroclove.rb 2023
context (empty) → Spoke at the conference on 2023-03-31.
relation (empty) → attended
source_node_id (empty) → 307a6428-a50f-4a2f-8608-38352609f96f
target_node_id (empty) → f1adcf6d-780c-4418-8a81-c88da8b4e631

Read set

246 nodes

talk Building Beautiful UIs with Ruby A Rails-Native Approach list_nodes_by_kind talk Building Rails SPAs in Frontend Ruby with Glimmer DSL for Web list_nodes_by_kind talk Building uls for microservices list_nodes_by_kind talk Business logic in Ruby list_nodes_by_kind talk Cables! Cables! Cables! list_nodes_by_kind talk Chess for Programmers Lightning Talk list_nodes_by_kind talk Code Golfing in Ruby Lightning Talk list_nodes_by_kind talk Component Driven UI with ViewComponent list_nodes_by_kind talk Configuration Again Lightning Talk list_nodes_by_kind takeaway Publish a roadmap to align contributors search_nodes takeaway Be kind and build useful things search_nodes resource awesome-ddd search_nodes tool Release Drafter search_nodes takeaway Sign serverlessforruby.org petition search_nodes question Should enterprise libraries be paid or free? search_nodes tool Codecov search_nodes tool GitHub Releases search_nodes tool reviewdog search_nodes takeaway Buy Faster Hardware search_nodes tool iTerm2 search_nodes tool ruby/setup-ruby search_nodes takeaway Use Ruby Packer for Single-Binary CLIs search_nodes concept Build Gems in Docker Isolation search_nodes concept GitHub Self-Hosted Runner search_nodes tool fish shell search_nodes talk Build Your Own Internal CLI Tools Lightning Talk search_nodes+list_nodes_by_kind tool bump gem search_nodes tool Ruby Packer search_nodes tool Spree search_nodes talk Scaling an Open Source E-Commerce Framework search_nodes+list_nodes_by_kind tool Solidus search_nodes tool Klaviyo search_nodes project rails_event_store/ecommerce search_nodes question Why haven't you introduced events into Spree? search_nodes company Shopify search_nodes question Should 'add item' be split into add-new and increase-existing? search_nodes tool Jumpstart Pro search_nodes tool Active Admin search_nodes talk Ethereum Smart Contracts Lightning Talk search_nodes+list_nodes_by_kind resource Rocket Real-Time Benchmark search_nodes resource ethereum.org tutorials search_nodes concept Data Tokenization search_nodes concept Initial Coin Offering search_nodes talk Building on Bluesky's AT Protocol with Ruby search_nodes+list_nodes_by_kind event wroclove.rb 2023 search_nodes event wroclove.rb 2022 search_nodes event wroclove.rb 2024 search_nodes event wroclove.rb 2019 search_nodes event wroclove.rb 2018 search_nodes event wroclove.rb 2025 search_nodes event wroclove.rb 2026 search_nodes talk Building LLM powered applications in Ruby search_nodes+list_nodes_by_kind talk How wroclove.rb impacts developers and companies search_nodes+list_nodes_by_kind talk Towards the post framework future search_nodes+list_nodes_by_kind company Upside search_nodes company SpaceX search_nodes person Rafael Zamaris search_nodes tool knapsack_pro search_nodes talk Offline Sandwich Focus Workflow search_nodes+list_nodes_by_kind takeaway Name Things To Find Their Properties search_nodes tool ChatGPT search_nodes takeaway Spoken Test Feedback with say + iTerm Triggers search_nodes tool Puma search_nodes project BBC Sport App search_nodes project Petri Nets Performance Prediction Gem search_nodes tool Sidekiq search_nodes person Mike Perham search_nodes question Scaling Sidekiq Elastically search_nodes concept Sidekiq Middleware search_nodes talk Under The Hood And On The Surface Of Sidekiq search_nodes+list_nodes_by_kind takeaway Prefer Small Sidekiq Jobs search_nodes concept Sidekiq Batches search_nodes takeaway Keep Sidekiq Job Parameters Simple search_nodes talk Sidekiq Batches Lightning Talk search_nodes+list_nodes_by_kind question Application-Level Back Pressure For Sidekiq search_nodes question Protecting against ffmpeg vulnerabilities search_nodes takeaway Isolate ffmpeg due to its vulnerability history search_nodes concept Logux Proxy search_nodes concept Timing-Based Enumeration search_nodes concept Unique Per-Site Email Leak Detection search_nodes question DDoS risk of on-the-fly processing search_nodes takeaway Replay-Based Debugging search_nodes question Was debugging dev-environment performance worth it vs. ditching Spring/Guard? search_nodes takeaway Silver Bullet Anti-Pattern search_nodes project logux-rails search_nodes takeaway Stop delegating decisions to popular library authors search_nodes talk Lightning Talk on Email Leaks and Senior Developer Titles search_nodes+list_nodes_by_kind takeaway Pad Your Estimates search_nodes talk Ever shorter feedback loop search_nodes+list_nodes_by_kind takeaway Don't kill dependencies — use backoff search_nodes person Victor Shepelev search_nodes talk Scientific Ruby Lightning Talk search_nodes+list_nodes_by_kind project Ruby Romania search_nodes person Julik Tarkhanov search_nodes project Ruby News search_nodes tool TruffleRuby search_nodes talk Rubyana Gems and the Ractorous Rubetta Stones! search_nodes+list_nodes_by_kind project Scientific Ruby Community search_nodes person Adam Okoń search_nodes resource Short Ruby Newsletter search_nodes tool Dependency search_nodes concept Dependency Injection search_nodes tool RealtimeBoard search_nodes concept DNS geolocation routing search_nodes tool GraphQL search_nodes concept Tethered Cat Fallacy search_nodes talk Devise pitfalls and way to tighten security search_nodes+list_nodes_by_kind tool Devise search_nodes talk Securing Rails applications search_nodes+list_nodes_by_kind concept Enumeration Attack search_nodes resource OWASP search_nodes tool devise_token_auth search_nodes tool Babel search_nodes tool PureScript search_nodes tool esbuild search_nodes concept WebAssembly search_nodes tool Preact search_nodes concept Custom Elements search_nodes tool Uppy search_nodes concept Pipeline Operator search_nodes concept CSS-in-JS search_nodes tool Elm search_nodes tool PR Labeler search_nodes tool GitHub Actions search_nodes tool actions/upload-artifact search_nodes tool actions/checkout search_nodes tool RubyGems search_nodes tool Browserslist search_nodes concept esbuild Pipeline search_nodes tool curses search_nodes tool Brotli search_nodes tool htmx search_nodes tool nginx search_nodes concept tus protocol search_nodes takeaway Switch on HTTP/2 search_nodes tool HTTP/2 search_nodes tool SQLite search_nodes tool libvips search_nodes takeaway Upgrade Ruby version for free speed search_nodes takeaway Mentorship Grows Both Sides search_nodes takeaway Look outside Ruby for better patterns search_nodes talk 10 Things You Never Wanted To Know About Reform 3 list_nodes_by_kind talk 18 months of using hotwire and viewcomponent in production list_nodes_by_kind talk Accidentally building a neural network — A Ruby product recommendation journey list_nodes_by_kind talk Adventures in durable execution list_nodes_by_kind talk An Introduction to Test Bench list_nodes_by_kind talk Applying CQRS & Event Sourcing on Rails applications list_nodes_by_kind talk Better ActiveRecord IRB Output Gem Lightning Talk list_nodes_by_kind talk Better WebPerformance with Rails list_nodes_by_kind talk Beyond the current state Time travel to the rescue! list_nodes_by_kind talk Building a Production-Ready AI App: MCP & OAuth on Rails list_nodes_by_kind talk Counterintuitive Rails pt. 1 list_nodes_by_kind talk Counterintuitive Rails pt. 2 list_nodes_by_kind talk Data Management With Ruby list_nodes_by_kind talk Dealing With A Project's Complexity In A Changing Environment list_nodes_by_kind talk Debug like a scientist list_nodes_by_kind talk Developer, Programmer, and AI list_nodes_by_kind talk Development with axioms list_nodes_by_kind talk Doctrine of Useful Objects Separate Fact from Fiction in OOD list_nodes_by_kind talk Enterprise Rails Panel list_nodes_by_kind talk Event-Driven Rails Discussion Panel list_nodes_by_kind talk Events events events list_nodes_by_kind talk Event Sourcing and Actor model in Ruby list_nodes_by_kind talk Event Sourcing Anti Patterns and Failures list_nodes_by_kind talk Extracting logic from templates with Hanami Views list_nodes_by_kind talk FaaS for Ruby Lightning Talk list_nodes_by_kind talk Fantastic Databases and Where to Find Them list_nodes_by_kind talk Fix Production Bugs 20x Faster list_nodes_by_kind talk Forms Are Dead: Building Agentic Workflows in Ruby list_nodes_by_kind talk From open source to IPO list_nodes_by_kind talk From PostgreSQL to SQLite in Rails list_nodes_by_kind talk Functional Programming as Naming Lightning Talk list_nodes_by_kind talk Game Hunter JRuby Roguelike Lightning Talk list_nodes_by_kind talk Gaming With Ruby and VMs Lightning Talk list_nodes_by_kind talk Gregorian Calendar list_nodes_by_kind talk Grokking FP For The Practicing Rubyist list_nodes_by_kind talk Handling file uploads for modern developer list_nodes_by_kind talk How (and why) to run SQLite in production list_nodes_by_kind talk How I brought LCP down to under 350 ms list_nodes_by_kind talk How to Be Top 10% in Ruby Lightning Talk list_nodes_by_kind talk How To Ensure Systems Do What We Want And Take Care Of Themselves list_nodes_by_kind talk How to hijack list_nodes_by_kind talk How To Package A Rails Engine Generation To Automation list_nodes_by_kind talk International cooperation in IT teams list_nodes_by_kind talk Introducing Sorbet into your Ruby codebase list_nodes_by_kind talk Introduction To Event Sourcing How To Use It With Ruby list_nodes_by_kind talk Is the monolith a problem list_nodes_by_kind talk iTerm Triggers and say Command Lightning Talk list_nodes_by_kind talk It is not so bad, after all list_nodes_by_kind talk JavaScript and Frontend Panel list_nodes_by_kind talk JRuby: Professional-Grade Ruby list_nodes_by_kind talk Kamal is not harder than your PaaS list_nodes_by_kind talk LATERAL Joins Rails Performance Lightning Talk list_nodes_by_kind talk Mentoring the Rails World Website Lightning Talk list_nodes_by_kind talk Message Bus Decoupling Lightning Talk list_nodes_by_kind talk Methods Gem for Ruby Method References list_nodes_by_kind talk Might & Magic of Domain-Driven Design list_nodes_by_kind talk Multi-region data governance in Rails application list_nodes_by_kind talk Mutant on steroids list_nodes_by_kind talk Mutation testing workshop wroclove.rb 2019 list_nodes_by_kind talk MVCC for Ruby developers list_nodes_by_kind talk My core skill never was the typing list_nodes_by_kind talk Native apps are dead, long live native apps list_nodes_by_kind talk Next Token! list_nodes_by_kind talk Nightmare neighbours caveats of Rails based mutlitenancy list_nodes_by_kind talk No-build Utopia: Modern User Experiences with Rails & Web Standards list_nodes_by_kind talk No 'Pundit' Intended list_nodes_by_kind talk One machine please, make it Turing list_nodes_by_kind talk On the tasteful journey to Yippee list_nodes_by_kind talk Optimistic ul list_nodes_by_kind talk Optimizing performance in Rails apps with GraphQL layer list_nodes_by_kind talk Orchestrating video transcoding in ruby list_nodes_by_kind talk Outdated Browser Detection list_nodes_by_kind talk Performance of Distributed Applications list_nodes_by_kind talk Phantom Migrations Gem Lightning Talk list_nodes_by_kind talk Prevent account sharing list_nodes_by_kind talk Procrastination and Fish Shell Aliases Lightning Talk list_nodes_by_kind talk Reforging (or rather rebrewing) the support for open-source list_nodes_by_kind+get_node_edges talk Removing Code with Breadth-First Search list_nodes_by_kind talk Rewrite with confidence list_nodes_by_kind talk Ruby Archaeology list_nodes_by_kind talk Ruby has literally always had types list_nodes_by_kind talk Ruby on a $4 Computer list_nodes_by_kind talk Ruby Packer Lightning Talk list_nodes_by_kind talk Ruby Rendezvous Method Call, Proc, and Beyond list_nodes_by_kind talk Ruby Standard Library Hidden Gems Lightning Talk list_nodes_by_kind talk Setup and operation of mutation testing in agentic world list_nodes_by_kind talk Sonic Pi Music Performance list_nodes_by_kind talk Spice up your life with eql list_nodes_by_kind talk Strategic Domain Event Design Lightning Talk list_nodes_by_kind talk SUPER AIN'T SUPER From OOP To FP and Beyond! list_nodes_by_kind talk Testing Randomness list_nodes_by_kind talk The Curse of Service Object list_nodes_by_kind talk The good, the bad and the remote — collaborative domain modeling with EventStorming list_nodes_by_kind talk The pillars of Domain Driven Design list_nodes_by_kind talk Toolbelt of a Seasoned Bug Hunter list_nodes_by_kind talk To Refine or Not to Refine list_nodes_by_kind talk Typical DDDomains In Rails Apps list_nodes_by_kind talk Understanding coupling list_nodes_by_kind talk UringMachine — High Performance Concurrency for Ruby Using io_uring list_nodes_by_kind talk Webmock unmocked list_nodes_by_kind talk When REST is Not Enough: Implementing Alternative Protocols in Ruby on Rails list_nodes_by_kind talk Why I Like Mentoring Lightning Talk list_nodes_by_kind talk Working with RailsEventStore in Cashflow Management System list_nodes_by_kind talk Write a Blog Lightning Talk list_nodes_by_kind talk Writing a Game in Ruby on Rails Lightning Talk list_nodes_by_kind

2 edges