# Tomasz Gągor

Recent content on Tom's Blog

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Managing Humans

DevFeed: [Managing Humans](<https://devfeed.tech/articles/managing-humans-27876.md>)

Original publisher: [Read original article](<https://gagor.pro/book/2026/managing-humans/>)

Author: Tom

Published: 2026-05-14T00:00:00Z

Content type: opinion

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [engineering-culture](<https://devfeed.tech/topics/engineering-culture.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [book](<https://devfeed.tech/tags/book.md>), [business](<https://devfeed.tech/tags/business.md>), [engineering-manager](<https://devfeed.tech/tags/engineering-manager.md>), [humor](<https://devfeed.tech/tags/humor.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [innovation](<https://devfeed.tech/tags/innovation.md>), [leadership](<https://devfeed.tech/tags/leadership.md>), [management](<https://devfeed.tech/tags/management.md>), [meetings](<https://devfeed.tech/tags/meetings.md>), [processes](<https://devfeed.tech/tags/processes.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [team](<https://devfeed.tech/tags/team.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

A review of Michael Lopp's Managing Humans, focusing on leadership lessons about managing different team member profiles, channeling conflict productively, driving continuous change, and deciding who should attend meetings.

### Source excerpt

Managing Humans Biting and Humorous Tales of a Software Engineering Manager Author: Michael Lopp If you manage people, this book is worth reading. Rather than offering complete solutions, it presents the author's gut feelings based on his experience with what works and what doesn't. It's written lightly, with plenty of humor and healthy doses of sarcasm that make it engaging without being cynical.

## How to run Terraform providers not meant for Apple Silicon with Rosetta

DevFeed: [How to run Terraform providers not meant for Apple Silicon with Rosetta](<https://devfeed.tech/articles/how-to-run-terraform-providers-not-meant-for-apple-silicon-with-rosetta-27748.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/05/how-to-run-terraform-providers-not-meant-for-apple-silicon-with-rosetta/>)

Author: Tom

Published: 2026-05-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Terraform](<https://devfeed.tech/topics/terraform.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Arm](<https://devfeed.tech/topics/arm.md>)

Tags: [apple-silicon](<https://devfeed.tech/tags/apple-silicon.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [bash](<https://devfeed.tech/tags/bash.md>), [mac-m1](<https://devfeed.tech/tags/mac-m1.md>), [macos](<https://devfeed.tech/tags/macos.md>), [provider-checksum](<https://devfeed.tech/tags/provider-checksum.md>), [rosetta](<https://devfeed.tech/tags/rosetta.md>), [terraform](<https://devfeed.tech/tags/terraform.md>), [tfenv](<https://devfeed.tech/tags/tfenv.md>), [x86](<https://devfeed.tech/tags/x86.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>)

### AI overview

A tutorial explains how to use Rosetta to run Terraform as x86_64 on Apple Silicon, allowing Terraform to download and use providers that do not yet support ARM and helping avoid provider checksum mismatches.

### Source excerpt

Use Rosetta to run Terraform as x86_64 on Apple Silicon and avoid provider checksum mismatches.

## How to prepare presentation for a Conference

DevFeed: [How to prepare presentation for a Conference](<https://devfeed.tech/articles/how-to-prepare-presentation-for-a-conference-27747.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/05/how-to-prepare-presentation-for-a-conference/>)

Author: Tom

Published: 2026-05-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [.NET Conf](<https://devfeed.tech/topics/net-conf.md>), [Tool](<https://devfeed.tech/topics/tool.md>)

Tags: [career-growth](<https://devfeed.tech/tags/career-growth.md>), [communication-skills](<https://devfeed.tech/tags/communication-skills.md>), [conference-preparation](<https://devfeed.tech/tags/conference-preparation.md>), [conference-presentation](<https://devfeed.tech/tags/conference-presentation.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [narrative-throughline](<https://devfeed.tech/tags/narrative-throughline.md>), [pitching](<https://devfeed.tech/tags/pitching.md>), [presentation](<https://devfeed.tech/tags/presentation.md>), [presentation-design](<https://devfeed.tech/tags/presentation-design.md>), [public-speaking](<https://devfeed.tech/tags/public-speaking.md>), [storytelling](<https://devfeed.tech/tags/storytelling.md>), [structure](<https://devfeed.tech/tags/structure.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

A practical guide to preparing conference presentations by starting with a clear pitch, developing a narrative throughline, structuring the story, prioritizing clarity, and using slides as visual support.

### Source excerpt

Learn how to build impactful conference presentations by focusing on storytelling, narrative throughlines, and audience experience rather than just slides.

## Setting Ghostty as default terminal on Ubuntu 26.04

DevFeed: [Setting Ghostty as default terminal on Ubuntu 26.04](<https://devfeed.tech/articles/setting-ghostty-as-default-terminal-on-ubuntu-26-04-27744.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/04/setting-ghostty-as-default-terminal-on-ubuntu-26.04/>)

Author: Tom

Published: 2026-04-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Terminal](<https://devfeed.tech/topics/terminal.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [GPU](<https://devfeed.tech/topics/gpu.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [ghostty](<https://devfeed.tech/tags/ghostty.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [gpu-accelerated](<https://devfeed.tech/tags/gpu-accelerated.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [iterm2](<https://devfeed.tech/tags/iterm2.md>), [linux](<https://devfeed.tech/tags/linux.md>), [performance](<https://devfeed.tech/tags/performance.md>), [snap](<https://devfeed.tech/tags/snap.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>), [ubuntu-26-04](<https://devfeed.tech/tags/ubuntu-26-04.md>)

### AI overview

A guide to setting the GPU-accelerated Ghostty terminal as the default terminal on Ubuntu 26.04 using its new configuration method.

### Source excerpt

A quick guide on how to set the GPU-accelerated Ghostty terminal as the default on Ubuntu 26.04 using the new configuration method.

## Team Topologies

DevFeed: [Team Topologies](<https://devfeed.tech/articles/team-topologies-27878.md>)

Original publisher: [Read original article](<https://gagor.pro/book/2026/team-topologies/>)

Author: Tom

Published: 2026-04-26T00:00:00Z

Content type: opinion

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [DevOps](<https://devfeed.tech/topics/devops.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [business](<https://devfeed.tech/tags/business.md>), [cognitive-load](<https://devfeed.tech/tags/cognitive-load.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [conway-s-law](<https://devfeed.tech/tags/conway-s-law.md>), [flow](<https://devfeed.tech/tags/flow.md>), [leadership](<https://devfeed.tech/tags/leadership.md>), [management](<https://devfeed.tech/tags/management.md>), [platform](<https://devfeed.tech/tags/platform.md>), [team-topologies](<https://devfeed.tech/tags/team-topologies.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

This article summarizes Team Topologies by Matthew Skelton and Manuel Pais, focusing on organizational design for software teams. It explains the four team types, three interaction modes, cognitive load, Conway's Law, the Reverse Conway Maneuver, and the Thinnest Viable Platform.

### Source excerpt

Team Topologies Organizing Business and Technology Teams for Fast Flow Authors: Matthew Skelton, Manuel Pais Team Topologies is a must-read for anyone involved in building software at scale. It moves away from the "everyone should talk to everyone" fallacy and introduces a pragmatic, team-first approach to organizational design. By focusing on cognitive load and the flow of value, Skelton and Pais provide a clear vocabulary for discussing team structures and their interactions.

## Using a Bitbucket Dashboard Game to Improve Pull Request Reviews

DevFeed: [Using a Bitbucket Dashboard Game to Improve Pull Request Reviews](<https://devfeed.tech/articles/the-wall-of-shame-27745.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/04/the-wall-of-shame/>)

Author: Tom

Published: 2026-04-19T00:00:00Z

Content type: opinion

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [bitbucket](<https://devfeed.tech/topics/bitbucket.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [App](<https://devfeed.tech/topics/app.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [bitbucket](<https://devfeed.tech/tags/bitbucket.md>), [blameless-culture](<https://devfeed.tech/tags/blameless-culture.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devops](<https://devfeed.tech/tags/devops.md>), [gamification](<https://devfeed.tech/tags/gamification.md>), [html](<https://devfeed.tech/tags/html.md>), [kanban](<https://devfeed.tech/tags/kanban.md>), [people](<https://devfeed.tech/tags/people.md>), [pr-reviews](<https://devfeed.tech/tags/pr-reviews.md>), [productivity](<https://devfeed.tech/tags/productivity.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [review](<https://devfeed.tech/tags/review.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [team](<https://devfeed.tech/tags/team.md>), [team-culture](<https://devfeed.tech/tags/team-culture.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

A team struggled with delayed pull request reviews that blocked colleagues and caused work to drift between sprints. They built a Bitbucket-based dashboard that ranked developers by outstanding reviews and displayed it on a shared TV, using humor and social pressure to encourage the team to review pull requests before standup.

### Source excerpt

A story of how a team used "The Wall of Shame" to turn a bottlenecked PR review process into an engaging game.

## Ubuntu variant optimized with x86-64-v3

DevFeed: [Ubuntu variant optimized with x86-64-v3](<https://devfeed.tech/articles/ubuntu-variant-optimized-with-x86-64-v3-27746.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/04/ubuntu-variant-optimized-with-x86-64-v3/>)

Author: Tom

Published: 2026-04-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [amd64v3](<https://devfeed.tech/tags/amd64v3.md>), [apt-configuration](<https://devfeed.tech/tags/apt-configuration.md>), [avx](<https://devfeed.tech/tags/avx.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [cpu-optimization](<https://devfeed.tech/tags/cpu-optimization.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [sse](<https://devfeed.tech/tags/sse.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>), [ubuntu-25-10](<https://devfeed.tech/tags/ubuntu-25-10.md>), [ubuntu-26-04](<https://devfeed.tech/tags/ubuntu-26-04.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>), [x86-64-v3](<https://devfeed.tech/tags/x86-64-v3.md>)

### AI overview

This tutorial explains Ubuntu's x86-64-v3 optimized package variant, including its rationale, compatibility considerations, and availability for testing in Ubuntu 25.10. It also discusses plans to extend the approach to Ubuntu 26.04 LTS.

### Source excerpt

Explore how to enable and use the x86-64-v3 optimized Ubuntu variant for better performance on modern hardware without sacrificing stability.

## Prek, a pre-commit alternative

DevFeed: [Prek, a pre-commit alternative](<https://devfeed.tech/articles/prek-a-pre-commit-alternative-27743.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/02/prek-a-pre-commit-alternative/>)

Author: Tom

Published: 2026-02-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [pre-commit](<https://devfeed.tech/topics/pre-commit.md>), [Rust](<https://devfeed.tech/topics/rust.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [execution](<https://devfeed.tech/tags/execution.md>), [git-hooks](<https://devfeed.tech/tags/git-hooks.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [performance](<https://devfeed.tech/tags/performance.md>), [pre-commit](<https://devfeed.tech/tags/pre-commit.md>), [prek](<https://devfeed.tech/tags/prek.md>), [projects](<https://devfeed.tech/tags/projects.md>), [rust](<https://devfeed.tech/tags/rust.md>), [script](<https://devfeed.tech/tags/script.md>), [speed](<https://devfeed.tech/tags/speed.md>)

### AI overview

The article describes switching from pre-commit to Prek, a Rust-based drop-in alternative that preserves configuration compatibility while providing faster hook execution. It also presents a script for converting multiple repositories.

### Source excerpt

Prek is a Rust-based pre-commit alternative that maintains full config compatibility while delivering significantly faster hook execution.

## My IndieWeb Journey: A Guide to POSSE on a Hugo Static Site

DevFeed: [My IndieWeb Journey: A Guide to POSSE on a Hugo Static Site](<https://devfeed.tech/articles/my-indieweb-journey-a-guide-to-posse-on-a-hugo-static-site-27742.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/01/my-indieweb-journey-a-guide-to-posse-on-a-hugo-static-site/>)

Author: Tom

Published: 2026-01-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [IndieWeb](<https://devfeed.tech/topics/indieweb.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [Microformats](<https://devfeed.tech/topics/microformats.md>), [Giscus](<https://devfeed.tech/topics/giscus.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [brid-gy](<https://devfeed.tech/tags/brid-gy.md>), [building](<https://devfeed.tech/tags/building.md>), [github](<https://devfeed.tech/tags/github.md>), [github-action](<https://devfeed.tech/tags/github-action.md>), [guide](<https://devfeed.tech/tags/guide.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [indieweb](<https://devfeed.tech/tags/indieweb.md>), [journey](<https://devfeed.tech/tags/journey.md>), [microformats](<https://devfeed.tech/tags/microformats.md>), [papermod](<https://devfeed.tech/tags/papermod.md>), [posse](<https://devfeed.tech/tags/posse.md>), [static-site](<https://devfeed.tech/tags/static-site.md>), [syndication](<https://devfeed.tech/tags/syndication.md>), [web-development](<https://devfeed.tech/tags/web-development.md>), [webmentions](<https://devfeed.tech/tags/webmentions.md>)

### AI overview

A personal guide to applying IndieWeb principles to a Hugo blog through POSSE syndication. It describes cross-posting articles to social networks with a custom GitHub Action, discusses the limitations of comment systems such as Giscus, and emphasizes publishing on an owned site before syndicating elsewhere.

### Source excerpt

My journey of integrating IndieWeb principles into my Hugo blog-from microformats to Brid.gy syndication and building a custom Webmention renderer.

## Radical Candor

DevFeed: [Radical Candor](<https://devfeed.tech/articles/radical-candor-27877.md>)

Original publisher: [Read original article](<https://gagor.pro/book/2026/radical-candor/>)

Author: Tom

Published: 2026-01-24T00:00:00Z

Content type: opinion

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [trust](<https://devfeed.tech/topics/trust.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [book](<https://devfeed.tech/tags/book.md>), [business](<https://devfeed.tech/tags/business.md>), [leadership](<https://devfeed.tech/tags/leadership.md>)

### AI overview

A review of Kim Scott's Radical Candor, which advocates caring personally while challenging directly. The article describes its four feedback styles and notes that the framework can be misused to justify bullying, while still offering practical guidance for constructive feedback and leadership.

### Source excerpt

Radical Candor How to Get What You Want by Saying What You Mean Author: Kim Scott The general idea of the book is that great leadership means caring personally while challenging directly. When I started reading the book, I figured out it's not that radical at all. It's about feedback, mostly constructive: "Radical Candor" is about giving feedback that is both kind and clear-helping people grow while building strong, trusting relationships.

## Digital Gardening

DevFeed: [Digital Gardening](<https://devfeed.tech/articles/digital-gardening-27740.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/01/digital-gardening/>)

Author: Tom

Published: 2026-01-21T00:00:00Z

Content type: opinion

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Website](<https://devfeed.tech/topics/website.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [content-ownership](<https://devfeed.tech/tags/content-ownership.md>), [digital-gardening](<https://devfeed.tech/tags/digital-gardening.md>), [gardening](<https://devfeed.tech/tags/gardening.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [indie-web](<https://devfeed.tech/tags/indie-web.md>), [indieweb](<https://devfeed.tech/tags/indieweb.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [personal-website](<https://devfeed.tech/tags/personal-website.md>), [posse](<https://devfeed.tech/tags/posse.md>), [small-web](<https://devfeed.tech/tags/small-web.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [web](<https://devfeed.tech/tags/web.md>), [web-philosophy](<https://devfeed.tech/tags/web-philosophy.md>)

### AI overview

The article argues that software development is more like gardening than construction because software requires continuous maintenance as operating systems, dependencies, and security conditions change. It applies this idea especially to small personal websites.

### Source excerpt

Treating your personal website like a garden you tend continuously, not as a finished construction, but rather cultivated, authentic fragmented of web.

## Disable the pager for apt search

DevFeed: [Disable the pager for apt search](<https://devfeed.tech/articles/disable-the-pager-for-apt-search-27741.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/01/disable-the-pager-for-apt-search/>)

Author: Tom

Published: 2026-01-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [apt](<https://devfeed.tech/topics/apt.md>), [Debian](<https://devfeed.tech/topics/debian.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [apt](<https://devfeed.tech/tags/apt.md>), [apt-cache](<https://devfeed.tech/tags/apt-cache.md>), [bash](<https://devfeed.tech/tags/bash.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [debian](<https://devfeed.tech/tags/debian.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [less](<https://devfeed.tech/tags/less.md>), [linux](<https://devfeed.tech/tags/linux.md>), [pager](<https://devfeed.tech/tags/pager.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>)

### AI overview

This tutorial explains how to disable the pager used for apt search results on Debian-based systems. It compares older search commands and an environment-variable setting, then recommends a permanent configuration-file change that keeps colorized output.

### Source excerpt

Learn how to disable the annoying pager for apt search results on Debian-based systems, and find the best permanent solution.

## A Practical guide to building a parser in Go

DevFeed: [A Practical guide to building a parser in Go](<https://devfeed.tech/articles/a-practical-guide-to-building-a-parser-in-go-27739.md>)

Original publisher: [Read original article](<https://gagor.pro/2026/01/a-practical-guide-to-building-a-parser-in-go/>)

Author: Tom

Published: 2026-01-04T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>)

Tags: [bnf](<https://devfeed.tech/tags/bnf.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [dsl](<https://devfeed.tech/tags/dsl.md>), [go](<https://devfeed.tech/tags/go.md>), [guide](<https://devfeed.tech/tags/guide.md>), [left-recursion](<https://devfeed.tech/tags/left-recursion.md>), [lexer](<https://devfeed.tech/tags/lexer.md>), [packrat-memoization](<https://devfeed.tech/tags/packrat-memoization.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [programming](<https://devfeed.tech/tags/programming.md>), [recursive-descent-parser](<https://devfeed.tech/tags/recursive-descent-parser.md>)

### AI overview

A developer describes building a recursive descent parser in Go to validate strings against a BNF-like grammar. The project began as an attempt to implement a simple BNF syntax analyzer and led to exploring parser and compiler concepts, including left recursion and Packrat memoization.

### Source excerpt

A developer's journey of building a recursive descent parser in Go, from basic concepts to tackling left recursion with Packrat memoization.

## Transmission: Permission Denied to Downloads directory

DevFeed: [Transmission: Permission Denied to Downloads directory](<https://devfeed.tech/articles/transmission-permission-denied-to-downloads-directory-27737.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/12/transmission-permission-denied-to-downloads-directory/>)

Author: Tom

Published: 2025-12-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [bug](<https://devfeed.tech/topics/bug.md>)

Tags: [apparmor](<https://devfeed.tech/tags/apparmor.md>), [complain-mode](<https://devfeed.tech/tags/complain-mode.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [downloads-directory](<https://devfeed.tech/tags/downloads-directory.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [localized-folders](<https://devfeed.tech/tags/localized-folders.md>), [permission](<https://devfeed.tech/tags/permission.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [security](<https://devfeed.tech/tags/security.md>), [syslog](<https://devfeed.tech/tags/syslog.md>), [transmission](<https://devfeed.tech/tags/transmission.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>), [xdg-user-dirs](<https://devfeed.tech/tags/xdg-user-dirs.md>)

### AI overview

A Transmission AppArmor profile on Ubuntu may deny access to localized Downloads directories because it expects English directory names. The article explains how to update the profile with localized paths and restart AppArmor to restore downloads.

### Source excerpt

Transmission on Ubuntu may be denied access to localized Downloads directories due to AppArmor profiles expecting English folder names. Here's how to fix it.

## Squashing Docker images with Buildx

DevFeed: [Squashing Docker images with Buildx](<https://devfeed.tech/articles/squashing-docker-images-with-buildx-27736.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/12/squashing-docker-images-with-buildx/>)

Author: Tom

Published: 2025-12-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [docker images](<https://devfeed.tech/topics/docker-images.md>), [Dockerfile](<https://devfeed.tech/topics/dockerfile.md>), [Caching](<https://devfeed.tech/topics/caching.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [build](<https://devfeed.tech/tags/build.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [caching](<https://devfeed.tech/tags/caching.md>), [devops](<https://devfeed.tech/tags/devops.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-buildx](<https://devfeed.tech/tags/docker-buildx.md>), [docker-image-optimization](<https://devfeed.tech/tags/docker-image-optimization.md>), [docker-images](<https://devfeed.tech/tags/docker-images.md>), [docker-layer-management](<https://devfeed.tech/tags/docker-layer-management.md>), [dockerfile-best-practices](<https://devfeed.tech/tags/dockerfile-best-practices.md>), [linux](<https://devfeed.tech/tags/linux.md>), [squash-docker-image](<https://devfeed.tech/tags/squash-docker-image.md>)

### AI overview

This tutorial explains how to create smaller Docker images with Buildx by rebuilding the final filesystem state into a new image, removing intermediate layers. It also discusses the trade-off: this approach can prevent reuse of base-image layer caching, while selectively copying files follows a builder-pattern alternative.

### Source excerpt

Learn how to squash Docker images using Buildx to create smaller, more efficient images by consolidating layers.

## Zsh 'illegal modifier' with Git Conventional Commits

DevFeed: [Zsh 'illegal modifier' with Git Conventional Commits](<https://devfeed.tech/articles/zsh-illegal-modifier-with-git-conventional-commits-27738.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/12/zsh-illegal-modifier-with-git-conventional-commits/>)

Author: Tom

Published: 2025-12-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Zsh](<https://devfeed.tech/topics/zsh.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [command-line-tip](<https://devfeed.tech/tags/command-line-tip.md>), [commit](<https://devfeed.tech/tags/commit.md>), [conventional-commits](<https://devfeed.tech/tags/conventional-commits.md>), [errors](<https://devfeed.tech/tags/errors.md>), [fzf](<https://devfeed.tech/tags/fzf.md>), [git](<https://devfeed.tech/tags/git.md>), [git-commit-error](<https://devfeed.tech/tags/git-commit-error.md>), [github-action](<https://devfeed.tech/tags/github-action.md>), [history-expansion](<https://devfeed.tech/tags/history-expansion.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [no-bang-hist](<https://devfeed.tech/tags/no-bang-hist.md>), [shell-configuration](<https://devfeed.tech/tags/shell-configuration.md>), [zsh](<https://devfeed.tech/tags/zsh.md>), [zsh-bang-history](<https://devfeed.tech/tags/zsh-bang-history.md>)

### AI overview

This tutorial explains how Zsh history expansion can cause "illegal modifier" errors when using Git Conventional Commits. It shows how disabling the NO_BANG_HIST option allows bang characters to be used in quoted commit messages.

### Source excerpt

Fix ZSH 'illegal modifier' errors with Git Conventional Commits by disabling the NO_BANG_HIST option.

## I made Windows use UTC with Linux dual boot

DevFeed: [I made Windows use UTC with Linux dual boot](<https://devfeed.tech/articles/i-made-windows-use-utc-with-linux-dual-boot-27735.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/12/i-made-windows-use-utc-with-linux-dual-boot/>)

Author: Tom

Published: 2025-12-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [boot](<https://devfeed.tech/topics/boot.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [best-practices](<https://devfeed.tech/tags/best-practices.md>), [debian](<https://devfeed.tech/tags/debian.md>), [dual-boot](<https://devfeed.tech/tags/dual-boot.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [hardware-clock](<https://devfeed.tech/tags/hardware-clock.md>), [linux](<https://devfeed.tech/tags/linux.md>), [registry](<https://devfeed.tech/tags/registry.md>), [time-synchronization](<https://devfeed.tech/tags/time-synchronization.md>), [timedatectl](<https://devfeed.tech/tags/timedatectl.md>), [utc](<https://devfeed.tech/tags/utc.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

A tutorial explains how to configure Windows and Linux to use UTC for the hardware clock in a dual-boot setup, helping avoid clock conflicts and time synchronization issues.

### Source excerpt

Configure Windows to use UTC for the hardware clock when dual-booting with Linux, avoiding time synchronization issues and maintaining Linux defaults.

## Shucking WD Elements 20TB

DevFeed: [Shucking WD Elements 20TB](<https://devfeed.tech/articles/shucking-wd-elements-20tb-27733.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/11/shucking-wd-elements-20tb/>)

Author: Tom

Published: 2025-11-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Synology](<https://devfeed.tech/topics/synology.md>)

Tags: [20tb-hard-drive](<https://devfeed.tech/tags/20tb-hard-drive.md>), [backup](<https://devfeed.tech/tags/backup.md>), [badblocks-testing](<https://devfeed.tech/tags/badblocks-testing.md>), [bash](<https://devfeed.tech/tags/bash.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [fio-performance](<https://devfeed.tech/tags/fio-performance.md>), [guide](<https://devfeed.tech/tags/guide.md>), [hdd](<https://devfeed.tech/tags/hdd.md>), [linux](<https://devfeed.tech/tags/linux.md>), [nas](<https://devfeed.tech/tags/nas.md>), [nas-upgrade](<https://devfeed.tech/tags/nas-upgrade.md>), [performance](<https://devfeed.tech/tags/performance.md>), [shucking-wd-elements](<https://devfeed.tech/tags/shucking-wd-elements.md>), [speed](<https://devfeed.tech/tags/speed.md>), [standard](<https://devfeed.tech/tags/standard.md>), [storage](<https://devfeed.tech/tags/storage.md>), [stress](<https://devfeed.tech/tags/stress.md>), [synology](<https://devfeed.tech/tags/synology.md>), [testing](<https://devfeed.tech/tags/testing.md>), [zfs](<https://devfeed.tech/tags/zfs.md>)

### AI overview

A hands-on guide to shucking WD Elements 20TB hard drives for use in a Synology NAS. It reports average read/write performance just below 200 MB/s and describes stress-testing the drives before installation, including a workload adjustment that improved throughput to 200-300 MB/s.

### Source excerpt

A detailed guide on shucking WD Elements 20TB drives, including testing, performance benchmarks, and stress testing.

## Generating Miniatures for my Frameo Digital Photo Frame

DevFeed: [Generating Miniatures for my Frameo Digital Photo Frame](<https://devfeed.tech/articles/generating-miniatures-for-my-frameo-digital-photo-frame-27732.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/11/generating-miniatures-for-my-frameo-digital-photo-frame/>)

Author: Tom

Published: 2025-11-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [make](<https://devfeed.tech/topics/make.md>), [Software](<https://devfeed.tech/topics/software.md>), [App](<https://devfeed.tech/topics/app.md>), [data](<https://devfeed.tech/topics/data.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [bash](<https://devfeed.tech/tags/bash.md>), [camera](<https://devfeed.tech/tags/camera.md>), [collection](<https://devfeed.tech/tags/collection.md>), [devops](<https://devfeed.tech/tags/devops.md>), [digital-photo-frame](<https://devfeed.tech/tags/digital-photo-frame.md>), [exiftool](<https://devfeed.tech/tags/exiftool.md>), [files](<https://devfeed.tech/tags/files.md>), [frameo](<https://devfeed.tech/tags/frameo.md>), [generate](<https://devfeed.tech/tags/generate.md>), [go](<https://devfeed.tech/tags/go.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [imagemagick](<https://devfeed.tech/tags/imagemagick.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [make](<https://devfeed.tech/tags/make.md>), [photo-collection](<https://devfeed.tech/tags/photo-collection.md>), [photo-miniatures](<https://devfeed.tech/tags/photo-miniatures.md>), [photos](<https://devfeed.tech/tags/photos.md>), [raspberry-pi](<https://devfeed.tech/tags/raspberry-pi.md>)

### AI overview

The author describes buying an ARZOPA Frameo digital photo frame and developing a workflow to fit a large photo collection onto its limited storage by generating thumbnails. The workflow uses ImageMagick, ExifTool, parallel processing, and Make on Ubuntu or Debian.

### Source excerpt

A story of how I bought a digital photo frame, and how I created a tool to generate miniatures of my photo collection to fit them all on the device.

## 20 years of Getting Things Done

DevFeed: [20 years of Getting Things Done](<https://devfeed.tech/articles/20-years-of-getting-things-done-27730.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/11/20-years-of-getting-things-done/>)

Author: Tom

Published: 2025-11-27T00:00:00Z

Content type: article

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [systems](<https://devfeed.tech/topics/systems.md>), [DevOps](<https://devfeed.tech/topics/devops.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [backups](<https://devfeed.tech/topics/backups.md>), [health checks](<https://devfeed.tech/topics/health-checks.md>), [Disaster Recovery](<https://devfeed.tech/topics/disaster-recovery.md>)

Tags: [2](<https://devfeed.tech/tags/2.md>), [advice](<https://devfeed.tech/tags/advice.md>), [backup](<https://devfeed.tech/tags/backup.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [devops](<https://devfeed.tech/tags/devops.md>), [getting-things-done](<https://devfeed.tech/tags/getting-things-done.md>), [gtd](<https://devfeed.tech/tags/gtd.md>), [leadership](<https://devfeed.tech/tags/leadership.md>), [learnings](<https://devfeed.tech/tags/learnings.md>), [linux](<https://devfeed.tech/tags/linux.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [productivity](<https://devfeed.tech/tags/productivity.md>), [recovery](<https://devfeed.tech/tags/recovery.md>), [time-management](<https://devfeed.tech/tags/time-management.md>), [workshop](<https://devfeed.tech/tags/workshop.md>)

### AI overview

A reflection on 20 years of using Getting Things Done, including how external systems shaped the author's work as a system administrator and DevOps engineer. It describes replacing manual backup checks with failure notifications and introducing monitoring and health checks to move operations from reactive to proactive.

### Source excerpt

Reflections and practical tips from 20 years using Getting Things Done, plus a short workshop plan for leaders who want actionable routines.

## Create Markdown presentations with Marp

DevFeed: [Create Markdown presentations with Marp](<https://devfeed.tech/articles/create-markdown-presentations-with-marp-27731.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/11/create-markdown-presentations-with-marp/>)

Author: Tom

Published: 2025-11-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Markdown](<https://devfeed.tech/topics/markdown.md>), [Tool](<https://devfeed.tech/topics/tool.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-slide-decks](<https://devfeed.tech/tags/ai-slide-decks.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [markdown-presentations](<https://devfeed.tech/tags/markdown-presentations.md>), [markdown-tools](<https://devfeed.tech/tags/markdown-tools.md>), [marp](<https://devfeed.tech/tags/marp.md>), [tool](<https://devfeed.tech/tags/tool.md>)

### AI overview

A tutorial on creating Markdown presentations with Marp. It covers slide separation, using Markdown notes as presentation content, previewing slides in VS Code, and exporting presentations to PDF or images.

### Source excerpt

Learn how to create beautiful slide decks with Markdown and Marp, a simple and powerful tool for presentations.

## Running Gemini CLI in a Docker container

DevFeed: [Running Gemini CLI in a Docker container](<https://devfeed.tech/articles/running-gemini-cli-in-a-docker-container-27729.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/10/running-gemini-cli-in-a-docker-container/>)

Author: Tom

Published: 2025-10-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Docker Container](<https://devfeed.tech/topics/docker-container.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [bash](<https://devfeed.tech/tags/bash.md>), [cli](<https://devfeed.tech/tags/cli.md>), [developer-tools](<https://devfeed.tech/tags/developer-tools.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-container](<https://devfeed.tech/tags/docker-container.md>), [gemini-cli](<https://devfeed.tech/tags/gemini-cli.md>), [github](<https://devfeed.tech/tags/github.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [npm](<https://devfeed.tech/tags/npm.md>), [shell](<https://devfeed.tech/tags/shell.md>), [zsh](<https://devfeed.tech/tags/zsh.md>)

### AI overview

A practical guide to running Google's Gemini CLI in a Docker container instead of installing Node.js and its dependencies directly. It explains the author's custom Docker image, weekly updates, shell integration, configuration persistence, permissions, and interactive usage.

### Source excerpt

Learn how to run Google's Gemini CLI in a Docker container to avoid installing Node.js and its dependencies directly on your system. This guide provides a simple setup, a recommended shell function for seamless integration, and usage examples.

## How to add llms.txt to a Hugo Blog

DevFeed: [How to add llms.txt to a Hugo Blog](<https://devfeed.tech/articles/how-to-add-llms-txt-to-a-hugo-blog-27728.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/10/how-to-add-llms.txt-to-a-hugo-blog/>)

Author: Tom

Published: 2025-10-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Hugo](<https://devfeed.tech/topics/hugo.md>), [AI Bots](<https://devfeed.tech/topics/ai-bots.md>), [Search engine optimization (SEO)](<https://devfeed.tech/topics/seo.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-content-visibility](<https://devfeed.tech/tags/ai-content-visibility.md>), [ai-crawlers](<https://devfeed.tech/tags/ai-crawlers.md>), [blog](<https://devfeed.tech/tags/blog.md>), [generative-engine-optimization](<https://devfeed.tech/tags/generative-engine-optimization.md>), [geo](<https://devfeed.tech/tags/geo.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [hugo-llms-txt](<https://devfeed.tech/tags/hugo-llms-txt.md>), [hugo-seo](<https://devfeed.tech/tags/hugo-seo.md>), [llm-metadata](<https://devfeed.tech/tags/llm-metadata.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [seo](<https://devfeed.tech/tags/seo.md>)

### AI overview

A tutorial showing how to add an llms.txt Markdown file to a Hugo blog using a custom media type, output format, and template. It presents the file as a way to help AI systems understand and discover site content, while noting that its effect on organic traffic is uncertain.

### Source excerpt

Learn how to add an llms.txt file to your Hugo blog to make it more visible to AI agents and improve Generative Engine Optimization (GEO).

## Why traditional motivation techniques can undermine intrinsic motivation in tech teams

DevFeed: [Why traditional motivation techniques can undermine intrinsic motivation in tech teams](<https://devfeed.tech/articles/why-you-should-not-motivate-people-27727.md>)

Original publisher: [Read original article](<https://gagor.pro/2025/09/why-you-should-not-motivate-people/>)

Author: Tom

Published: 2025-09-26T00:00:00Z

Content type: opinion

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [DRIVE](<https://devfeed.tech/topics/drive.md>)

Tags: [autonomy-mastery-purpose](<https://devfeed.tech/tags/autonomy-mastery-purpose.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [daniel-pink-drive](<https://devfeed.tech/tags/daniel-pink-drive.md>), [effective-leadership-strategies](<https://devfeed.tech/tags/effective-leadership-strategies.md>), [intrinsic-motivation](<https://devfeed.tech/tags/intrinsic-motivation.md>), [leadership](<https://devfeed.tech/tags/leadership.md>), [leadership-best-practices](<https://devfeed.tech/tags/leadership-best-practices.md>), [motivation-in-tech-teams](<https://devfeed.tech/tags/motivation-in-tech-teams.md>), [people](<https://devfeed.tech/tags/people.md>), [practical](<https://devfeed.tech/tags/practical.md>), [strategies](<https://devfeed.tech/tags/strategies.md>), [team](<https://devfeed.tech/tags/team.md>), [team-engagement](<https://devfeed.tech/tags/team-engagement.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

This workshop-style article examines how traditional rewards, pressure, and micromanagement can undermine intrinsic motivation, especially in complex and creative tech work. Drawing on Daniel Pink's Drive, it encourages team leaders to support autonomy, mastery, and purpose.

### Source excerpt

Discover why traditional motivation techniques can backfire in tech teams and how leaders can foster intrinsic motivation through autonomy, mastery, and purpose. Learn actionable strategies to empower your team and boost engagement, based on insights from Daniel Pink's "Drive."

[Next page](<https://devfeed.tech/sources/tomasz-gagor.md?cursor=WyIyMDI1LTA5LTI2VDAwOjAwOjAwKzAwOjAwIiwgIjk2NGFmMjQyLWYwNDQtNDhhNS04ZjJhLTk2ZjU3NTBiMzJjNiJd>)