Joel Drapper 🇬🇧🇺🇦
banner
joel.drapper.me
Joel Drapper 🇬🇧🇺🇦
@joel.drapper.me
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
This frame shows the first shot from a different angle. The front of the car has passed him and visually blocks his body from view. You can see from the angle of the ground and where his legs meet the ground that he is next to the vehicle (from our perspective here, behind it) not in front of it.
January 8, 2026 at 3:59 AM
ICE themselves actually gave us an example of what happens when a car travelling at about 7mph strikes a pedestrian. This is more than twice the speed that Renee’s car was doing when the shooter fired his first shot.
January 8, 2026 at 3:59 AM
The angle of the first shot is consistent with this photograph. If you line up the hole with the headrest, the camera is positioned in about the same position that the shooter would have been standing relative to the car. Ahead of the car but to the side, not in directly in front of it.
January 8, 2026 at 3:59 AM
A 3rd shot was fired in this frame 235ms later.
January 8, 2026 at 3:59 AM
The shooter chased the car, firing a second shot in this frame, 439ms after the above frame. The car was now travelling at ~3.8mph.
January 8, 2026 at 3:59 AM
This outline shows the approximate location of the shooter who could not from this position have been struck by the wheel or any other part of the car and was not at this point standing in the direction of travel.
January 8, 2026 at 3:59 AM
The first shot is fired in this frame 35ms later. At this point, the shooter is completely clear of the vehicle, which is steering hard right and travelling at about 2mph.
January 8, 2026 at 3:59 AM
The shooter steps back away from the vehicle which is now steering hard right 438ms later.
January 8, 2026 at 3:59 AM
The car continues to steer to the right. By this frame, 639ms after the frame above, the car is properly steering right. It has accelerated to about 1.25mph.
January 8, 2026 at 3:59 AM
134ms after that, the shooter’s weapon is fully drawn and the car has travelled no more than 10cm. Its speed is approximately 1 mph.

The front wheels have been turning from hard left and are now pointing straight forward on their way towards turning right.
January 8, 2026 at 3:59 AM
Two frames (66ms) later, the shooter begins drawing his weapon. At this point, the car has moved no more than 2cm and is travelling at about 0.5mph.
January 8, 2026 at 3:59 AM
The car’s first forward movement was captured in this frame. Honda Pilots do not accelerate fast at the best of times, but this car was slipping the ice and only driven by the front wheels.
January 8, 2026 at 3:59 AM
Her front left wheel started spinning forward on the icy road in this frame, but her car was completely stationary for another 135ms.
January 8, 2026 at 3:59 AM
Trump is lying. I analysed the shooting of Renee Good frame-by-frame.

The shooter had been in front of her car and appeared to be using his phone to video her while she reversed slowly with her wheels steering hard left.
January 8, 2026 at 3:59 AM
Folding reveals what I would expect the outline for this file to include.
December 11, 2025 at 12:39 PM
Here’s an example. None of these constants should be in the outline in my opinion. This outline is useless for navigating the file quickly and includes many duplicates because internal names are not unique.

Ideally, we just want classes, functions and top-level constants.
December 11, 2025 at 12:37 PM
Or here’s what hovering feels like for the first 20 seconds.
December 2, 2025 at 12:57 PM
When the code does load, you can enjoy these snappy popover menus.
December 2, 2025 at 12:53 PM
This is just what it’s like to review PRs in GitHub now. There’s only a small chance to see the code, it’s not guaranteed — assuming you can even load the page. Well done GitHub. 👏 You had one job.
December 2, 2025 at 12:07 PM
@raycast.com is there any way to stop search results from jumping around? It doesn’t even jump around consistently. I means you can’t do it with muscle memory, you have to visually look at the results each and every time you use it.
November 21, 2025 at 3:48 PM
A simple example form TypeScript. One program knows that `list[0]` is a string. And you, the human also know. But the other program (the type checker) doesn’t.
October 31, 2025 at 11:38 PM
We experimented with a bunch of different options including this one which is my personal favourite (aesthetically).

What we went with is nice because existing tooling that indexes methods still finds the methods, with the right names, etc.
October 20, 2025 at 9:24 AM
Building on Literal’s dynamic type system, we’re making it easier to add runtime assertions with method signatures via a Ruby pre-processor.

We’re using Prism to parse valid Ruby syntax with different semantics and then pre-processing into regular Ruby on load.
October 20, 2025 at 8:50 AM
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?
October 11, 2025 at 7:28 PM
Claude, Mistral and ChatGPT got it. Even Qwen 3:0.6b (a tiny 523MB model) *clearly* understands the difference.
October 11, 2025 at 7:20 PM