How to build a fully custom TinyMCE 5 dialog

TinyMCE 5 can host fully custom dialogs through a toolbar button and a separate view, with editor interaction handled via postMessage.

How to test inside iframes with cucumber / capybara

Cucumber and Capybara ignore iframes by default, so tests must switch into the frame to interact with its content. Frame-aware step definitions can reduce repeated setup.

Ruby < 2.4: Downcasing or upcasing umlauts

downcase and upcase on umlauts and accented letters stay unchanged in Ruby before 2.4, causing failed string comparisons. ActiveSupport::Multibyte::Chars handles Unicode case conversion correctly.

Ruby: How to keep split delimiter (separate, or as part of substrings)

Ruby String#split normally drops delimiters, which makes reconstruction from regex splits awkward. Capture groups or look-behind can keep separator characters in the result.

SSHKit 1.9.0 failure for Capistrano deploy

Capistrano deploys can crash in sshkit-1.9.0 with NoMethodError in pretty.rb; upgrading SSHKit to 1.21.0 resolves the failure.

Whenever requires you to set the application attribute in the Capistrano config

Whenever needs application set in Capistrano so cron entries keep a stable identifier and do not accumulate duplicate jobs across deploys.

HowVideo.works

Video playback, delivery, processing, and capture are core parts of how online video works.

Missing certificates for rubygems and bundler in Ruby 1.8.7

Ruby 1.8.7 can no longer connect to rubygems.org with Rubygems 1.8.30 and Bundler 1.17.3 because of expired server certificates. Local proxying or disabling SSL verification can restore installs.

A few recent CSS properties

Modern CSS features improve progressive enhancement, visual effects, touch handling, and scroll behavior across browser support levels.

liquidprompt: A full-featured & carefully designed adaptive prompt for Bash & Zsh

Adaptive shell prompt for Bash and zsh surfaces useful status only when it changes, reducing clutter and making important changes easier to notice.

Configuring Webpacker deployments with Capistrano

Rails deployments with Webpacker and Capistrano often need asset-path, manifest, and compile-time tweaks to avoid slow releases and unused compression output.

How to remove entries from the bash history

Accidentally stored commands, including secrets, can be removed from Bash history by deleting specific numbered entries.

How to have a target=_blank link open with DevTools open

Open Chrome DevTools automatically for target=_blank popups so the new tab starts with inspection tools ready, making request headers and popup behavior easier to debug.

How to fix: Pasting in IRB 1.2+ is very slow

Long pastes in irb 1.2+ can become extremely slow because multiline mode and syntax highlighting add heavy overhead. Disabling multiline restores fast pasting.

Variable fonts for web developers

Variable fonts bundle multiple weights and widths into one file, reducing font requests and management overhead, but browser support and CSS settings require careful handling.

Improving browser rendering performance

Web apps feel sluggish when JavaScript, layout, or repaints miss the 16 ms frame budget; Chrome DevTools and requestAnimationFrame() help diagnose and reduce jank.

Vortrag: Elasticsearch Grundlagen und Rails-Integration mit searchkick

Elasticsearch liefert Volltextsuche, Mappings, Shards und Aggregationen per REST-API; in Rails übernimmt searchkick Indizierung, Reindexing und Suchabfragen.

Check that an element is hidden via CSS with Spreewald

CSS-hidden text can pass Rack::Test because it inspects only the DOM, while Selenium checks actual visibility for user-facing content.

Minidusen: Filtering associated records

Filter associated records by text in joined tables, such as finding contacts through their group name with Minidusen and a qualified column.

Show/Hide Rubocop marking in RubyMine

RubyMine can surface RuboCop violations directly in the editor, and the marking can be enabled or hidden through a settings toggle.

How to configure file watchers in RubyMine

File change automation in RubyMine requires the official file watchers plugin and a PATH-accessible program; b can act as a shim for bundle exec when running RuboCop.

Convert curl commands to ruby code

Turn curl requests into Ruby Net::HTTP code for easier reuse, debugging, and integration when shell commands need to become application code.

Using ffmpeg as a HLS streaming server

Live HLS streaming with ffmpeg can serve as a lightweight server for segmented video delivery, multiple bitrates, and lower playback delay.

Tailwind versus BEM

Two common CSS writing styles trade component-level structure for utility-driven speed and consistency, each with different maintenance and collaboration trade-offs.