Fixing "identify: not authorized"

Ubuntu disables PDF processing in ImageMagick because Ghostscript has had security issues; re-enable it only when Ghostscript is current and maintained.

Shell script to magically configure display setup

Bash script for Xorg on Ubuntu 24.04 that auto-arranges connected monitors, sets the external screen as primary, and can switch the internal panel to a fixed resolution.

Too many parallel test processes may amplify flaky tests

Flaky test suites can fail more often with too many parallel workers; limiting PARALLEL_TEST_PROCESSORS can reduce race-condition failures with only a small runtime cost.

Migrating from Elasticsearch to Opensearch: searchkick instructions (without downtime!)

Zero-downtime migration from Elasticsearch to OpenSearch for Searchkick apps, including staging validation, client switching, and environment-specific index settings.

Middleman configuration for Rails Developers

Rails-friendly Middleman setup for live reload, asset pipeline, i18n, environment-specific config, browser testing, and Capistrano deployment.

Lazy-loading images

Loading large page images only when they enter the viewport cuts bandwidth use and can improve perceived speed. Missing crawler support and layout shifts remain common issues.

Reverse-proxying web applications with Apache 2.4+

Apache 2.4+ can act as a reverse proxy for apps on other hosts or paths, including redirect, cookie, and asset-path rewriting when the backend is not proxy-aware.

Test-Driven Development with integration and unit tests: a pragmatic approach

Dogmatic red-green-refactor TDD can be tedious; a pragmatic mix of integration and unit tests uses scenario titles as a todo list and supports iterative development.

How to query GraphQL APIs with Ruby

GraphQL APIs return nested data through one endpoint, and Ruby can query or mutate them with plain HTTP requests without adding graphql-client.

Async control flow in JavaScript: Promises, Microtasks, async/await

JavaScript async code often becomes hard to read and error-prone; promises and async/await flatten control flow, model failures, and avoid callback nesting.

Understanding SQL compatibility modes in MySQL and MariaDB

SQL mode mismatches can break apps after MySQL or MariaDB upgrades by changing strictness, grouping rules, and allowed values.

RestClient / Net::HTTP: How to communicate with self-signed or misconfigured HTTPS endpoints

HTTPS requests fail against self-signed certificates or broken certificate chains unless the correct CA, intermediate cert, or certificate store is configured.

Collection of Rails development boosting frameworks

Rails app setup and admin scaffolding can speed up project bootstrapping, data management, and CRUD interfaces with templates and generators.

Vortrag: Content Security Policy: Eine Einführung

Content Security Policy schützt Webseiten vor XSS, indem der Browser erlaubte Quellen für Skripte, Styles, Bilder und Verbindungen streng einschränkt.

Testing HTTPS with badssl.com

Sites with unusual HTTPS setups help verify browser certificate handling, proxy interference, and security-product side effects.

Inspecting a live Ruby process

Extracting a backtrace from a running Ruby process helps diagnose hangs and crashes without waiting for a restart. gdb can attach live or inspect a core file.

Test a download's filename with Cucumber

Verify that a server response suggests the expected download name in a Cucumber scenario, using Capybara or Webrat to check the Content-Disposition header.

routing-filter is broken with Rails 7.1

routing-filter stops working in Rails 7.1 because find_routes now yields lazily, leaving URL segment filters unapplied and routes unrecognized.

How to: Ensure proper iconfont rendering with Webpack

Custom icon fonts can render as garbled characters after switching from Sprockets to Webpack because CSS charset detection changes. Adding a UTF-8 BOM or an explicit charset can prevent intermittent display failures.

Setting up Tomcat to use an existing OpenSSL certificate

Convert an existing OpenSSL certificate and private key into a Java keystore for Tomcat HTTPS, avoiding JSSE configuration errors and alias mismatches.

Heads up: Deployment with newly generated SSH key (using ED25519) might fail

Capistrano deployments can fail with ssh-ed25519 keys because net-ssh needs ed25519 and bcrypt_pbkdf; stale host fingerprints in ~/.ssh/known_hosts can also block access.

How to fix parallel_tests with Redis on powerful machines

Parallel test runs can exceed Redis’s default 16 databases on multi-core machines, causing ERR DB index is out of range; increasing the database limit resolves it.

esbuild: Make your Rails application show build errors

esbuild watch errors stay hidden in the terminal while Rails keeps serving stale assets; writing them to a file lets the app render build failures in development.

request_store: Per-request global storage for your Rails app

Per-request storage for Rails avoids leaking state between requests when using Thread.current; middleware clears data automatically at request end.