#Ruby

Monospace Mentor Livestream@live.monospacementor.com
2025-12-11
Michael Stapelberg 🐧🐹😺zekjur@mas.to
2025-12-11

PSA: In case you notice #Ruby programs failing with “CRL” (Certificate Revocation List) related errors after upgrading to OpenSSL 3.6 (e.g. via #NixOS 25.11), hopefully this PR (perhaps just the links in the description) helps explain what happened:

github.com/zammad/zammad/pull/

2025-12-11

ICYMI: Honeybadger now detects your stack and recommends the right dashboards automatically—no special setup required. Try it for free:

honeybadger.io/tour/dashboards

#APM #Ruby #Python #Elixir #PHP

A screenshot showing recommended dashboards for a Rails project that also advertises support for Ruby, PHP, Python, and Elixir
Brooke Kuhlmannbkuhlmann
2025-12-11

As mentioned earlier, Mario (my colleague) and I will be presenting TRMNL e-ink devices running on Terminus (github.com/usetrmnl/byos_hanami) which is our self hosted solution at Boulder New Tech (meetup.com/bdnewtech/)

We only have ~10 minutes (including questions).

What's fun about all this is that the slides (plus smooth transitions, etc.) is all done in Terminus via a playlist. The same playlist you can render on your TRMNL device. 🎉

All of this is live and you do this at home too!

Mohit Sindhwanionghu@ruby.social
2025-12-11

I'm a tad bit nervous to be presenting an Introductory talk about #DuckDB at the RubySG Dec meetup today (9 Dec)! But I have a good 11million record synthetic dataset to show some of the features!

Register: luma.com/0em8ixuy

#Programming #Ruby #Singapore

2025-12-10

🧵 2/2

```
r: reload-code # reload current file, or given file; only works in .rb files (not ERB), and doesn't reload the currently-executing method
q: exit
```

In .pryrc, these are specified as `Pry.commands.alias_command "c", "continue"` and so on.

Also: ~/.irbrc works similarly for binding.irb!

#ruby

2025-12-10

I got tired of typing out full Pry commands in the Rails app at work, so created a ~/.pryrc file with aliases.

Along the way I discovered more Pry commands!

My aliases:

```
c: continue
n: next # execute next line
s: step # step into next method call
f: finish # finish current frame (e.g. method)
v: ls -l # show local vars
i: ls -i # show ivars
w: whereami
t: backtrace
u: up # move up call stack
d: down # move down call stack
```

Continued in 🧵

#ruby

Oinak :ruby:oinak@ruby.social
2025-12-10

I just completed "Movie Theater" - Day 9 - Advent of Code 2025 #AdventOfCode adventofcode.com/2025/day/9

--
Got stuck on a sluggish version and had to look for a better approach, but finally, both parts sub-second in #ruby gitlab.com/oinak/advent-of-cod

2025-12-10

Open Build Service experienced a short outage after a deployment on Dec. 1. The #root cause was a #Ruby gem version mismatch involving #Webrick. #OBS was restored at after updating the #gem. Full transparency & next steps shared in the following report. openbuildservice.org/2025/12/1

2025-12-09

On MacOS with Ruby v3.4 and openssl v3.6 if you're seeing an OpenSSL::SSL::SSLError exception with a message like "certificate verify failed (unable to get certificate CRL)", you can workaround/fix it by reinstalling Ruby against an earlier version of openssl, e.g. v3.5.

github.com/rails/rails/issues/

#ruby #macos #openssl

2025-12-09

RubyGems 4.0.1 Released

mander.xyz/post/43329715

2025-12-09

Solved today's #adventofcode part 2 non-discretely. Took me four hours, maybe more. Memory requirements are minimal and my running time is slightly above two seconds (#Ruby with #YJIT).

The code is here: codeberg.org/der-scheme/advent

The repo also contains a visualization in case somebody needs it.

Approach in content warning below:

2025-12-09

I went kinda nuts on yesterday's #adventofcode trying to optimize my #Ruby implementation. The resulting code is nothing special, but here it is, for reference: codeberg.org/der-scheme/advent

I consistently achieve sub 2.5 seconds with #YJIT for all four (both parts on both input and test input) runs, including I/O and all the process spawning stuff, measured by `time ./test`. No JIT is about 25–30% slower. I have no idea how fast this is, but I'm stating it for transparency.

I consider myself a smooth-brain, but here's what I believe to have learned (some very obvious, others not so much):
- Even if you don't care about your return values (discarding them), YJIT does. So if the return value is irrelevant, return a predictable value; self is a good choice. This is consistent with YJIT's documented behavior.
- There's a tiny overhead in splatting, so it's faster to be explicit.
- There seems to be some overhead in the creation of local variables. Sometimes it's faster calling a reader method multiple times.
- While structs (Struct, not Data, although they share most of the implementation) can be slightly slower than trivial wrapper classes, I found a case where a struct with a single field resulted in a 15% overall runtime boost compared to the equivalent class. It's no longer in the code base, though, because:
- Oftentimes, shoving everything into an array to deal with later is faster than dealing with it early.
- There seems to be no performance gain in freezing. I attempted freezing an object in the constructor hoping YJIT would maybe inline instance variable access, but this resulted in an overall 10% performance drop through this single line change. However, the necessary code changes resulted in speedups in other places, so the work was still worth it.
- Sometimes arrays are faster, sometimes enumerators are faster, for the exact same functionality.
- `def some_size = some&.size || 0` seems faster than the verbose alternative. Maybe YJIT can optimize operators better than branches?
- There's a bunch of stuff I didn't try, like the C-like implementations you can find published all over the internet. If I wanted to write fast but unreadable code, I'd use FFI and C.
- Git commit makes your code run slower. I assume there's some FS weirdness going on which is triggered by committing, like maybe a cache reset.

2025-12-09

Doing the #adventofcode in #crystallang this year again, it reminds me how much I liked #ruby syntax for a lot of things, but I'm particularly fond of the inline conditionals, early returns and guard clauses ❤️❤️❤️

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst