Sign in

Mohamed Hassan

@oldmoe.bsky.social
24 followers 8 following 14 posts
PostsRepliesMedia
Mohamed Hassan @oldmoe.bsky.social · 02/10/2026
I think the Rails World keynote fueled a lot of discussion and debate in the Rails & the wider Ruby community. But I also think it's about time to have such a discussion. I share my own experience & some of the great work the community is doing here oldmoe.blog/2026/10/02/i...
oldmoe.blog
It’s about time!
TL;DR Rails is slow, but Ruby can be fast. A lean Ruby stack works very well, 10x more throughput than Rails in my own benchmarks, and LLMs can help maintain it for you. What’s up? A lot of d…
001
Mohamed Hassan @oldmoe.bsky.social · 16/05/2025
also discuss a real world use case where TinyBits is used to encode and transmit instrumentation data from a Ruby app. And I compare it to JSON and Msgpack Beating them both by varying degrees in all tested metrics, payload size, process memory & performance overhead github.com/oldmoe/tinyb...
000
Mohamed Hassan @oldmoe.bsky.social · 16/05/2025
I explain more about the new features and its benefits on my blog t.co/FOJszyddCn
100
Mohamed Hassan @oldmoe.bsky.social · 16/05/2025
TinyBits 0.6.0 is released, better memory management, smaller multi-object buffers and a more robust dictionary support With external dictionaries, a schema-less encoder like TinyBits can match (and sometimes exceed) the compactness of Protocol Buffers encoded output
110
Reposted by Mohamed Hassan
Lucian Ghinda @lucianghinda.com · 13/05/2025
New gems and updates from @oldmoe.bsky.social @Sergio Bayona @joshuay03.bsky.social @bihi.bsky.social @simonjuk.bsky.social @bradgessler.com @st0012.dev @batsov.net @avohq.io and more
New gems and updates from @Mohammad Ali @Sergio Bayona @Joshua Young @Étienne Barrié @Simon J @Brad Gessler @Stan Lo @Bozhidar Batsov @Avo and more
161
Mohamed Hassan @oldmoe.bsky.social · 11/05/2025
This also opens the door for some creative transformations, you can for example have a dict with enum values [glücklich, traurig, gleichgültig] on one side and [happy, sad, indifferent] on the other
000
Mohamed Hassan @oldmoe.bsky.social · 10/05/2025
Yes of course, you need to have the exact same dictionaries (in the exact same order) on both sides of the wire. Similar to a dictionary used with zstd or lz4. Keeping those in sync is on the user
110
Mohamed Hassan @oldmoe.bsky.social · 10/05/2025
Thanks for the catch, I pasted the wrong data, fixed now
000
Mohamed Hassan @oldmoe.bsky.social · 09/05/2025
This is basically protocol buffers (and other schema based encoders) territory, but while being 10X simple Read more here: GitHub.com/oldmoe/tinybits-rb/ADVANCED.md
github.com
120
Mohamed Hassan @oldmoe.bsky.social · 09/05/2025
TinyBits is getting a new interesting feature, you can now (using the repo's head) supply the pack/unpack method with an external dictionary. For shorter messages with no duplicate strings this can lead to a dramatic size reduction, from 96 to 34 bytes in the example below
132
Mohamed Hassan @oldmoe.bsky.social · 05/05/2025
I built this to communicate data between services, much like you would use JSON or MessagePack, just faster and smaller, specifically for the types of payloads I deal with
010
Mohamed Hassan @oldmoe.bsky.social · 05/05/2025
For a data set of 11 different documents, the TinyBits Ruby gem was faster that all other schemaless encoders tested (Oj, JSON, Msgpack & CBOR) for encoding and decoding, all while producing much smaller serialized sizes. Unlike other binary formats, it was as compressible as text formats like JSON
TinyBits delivering better performance on all metrics
010
Mohamed Hassan @oldmoe.bsky.social · 05/05/2025
TinyBits: A new schema-less binary serialization format. Fast to encode, fast to decode and generally smaller output than all other schema-less formats. Currently available as a preview for C and Ruby. A Python module is also in the works. oldmoe.blog/2025/05/05/s...
3165
Mohamed Hassan @oldmoe.bsky.social · 27/04/2025
I will share all the data samples soon in a repo. I believe the issue is rendering numbers as text, specially doubles with larger decimal values. Rendering these will always be more expensive than just writing the 8 bytes that make up the 64bit double for binary foramts
010
Mohamed Hassan @oldmoe.bsky.social · 27/04/2025
If you are sending schema-less data from Ruby over the wire, or if you are storing it to disk, what is your best option among the current offering? I went through the most prominent serializers and got some interesting results oldmoe.blog/2025/04/21/r...
oldmoe.blog
Ruby data serialization options in 2025
Oj vs JSON vs MessagePack vs CBOR Introduction It had been a while since I had to look at serialization performance in Ruby. I generally would just use MessagePack for performance, and if I needed …
144