Martin Emde
@martinemde.com
140 followers 52 following 100 posts
Modularity @ Gusto, Rubyist
Posts Media Videos Starter Packs
Reposted by Martin Emde
duckinator.bsky.social
On RubyGems & Governance: pup-e.com/blog/on-ruby...

Many programmers have no interest in formal governance processes, but letting people act and speak on our behalf without our input is what got us here.

The path forward is for the community to speak up and take direct ownership of what we make.
On RubyGems & Governance
pup-e.com
martinemde.com
Join the bundler slack and message me, that’s probably best? Or dm me here.
martinemde.com
Trust chains are interesting. Time for key signing parties at conferences? (only half joking) a purist would probably object, but if everyone can put their trust in the certificate authority for everything else, we probably can too. Eggs, meet your basket.
Reposted by Martin Emde
jpcamara.com
We never needed while loops. The power was always within us.
martinemde.com
Now’s a good time to add CHECKSUMS to your Gemfile.lock. For an existing project:

bundle lock --add-checksums

This will add a new CHECKSUMS section to the lockfile that Bundler will keep up to date.

Now, configure Bundler to always include checksums:

bundle config lockfile_checksums true
Reposted by Martin Emde
kewe.me
I interrupted a family meeting of quail in my yard. It’s their yard now.
Reposted by Martin Emde
julesprom.bsky.social
“when you make an embaressing unforced error, make a bunch of additional unforced errors to confuse your enemy” - Sun Tzu
Reposted by Martin Emde
indirect.io
announcing a new community-focused gem server from the team previously behind rubygems: gem.coop. join us and start using it today!
Reposted by Martin Emde
duckinator.bsky.social
The team formerly behind RubyGems has come together to launch a new gem server for the Ruby community!

gem.coop

I am *super* excited about this!
gem.coop
gem.coop
martinemde.com
I wrote a little about it on my site. martinemde.com/2025/10/05/a...

I can't wait to make more chicken puns with you all.
Announcing The Gem Cooperative - Martin Emde
martinemde.com
martinemde.com
I'm excited to join my friends in announcing gem.coop, a new ruby community gem server that you can use right now.
gem.coop
gem.coop
martinemde.com
Oops, NathanZook (my phone insists on typing Zoom)
martinemde.com
I forget what part of gemstash uses MD5. We needed more contributions there. NathanZoom was helping organize the work here: github.com/rubygems/gem...
martinemde.com
Hmm, I’m not sure what you mean. Rubygems.org definitely had working MFA both for login and gem pushes.
martinemde.com
Yep, when was directing OSS at Ruby Central I tracked down any remaining outside contributors that didn’t have MFA and either removed them or had them enable MFA, then enabled this myself. That was between 1 and 2 years ago (hard to remember exactly)
martinemde.com
My GitHub settings had a little note (from memory) “because of your contributions on GitHub, you must have strong MFA enabled. Thank you for keeping the ecosystem secure.”
martinemde.com
It bothers me that Ruby Central keeps implying that maintainers didn’t have MFA enabled. This is preposterous. MFA is basic good practice. (Go enable it everywhere!)

It is literally impossible to disabled MFA because GitHub identifies rubygems as critical infrastructure. They know this.
martinemde.com
Oh, not for ruby 3.3.6 yet. Maybe if _somebody_ hadn’t been so distracting for the last couple weeks. 😆
martinemde.com
The `rv` in the brew is free. You can just use it.
Reposted by Martin Emde
kewe.me
Putting together my companion app for Tales of the Shire has suddenly made me question the existence of all the meat meals in the game. It implies there is an adorable, cozy, little hobbit slaughterhouse. Is it candle-lit?
martinemde.com
Yep, from the outside it was a complicated black box, but then when reviewing you realize "of course, we can just bail early for a lot of these since a low distance is impossible."

I think we also stopped checking when the word was so short that every other short gem matched. Fun times
martinemde.com
I literally can’t remember which way it goes.

Thankfully, Levenshtein distance to the rescue so I don’t get pwned. (Our friend @duckinator.bsky.social just recently vastly improved the speed of that algorithm so not found gems don’t take forever to offer suggestions.)
NatorGoat (@nator.bsky.social)
@sklifos.bsky.social is my one and only partner.
nator.bsky.social
martinemde.com
Proper ruby capitalization requires that the file then be named ruby_gems.rb but that’s not the name!

@fxn.bsky.social knows this! 😂 Good thing rubygems is loaded before zeitwerk.