← Extractions

Data Management With Ruby — Sergey Sergyenko at wroclove.rb 2022

Sergey Sergyenko argues Ruby is well-suited for data management roles (not just data engineering) and walks through a HIPAA-compliant healthcare project where inherited PII led the team to build Grazer, a Faker-powered data obfuscation tool that masks production data while preserving shape, relationships, and consistency.

Model
claude-opus-4-7
Ingestion
6ec89af3
Input tokens
113,044
fresh
42,840
cached
56,742
cache write
13,462
Output tokens
12,667
Duration
179.1s
Roundtrips
4
Tool calls
11
Cost
$0.00
Nodes/edges extracted
32 / 52
Read set (nodes/edges)
76 / 2

Nodes (32)

update Data Management With Ruby talk
attrs {"type" => "talk"} {"type" => "talk", "slide_count" => "30"}
description Talk at wroclove.rb 2022. Sergey Sergyenko's wroclove.rb 2022 talk. Defines data management as a holistic discipline broader than database mana...
short_description Talk at wroclove.rb 2022. wroclove.rb 2022 talk arguing Ruby is well-suited for data-management work.
create Belarus Ruby User Group project
kind (empty) project
name (empty) Belarus Ruby User Group
slug (empty) belarus-ruby-user-group
attrs (empty) {"status" => "active", "age_at_talk" => "12 years"}
description (empty) Local Ruby user group in Belarus, 12 years old at the time of the talk. Long-running community that Sergey Sergyenko ...
short_description (empty) Belarus-based Ruby community run by Sergey Sergyenko.
create Ruby News project
kind (empty) project
name (empty) Ruby News
slug (empty) ruby-news
attrs (empty) {"status" => "active", "age_at_talk" => "1 year"}
description (empty) News aggregator for the Ruby community publishing weekly updates in a monthly digest format. 1 year old at the time o...
short_description (empty) Ruby news aggregator with weekly/monthly digests.
update Sergey Sergyenko person
attrs (empty) {"years_with_ruby" => "15", "teaching_experience" => "10 years of academic lectures"}
description Conference speaker. Conference speaker. Ruby developer for 15 years. Gave academic lectures for 10 years. Runs the Belarus Ruby user grou...
short_description Conference speaker. Ruby developer of 15 years, CEO-style lead at Cybergeizer, organizer of Belarus Ruby user group.
create Cybergeizer company
kind (empty) company
name (empty) Cybergeizer
slug (empty) cybergeizer
attrs (empty) {"industry" => "software consulting", "age_at_talk" => "6 years"}
description (empty) Software consulting company, 6 years old at the time of the talk. Switched fully remote during the pandemic and is no...
short_description (empty) Software consulting company where Sergey Sergyenko works.
create Grazer project
kind (empty) project
name (empty) Grazer
slug (empty) grazer
attrs (empty) {"status" => "active", "license" => "open-source", "version_at_talk" => "0.0.1"}
description (empty) Open-source Ruby tool built by Cybergeizer (led by Sergey Sergyenko) to obfuscate real production data rather than ju...
short_description (empty) Ruby gem that obfuscates production data in-place using Faker-backed strategies.
update Faker tool
description Used in the talk's seeds.rb to populate the sample webshop (products, categories, users, reviews) with realistic samp... Ruby gem ported from Perl that generates realistic fake data from many dictionaries (names, addresses, quotes, news, ...
create HIPAA concept
kind (empty) concept
name (empty) HIPAA
slug (empty) hipaa
attrs (empty) {"category" => "practice"}
description (empty) US medical/healthcare compliance standard governing the handling of patient data. In the talk's case study, the team ...
short_description (empty) US healthcare data privacy and security compliance regime.
create Personally Identifiable Information concept
kind (empty) concept
name (empty) Personally Identifiable Information
slug (empty) personally-identifiable-information
attrs (empty) {"category" => "practice"}
description (empty) Data such as first/last name, phone, address, patient identifiers, etc. that can identify a real person and therefore...
short_description (empty) Data that can identify a specific individual and must be protected.
create Data Obfuscation concept
kind (empty) concept
name (empty) Data Obfuscation
slug (empty) data-obfuscation
attrs (empty) {"category" => "pattern"}
description (empty) Technique for making sensitive data usable in non-production contexts while preserving volume, quality, shape and rel...
short_description (empty) Replacing sensitive data with realistic non-real substitutes that preserve shape and relationships.
create Data Masking concept
kind (empty) concept
name (empty) Data Masking
slug (empty) data-masking
attrs (empty) {"category" => "pattern"}
description (empty) One of three obfuscation techniques presented (alongside encryption and tokenization). Preferred in the talk's case s...
short_description (empty) Obfuscation variant that preserves the shape of real data with non-real substitutes.
create Data Tokenization concept
kind (empty) concept
name (empty) Data Tokenization
slug (empty) data-tokenization
attrs (empty) {"category" => "pattern"}
description (empty) Obfuscation technique that substitutes sensitive values with tokens and keeps a reversible mapping so authorized user...
short_description (empty) Replacing sensitive values with reversible tokens resolvable only by authorized parties.
create Data-Dictated Development concept
kind (empty) concept
name (empty) Data-Dictated Development
slug (empty) data-dictated-development
attrs (empty) {"category" => "practice"}
description (empty) Anti-pattern coined in the talk (also abbreviated 'DDD' as a joke on domain-driven development). Occurs when crazy in...
short_description (empty) Anti-pattern where the shape of existing data dictates application design.
create ETL concept
kind (empty) concept
name (empty) ETL
slug (empty) etl
attrs (empty) {"category" => "pattern"}
description (empty) Extract-Transform-Load: classic data pipeline discipline often treated as black magic. Sergyenko argues Ruby engineer...
short_description (empty) Extract, Transform, Load — classic pipeline for moving and reshaping data.
create destroy_all vs delete_all concept
kind (empty) concept
name (empty) destroy_all vs delete_all
slug (empty) destroy_all-vs-delete_all
attrs (empty) {"category" => "practice"}
description (empty) Comparison highlighted in the talk. destroy_all is a heavy procedure that runs callbacks and cleans associations but ...
short_description (empty) ActiveRecord bulk-deletion methods with very different performance and consistency trade-offs.
create N+1 Queries concept
kind (empty) concept
name (empty) N+1 Queries
slug (empty) n-1-queries
attrs (empty) {"category" => "pattern"}
description (empty) Common ORM query-per-row performance problem. Sergyenko lists it as a core thing Ruby engineers working with data mus...
short_description (empty) Classic ORM query-per-row performance anti-pattern.
create Database Indexes concept
kind (empty) concept
name (empty) Database Indexes
slug (empty) database-indexes
attrs (empty) {"category" => "practice"}
description (empty) Database feature that speeds lookups. Sergyenko warns against the naïve 'just put indexes everywhere' advice; enginee...
short_description (empty) Database structures that speed lookups when used deliberately.
create ActiveRecord Encryption concept
kind (empty) concept
name (empty) ActiveRecord Encryption
slug (empty) activerecord-encryption
attrs (empty) {"category" => "practice"}
description (empty) Rails feature for encrypting model attributes at rest. Raised in Q&A about PII and data obfuscation. Sergyenko's view...
short_description (empty) Rails feature for encrypting attributes at rest in the database.
update Heroku tool
attrs {"category" => "platform"} {"category" => "service"}
description De-facto standard PaaS for Rails; easy to start but comparatively slow and expensive as the app grows. Speaker recomm... Platform-as-a-Service for deploying web apps. In the talk used as an example of somewhere you'd want to put a staging...
short_description Ruby-friendly PaaS for deploying web applications. PaaS for deploying Ruby and web applications.
create New Relic tool
kind (empty) tool
name (empty) New Relic
slug (empty) new-relic
attrs (empty) {"category" => "service"}
description (empty) Third-party APM service. Mentioned as something the team couldn't freely connect to the HIPAA-compliant app, and as a...
short_description (empty) Application performance monitoring SaaS.
create Power BI tool
kind (empty) tool
name (empty) Power BI
slug (empty) power-bi
attrs (empty) {"category" => "service"}
description (empty) Business-intelligence tool the healthcare client wanted to use for analytics and projections after outgrowing Excel p...
short_description (empty) Microsoft business-intelligence and analytics platform.
create Ruby as a Data Management Language takeaway
kind (empty) takeaway
name (empty) Ruby as a Data Management Language
slug (empty) ruby-as-a-data-management-language
attrs (empty) {"type" => "insight"}
description (empty) Per industry reports cited in the talk, Ruby is listed among the top-5 languages required for data roles. Because ~80...
short_description (empty) Ruby is a first-class language for data-management roles, not just web apps.
create Don't Be Greedy With Data takeaway
kind (empty) takeaway
name (empty) Don't Be Greedy With Data
slug (empty) don-t-be-greedy-with-data
attrs (empty) {"type" => "recommendation"}
description (empty) Databases, unlike bodies, eat everything you feed them and keep growing. Teams default to hoarding data for imaginary...
short_description (empty) Delete data you don't need; don't hoard it 'just in case'.
create Avoid Data-Dictated Development takeaway
kind (empty) takeaway
name (empty) Avoid Data-Dictated Development
slug (empty) avoid-data-dictated-development
attrs (empty) {"type" => "recommendation"}
description (empty) Don't let the shape of existing (often ugly) data dictate your application architecture. Delete what's not needed, no...
short_description (empty) Shape data to serve the app; don't let inherited data shape the app.
create Take Compliance Seriously From Day One takeaway
kind (empty) takeaway
name (empty) Take Compliance Seriously From Day One
slug (empty) take-compliance-seriously-from-day-one
attrs (empty) {"type" => "warning"}
description (empty) Teams routinely say 'we'll do a quick and dirty solution now and fix it when we grow / pass an audit later.' The talk...
short_description (empty) Don't defer security/compliance to a later audit — plan for it up front.
create Don't Store Sensitive Data Yourself takeaway
kind (empty) takeaway
name (empty) Don't Store Sensitive Data Yourself
slug (empty) don-t-store-sensitive-data-yourself
attrs (empty) {"type" => "recommendation"}
description (empty) From Q&A on ActiveRecord encryption: if you can avoid storing sensitive data on your own, do — use a specialized thir...
short_description (empty) Offload PII/EHR to specialized third parties and work only with metadata where possible.
create Can Grazer reference other fields for derived values like encrypted passwords? question
kind (empty) question
name (empty) Can Grazer reference other fields for derived values like encrypted passwords?
slug (empty) can-grazer-reference-other-fields-for-derived-values-like-encrypted-passwords
attrs (empty) {"answer_summary" => "Not automated in v0.0.1 — manual per-config handling today; relationships between records are p...
description (empty) Audience asks whether Grazer can reference other fields (e.g. to regenerate an encrypted password that depends on a s...
short_description (empty) Q&A on field-to-field references in Grazer config.
create How to obfuscate fields that drive app logic (e.g. patient age)? question
kind (empty) question
name (empty) How to obfuscate fields that drive app logic (e.g. patient age)?
slug (empty) how-to-obfuscate-fields-that-drive-app-logic-e-g-patient-age
attrs (empty) {"answer_summary" => "Use a custom generator or extend Faker's dictionaries; for dates of birth, shift by a small ran...
description (empty) Audience asks how to obfuscate a field like date of birth when the app has logic that depends on it (e.g. kids under ...
short_description (empty) Q&A on preserving domain-significant fields during obfuscation.
create ActiveRecord encryption vs data obfuscation for PII question
kind (empty) question
name (empty) ActiveRecord encryption vs data obfuscation for PII
slug (empty) activerecord-encryption-vs-data-obfuscation-for-pii
attrs (empty) {"answer_summary" => "Avoid storing sensitive data when possible; encrypt what you must store (hygiene). Obfuscation ...
description (empty) Audience asks about ActiveRecord encryption in the context of PII and data obfuscation. Sergyenko: first preference i...
short_description (empty) Q&A on how encryption and obfuscation fit together for PII.
create Performance of Faker on large databases during obfuscation question
kind (empty) question
name (empty) Performance of Faker on large databases during obfuscation
slug (empty) performance-of-faker-on-large-databases-during-obfuscation
attrs (empty) {"answer_summary" => "Grazer generates obfuscated data once and maintains it via a delta-tracking job that only appli...
description (empty) Audience member says they previously tried Faker-based obfuscation by hand and found per-row generation painfully slo...
short_description (empty) Q&A on slow per-row Faker generation over big tables.
create Obfuscation and re-identification via record counts / outliers question
kind (empty) question
name (empty) Obfuscation and re-identification via record counts / outliers
slug (empty) obfuscation-and-re-identification-via-record-counts-outliers
attrs (empty) {"answer_summary" => "Not a silver bullet — write custom Grazer rules for specific statistical leaks (e.g. randomly p...
description (empty) Audience member notes obfuscation can still leak identity via counts and outliers (e.g. a caretaker linked to 7 child...
short_description (empty) Q&A on leakage via statistical outliers after obfuscation.
create Does randomizing structural fields break analytics? question
kind (empty) question
name (empty) Does randomizing structural fields break analytics?
slug (empty) does-randomizing-structural-fields-break-analytics
attrs (empty) {"answer_summary" => "Obfuscation is applied once and maintained via deltas, so structural perturbations are static. ...
description (empty) Audience asks how often modifying structural attributes (e.g. randomizing counts) becomes a problem for downstream da...
short_description (empty) Q&A on whether obfuscation-induced structural changes distort downstream analytics.

Edges (52)

update Sergey SergyenkoauthoredData Management With Ruby
context (empty) Sergey Sergyenko delivered this talk at wroclove.rb 2022.
update Data Management With Rubypresented_atwroclove.rb 2022
context (empty) Talk delivered at wroclove.rb 2022.
create Sergey Sergyenkoattendedwroclove.rb 2022
context (empty) Sergey attended wroclove.rb 2022 as a speaker, his first physical conference since the pandemic.
relation (empty) attended
source_node_id (empty) 4c1e90dd-45eb-4de3-b08a-0ba68b51f692
target_node_id (empty) cfc5cfd3-25a6-46c2-8b5d-626986c71c24
create Sergey Sergyenkoworks_atCybergeizer
context (empty) Sergey works at Cybergeizer, a 6-year-old software consulting company.
relation (empty) works_at
source_node_id (empty) 4c1e90dd-45eb-4de3-b08a-0ba68b51f692
target_node_id (empty) f9704681-e0dc-4aba-a479-de41741682b7
create Sergey Sergyenkoworks_onBelarus Ruby User Group
attrs (empty) {"role" => "organizer"}
context (empty) Runs the Belarus Ruby user group, which he highlights as his longest-running project.
relation (empty) works_on
source_node_id (empty) 4c1e90dd-45eb-4de3-b08a-0ba68b51f692
target_node_id (empty) b62f9dda-6963-4bd0-a3a8-e3e9655513b7
create Sergey Sergyenkoworks_onRuby News
attrs (empty) {"role" => "creator"}
context (empty) Runs Ruby News, a Ruby news aggregator with weekly/monthly digests.
relation (empty) works_on
source_node_id (empty) 4c1e90dd-45eb-4de3-b08a-0ba68b51f692
target_node_id (empty) fe4a0ed9-ca97-4b15-b926-e598a563ccfe
create Sergey Sergyenkoworks_onGrazer
attrs (empty) {"role" => "creator"}
context (empty) Led the development of Grazer at Cybergeizer to solve the HIPAA case-study problem.
relation (empty) works_on
source_node_id (empty) 4c1e90dd-45eb-4de3-b08a-0ba68b51f692
target_node_id (empty) 3bb6cd6f-b63c-47e2-b57e-957ec80d5b9c
create Sergey Sergyenkohas_skillRuby
attrs (empty) {"level" => "expert"}
context (empty) 15 years of Ruby experience; gave a 10-year academic lecture series.
relation (empty) has_skill
source_node_id (empty) 4c1e90dd-45eb-4de3-b08a-0ba68b51f692
target_node_id (empty) c7f25b33-06c9-460e-aca7-fe993123ebee
create GrazerusesFaker
context (empty) Grazer's obfuscation strategies are backed by Faker generators.
relation (empty) uses
source_node_id (empty) 3bb6cd6f-b63c-47e2-b57e-957ec80d5b9c
target_node_id (empty) 52317669-ba75-49db-915b-af5132786399
create GrazerusesRuby
context (empty) Grazer is implemented as a Ruby gem.
relation (empty) uses
source_node_id (empty) 3bb6cd6f-b63c-47e2-b57e-957ec80d5b9c
target_node_id (empty) c7f25b33-06c9-460e-aca7-fe993123ebee
create Data Management With RubyaboutRuby
context (empty) Makes the case that Ruby is a first-class language for data-management work.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) c7f25b33-06c9-460e-aca7-fe993123ebee
create Data Management With RubyaboutFaker
context (empty) Faker is surveyed as the go-to fake-data gem and the backbone of Grazer's obfuscation strategies.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) 52317669-ba75-49db-915b-af5132786399
create Data Management With RubyaboutGrazer
context (empty) The talk introduces Grazer as the team's custom obfuscation tool.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) 3bb6cd6f-b63c-47e2-b57e-957ec80d5b9c
create Data Management With RubyaboutData Obfuscation
context (empty) Obfuscation is the central technique chosen for the HIPAA case study.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) ea5c170e-c7a1-47fb-b015-110c15b09477
create Data Management With RubyaboutData Masking
context (empty) Data masking is picked over encryption and tokenization.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) 84154d3d-8822-49f4-bc88-abc5d3a89f99
create Data Management With RubyaboutData Tokenization
context (empty) Tokenization is presented and rejected as an obfuscation technique.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) 3851c696-0722-4a32-899c-0f77366fafa1
create Data Management With RubyaboutHIPAA
context (empty) Case study centers on a HIPAA-compliant healthcare application.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) 45fcd145-5877-441e-a950-d6cf38d1d73a
create Data Management With RubyaboutPersonally Identifiable Information
context (empty) Inherited PII drove the entire obfuscation effort.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) 228dd0ff-3c12-4935-817d-a4a21c9a31aa
create Data Management With RubyaboutETL
context (empty) Discusses ETL as part of the Ruby-for-data skill set.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) b6a8c630-f111-44d6-b576-254e3f5cf941
create Data Management With RubyaboutData-Dictated Development
context (empty) Coined as an anti-pattern to avoid.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) 6a3d34b6-c6c1-4475-b24c-e2b906875f38
create Data Management With RubyaboutN+1 Queries
context (empty) Listed as a must-know topic for Ruby data engineers.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) ee033151-443a-4285-aa68-fbc2e9755d06
create Data Management With RubyaboutDatabase Indexes
context (empty) Discussed as a must-know topic, with a warning against the naïve 'indexes everywhere' advice.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) 6985ed7e-5155-4334-8bd8-8c77cddb369a
create Data Management With Rubyaboutdestroy_all vs delete_all
context (empty) Used as an example of tooling Ruby data engineers should understand.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) 827f55dd-67f2-46a8-9478-abcf26a31a21
create Data Management With RubyaboutHeroku
context (empty) Mentioned as the staging target enabled by Grazer-obfuscated data.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) d3785e15-2805-4486-a633-6e785e4f8ae3
create Data Management With RubyaboutNew Relic
context (empty) Cited as a third-party service hard to connect under compliant hosting, and where excessive data exposure leaked PII.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) b2dde7fa-893a-4245-b62b-d459b700062f
create Data Management With RubyaboutPower BI
context (empty) The client wanted Power BI for analytics, motivating obfuscated datasets.
relation (empty) about
source_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
target_node_id (empty) c37796a5-655d-441a-98e4-5554df26edec
create Ruby as a Data Management Languagefrom_talkData Management With Ruby
context (empty) Takeaway extracted from the talk.
relation (empty) from_talk
source_node_id (empty) 35e90380-521c-42d7-8815-e67ef0f80036
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create Don't Be Greedy With Datafrom_talkData Management With Ruby
context (empty) Takeaway extracted from the talk.
relation (empty) from_talk
source_node_id (empty) 4790f6f7-3e26-47cc-bf88-f286e5e20e63
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create Avoid Data-Dictated Developmentfrom_talkData Management With Ruby
context (empty) Takeaway extracted from the talk.
relation (empty) from_talk
source_node_id (empty) cd269c90-28aa-4e33-8e7d-8575b7cf6db3
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create Take Compliance Seriously From Day Onefrom_talkData Management With Ruby
context (empty) Takeaway extracted from the talk.
relation (empty) from_talk
source_node_id (empty) 479ce460-6712-4b9c-9056-1849cd53905e
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create Don't Store Sensitive Data Yourselffrom_talkData Management With Ruby
context (empty) Takeaway extracted from Q&A on ActiveRecord encryption.
relation (empty) from_talk
source_node_id (empty) b9be75c8-2356-4889-905a-5068d98d813a
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create Ruby as a Data Management LanguageaboutRuby
context (empty) Argues Ruby is a top language for data management work.
relation (empty) about
source_node_id (empty) 35e90380-521c-42d7-8815-e67ef0f80036
target_node_id (empty) c7f25b33-06c9-460e-aca7-fe993123ebee
create Avoid Data-Dictated DevelopmentaboutData-Dictated Development
context (empty) Names the anti-pattern to avoid.
relation (empty) about
source_node_id (empty) cd269c90-28aa-4e33-8e7d-8575b7cf6db3
target_node_id (empty) 6a3d34b6-c6c1-4475-b24c-e2b906875f38
create Take Compliance Seriously From Day OneaboutHIPAA
context (empty) Lesson learned from the HIPAA case study.
relation (empty) about
source_node_id (empty) 479ce460-6712-4b9c-9056-1849cd53905e
target_node_id (empty) 45fcd145-5877-441e-a950-d6cf38d1d73a
create Don't Store Sensitive Data YourselfaboutPersonally Identifiable Information
context (empty) Recommendation specifically about PII handling.
relation (empty) about
source_node_id (empty) b9be75c8-2356-4889-905a-5068d98d813a
target_node_id (empty) 228dd0ff-3c12-4935-817d-a4a21c9a31aa
create Can Grazer reference other fields for derived values like encrypted passwords?asked_atData Management With Ruby
context (empty) Asked during Q&A.
relation (empty) asked_at
source_node_id (empty) fee51661-aa19-4ea1-9881-7b1db005c620
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create How to obfuscate fields that drive app logic (e.g. patient age)?asked_atData Management With Ruby
context (empty) Asked during Q&A.
relation (empty) asked_at
source_node_id (empty) 0f57cdb4-89db-4a38-bc15-167eb8ae408f
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create ActiveRecord encryption vs data obfuscation for PIIasked_atData Management With Ruby
context (empty) Asked during Q&A.
relation (empty) asked_at
source_node_id (empty) 2336cd20-43b2-4ec7-87df-974c3d33c28b
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create Performance of Faker on large databases during obfuscationasked_atData Management With Ruby
context (empty) Asked during Q&A.
relation (empty) asked_at
source_node_id (empty) 892592db-d64d-4958-b055-239f467f9ae4
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create Obfuscation and re-identification via record counts / outliersasked_atData Management With Ruby
context (empty) Asked during Q&A.
relation (empty) asked_at
source_node_id (empty) 5df81b6b-64dd-49b3-936a-f07f04da34a5
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create Does randomizing structural fields break analytics?asked_atData Management With Ruby
context (empty) Asked during Q&A.
relation (empty) asked_at
source_node_id (empty) bbdc8699-6b98-4f69-b2c8-d94e31880273
target_node_id (empty) 45f3b9c9-b202-4c8e-8b52-669c2cf54458
create Can Grazer reference other fields for derived values like encrypted passwords?aboutGrazer
context (empty) Asks about Grazer's ability to handle field-to-field dependencies.
relation (empty) about
source_node_id (empty) fee51661-aa19-4ea1-9881-7b1db005c620
target_node_id (empty) 3bb6cd6f-b63c-47e2-b57e-957ec80d5b9c
create How to obfuscate fields that drive app logic (e.g. patient age)?aboutData Obfuscation
context (empty) About preserving domain logic through obfuscation.
relation (empty) about
source_node_id (empty) 0f57cdb4-89db-4a38-bc15-167eb8ae408f
target_node_id (empty) ea5c170e-c7a1-47fb-b015-110c15b09477
create ActiveRecord encryption vs data obfuscation for PIIaboutActiveRecord Encryption
context (empty) Directly about ActiveRecord encryption.
relation (empty) about
source_node_id (empty) 2336cd20-43b2-4ec7-87df-974c3d33c28b
target_node_id (empty) b64962a1-e81d-4392-9159-d2e980bb990d
create ActiveRecord encryption vs data obfuscation for PIIaboutPersonally Identifiable Information
context (empty) Concerns PII handling strategy.
relation (empty) about
source_node_id (empty) 2336cd20-43b2-4ec7-87df-974c3d33c28b
target_node_id (empty) 228dd0ff-3c12-4935-817d-a4a21c9a31aa
create Performance of Faker on large databases during obfuscationaboutFaker
context (empty) About Faker performance when obfuscating large tables.
relation (empty) about
source_node_id (empty) 892592db-d64d-4958-b055-239f467f9ae4
target_node_id (empty) 52317669-ba75-49db-915b-af5132786399
create Performance of Faker on large databases during obfuscationaboutGrazer
context (empty) Grazer's delta-tracking job is the proposed mitigation.
relation (empty) about
source_node_id (empty) 892592db-d64d-4958-b055-239f467f9ae4
target_node_id (empty) 3bb6cd6f-b63c-47e2-b57e-957ec80d5b9c
create Obfuscation and re-identification via record counts / outliersaboutData Obfuscation
context (empty) About limits of obfuscation against statistical re-identification.
relation (empty) about
source_node_id (empty) 5df81b6b-64dd-49b3-936a-f07f04da34a5
target_node_id (empty) ea5c170e-c7a1-47fb-b015-110c15b09477
create Does randomizing structural fields break analytics?aboutData Obfuscation
context (empty) About how obfuscation interacts with downstream analytics.
relation (empty) about
source_node_id (empty) bbdc8699-6b98-4f69-b2c8-d94e31880273
target_node_id (empty) ea5c170e-c7a1-47fb-b015-110c15b09477
create Sergey SergyenkorecommendsFaker
context (empty) Calls Faker a reason to be proud of the Ruby community and recommends it for seeding and as an obfuscation backbone.
relation (empty) recommends
source_node_id (empty) 4c1e90dd-45eb-4de3-b08a-0ba68b51f692
target_node_id (empty) 52317669-ba75-49db-915b-af5132786399
create Sergey SergyenkorecommendsETL
context (empty) Recommends learning ETL and SQL to pursue a Ruby data-engineering career.
relation (empty) recommends
source_node_id (empty) 4c1e90dd-45eb-4de3-b08a-0ba68b51f692
target_node_id (empty) b6a8c630-f111-44d6-b576-254e3f5cf941
create CybergeizerusesGrazer
context (empty) Built and used Grazer internally for the HIPAA-compliant healthcare project.
relation (empty) uses
source_node_id (empty) f9704681-e0dc-4aba-a479-de41741682b7
target_node_id (empty) 3bb6cd6f-b63c-47e2-b57e-957ec80d5b9c

