RSSAmplifier

Blog

Listening, Thinking, Building

unfinished thoughts on code, technology, music and everything else

romain.dorgueil.netRSS feed ↗63 posts

Latest posts

How to discover and search tmux key bindings?

Every key binding, with a note, from Ctrl-A ? or from the shell with list-keys; list-commands gives the syntax and flags of every command.

How to run a tmux command from inside a session?

Open the command prompt with Ctrl-A : and type any tmux command without the leading tmux word: the interactive twin of the CLI, on the server you are attached to.

How to reload your tmux config without restarting?

source-file re-reads ~/.tmux.conf into the running server, so a changed setting takes effect without killing tmux. Bind it to a key to reload after every edit.

How to reorganize a tmux layout?

tmux ships five preset layouts. Cycle them with Ctrl-A Space, or name one to select-layout, tiled included for an even grid in one step.

How to swap two tmux panes?

swap-pane exchanges two panes without touching the layout: the cells stay put, the panes trade places. Use Ctrl-A { or Ctrl-A } for the neighbours.

How to move a tmux pane to another session without restarting its process?

join-pane and move-window accept a source in another session of the same server, and the process running in the pane is re-parented, not restarted. A server started in a throwaway session lands in your main workspace without going down.

How to move a tmux pane with relative targets?

Relative targets like down-of name a pane by its position, no index lookup. join-pane -h -s picks the pane below the active one and re-attaches it to the right: a stacked pair becomes side by side in one command.

How to move a pane from one tmux window to another?

join-pane detaches a pane from wherever it lives and re-attaches it as a split in the current window, processes included. break-pane does the exact opposite: it sends a pane off to its own window.

How to mark a tmux pane and target it from anywhere?

Mark a pane with Ctrl-A m and the {marked} target resolves to it from any window or session, so a swap or a join needs no index juggling.

How to target tmux windows with special tokens?

tmux window targets accept special tokens for the first, last, previously active, next and previous windows, with one-character aliases. They keep scripts independent of actual index numbers.

How to target the right tmux pane by number?

A bare number in a tmux pane target means a pane of the current window when that pane exists, otherwise a whole window, and it flips silently. Qualify with window.pane, a pane id, or a window name.

How to make tmux number windows and panes from 1?

Windows and panes start at 0 by default, so the leftmost one sits under a key at the far end of the keyboard. Set base-index and pane-base-index to 1 in ~/.tmux.conf so key 1 selects the first one.

How to select and copy text with the mouse in tmux?

The mouse is off by default. Add set -g mouse on to ~/.tmux.conf, then drag to select and copy into the tmux buffer. Hold Shift to fall back to the terminal's own selection.

How to resize a tmux pane?

Use resize-pane with -L/-R/-U/-D to push a border by N cells, or -x/-y to set an exact size. A resize only works when there is a neighbour to trade space with.

How to zoom a tmux pane to fullscreen?

Press Ctrl-A z to expand the active pane to the whole window, and again to restore the split. Nothing closes, it is a temporary toggle.

How to jump back to the last active tmux pane?

Press Ctrl-A ; to toggle focus between the current pane and the one you were on just before, the pane-level twin of Ctrl-A l for windows.

How to move between tmux panes?

Use Ctrl-A then an arrow key for directional focus, Ctrl-A o to cycle panes, and Ctrl-A q to jump by number.

How to get notified of activity or silence in a tmux window?

Use monitor-activity to flag a window when output appears, or monitor-silence to flag it when output stops, so you can watch a long job from another window.

How to stop tmux from renaming your windows?

tmux renames windows after the running program by default. Turn automatic-rename off to keep the names you set.

How to renumber tmux windows and close the gaps?

Repack tmux window indexes to 0, 1, 2 with move-window -r, or set renumber-windows on to do it automatically.

How to reorder tmux windows?

Swap two tmux windows with swap-window, or move one to another index with move-window.

How to navigate between tmux windows?

Move between tmux windows with Ctrl-A n and Ctrl-A p, and toggle the last two with Ctrl-A l.

How to split a tmux window into panes?

Split a tmux window with split-window: -h puts panes side by side, -v stacks them top and bottom.

