Articles tagged 'ruby'

A Deep Walk Through Shoes3 Code Reading

Shoes3 is an old, creaky codebase from the Ruby 1.8 days. When working on Scarpe, I get to read through it a lot to answer questions like, “what methods can you call on a Button?” or “what is self supposed to be here?”

It provides a fun code reading challenge. I recorded a video to help folks who...

We Got Criticised Online - Woo-Hoo!

A

Awhile back I joined the Scarpe project. I was part of the original Hack Days project for it, and I’ve continued to contribute bits and pieces since.

Scarpe is good silly fun. We’re not very far along, but people seem happy and excited. That’s nice! The Shoes4 folks helped us find an old Shoes3 binary to test against, and have been generally positive.

There’s a normal thing that happens when you get a few people excited about a project and cool stuff happens: other folks, who have been doing their own thing for a long time, respond to it. That makes sense. It’s a thing happening! You can respond to it.

The guy who writes Glimmer recently wrote a blog post and/or section of his README, “If You Liked Shoes, You’ll Love Glimmer.” That makes sense. Glimmer is a much more mature, complete solution to building local UI apps than Scarpe is.

Wait, why Scarpe? He said “Shoes.” There’s other Shoes out there, right?

Fibers for Flow Control - A Weird Ruby Magic Trick

A

I’ve been working on Scarpe a fair bit lately. I came across a lovely and bizarre bit of Ruby and I really want to share.

Short version: did you know that with the cool Ruby 3.0 Fibers changes, you can use Fibers as a weird form of flow-control primitive, not for concurrency at all? And it solves some of Ruby’s mismatch with JS-style evented programming and promises?

I’m gonna talk about an ugly situation with Ruby Webview, and a surprisingly clean solution with Fibers. I’m sure there are, like, ten good reasons not to do this in production. Also, Scarpe will be doing this as its main method of testing.

Seeing Inside HTTP

A

If you work in Ruby, you probably deal with HTTP a lot. There are various ways to see into the actual HTTP requests and debug them. I’d love to mention a few of them to you.

Why do you care?

If everything goes perfectly, you don’t. It’s debugging. So if you never write any bugs, you’re fine.

In case you write bugs like I do, let’s talk debugging.

Keeping Multiple Representations in Your Head

A

Sometimes when you’re reading a murder mystery, you’ll want to think about two different scenarios: what if the butler did it, vs what if it was the wealthy socialite? What would be different? What evidence might they leave?

This is also a core skill for senior-and-up software engineers. It’s obvious...

Subscribe to get free ebook chapters and an emailed coding class now, plus videos and articles a few times a month.

Why this specific newsletter? You want to be an expert. Expertise comes from learning the fundamentals, deeply. And that comes from the best kind of practice. I write with that in mind. I won't waste your time.

(Yes, I also sell things. They're good, but I'm fine if you don't buy them.)