I attended Rails World in Amsterdam this week. I’m writing this in Schiphol Airport.
Mixed feelings. There was some good stuff, some not so good stuff, and a few disappointing things. I’m not sure how I feel about it at the moment.
I forgot to say last week, I’m now an AirPods Pro wanker. I decided to give them a go because I wanted something with good sound-cancelling abilities for an upcoming flight.
I have to say, they’re really good. The sound cancelling is excellent. But the best feature is the lack of friction using them. They are (almost) always connected to the correct device somehow – the opposite of my Sony WF-1000XM3’s which I hardly use as a result. Regular Bluetooth devices constantly need pairing and unpairing. The AirPods are always just ready.
Really happy with them so far.
You know what? After using a USB-C iPhone for a couple of weeks it’s made me realise that the Lightening connector was really quite good. The rounded edges. The satisfying snap into place. It’s just a shame it grew old and never worked outside of the Apple ecosystem.
I’m a regular listener of the ATP podcast, and one of the hosts, Casey Liss, recently released a new iOS app called Callsheet which is an alternative to IMDB. Basically, an ad-free, fast, nice experience. I was very in the “Why would I pay for this app?” camp until I used it for a bit, and it became clear it was worth the yearly subscription.
Anyway, the reason I’m telling you all this is because he recently released a cool integration with Plex. If you have something playing on Plex when you open the app it automatically looks up what you’re watching and shows it at the top of the app!
(If you have trouble getting it working, like I did, try these instructions on Mastodon).
Phoenix.Component.async_resultfunctions in LiveView 0.20.0 look to be very helpful.
This is a nice guide – How to Use LiveView’s Async Assigns.
asdfuser I like to keep a
.tool-versionsfile in my projects. That way I can specify everything I need in one place. Typically, this might include Ruby, Elixir, PostreSQL, or Redis versions.
However, for Ruby projects you need to specify a Ruby version in the project
Gemfile. Now we need to update it in two places. Duplication of a version number is bad.
Good news! bundler now supports reading the version number from either a
ruby file: '.ruby-version'
However, if you deploy to Heroku there is a small spanner in the works. I had no idea about this, but Heroku always uses certain versions of
bundlerwhen you deploy (currently
2.3.25), so we can’t use this new feature until the Heroku buildpack is updated.
We can work around it using this hack until
>= 2.4.20is available.
Not perfect, but still better than having multiple Ruby version numbers in the codebase.
All these things that used to be easy in Rails take a fair bit of manual effort today because there’s not a standardized setup and eco-system. We’re spending a lot of time re-solving all these boilerplate issues that every web app needs and everyone has already solved countless times before.
Rails is still here.
For one, my income is somewhat tied to my productivity, and my productivity highly correlates to my state of mind.
This is the most important point for me, and perhaps the hardest one to fulfil. When going down the early stages of product development the main question on my mind is “If this project works out, do I want to spend the next few years working on it?”
So, the trick is: work on something that interests you. Hopefully that can crossover with something that makes money…
Sebastian Staacks is making a wooden Gameboy case. Looks awesome!
Chicago trip next week 🪁