Notes to self
Josef Strzibny’s publication on software engineering, technical leadership, business, and bootstrapping
- Posts
- 324 from 1 Oct 2014 to 21 Oct 2025
- Posting
- now and then
- Kind
- personal blog
- Feed
- https://nts.strzibny.name/feed.xml
2025 13
- devise-otp 2.0 released
- InvoicePrinter 2.5 with QR images and Ruby 3.4 support
- https://nts.strzibny.name/2025/10/
- Running JavaScript after a Turbo Stream renders
- Running interactive sessions with Kamal
- Predownloading embedding models in Rails with Kamal
- https://nts.strzibny.name/2025/03/
- Combining multiple sitemaps with a sitemap index
- https://nts.strzibny.name/2025/02/
- Setting up Cloudflare R2 buckets for Active Storage
- Adding button loader to Turbo-powered forms
- Auto-saving Rails forms with Turbo Streams
- https://nts.strzibny.name/2025/01/
2024 11
- Business Class 2.0 with Rails 8, Pay 8, Solid, Kamal 2, and fancy generator
- https://nts.strzibny.name/2024/12/
- https://nts.strzibny.name/2024/11/
- https://nts.strzibny.name/2024/10/
- https://nts.strzibny.name/2024/09/
- https://nts.strzibny.name/2024/08/
- https://nts.strzibny.name/2024/06/
- https://nts.strzibny.name/2024/05/
- https://nts.strzibny.name/2024/04/
- https://nts.strzibny.name/2024/02/
- https://nts.strzibny.name/2024/01/
2023 10
- https://nts.strzibny.name/2023/12/
- https://nts.strzibny.name/2023/11/
- https://nts.strzibny.name/2023/10/
- https://nts.strzibny.name/2023/09/
- https://nts.strzibny.name/2023/08/
- https://nts.strzibny.name/2023/07/
- https://nts.strzibny.name/2023/05/
- https://nts.strzibny.name/2023/04/
- https://nts.strzibny.name/2023/02/
- https://nts.strzibny.name/2023/01/
2022 9
- https://nts.strzibny.name/2022/12/
- https://nts.strzibny.name/2022/09/
- https://nts.strzibny.name/2022/07/
- https://nts.strzibny.name/2022/06/
- https://nts.strzibny.name/2022/05/
- https://nts.strzibny.name/2022/04/
- https://nts.strzibny.name/2022/03/
- https://nts.strzibny.name/2022/02/
- https://nts.strzibny.name/2022/01/
2021 49
- https://nts.strzibny.name/2021/11/
- Preloading Rails applications in production
- You can in fact use schemas in migrations
- Organizing business logic in Rails with contexts
- Cross-compiling Elixir releases with ASDF and Docker
- https://nts.strzibny.name/2021/10/
- Gunicorn graceful restarts
- Ruby for ebook publishing
- Deployment from Scratch, 1st edition is released!
- https://nts.strzibny.name/2021/09/
- Writing Absinthe authorization middleware
- https://nts.strzibny.name/2021/08/
- Elixir authorization plugs
- How I earn over $750 a month from my unfinished book
- https://nts.strzibny.name/2021/07/
- InvoicePrinter 2.2 with breakdowns of items
- CentOS 8 free alternatives
- Moving ActionCable over to Webpacker
- Removing assets dependencies from Rails applications for runtime
- Benchmarking programs with /usr/bin/time
- I am selling the pre-release of my book
- https://nts.strzibny.name/2021/06/
- Puma graceful restarts
- Tailwind is an interesting concept, but I am not convinced yet
- The difference between passwd -l and passwd -d
- A sudden Hackney SSL’s unknown certificate authority error
- Passing SSL configuration to Hackney
- https://nts.strzibny.name/2021/05/
- Stop logging as root in 5 simple steps
- Improving IRB experience with a custom .irbrc
- Benchmarking Ruby 3 in PDF generation
- Create a git branch archive
- InvoicePrinter 2.1 with Ruby 3 support
- Elixir and Phoenix after two years
- https://nts.strzibny.name/2021/04/
- Live previews with Rails and Stimulus 2
- Creating a ZIP file in Elixir
- Making 12factor Elixir/Phoenix releases
- Download RPM packages locally with DNF
- DRY enums for Absinth macros
- https://nts.strzibny.name/2021/03/
- Tailwind does not support pseudo-elements
- systemd user services and systemctl –user
- https://nts.strzibny.name/2021/02/
- Solving vagrant up’s name of domain about to create is already taken
- Running PhantomJS in Vagrant
- Working with decimals in Elixir
- Prune everything with a complete Docker cleanup
- https://nts.strzibny.name/2021/01/
2020 44
- Serve Django static assets with Gunicorn
- How long will be CentOS Stream supported?
- Migrating CentOS 6, 7, and 8 to Oracle Linux
- 5 Phoenix open source projects to study
- Migrating CentOS 8 to CentOS Stream 8
- Choosing Elixir version manager
- https://nts.strzibny.name/2020/12/
- What are default and bundled gems in Ruby anyway?
- Understanding Elixir mocking with Mox
- Transactional email providers for indie businesses
- Inserting content in the middle of a Jekyll post
- https://nts.strzibny.name/2020/11/
- Secure Azure blobs pre-signing in Elixir
- Migrating WordPress blog to Jekyll
- Installing Ruby with ruby-build and ruby-install
- https://nts.strzibny.name/2020/10/
- Solving QEMU bridge helper “no such device” for virbr0
- Elixir macros return AST
- https://nts.strzibny.name/2020/09/
- Soft dependencies in Elixir projects
- Learning negotiation: Never Split the Difference
- https://nts.strzibny.name/2020/08/
- Testing Netlify server-side analytics
- Keeping secrets on Linux with Password Safe
- https://nts.strzibny.name/2020/07/
- Privacy-oriented alternatives to Google Analytics for 2023
- Implementing a custom ExUnit assert to test PDF output
- Ecto embeds have IDs by default
- https://nts.strzibny.name/2020/06/
- Converting snake_case keys to camelCase in Elixir
- https://nts.strzibny.name/2020/05/
- How to solve DNS resolution in Fedora 32 Docker containers
- Phoenix 1.5 LiveDashboard’s Request Logger
- https://nts.strzibny.name/2020/04/
- 8 + 1 things to get you started with the Elixir’s interactive shell (IEx)
- https://nts.strzibny.name/2020/03/
- How to test static sites with RSpec, Capybara, and Webkit
- Running Docker in Fedora 31
- How I reached 200 subscribers for my upcoming book
- How I use Sublime Text 3 for publishing my Jekyll-based blog
- https://nts.strzibny.name/2020/02/
- Using Elixir Language Server in Sublime Text 3
- Ruby 2.7 pattern matching after 10 months of professional Elixir
- https://nts.strzibny.name/2020/01/
2019 16
- GraphQL subscriptions with Elixir and Absinthe
- https://nts.strzibny.name/2019/12/
- Making a Ruby executable with ruby-packer
- https://nts.strzibny.name/2019/09/
- InvoicePrinter 2.0
- https://nts.strzibny.name/2019/08/
- Testing Phoenix custom error pages
- https://nts.strzibny.name/2019/07/
- Automating tasks and improving developer workflow with pre-commit git hooks
- https://nts.strzibny.name/2019/06/
- Phoenix CSRF protection in HTML forms, React forms, and APIs
- https://nts.strzibny.name/2019/04/
- Basic HTTP authentication in Elixir/Phoenix
- https://nts.strzibny.name/2019/03/
- Rails handles large number of nested routes better than Sinatra
- https://nts.strzibny.name/2019/01/
2018 29
- Displaying, downloading and streaming files with Active Storage
- https://nts.strzibny.name/2018/12/
- How fast is Ruby 2.5, 2.6 and 2.6 –jit in generating Prawn PDFs
- Taking Stimulus.js for a ride
- https://nts.strzibny.name/2018/11/
- Building auto login for fast Rails development with Sorcery
- Creating accessible visual select in pure JavaScript without dependencies
- Debugging silently failing compilation aka Webpacker can’t find application.js in public/packs/manifest.json
- Cleaning up systemd journal logs on Fedora
- I am writing an introductory book to web application deployment
- https://nts.strzibny.name/2018/10/
- Using private GitHub repositories with yarn and npm in package.json
- https://nts.strzibny.name/2018/08/
- Firefox needs some more RAM to run your Rails system tests
- https://nts.strzibny.name/2018/07/
- InvoicePrinter 1.2
- Making PDF invoices from JavaScript and Node.js
- Fixing ‘failed to find type parsed [keyword] for [name]’ error for Elasticsearch and Searchkick
- https://nts.strzibny.name/2018/05/
- PDF invoicing for any project with InvoicePrinter Server
- Implementing a basic debug mode for your Ruby CLI
- https://nts.strzibny.name/2018/03/
- Conditional unique indexes in Rails and PostgreSQL
- https://nts.strzibny.name/2018/02/
- InvoicePrinter 1.1 “Cape Town” released
- Do not run Rails with pending migrations
- Editing XFA PDF forms on Linux/Fedora
- Invoicing from the command line
- https://nts.strzibny.name/2018/01/
2017 17
- Ruby refinements example
- How to keep hash keys untouched by ActiveModel::Serializer
- InvoicePrinter 1.1.0 will bring A4 page size support, command line client and more
- https://nts.strzibny.name/2017/12/
- InvoicePrinter 1.0
- Sending JSON API like 401 Unauthorized error with Devise
- https://nts.strzibny.name/2017/10/
- Pre/post deploy hooks with Dokku 0.5.0
- Following Rails redirects with Capybara
- Trusted SSL certificates with Let’s Encrypt and NGINX
- https://nts.strzibny.name/2017/04/
- Building international invoices with InvoicePrinter 0.0.9
- https://nts.strzibny.name/2017/03/
- Running wkhtmltopdf in Vagrant (without X server)
- https://nts.strzibny.name/2017/02/
- Specifying parameters encoding by action in Rails
- https://nts.strzibny.name/2017/01/
2016 20
- Using Ruby gems in Java/Gradle projects with JRuby
- https://nts.strzibny.name/2016/10/
- Comparing wkhtmltopdf to Prawn for generating PDF in terms of speed, memory and usability
- https://nts.strzibny.name/2016/09/
- Creating staging and other environments in Rails
- https://nts.strzibny.name/2016/08/
- On managing Ruby versions
- https://nts.strzibny.name/2016/07/
- InvoicePrinter: generate PDF invoices and receipts in seconds with pure Ruby
- https://nts.strzibny.name/2016/06/
- Simple invoice.pdf
- Building and consuming JSON API with Crystal
- Testing PDF generation in Ruby
- Allowing NGINX to use a Puma/Unicorn UNIX socket with SELinux
- https://nts.strzibny.name/2016/04/
- Setting up git push code deploy to remote server
- Fix can’t cast RGeo::Geographic::SphericalPointImpl to point
- https://nts.strzibny.name/2016/03/
- What to do if Vagrant machine becomes unresponsive (KVM)
- https://nts.strzibny.name/2016/02/
2015 36
- Resolving VirtualBox-based Vagrant boxes IP collisions
- https://nts.strzibny.name/2015/12/
- DNS for your Vagrant needs: with Landrush, libvirt and dnsmasq
- First update for Fedora Developer Portal
- https://nts.strzibny.name/2015/11/
- Fedora/CentOS RPMs for Otto project, Packer and Vault
- Using OpenShift s2i Docker images to build Ruby application containers
- https://nts.strzibny.name/2015/10/
- Debugging Vagrant with pry-byebug
- Why Fedora needs a place for developers
- Writing a general multi-provider Vagrantfile
- Deleting a problematic package on Fedora
- Use your RHEL Vagrant boxes as any other with vagrant-registration
- https://nts.strzibny.name/2015/09/
- Changing URLs in Jekyll
- Fast and painless NFS for your Vagrant environment
- Running Vagrant with Docker provider without password prompts on Fedora
- https://nts.strzibny.name/2015/08/
- Working with Bundler from your Ruby code
- https://nts.strzibny.name/2015/07/
- Patching gems for security vulnerabilities with gem-patch
- Running Kubernetes on Fedora with Vagrant
- Vagrant assistant for your DevAssistant
- gem-compare: Releasing a new gem version with confidence
- Inception: running Vagrant inside Vagrant with KVM
- https://nts.strzibny.name/2015/06/
- Safe code evaluation in Ruby with $SAFE
- Running test/unit suites with Minitest
- Creating default configuration for every Vagrant project
- https://nts.strzibny.name/2015/05/
- Vagrant NFS exports on Fedora 21
- https://nts.strzibny.name/2015/03/
- Getting Vagrant with libvirt support on Fedora 21
- Quick setup of nested virtualization in KVM and virt-manager
- Fixing Fedora distro-sync upgrade
- https://nts.strzibny.name/2015/01/
2014 6
Undated 64
- Datetime summer time
- Freezing dependencies yarn lock frozen lockfile
- Single attribute in place editing turbo
- Rails system tests page objects
- Rails system tests headless
- Rails fixtures db seed
- Alternative ids rails
- Vs code status bar color
- Ruby modular packages
- Restricted paths validator url slugs
- Gem compare 1.0
- One year of sales
- Avoid sleep rails system tests
- Hybrid docker compose rails
- Understanding viewcomponent concepts
- Migrating rails cookies to json
- Gem compare new contributors
- Why not rspec
- Gumroad alternatives eu uk vat
- Fixing unresponsive gnome software on fedora
- Rails activerecord becomes
- Invoiceprinter 2.3
- 24h startup challenge
- Building ruby on rails saas template
- Business class brand new rails saas template
- Running sass and tailwind side by side rails
- Verify paddle billing webhooks rails
- Overriding rails engine models controllers
- Businessclass 1.1
- Marketing book 1000 sales
- Activerecord model slugs
- Deploying rails single server kamal
- Businessclass 1.2
- Alternative bigint id identifiers rails
- Businessclass 1.3
- Businessclass 1.4
- Kamal configuration
- Businessclass 1.5
- How to use ssh private keys with password
- Businessclass 1.6
- How i wrote kamal handbook
- Running thruster rails kamal
- Businessclass 1.7
- Automating postgresql backups do spaces kamal
- Dark mode tailwind stimulus
- Kamal healthcheck settings
- Kamal handbook first update
- Minitest mocks
- Env conflict kamal dotenv
- Kamal proxy
- Upgrading to kamal 2
- Multiple apps single server kamal 2
- Deploying next kamal 2
- Rails force ssl
- Kamal proxy roles
- Subclass sti rails model
- Kamal show running apps
- Using non root users kamal
- Test driving rails released
- How kamal deploy multiple servers
- How to use remote build server kamal
- Kamal cannot connect to docker daemon
- Rails authentication registrations
- Page