← 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 Sergyenko → authored → Data Management With Ruby
context (empty) → Sergey Sergyenko delivered this talk at wroclove.rb 2022.
update Data Management With Ruby → presented_at → wroclove.rb 2022
context (empty) → Talk delivered at wroclove.rb 2022.
create Sergey Sergyenko → attended → wroclove.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 Sergyenko → works_at → Cybergeizer
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 Sergyenko → works_on → Belarus 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 Sergyenko → works_on → Ruby 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 Sergyenko → works_on → Grazer
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 Sergyenko → has_skill → Ruby
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 Grazer → uses → Faker
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 Grazer → uses → Ruby
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 Ruby → about → Ruby
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 Ruby → about → Faker
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 Ruby → about → Grazer
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 Ruby → about → Data 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 Ruby → about → Data 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 Ruby → about → Data 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 Ruby → about → HIPAA
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 Ruby → about → Personally 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 Ruby → about → ETL
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 Ruby → about → Data-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 Ruby → about → N+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 Ruby → about → Database 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 Ruby → about → destroy_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 Ruby → about → Heroku
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 Ruby → about → New 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 Ruby → about → Power 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 Language → from_talk → Data 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 Data → from_talk → Data 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 Development → from_talk → Data 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 One → from_talk → Data 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 Yourself → from_talk → Data 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 Language → about → Ruby
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 Development → about → Data-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 One → about → HIPAA
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 Yourself → about → Personally 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_at → Data 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_at → Data 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 PII → asked_at → Data 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 obfuscation → asked_at → Data 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 / outliers → asked_at → Data 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_at → Data 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? → about → Grazer
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)? → about → Data 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 PII → about → ActiveRecord 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 PII → about → Personally 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 obfuscation → about → Faker
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 obfuscation → about → Grazer
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 / outliers → about → Data 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? → about → Data 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 Sergyenko → recommends → Faker
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 Sergyenko → recommends → ETL
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 Cybergeizer → uses → Grazer
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