← Extractions

Ruby Rendezvous: Method Call, Proc, and Beyond — Agnieszka Małaszkiewicz at wroclove.rb 2023

Agnieszka Małaszkiewicz gives a nostalgic tour of lesser-known Ruby flavors at wroclove.rb 2023 — adjacent-string concatenation in parse.y, calling methods via :: scope resolution, calling procs with === (enabling procs in case/when), curry, Symbol#to_proc, Hash#to_proc, Method#to_proc, and numbered block parameters. She also recounts using ChatGPT to brainstorm the talk title and reflects on first speaking at wroclove.rb in 2020.

Model
claude-opus-4-7
Ingestion
f5b8165f
Input tokens
157,970
fresh
92,240
cached
58,864
cache write
6,866
Output tokens
12,618
Duration
176.0s
Roundtrips
6
Tool calls
15
Cost
$0.00
Nodes/edges extracted
29 / 41
Read set (nodes/edges)
82 / 2

Nodes (29)

create merb tool
kind (empty) → tool
name (empty) → merb
slug (empty) → merb
attrs (empty) → {"status" => "defunct", "category" => "framework"}
description (empty) → Ruby web framework whose core team later merged with the Rails core team. Cited in Małaszkiewicz's talk as an early c...
short_description (empty) → Defunct Ruby web framework that merged with Rails.
create Hash#to_proc concept
kind (empty) → concept
name (empty) → Hash#to_proc
slug (empty) → hash-to_proc
attrs (empty) → {"category" => "pattern"}
description (empty) → Ruby core method that converts a Hash into a proc equivalent to `->(key){ hash[key] }`, implemented in Rubinius as `m...
short_description (empty) → Ruby method converting a hash into a proc equivalent to hash[key].
create Ruby Archaeology talk
kind (empty) → talk
name (empty) → Ruby Archaeology
slug (empty) → ruby-archaeology
attrs (empty) → {"type" => "talk"}
description (empty) → Nick Schwaderer's talk exploring old Ruby code (like the merb framework) in the spirit of a 'Ruby detective'. Małaszk...
short_description (empty) → Nick Schwaderer talk on exploring old Ruby code as a 'Ruby detective'.
update Agnieszka Małaszkiewicz person
attrs (empty) → {"blog" => "womanonrails.com", "first_ruby_version" => "1.9.3", "first_rails_version" => "3.0", "joined_ruby_communit...
description Conference speaker. → Ruby developer who joined the Ruby community around 2011–2012, starting on Ruby 1.9.3 and Rails 3. Runs the Woman on ...
short_description Conference speaker. → Ruby developer and conference speaker; author of Woman on Rails blog.
update Ruby Rendezvous Method Call, Proc, and Beyond talk
attrs {"type" => "talk"} → {"type" => "talk", "title_brainstormed_with" => "ChatGPT"}
description Talk at wroclove.rb 2023. → Agnieszka Małaszkiewicz's wroclove.rb 2023 talk (final title crowdsourced with ChatGPT after rejecting drier suggesti...
short_description Talk at wroclove.rb 2023. → Tour of lesser-known ways to call methods and procs in Ruby.
create ChatGPT tool
kind (empty) → tool
name (empty) → ChatGPT
slug (empty) → chatgpt
attrs (empty) → {"category" => "service"}
description (empty) → Conversational LLM by OpenAI. Małaszkiewicz used ChatGPT to brainstorm the title of her wroclove.rb 2023 talk, iterat...
short_description (empty) → OpenAI's conversational LLM assistant.
create Greg Navis person
kind (empty) → person
name (empty) → Greg Navis
slug (empty) → greg-navis
description (empty) → Ruby developer and blogger. Author of the widely cited article enumerating 12 ways to call a method in Ruby. Małaszki...
short_description (empty) → Ruby developer; author of '12 ways to call a method in Ruby'.
create 12 Ways to Call a Method in Ruby resource
kind (empty) → resource
name (empty) → 12 Ways to Call a Method in Ruby
slug (empty) → 12-ways-to-call-a-method-in-ruby
attrs (empty) → {"type" => "article"}
description (empty) → Blog article by Greg Navis cataloguing 12 ways to call a method in Ruby, using a `User#hello` example. Referenced by ...
short_description (empty) → Greg Navis's article enumerating 12 ways to invoke a method in Ruby.
create Nick Schwaderer person
kind (empty) → person
name (empty) → Nick Schwaderer
slug (empty) → nick-schwaderer
description (empty) → Ruby developer whose 'Ruby Archaeology' / 'Ruby Detective' talk inspired Małaszkiewicz. He popularized the framing of...
short_description (empty) → Ruby developer known for 'Ruby Archaeology' / 'Ruby Detective' talks.
create Rubinius tool
kind (empty) → tool
name (empty) → Rubinius
slug (empty) → rubinius
attrs (empty) → {"category" => "language", "last_update" => "2020"}
description (empty) → Alternative Ruby implementation written largely in Ruby itself. Last update was in 2020. Małaszkiewicz uses it as a r...
short_description (empty) → Ruby implementation written largely in Ruby.
create IronRuby tool
kind (empty) → tool
name (empty) → IronRuby
slug (empty) → ironruby
attrs (empty) → {"status" => "defunct", "category" => "language"}
description (empty) → Historical Ruby implementation targeting Microsoft's .NET framework, circa 2011. Mentioned in passing by Małaszkiewic...
short_description (empty) → Ruby implementation for Microsoft's .NET framework.
create RuboCop tool
kind (empty) → tool
name (empty) → RuboCop
slug (empty) → rubocop
attrs (empty) → {"category" => "tool"}
description (empty) → Ruby static code analyzer / style linter. Its documentation recommends using `::` only for referencing constants (inc...
short_description (empty) → Ruby static code analyzer and style linter.
create Yacc tool
kind (empty) → tool
name (empty) → Yacc
slug (empty) → yacc
attrs (empty) → {"category" => "tool"}
description (empty) → Parser generator ('yet another compiler compiler') that consumes a BNF-style grammar description and emits C code. Us...
short_description (empty) → 'Yet another compiler compiler' — parser generator.
create Backus-Naur Form concept
kind (empty) → concept
name (empty) → Backus-Naur Form
slug (empty) → backus-naur-form
attrs (empty) → {"category" => "methodology"}
description (empty) → Metalanguage ('BNF') for describing the grammar of programming languages. Ruby's parse.y uses BNF-style notation cons...
short_description (empty) → Metasyntax for describing context-free grammars of programming languages.
create Ruby parse.y resource
kind (empty) → resource
name (empty) → Ruby parse.y
slug (empty) → ruby-parse-y
attrs (empty) → {"type" => "repository"}
description (empty) → The `parse.y` file in Ruby's MRI source tree — a Yacc grammar in BNF-like notation that defines Ruby's syntax. Małasz...
short_description (empty) → The grammar file defining Ruby's parser in MRI.
create Adjacent String Literal Concatenation concept
kind (empty) → concept
name (empty) → Adjacent String Literal Concatenation
slug (empty) → adjacent-string-literal-concatenation
attrs (empty) → {"category" => "pattern"}
description (empty) → Ruby (like Python, C, and C++) concatenates adjacent string literals at parse time, so `'hello' " world"` becomes `'h...
short_description (empty) → Ruby parse-time concatenation of adjacent string literals separated by whitespace.
create Scope Resolution Operator concept
kind (empty) → concept
name (empty) → Scope Resolution Operator
slug (empty) → scope-resolution-operator
attrs (empty) → {"category" => "pattern"}
description (empty) → Ruby's `::` operator, properly called the scope (or constant) resolution operator, used primarily to reference consta...
short_description (empty) → Ruby's :: operator for resolving constants, classes and modules.
create Proc Triple-Equals Call concept
kind (empty) → concept
name (empty) → Proc Triple-Equals Call
slug (empty) → proc-triple-equals-call
attrs (empty) → {"category" => "pattern", "since_version" => "1.9.1"}
description (empty) → Ruby Proc responds to `===`, so `my_proc === arg` is equivalent to `my_proc.call(arg)`. Present since at least Ruby 1...
short_description (empty) → Calling a Ruby Proc with === — enabling procs in case/when.
create Symbol#to_proc concept
kind (empty) → concept
name (empty) → Symbol#to_proc
slug (empty) → symbol-to_proc
attrs (empty) → {"category" => "pattern"}
description (empty) → Ruby core method that returns a proc which, given an object as its first argument, sends the symbol's method to that ...
short_description (empty) → Ruby method converting a symbol into a proc that invokes that method on its argument.
create Method#to_proc concept
kind (empty) → concept
name (empty) → Method#to_proc
slug (empty) → method-to_proc
attrs (empty) → {"category" => "pattern"}
description (empty) → Ruby converts a `Method` object (obtained via `object.method(:name)`) to a Proc bound to its original receiver. Combi...
short_description (empty) → Converts a Method object into a Proc bound to its receiver.
create Proc#curry concept
kind (empty) → concept
name (empty) → Proc#curry
slug (empty) → proc-curry
attrs (empty) → {"category" => "pattern"}
description (empty) → `Proc#curry` returns a curried version of a proc with a declared arity. Calling the curried proc with fewer arguments...
short_description (empty) → Ruby method returning a curried proc that partially applies arguments.
create Numbered Block Parameters concept
kind (empty) → concept
name (empty) → Numbered Block Parameters
slug (empty) → numbered-block-parameters
attrs (empty) → {"category" => "pattern"}
description (empty) → Ruby feature allowing block arguments to be referenced implicitly as `_1`, `_2`, `_3`, etc., instead of naming them b...
short_description (empty) → Implicit block parameters _1, _2, _3… in Ruby.
create Woman on Rails resource
kind (empty) → resource
name (empty) → Woman on Rails
slug (empty) → woman-on-rails
attrs (empty) → {"url" => "womanonrails.com", "type" => "blog-post"}
description (empty) → Agnieszka Małaszkiewicz's blog at womanonrails.com. She publishes her conference slides there (e.g. womanonrails.com/...
short_description (empty) → Agnieszka Małaszkiewicz's Ruby and Rails blog.
create Use === to put Procs in case/when takeaway
kind (empty) → takeaway
name (empty) → Use === to put Procs in case/when
slug (empty) → use-to-put-procs-in-case-when
attrs (empty) → {"type" => "recommendation"}
description (empty) → Practical recommendation from the talk: because Proc responds to `===` and `case/when` dispatches via `===`, any Proc...
short_description (empty) → Since Ruby 2.2, any Proc can act as a case/when condition via ===.
create Prefer . over :: for method calls takeaway
kind (empty) → takeaway
name (empty) → Prefer . over :: for method calls
slug (empty) → prefer-over-for-method-calls
attrs (empty) → {"type" => "recommendation"}
description (empty) → Convention, codified by RuboCop: use `::` only to reference constants, classes, modules, and constructors like `Nokog...
short_description (empty) → RuboCop and community convention: reserve :: for constants, use . for methods.
create Read Ruby source to understand Ruby takeaway
kind (empty) → takeaway
name (empty) → Read Ruby source to understand Ruby
slug (empty) → read-ruby-source-to-understand-ruby
attrs (empty) → {"type" => "lesson-learned"}
description (empty) → Meta-lesson of the talk: many 'magic' Ruby features become obvious once you read the source. Adjacent-string concaten...
short_description (empty) → Dig into parse.y and Rubinius to learn how Ruby features really work.
create Does any of these techniques see real project use? question
kind (empty) → question
name (empty) → Does any of these techniques see real project use?
slug (empty) → does-any-of-these-techniques-see-real-project-use
attrs (empty) → {"answer_summary" => "Mostly for fun; in production she uses === procs in case/when (notably with Rails Event Store) ...
description (empty) → Audience question following the talk. Answer: some techniques are mostly fun/curiosity and not production-ready, but ...
short_description (empty) → Audience asks whether she uses these tricks in production.
create Have you compared performance of these method-call styles? question
kind (empty) → question
name (empty) → Have you compared performance of these method-call styles?
slug (empty) → have-you-compared-performance-of-these-method-call-styles
attrs (empty) → {"answer_summary" => "No benchmarks; performance comparison is an open topic."}
description (empty) → Audience question: beyond readability, have the techniques been benchmarked for speed or any other benefit? Answer: n...
short_description (empty) → Audience asks whether any technique offers speed benefits beyond fun.
create Do you chain/compose procs in practice? question
kind (empty) → question
name (empty) → Do you chain/compose procs in practice?
slug (empty) → do-you-chain-compose-procs-in-practice
attrs (empty) → {"answer_summary" => "Tried it for fun, but readability suffers, so not used in production."}
description (empty) → Audience question about composing functions / passing procs into procs within blocks. Answer: she has tried it as a '...
short_description (empty) → Audience asks about functional composition of procs passed through blocks.

Edges (41)

update Agnieszka Małaszkiewicz → authored → Ruby Rendezvous Method Call, Proc, and Beyond
context (empty) → Speaker delivering the talk at wroclove.rb 2023.
update Ruby Rendezvous Method Call, Proc, and Beyond → presented_at → wroclove.rb 2023
context (empty) → Talk given at wroclove.rb 2023.
create Agnieszka Małaszkiewicz → attended → wroclove.rb 2023
context (empty) → Speaker and attendee in 2023.
relation (empty) → attended
source_node_id (empty) → e21d8935-ebce-4159-86ec-41c6bd542ef5
target_node_id (empty) → f1adcf6d-780c-4418-8a81-c88da8b4e631
create Agnieszka Małaszkiewicz → authored → Woman on Rails
context (empty) → Runs and publishes at womanonrails.com.
relation (empty) → authored
source_node_id (empty) → e21d8935-ebce-4159-86ec-41c6bd542ef5
target_node_id (empty) → 7354eab9-bfbc-4b30-a66b-8794a70cb685
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Ruby
context (empty) → Tour of Ruby language features around method invocation and procs.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → c7f25b33-06c9-460e-aca7-fe993123ebee
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Adjacent String Literal Concatenation
context (empty) → Opens with the Ruby behavior where adjacent string literals auto-concatenate.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 5ff6f867-3dcc-4a2b-a320-bc8473e78341
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Ruby parse.y
context (empty) → Inspects parse.y to explain string concatenation grammar.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → c650f73a-92d8-469a-bcb5-a114b8a69615
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Backus-Naur Form
context (empty) → Explains parse.y's BNF notation.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 85377036-bc2f-43ab-8361-49ce3ed40f07
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Yacc
context (empty) → Notes parse.y is consumed by Yacc to emit C.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → f87f08c7-012c-454c-95ba-3a242452a02a
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Scope Resolution Operator
context (empty) → Covers calling methods via :: and why RuboCop discourages it.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 964f5d33-cd80-4220-8590-b824761406cf
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Proc Triple-Equals Call
context (empty) → Highlights calling a proc via === and using procs in case/when.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 9cfff207-f429-424d-8b24-db91f5580f4e
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Symbol#to_proc
context (empty) → Walks the Rubinius implementation of Symbol#to_proc.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 7dfb5d9e-54d7-4f5c-b5ba-6f5fee649d88
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Hash#to_proc
context (empty) → Shows hash.to_proc and using &hash with map.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 9c3db252-e62b-41fa-b75e-f14ac2f0fe8e
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Method#to_proc
context (empty) → Uses method(:+).to_proc with curry to pass an argument via map.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 2c2046e1-bd26-403b-a7de-8ff8cea7bec1
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Proc#curry
context (empty) → Demonstrates curry for partial application with procs and methods.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 72c23470-0d41-4270-8dd3-3dc7a58b875c
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Numbered Block Parameters
context (empty) → Closes with _1/_2 implicit block parameters.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → d891ddcb-56bd-42f4-bb58-8e2a17572138
create Ruby Rendezvous Method Call, Proc, and Beyond → about → RuboCop
context (empty) → Cites RuboCop's guidance to reserve :: for constants.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → fcac2d76-8455-4039-b625-b40591cbcf17
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Rubinius
context (empty) → Uses Rubinius as a readable reference implementation of Symbol#to_proc and Hash#to_proc.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → a62a44c7-861d-435f-acfa-8c6e59680126
create Ruby Rendezvous Method Call, Proc, and Beyond → about → IronRuby
context (empty) → Mentioned in passing as an old .NET Ruby implementation.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → ac28fdd5-7fe1-42a2-a5f6-9674ac6587f5
create Ruby Rendezvous Method Call, Proc, and Beyond → about → merb
context (empty) → Cites merb as a codebase that used :: to call methods.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 105ff0d0-e868-45c0-b0d6-90a65bb99739
create Ruby Rendezvous Method Call, Proc, and Beyond → about → 12 Ways to Call a Method in Ruby
context (empty) → Uses Greg Navis's article as the baseline catalogue of method-call styles.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 7cbde1ba-da65-49fb-9f6d-2968086a6400
create Ruby Rendezvous Method Call, Proc, and Beyond → about → Ruby Archaeology
context (empty) → References Nick Schwaderer's Ruby Archaeology talk as a source of the :: call example.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → 69a50ec5-02ec-4a7f-90d5-682f62dc78bd
create Ruby Rendezvous Method Call, Proc, and Beyond → about → ChatGPT
context (empty) → Opens with ChatGPT-brainstormed title suggestions.
relation (empty) → about
source_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
target_node_id (empty) → ad4d9c22-458a-4d00-947c-e5fb3221ebbf
create Greg Navis → authored → 12 Ways to Call a Method in Ruby
context (empty) → Navis wrote the article Małaszkiewicz references.
relation (empty) → authored
source_node_id (empty) → 6adce20b-cea0-4456-ae19-316dc1d14a8e
target_node_id (empty) → 7cbde1ba-da65-49fb-9f6d-2968086a6400
create Nick Schwaderer → authored → Ruby Archaeology
context (empty) → Schwaderer authored and presented the Ruby Archaeology / Ruby Detective talk.
relation (empty) → authored
source_node_id (empty) → 4471ce96-a8b7-4cfe-9b61-69ebb36b5048
target_node_id (empty) → 69a50ec5-02ec-4a7f-90d5-682f62dc78bd
create Agnieszka Małaszkiewicz → has_skill → Ruby
attrs (empty) → {"level" => "expert"}
context (empty) → Experienced Rubyist since 2011–2012, comfortable reading Ruby source.
relation (empty) → has_skill
source_node_id (empty) → e21d8935-ebce-4159-86ec-41c6bd542ef5
target_node_id (empty) → c7f25b33-06c9-460e-aca7-fe993123ebee
create Agnieszka Małaszkiewicz → uses → ChatGPT
context (empty) → Used ChatGPT to brainstorm the talk's title.
relation (empty) → uses
source_node_id (empty) → e21d8935-ebce-4159-86ec-41c6bd542ef5
target_node_id (empty) → ad4d9c22-458a-4d00-947c-e5fb3221ebbf
create Agnieszka Małaszkiewicz → uses → Rubinius
context (empty) → Reads Rubinius source to understand Ruby internals.
relation (empty) → uses
source_node_id (empty) → e21d8935-ebce-4159-86ec-41c6bd542ef5
target_node_id (empty) → a62a44c7-861d-435f-acfa-8c6e59680126
create Agnieszka Małaszkiewicz → recommends → Ruby Archaeology
context (empty) → Explicitly recommends Schwaderer's talk during her presentation.
relation (empty) → recommends
source_node_id (empty) → e21d8935-ebce-4159-86ec-41c6bd542ef5
target_node_id (empty) → 69a50ec5-02ec-4a7f-90d5-682f62dc78bd
create Agnieszka Małaszkiewicz → recommends → 12 Ways to Call a Method in Ruby
context (empty) → Directs audience to Greg Navis's article.
relation (empty) → recommends
source_node_id (empty) → e21d8935-ebce-4159-86ec-41c6bd542ef5
target_node_id (empty) → 7cbde1ba-da65-49fb-9f6d-2968086a6400
create Use === to put Procs in case/when → from_talk → Ruby Rendezvous Method Call, Proc, and Beyond
context (empty) → Key practical takeaway of the talk.
relation (empty) → from_talk
source_node_id (empty) → 6a926922-f988-44f4-b169-e54df317010a
target_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
create Use === to put Procs in case/when → about → Proc Triple-Equals Call
context (empty) → Takeaway explicitly about the === proc-call behavior.
relation (empty) → about
source_node_id (empty) → 6a926922-f988-44f4-b169-e54df317010a
target_node_id (empty) → 9cfff207-f429-424d-8b24-db91f5580f4e
create Prefer . over :: for method calls → from_talk → Ruby Rendezvous Method Call, Proc, and Beyond
context (empty) → Discussed alongside the RuboCop rule.
relation (empty) → from_talk
source_node_id (empty) → 7efdd07d-7ca3-453a-a208-aafef82588ff
target_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
create Prefer . over :: for method calls → about → Scope Resolution Operator
context (empty) → Takeaway concerns using :: vs . for invocation.
relation (empty) → about
source_node_id (empty) → 7efdd07d-7ca3-453a-a208-aafef82588ff
target_node_id (empty) → 964f5d33-cd80-4220-8590-b824761406cf
create Read Ruby source to understand Ruby → from_talk → Ruby Rendezvous Method Call, Proc, and Beyond
context (empty) → Underlying meta-lesson demonstrated throughout the talk.
relation (empty) → from_talk
source_node_id (empty) → c12b0528-7ba7-43e5-877d-5052a4ce337d
target_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
create Read Ruby source to understand Ruby → about → Ruby parse.y
context (empty) → Takeaway illustrated with parse.y.
relation (empty) → about
source_node_id (empty) → c12b0528-7ba7-43e5-877d-5052a4ce337d
target_node_id (empty) → c650f73a-92d8-469a-bcb5-a114b8a69615
create Read Ruby source to understand Ruby → about → Rubinius
context (empty) → Takeaway illustrated with Rubinius's Ruby-in-Ruby source.
relation (empty) → about
source_node_id (empty) → c12b0528-7ba7-43e5-877d-5052a4ce337d
target_node_id (empty) → a62a44c7-861d-435f-acfa-8c6e59680126
create Does any of these techniques see real project use? → asked_at → Ruby Rendezvous Method Call, Proc, and Beyond
context (empty) → Audience Q&A question.
relation (empty) → asked_at
source_node_id (empty) → 563b5aa7-2082-4831-8832-8ff717ca574c
target_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
create Does any of these techniques see real project use? → about → rails_event_store
context (empty) → Speaker answers that she uses === procs with Rails Event Store in real code.
relation (empty) → about
source_node_id (empty) → 563b5aa7-2082-4831-8832-8ff717ca574c
target_node_id (empty) → 9e5cb718-6f86-4937-9b4c-eb77da3aede8
create Have you compared performance of these method-call styles? → asked_at → Ruby Rendezvous Method Call, Proc, and Beyond
context (empty) → Audience Q&A question on benchmarking.
relation (empty) → asked_at
source_node_id (empty) → a65d4766-3d93-4057-a415-895e067f9f72
target_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc
create Do you chain/compose procs in practice? → asked_at → Ruby Rendezvous Method Call, Proc, and Beyond
context (empty) → Audience Q&A question on functional composition of procs.
relation (empty) → asked_at
source_node_id (empty) → 0f9bf7bc-07ee-4a06-8683-753bb17e72db
target_node_id (empty) → 1e419349-d18a-4b0f-b476-5478287a87cc

Read set

82 nodes

event wroclove.rb 2019 search_nodes event wroclove.rb 2018 search_nodes event wroclove.rb 2024 search_nodes event wroclove.rb 2025 search_nodes event wroclove.rb 2022 search_nodes event wroclove.rb 2023 search_nodes event wroclove.rb 2026 search_nodes talk Building LLM powered applications in Ruby search_nodes talk Fantastic Databases and Where to Find Them search_nodes talk Data Management With Ruby search_nodes talk Ruby Rendezvous Method Call, Proc, and Beyond search_nodes+get_node_edges concept Method References in Ruby search_nodes concept Ruby undef_method performance search_nodes tool methods gem search_nodes talk Methods Gem for Ruby Method References search_nodes concept Duck Typing search_nodes concept yield_self search_nodes tool rails_event_store search_nodes tool Rails Event Store Event Browser search_nodes project rails_event_store/ecommerce search_nodes tool Ruby Event Store search_nodes tool Ruby on Rails search_nodes takeaway rails_event_store is the most productive DDD tool in Ruby search_nodes question Can parts of Eventide, Rails Event Store and Trailblazer be combined in one project? search_nodes talk Applying CQRS & Event Sourcing on Rails applications search_nodes talk Working with RailsEventStore in Cashflow Management System search_nodes concept Event Store search_nodes talk Scientific Ruby Lightning Talk search_nodes talk Rubyana Gems and the Ractorous Rubetta Stones! search_nodes takeaway Ruby as a Data Management Language search_nodes resource Short Ruby Newsletter search_nodes project Ruby Romania search_nodes resource My Ruby Story search_nodes tool TruffleRuby search_nodes person Akira Matsuda search_nodes project Ruby News search_nodes project Scientific Ruby Community search_nodes takeaway Prefer class-method services over stateful service objects search_nodes concept Stateless Service Object search_nodes takeaway Encapsulation Via Function-Style Objects search_nodes concept Ruby Module Customization Mechanics search_nodes question How do you determine call-graph arrow direction? search_nodes person Agnieszka Małaszkiewicz search_nodes person Michal Matyas search_nodes person Adam Okoń search_nodes talk Building Beautiful UIs with Ruby A Rails-Native Approach search_nodes question Why implement the proxy in Ruby? search_nodes tool Distributed Ruby search_nodes tool Ruby search_nodes concept Global Interpreter Lock search_nodes talk Ruby Standard Library Hidden Gems Lightning Talk search_nodes takeaway Upgrade Ruby version for free speed search_nodes tool mruby search_nodes project monolith framework search_nodes concept Cynefin Framework search_nodes tool Rack search_nodes tool Ember.js search_nodes talk Ruby on a $4 Computer search_nodes tool Active Admin search_nodes tool JSON API Resources search_nodes tool .NET search_nodes talk JRuby: Professional-Grade Ruby search_nodes takeaway Name Things To Find Their Properties search_nodes company Amplifr search_nodes tool Release Drafter search_nodes tool webpagetest.org search_nodes tool RealtimeBoard search_nodes talk Events events events search_nodes company Transloadit search_nodes talk Offline Sandwich Focus Workflow search_nodes tool Tailwind CSS search_nodes takeaway Act as a perfect tool on reviews search_nodes tool Prime (Ruby stdlib) search_nodes concept Strong Parameters search_nodes takeaway Be kind and build useful things search_nodes concept Developer vs Programmer search_nodes takeaway Buy Faster Hardware search_nodes talk Developer, Programmer, and AI search_nodes resource awesome-ddd search_nodes talk Ever shorter feedback loop search_nodes tool Sync Space VR search_nodes person Julik Tarkhanov search_nodes

2 edges