Felipe Vogel

130 Followers
57 Following
384 Posts
👷 Software developer  Rubyist 📕 Reader
Bloghttps://fpsvogel.com
Githubhttps://github.com/fpsvogel
My :ruby: reading listhttps://github.com/fpsvogel/learn-ruby

Sidekiq has a TUI now: https://www.mikeperham.com/2026/03/10/sidekiq-in-the-terminal

I've been helping build it!

#ruby

Sidekiq in the terminal

My favorite tech movement in 2025 wasn’t anything artifical, but rather the resurgence in interest around building terminal interfaces with two new frameworks, Charm and Ratatui, which make developing pure text user interfaces easier than ever before using Go or Rust. They provide a huge set of components and examples showing you how to build various types of functionality. Mainframe applications ruled the 70s and 80s, providing terminal interfaces for business operations. You might still see a ticket agent using a terminal to check you in at the airport. That’s an interface to a mainframe application, allowing the agent to lookup your ticket and assign you a seat quickly, with just a few keystrokes. To this day I remember my mom, a pharmacist, complaining about the new DOS -> Windows upgrade that the IT department rolled out to stores. Navigating their retail point of sale terminal application was much faster with a keyboard, the Windows version required a stream of precise mouse clicks and couldn’t rely on typing by muscle memory. Today interactive terminal interfaces are rare but I think Charm and Ratatui make this option much easier to provide.

Mike Perham
We've got something to Share! We hope you'll find it useful. https://blog.joinmastodon.org/2026/03/a-new-share-button/
A new Share button

We'd like to help you to Share to Mastodon, with a new tool.

Mastodon Blog

Or add a REPL command/method:

In .pryrc:

```
Pry::Commands.block_command "cp", "Copy last command to clipboard" do
IO.popen("pbcopy", "w") { |cb| cb.write(pry_instance.input_array.last) }
end
```

In .irbrc:

```
def cp
IO.popen("pbcopy", "w") { |cb| cb.write(Reline::HISTORY[-2]) }
end
```

If you save these as snippets in a text expander (I use Espanso), then you have near-effortless copying of code from Pry/IRB, and you're one step closer to the Nirvana of REPL-driven development in Ruby.

I often copy the last input in a Ruby REPL (Pry or IRB) to the clipboard, so I can paste it into my editor.

Here's how to do that from within the REPL.

Pry:

IO.popen('pbcopy', 'w') { |cb| cb.write(_in_[-1]) } # 'xclip' on Linux

IRB:

IO.popen('pbcopy', 'w') { |cb| cb.write(Reline::HISTORY[-2]) }

#ruby

The recently-launched Ruby Users Forum now has a weekly coding exercise thread. It's fun!

This week's thread: https://www.rubyforum.org/t/cassidoo-s-interview-question-of-the-week-443

Each week, we share Ruby solutions to the weekly interview question from the newsletter "rendezvous with cassidoo".

#ruby

Cassidoo’s Interview question of the week | 443

Hello 👋 This week question is about moving numbers. Here it is. Given an integer array and a number n, move all of the ns to the end of the array while maintaining the relative order of the non-ns. Bonus: do this without making a copy of the array! Example: $ moveNums([0,2,0,3,10], 0) $ [2,3,10,0,0] You can share your solutions under this post. Happy coding ❤

Ruby Users Forum
Here’s a poem called ‘An Attempt to Write an Abecedarian Poem in Praise of the Dictionary’.

I recently discovered not one, but TWO text editors written in Ruby:

- Emacs-like: https://github.com/shugo/textbringer
- Vim-like: https://github.com/S-H-GAMELINKS/mui

It would be neat to be able to use Ruby to customize and extend my editor.

#ruby

Watching https://www.youtube.com/watch?v=aolI_Rz0ZqY and `git log -L :mymethod:my/file.rb` is blowing my mind 🤯

Shows a log of only the changes in my/file.rb related to mymethod.

So You Think You Know Git - FOSDEM 2024

YouTube

Speaking of web search, I recently switched from Google to a combo of https://www.startpage.com and https://noai.duckduckgo.com.

I've heard good things about https://kagi.com, just haven't tried it yet.

#noai

Startpage - Private Search Engine. No Tracking. No Search History.

Search and browse the internet without being tracked or targeted. Startpage is the world's most private search engine. Use Startpage to protect your personal data.

www.startpage.com