Sign in

Hans Schnedlitz

@hansschnedlitz.com
298 followers 252 following 354 posts

Ruby Developer from Vienna and Vienna.rb Ruby Meetup organizer 🇦🇹 Testing, maintainability, and developer experience. Love climbing and hiking 🏔️

PostsRepliesMedia
Hans Schnedlitz @hansschnedlitz.com · 14/08/2026
I don't know what is going on with Claude today. I'm waiting for days here. I'm turning into Chef David. Why are you so slow? Why are you so fucking slow?
010
Hans Schnedlitz @hansschnedlitz.com · 03/08/2026
Who says you need to use Atuin? Turns out all you need for queryable, directory & host aware shell history is zsh, sqlite and coreutils 👌 Simple, small, and super malleable. Just how I like it. github.com/hschne/zhstdb
020
Hans Schnedlitz @hansschnedlitz.com · 15/07/2026
Finally, terminal icons for all the editors. Including my beloved Pi! Let the ricing continue ✨
010
Hans Schnedlitz @hansschnedlitz.com · 09/07/2026
RubyEvents Guides is now live. Over the last few months, I talked to Rubyists who want to help the community keep going. Some want to restart a local meetup. Some are organizing their first small conference. Some already run events and want to make the next one better.
31411
Hans Schnedlitz @hansschnedlitz.com · 29/06/2026
I live in the terminal and I like things pretty. But there's no icon font for AI logos - Nerd Fonts has git and your distro, nothing for OpenAI or Anthropic. So I made one. 300+ AI provider logos as a glyph font for your terminal, statusbar and prompt. Link below 👇️
120
Hans Schnedlitz @hansschnedlitz.com · 16/06/2026
Claude has really low standards today. Thanks for the compliment, I guess.
010
Hans Schnedlitz @hansschnedlitz.com · 17/05/2026
My flight to Vienna is delayed because there's some Bangaranga at the airport! 🪩
050
Hans Schnedlitz @hansschnedlitz.com · 15/05/2026
Balkan Ruby is about to start. I love the venue. This place rocks 💎
060
Hans Schnedlitz @hansschnedlitz.com · 24/04/2026
@robbyonrails.com Loved the survey, found some typos. In case you want to fix those. Just found em a bit irritating in an otherwise great survey 👍️
100
Hans Schnedlitz @hansschnedlitz.com · 09/03/2026
Pi is basically Vim for agentic coding. Minimal core, no bells and whistles, but an extension system that lets you shape it exactly the way you want 👌 www.hansschnedlitz.com/writing/2026...
000
Hans Schnedlitz @hansschnedlitz.com · 05/03/2026
Random find in Pi. Armin says Hi! 🤔 Wonder if there's more easter eggs. I bet there are.
000
Hans Schnedlitz @hansschnedlitz.com · 15/01/2026
You see this tech stack in a job description. WDYD? #rubyonrails
230
Hans Schnedlitz @hansschnedlitz.com · 18/12/2025
Huh, would you look at that. I learned a lot writing those two Solid Queue posts, and I'm stoked that people enjoyed them 🤗 #ruby
120
Hans Schnedlitz @hansschnedlitz.com · 04/11/2025
Finally. Francophiles, rejoice! 🇫🇷 🎉
010
Hans Schnedlitz @hansschnedlitz.com · 04/11/2025
TIL StimulusJS supports keyboard event filters out of the box. I was so close to writing a bunch of custom JS before thinking to myself "nah, there's got to be a better way" . Of course, there was. #ruby
2123
Hans Schnedlitz @hansschnedlitz.com · 24/10/2025
Already upgraded to Rails 8.1? If you're getting some pesky deprecation warnings, here's a one-liner to find the gems responsible 🕵️ #rubyonrails #ruby
030
Hans Schnedlitz @hansschnedlitz.com · 21/10/2025
Rails 8.1 will have dark mode for error pages. No more getting blinded when your app throws an error 😅 #rubyonrails #ruby
041
Hans Schnedlitz @hansschnedlitz.com · 26/09/2025
TIL about Concurrent::Map compute_if_present. This method provides a simple interface to concurrently re-calculate a map value if it's key is present. Found this in the Solid Cable Source 🕵️ #ruby
010
Hans Schnedlitz @hansschnedlitz.com · 24/09/2025
TIL Minitest has a pride mode, so you can show your *fabulous* testing pride 🌈 Apparently, this has been a thing for forever; I just came across this now, digging through command line options. #rubyonrails #ruby
020
Hans Schnedlitz @hansschnedlitz.com · 23/09/2025
I waste way too much time binging random crap on Youtube. If I need downtime, I might just as well watch something useful, right? I think I found a hack to help with that. Now I just redirect to RubyEvents and watch some talk 😅 #ruby
1102
Hans Schnedlitz @hansschnedlitz.com · 03/09/2025
Strong Service is Strong. We need more gems like this that push the boundary of what's possible. But I have to say, this much touted DSL looks suspiciously like plain old Ruby 🕵️ #ruby
330
Hans Schnedlitz @hansschnedlitz.com · 03/09/2025
I've been working on a variety of map-related projects recently and needed some sample images for locations. Wrote this little script to pull a bunch of street view images. Dead simple. Yeah, the resolution isn't great, but it's good enough for seeds 👌 #ruby
020
Hans Schnedlitz @hansschnedlitz.com · 01/09/2025
I've been obsessed with Browser compatibility lately. Maybe one of my apps broke on an older version of Safari. Whoops. Anyways. I got into Browserlists and Baseline, and wanted a way to integrate this tooling with Rails. Presenting Browserslist Ruby 👇 #rubyonrails
231
Hans Schnedlitz @hansschnedlitz.com · 01/09/2025
Lightgallery looks terrible out of the box. Luckily, pretty easy to fix with some simple CSS. Here's the before and after. Pretty happy with the result 😊
120
Hans Schnedlitz @hansschnedlitz.com · 29/08/2025
Devise has this nice 'authorized` helper for conditionally defining routes based on whether the user is logged in or not. Among other things, this allows you to define multiple root routes. If you're not using Devise, here's how to create that helper yourself. #rubyonrails
0141
Hans Schnedlitz @hansschnedlitz.com · 28/08/2025
Tailwind doesn't always work well with Rails form helpers. For example, button_to creates a form, which you mostly don't care about. The `contents` class turns the form into a phantom container, so it's children are treated like direct children of the parent. #rubyonrails
020
Hans Schnedlitz @hansschnedlitz.com · 28/08/2025
I like that we can block specific browsers with Rails 8.0. However, I'm not the only one who feels that the default is somewhat arbitrary. Sure, I can always set required versions myself. That's still cumbersome. Working on a little something to address this 🔧 #rubyonrails
010
Hans Schnedlitz @hansschnedlitz.com · 27/08/2025
Some upgrades to Puny Monitor just dropped. - Improved query performance significantly 🚀 - Simplified dependencies 📦 - Better filters & aggregation 📈 I'm using it for pretty much all my side projects now, it works like a charm. Check it out 👇 #ruby #rubonrails
140
Hans Schnedlitz @hansschnedlitz.com · 08/08/2025
TIL about ignoring references in git blame 👀 When making bulk formatting changes (e.g. RuboCop), you generally don't want those changes to show up in git blame/change sets in PR reviews. A `.git-blame-ignore-revs` tells git to ignore changes from specific revisions. #ruby
062
Hans Schnedlitz @hansschnedlitz.com · 08/08/2025
The Speculation Rules API seems like a neat idea. Still very much experimental, but could replace other prefetching solutions (looking at you Turbo) once widely available 🤔
010
Hans Schnedlitz @hansschnedlitz.com · 07/08/2025
We need more fun in software. Remember when Flipper used to show you 'Blank Space' if you had no features configured? That was before the fun policy arrived 👮 What are your favorite examples of little quirks and easter eggs in software? #ruby
000
Hans Schnedlitz @hansschnedlitz.com · 07/08/2025
TIL about Stimulus shouldLoad 🤩 Exceedingly handy if you have some controllers that should only load under certain conditions. For example, only on mobile devices (e.g. to provide additional interactions). #ruby #rubyonrails
161
Hans Schnedlitz @hansschnedlitz.com · 27/07/2025
RailsConf 2025 talks are live! That was quick. I guess my plans for Sunday evening just changed, time to watch some talks 👀🍿
120
Hans Schnedlitz @hansschnedlitz.com · 25/07/2025
Clickable editor links just landed in Rails main! A very nice addition, I'm sure this will make debugging just a tiny bit more comfortable. Now I just need to make it work with my trusty Nvim 🧐
121
Hans Schnedlitz @hansschnedlitz.com · 24/07/2025
I've been writing a bunch of ViewComponents recently. This little helper comes in handy! 🔧 It's crazy how much more pleasant small QoL helpers make development. #rubyonrails
011
Hans Schnedlitz @hansschnedlitz.com · 18/07/2025
Updated my Bookshelf for 2024 and 2025! Didn't read as many books as previous years 🤷 Personal highlights looking back are Piranesi and Lord of Light. The latter especially doesn't get as much recognition as it should IMO.
000
Hans Schnedlitz @hansschnedlitz.com · 18/07/2025
TIL Claude Code recently added support for hooks. Run whatever command after the agent finishes - great for notifications. Don't need to put that kind of stuff into your ClaudeMD anymore 👌
000
Hans Schnedlitz @hansschnedlitz.com · 17/07/2025
Kind of sad when a random joke project has a better Readme and website than 99% of OSS out there 🥲
120
Hans Schnedlitz @hansschnedlitz.com · 17/07/2025
Custom Turbo Stream actions are great 👌 So when is the right time to move to state management on the client? Probably never. #rubyonrails
010
Hans Schnedlitz @hansschnedlitz.com · 11/07/2025
Big Milestone for Rails Mini Profiler! 💪 I finally removed asset bundling via Rollup and moved everything to import maps. This reduced the engine's surface area, and simplifies setup and compatibility with all kinds of Rails projects. Now it's time for some bugfixes!
171
Hans Schnedlitz @hansschnedlitz.com · 10/07/2025
Moving your 4-year-old Rails engine to Importmaps is... fun 🤡 We're getting there, just takes a while. #rubyonrails
010
Hans Schnedlitz @hansschnedlitz.com · 08/07/2025
Ruby Schema Store is pretty nice 🤩 If you're using Neovim and want to get nice validations for your Rails YAML files, here's how you can set things up. This is LazyVim and lsp-config, but you should be able to get things done with a different setup too. #rubyonrails #nvim
return {
  {
    "neovim/nvim-lspconfig",
    opts = {
      servers = {
        -- ...
        yamlls = {
          settings = {
            yaml = {
              schemas = {
                ["https://www.rubyschema.org/rubocop.json"] = ".rubocop.yml",
                -- ...
                ["https://www.rubyschema.org/packwerk/package.json"] = "package.yml",
                ["https://www.rubyschema.org/rails/cable.json"] = "cable.yml",
                ["https://www.rubyschema.org/rails/cache.json"] = "cache.yml",
                ["https://www.rubyschema.org/rails/database.json"] = "database.yml",
                ["https://www.rubyschema.org/rails/queue.json"] = "queue.yml",
                ["https://www.rubyschema.org/rails/recurring.json"] = "recurring.yml",
                ["https://www.rubyschema.org/rails/storage.json"] = "storage.yml",
              },
            },
          },
        },
      },
    },
  },
}
031
Hans Schnedlitz @hansschnedlitz.com · 08/07/2025
I wrote a brief article on how to use Hotwire Combobox for a minor feature in RubyEvents! What made this interesting was a combination of requirements: Multi-selection, free-text input, and mapping values for YAML generation. Give it a read and let me know what you think 👇 #ruby #rubyonrails
131
Hans Schnedlitz @hansschnedlitz.com · 04/07/2025
Had some fun adding Hotwire Combobox to rubyevents.org . Can't say it was easy - wrapping my head around how everything works together took some time - but I'm pretty happy with the result. #ruby
150
Hans Schnedlitz @hansschnedlitz.com · 04/07/2025
How are you dealing with SQLite extensions? I had to work with Spatialite. It's not on sqlpkg, so I needed to install the extension and then load it in an initializer. Works great. This was extra-fun because the library file isn't always in the same place, depending on the OS 🤡 #ruby #rubyonrails
000
Hans Schnedlitz @hansschnedlitz.com · 03/07/2025
TIL you can press keyboard keys from the command line using the xvkbd tool. For example you could trigger a shift-left click like so 🤔
030
Hans Schnedlitz @hansschnedlitz.com · 03/07/2025
If you're working with database extensions, it can be helpful to exclude tables added by your extensions from your schema file. Keep it free from clutter! 🧹 The example shows SQLite and Spatialite, should work with any database and extension though. #ruby #rubyonrails
021
Hans Schnedlitz @hansschnedlitz.com · 26/06/2025
I use SVGs a lot - and so should you! They're great. Here's how you easily inline them. No need for any additional gems. Twelve lines of helper method are all you need 👌 #ruby #rubyonrails
060
Hans Schnedlitz @hansschnedlitz.com · 24/06/2025
How do you sync your local fork with the upstream from the command line? GH CLI `sync repo sync` syncs some destination from the local repository. Makes no sense to me; I need it the other way around. Anyway, hacked something together. Please tell me there's a simpler way 🙈
000
Hans Schnedlitz @hansschnedlitz.com · 24/06/2025
Look ma, my article for @appsignal made it to the orange site! #ruby
0153