Joel Drapper 🇬🇧🇺🇦
@joel.drapper.me
2K followers 970 following 2.4K posts
I’m a Ruby/TypeScript/CSS engineer at @plane.com and based in the UK. https://joel.drapper.me I’m building a Ruby/SQLite serverlesslessness framework. I also maintain @phlex.fun. Signal: joeldrapper.01
Posts Media Videos Starter Packs
Pinned
joel.drapper.me
My team at Plane is hiring experienced full stack engineers. We use Rails, Postgres, Phlex, Vite, TypeScript and Svelte. I don’t have a full job description yet, but drop me a DM if you want to know more.
Reposted by Joel Drapper 🇬🇧🇺🇦
duckinator.bsky.social
What if gem hosts had NPM-like scopes & your Gemfile could be:

source "https://gem.example"
gem "@duckinator/jim"

OR:

gem "https://gem.example/duckinator/jim"

... what if a PoC patch was 25 lines, and a 1-line kludge meant you can test it against a production server?

github.com/gem-coop/gem...
A screenshot of running `bundle install` against various Gemfiles.

It shows that, with my patch, you can use scoped packages similar to what NPM provides, if you're using GitHub Packages.
joel.drapper.me
Who would ever contract for Ruby Central in the future after this obvious smear campaign against a former employee?

I’ve never seen a postmortem like it. Incredibly unprofessional.

If I was trying to destroy RC’s reputation to justify a takeover by another org, this is what I’d be doing.
ufuk.dev
We just publicly posted about the Rubygems.org AWS root-access security incident from September 2025, what occurred, what we verified, and the actions we’ve taken to strengthen our security processes.
rubycentral.org
Here’s a note from our Executive Director regarding our recent security incident.
rubycentral.org/news/rubygem...
joel.drapper.me
Except the article is not true and you can test it yourself with any LLM.
joel.drapper.me
Even Qwen 2.5:0.5b (an even smaller 298MB previous-generation model) noticed the "no", despite giving me an overall pretty incoherent sounding answer. What can you expect from a model that‘s smaller than the Slack mac app?
joel.drapper.me
Claude, Mistral and ChatGPT got it. Even Qwen 3:0.6b (a tiny 523MB model) *clearly* understands the difference.
Claude Mistral ChatGPT Qwen 3:0.6b
joel.drapper.me
We need both. We need LLMs that can follow plain language instructions and we need calculators that can do math.

LLMs are bad a math just like humans are. So we need LLMs to be able to use calculators.
joel.drapper.me
I can’t read that because it’s gated. But this doesn’t make sense. “No” will be statistically significant for any reasonable set of training data. Also you can use any of the big LLM models today and see that they clearly respond to “no”.
joel.drapper.me
It sounds like you’re comparing LLMs to computer programs. But they’re not meant to stand in for computer programs. They’re meant to do work that otherwise has to be done by humans.

Humans also don’t listen and often give bullshit answers. But they can do things traditional computer programs can’t.
joel.drapper.me
Tidewave solves this in theory by running in the browser.
joel.drapper.me
That makes sense. Even BasicObject.

My personal preference is to produce predicate methods that return either true or false.

But I’m more careful when consuming.
joel.drapper.me
Agreed. I just think there are several better names for a top type than bool.
joel.drapper.me
I agree they are, but there is a different sense in which they’re not. There is a set of expectations about and methods I can call on a union of true/false that I can’t call on any object.
joel.drapper.me
Also, `foo` may be as true as `true` but `!foo` is not necessarily the same as `!true`. There’s something to be said of the expectation that the value is strictly a boolean and will behave like true or false do, even when applying operators like `!@`.
joel.drapper.me
`:foo` isn’t the unit type `true` though. If you expect your function to return either false or true, you would be surprised if it returns :foo.

bool seems like a strange name for object/any type.
Reposted by Joel Drapper 🇬🇧🇺🇦
getajobmike.ruby.social.ap.brid.gy
Periodic reminder: @rubycentral is smearing Andre in public so they can justify their hostile takeover of the rubygems/rubygems repo after the fact.

An actual community-focused organization would have followed the RFC process which was already in progress.
joel.drapper.me
Maybe the fault lies with the guy donating six figures to Ruby Central who decides to withdraw it when they intentionally invite a white supremacist to speak?

This is below you, Irina.
joel.drapper.me
That *IS* a supply chain attack. A malicious maintainer is exactly how XZ was lost to Jia Tan. Kicking all the other maintainers out is a malicious act.

There were agreed rules in place about how maintainers can be added and removed.
joel.drapper.me
They do need to make things right first.
Reposted by Joel Drapper 🇬🇧🇺🇦
botmatrix.myatproto.social
Without regard to the factuality of anything on either side of this, this is ABSOLUTELY the correct on-call response to the scenario André is describing:

"Given Marty’s claims, the sudden permission deletions made no sense. Worried about the possibility of

1/
joel.drapper.me
Looks like Ruby Central tripped over themselves putting together a smear campaign that they forgot to remove André from 1Password.
joel.drapper.me
At that point the internet blew up and Ruby Central were calling him a security threat, Marty wasn’t responding to emails.
joel.drapper.me
We had to spent 500 words explaining the difference between `rubygems.org` the code and `rubygems.org` the service and how one was never owned by Ruby Central, while the other one was.
joel.drapper.me
As silly as this sounds, if the GitHub repository had been named `gemserver` instead of `rubygems.org`, then Ruby Central wouldn’t have been able to pull off this stunt so easily with so much public support.
Reposted by Joel Drapper 🇬🇧🇺🇦
joshuawood.net
I agree, invoking the CFAA is extremely fucked up.
amyhoy.bsky.social
he changed the passwords to secure the systems he was ON CALL FOR, because it looked like an incident was occurring.

AND, because he still had passwords, due to their sheer incompetence, they are now trying to legally bully him with the threat of the CFAA which is a nuclear bomb of a law