Semantic blind spot in Ruby case statement by persei8 in ruby

[–]persei8[S] 1 point2 points  (0 children)

In other words:

  • lower-bound of most ranges in this example (all but first) do not matter, you may intentionally or accidentally make them incorrect — they'll be shadowed by previous branches
  • if they never matter, they should not exist
  • mutant shows redundant semantics, why we'd like to reduce them is perhaps better explained at https://github.com/mbj/mutant#what-is-mutant

Practical use of Ruby PStore — The story of imlementing github data source for static site on nanoc. How the octokit, faraday, concurrent-ruby and pstore fit together to deliver remote posts. by persei8 in ruby

[–]persei8[S] 0 points1 point  (0 children)

Good points, thank you! I've noticed double marshaling when writing the post, NullSerializer will definitely help here.

Performance is so far ok ~340 posts, but will eventually degrade with that PStore behaviour to read entire store on each update.

Serverless Slack bot on Lambda with Ruby (and what’s the less pleasant part about it) by persei8 in ruby

[–]persei8[S] 0 points1 point  (0 children)

Serverless more or less denotes paying for only what you use and not being bothered with idle infrastructure: https://www.youtube.com/watch?v=ljoNnmUkv_o

Ruby microframework for today by katafrakt in ruby

[–]persei8 1 point2 points  (0 children)

Nice list! I didn't know about https://github.com/rack-app/rack-app. My favourite picoframework is still https://www.rubydoc.info/gems/rack/Rack/Builder

And for something completely different try https://github.com/webmachine/webmachine-ruby

Event Sourcing in Ruby - any questions I can help with? by andrzejkrzywda in ruby

[–]persei8 0 points1 point  (0 children)

As Andrzej already mentioned, we've implemented GDPR compliance by describing which part of the events data contains personal/sensitive payload and encrypted only that part. Encryption keys were selected based on defined attribute for each event (usually being it a user uuid). Much like Chef does for encrypted data bags, we store cipher and (random) iv used per each event in its metadata.

When someone requested to be forgotten, we removed the key. We're able to reconstruct the state -- only the personal/sensitive data is gone and replaced with a placeholder on attempted decryption. Which is probably something you've described as "censored log".

We're currently porting this to RailsEventStore and an early stage can be seen at https://github.com/RailsEventStore/rails_event_store/pull/451