How to control a nested tmux session (send the prefix to the inner one)?

When one tmux runs inside another, forward the prefix with send-prefix to control the inner session.

How to kill a tmux session, or the whole server?

Kill one tmux session, every session except one, or the whole tmux server.

How to switch between tmux sessions without detaching?

Jump from one tmux session to another from inside tmux, without detaching and re-attaching.

How to manage tmux clients (list, kick out, disconnect)?

List who is attached to a tmux session, grab it back from another terminal, and detach other clients.

How to rename a tmux session or window?

Rename a tmux session or window from the keyboard or the shell, and keep the name you typed.

How to detach, list, and re-attach a tmux session?

Leave a tmux session running in the background, list what is alive, and jump back in, from the keyboard or the shell.

How to start a named tmux session with a window name and a directory?

Create a detached tmux session, name its first window, and start it in a chosen directory, all in one command.

How to create or attach to a tmux session in one command?

A single idempotent tmux command that creates a session or attaches to it if it already exists. Perfect for scripts and shell startup files.

Simple ETL with Bonobo - Europython 2017

Presentation of Bonobo ETL at EuroPython 2017 - a simple Python 3.5+ tool for extract-transform-load processes. Includes video, slides and sprint summary.

Your best SEO strategy is to ignore it

Stop wasting your time on Search Engine Optimizations (SEO), your business needs is a product that your users love, bots will follow them.

How to hint search engines about pagination?

Use rel=prev and rel=next link tags to help search engines understand pagination structure on your website, improving crawling and indexing of paginated content.

How to clean up already merged git branches?

Clean up merged git branches using git-sweep to remove outdated branches from both local and remote repositories, keeping your git tree organized.

How to redirect non-www versions of your website in nginx?

Configure nginx to redirect non-www domains to www (or vice versa) for SEO consistency, including HTTP to HTTPS redirects with proper deep link support.

Instrument, Measure and Learn

Measure web performance improvements using Pagespeed statistics, Google Analytics, Search Console, and PageSpeed Insights to track connection time, response time, and user experience.

Amazon Cloudfront as our Content Delivery Network

Configure Amazon CloudFront CDN with Nginx and Pagespeed to serve static assets from geographically distributed edge locations, reducing server load and improving performance.

Nginx, pagespeed and a simple node.js backend

Set up Nginx with Pagespeed module and Node.js backend in Docker containers for automatic asset optimization, HTML minification, and improved web performance without code changes.

Serving the web at light-speed

Optimize website load speed using Nginx with Pagespeed module and Amazon CloudFront CDN. Part 1 of a 4-part series covering tools, techniques, and performance measurement.

How to run asynchronous python callables in parallel?

Run multiple asynchronous Python functions concurrently using asyncio.wait() to process tasks as they complete, with example code and sequence diagram.

How to rollout or rollback a deployment on a Kubernetes cluster?

Learn how to safely rollout new versions and rollback deployments on Kubernetes clusters using kubectl commands, with examples of rolling update strategies and health checks.

How to manage your releases using git-semver?

Manage software releases consistently using the git-semver tool for semantic versioning, with step-by-step instructions for version generation, tagging, and PyPI publishing.

How to retrieve the path where the running script is located?

Bash shell tip: Get the real path of a running script using a cross-platform solution that handles symbolic links and relative paths.

Planning poker is not about estimating

Planning poker is more than an estimation technique - it's a powerful tool for improving team communication, sharing knowledge, and leveraging collective intelligence in software development.

Future is now

EuroPython 2016 highlights on Python's future including class attribute ordering (PEP 520), descriptor naming (PEP 487), Jupyter Lab improvements, and PyParallel GIL solution.

Asynchronous programming with python

EuroPython 2016 notes on asynchronous programming with Python including asyncio patterns, futures, Twisted integration, and new async tools like uvloop and asyncpg.

Data processing

A few notes from EuroPython 2016 about data processing, natural language processing, machine learning...

Testing

A few notes from EuroPython 2016 about testing and quality assurance.

Web scraping

Notes from EuroPython 2016 on web scraping tools and best practices including Jupyter, Selenium, client-server architectures, and Scrapy.