Read set

76 nodes

talk Data Management With Ruby search_nodes+get_node_edges tool DBM / SDBM / GDBM search_nodes project Ruby Romania search_nodes tool MessageDB search_nodes project Scientific Ruby Community search_nodes tool Sequel search_nodes takeaway Sign serverlessforruby.org petition search_nodes talk Scientific Ruby Lightning Talk search_nodes tool Distributed Ruby search_nodes tool ROM search_nodes tool Faker search_nodes tool Ruby Browser Detection Gem search_nodes tool Ruby search_nodes tool FactoryBot search_nodes concept Fixtures over Factories search_nodes tool JSON API Resources search_nodes question Do fixtures beat factories? search_nodes talk Rubyana Gems and the Ractorous Rubetta Stones! search_nodes tool async search_nodes tool Devise search_nodes concept Unique Per-Site Email Leak Detection search_nodes question How does GDPR deletion work if encrypted events are in backups? search_nodes question GDPR and losing data intentionally search_nodes concept Password Shucking search_nodes question How to comply with right-to-be-forgotten given future quantum computers? search_nodes tool bcrypt search_nodes concept Breadth-First Search for Code Removal search_nodes concept Weasel Words search_nodes tool Argon2 search_nodes question DDoS risk of on-the-fly processing search_nodes event wroclove.rb 2022 search_nodes event wroclove.rb 2023 search_nodes event wroclove.rb 2024 search_nodes event wroclove.rb 2019 search_nodes event wroclove.rb 2018 search_nodes event wroclove.rb 2026 search_nodes event wroclove.rb 2025 search_nodes talk Building LLM powered applications in Ruby search_nodes talk Fix Production Bugs 20x Faster search_nodes concept Belarus search_nodes resource Short Ruby Newsletter search_nodes resource My Ruby Story search_nodes takeaway Buy Faster Hardware search_nodes tool knapsack_pro search_nodes takeaway Be kind and build useful things search_nodes resource awesome-ddd search_nodes resource Ironin blog search_nodes project Petri Nets Performance Prediction Gem search_nodes takeaway Stop Building Web Apps, Build Software search_nodes concept Cynefin Framework search_nodes tool CircleCI search_nodes person Sergey Sergyenko search_nodes takeaway Name Things To Find Their Properties search_nodes talk Events events events search_nodes person Julik Tarkhanov search_nodes question Including Unavailable Domain Experts search_nodes person Adam Okoń search_nodes company SpaceX search_nodes talk Forms Are Dead: Building Agentic Workflows in Ruby search_nodes talk Offline Sandwich Focus Workflow search_nodes talk Multi-region data governance in Rails application search_nodes tool flag_shih_tzu search_nodes project granite search_nodes concept Strong Parameters search_nodes tool TruffleRuby search_nodes tool devise_token_auth search_nodes takeaway Use Refinements for Coordinated Modernization search_nodes concept ObjectSpace heap dumps search_nodes concept Data Evolution search_nodes tool Elasticsearch search_nodes takeaway UI Data Is Never Truly Fresh search_nodes takeaway Event Sourcing Mind Shift Trade-off search_nodes question How do you search across millions of events for top items? search_nodes concept Flat Query Structure search_nodes takeaway Eventual Consistency Trade-off search_nodes takeaway Identify Data Calculations Actions In Your System search_nodes

2 edges