# make

Published articles for make.

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

## Efficient Bulk Hash Insertion with Redis 8.10's HIMPORT

DevFeed: [Efficient Bulk Hash Insertion with Redis 8.10's HIMPORT](<https://devfeed.tech/articles/efficient-bulk-hash-insertion-with-redis-8-10-s-himport-4803.md>)

Original publisher: [Read original article](<https://redis.io/blog/efficient-bulk-hash-insertion-with-redis-810s-himport/>)

Author: David Maier

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

Content type: article

Language: en

Sources: [Redis Blog](<https://devfeed.tech/sources/redis-blog.md>)

Topics: [Redis](<https://devfeed.tech/topics/redis.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Code](<https://devfeed.tech/topics/code.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [cli](<https://devfeed.tech/tags/cli.md>), [code](<https://devfeed.tech/tags/code.md>), [make](<https://devfeed.tech/tags/make.md>), [redis](<https://devfeed.tech/tags/redis.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

This article explains how to use Redis 8.10's HIMPORT command with redis-rb to perform more efficient bulk hash insertion in Ruby. It covers connection setup, prepared field sets, automatic preparation, reconnection behavior, the demo CLI, and pipelined imports.

### Source excerpt

I'm not a Ruby developer, and my code samples might make that clear. However, there are two reasons I'm using Ruby for the examples in this article: A new release of redis-rb. Its support for a new Redis command: HIMPORT. Getting started Establish...

## Introducing Isolated Projects

DevFeed: [Introducing Isolated Projects](<https://devfeed.tech/articles/introducing-isolated-projects-24653.md>)

Original publisher: [Read original article](<https://blog.gradle.org/introducing-isolated-projects>)

Author: Alex Semin

Published: 2026-08-06T04:00:00Z

Content type: release

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [feature](<https://devfeed.tech/tags/feature.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [make](<https://devfeed.tech/tags/make.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [releases](<https://devfeed.tech/tags/releases.md>)

### AI overview

Gradle introduces Isolated Projects, a performance feature that isolates projects during the configuration phase so they can be processed independently and concurrently. In Gradle 9.7.0, the feature moves from experimental to incubating, with current gains primarily from parallel project configuration.

### Source excerpt

Isolated Projects is a Gradle performance feature that speeds up the configuration phase. When the feature is enabled, each project in a build becomes "isolated" from others via boundaries that cannot be crossed. With this guarantee, Gradle can safely operate on each project independently and concurrently. This enables greater utilization of machine resources at configuration time and sets the stage for future caching optimizations. In the latest Gradle 9.7.0 release, Isolated Projects graduates from experimental to incubating. We believe Isolated Projects is the future of Gradle, and we intend to stabilize it and eventually make it the default. In this Gradle version, most of the performance gains come from parallel project configuration. It is not the only optimization these isolation constraints make possible, just the first to ship. It provides speedups across practically all scenarios, including CLI invocations and IDE sync. We invite everyone to try it and share feedback. Adopting Isolated Projects Isolated Projects ships with an extensive guide to adopting it. If you've already upgraded to Configuration Cache, which is a prerequisite, then the process should be familiar. You can enable the feature either via the --isolated-projects command-line flag or with the property org.gradle.isolated-projects=true. It must be enabled with a property to take effect for IDE sync. # gradle.properties org.gradle.isolated-projects=true When Isolated Projects is enabled, it takes precedence over other performance features. You can learn more about how it interacts with other features in this section of the documentation. Since the feature introduces new isolation constraints, you might have to adjust your build logic or upgrade community plugins to take advantage of it. For correctness, Gradle will fail immediately upon encountering the first constraint violation and report the error: You can use the Diagnostics mode to discover many constraint violations at once. All the rep

## libosmocore - libosmocore 1.14.1 released

DevFeed: [libosmocore - libosmocore 1.14.1 released](<https://devfeed.tech/articles/libosmocore-libosmocore-1-14-1-released-32757.md>)

Original publisher: [Read original article](<https://osmocom.org/news/330>)

Author: osmith

Published: 2026-07-22T10:37:33Z

Content type: release

Language: en

Sources: [Open Source Mobile Communications: News](<https://devfeed.tech/sources/open-source-mobile-communications-news.md>)

Topics: [changelog](<https://devfeed.tech/topics/changelog.md>), [IO](<https://devfeed.tech/topics/io.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [scheduling](<https://devfeed.tech/topics/scheduling.md>), [make](<https://devfeed.tech/topics/make.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [bug](<https://devfeed.tech/tags/bug.md>), [changelog](<https://devfeed.tech/tags/changelog.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [io](<https://devfeed.tech/tags/io.md>), [issue](<https://devfeed.tech/tags/issue.md>), [make](<https://devfeed.tech/tags/make.md>), [scheduling](<https://devfeed.tech/tags/scheduling.md>), [tracker](<https://devfeed.tech/tags/tracker.md>)

### AI overview

libosmocore 1.14.1 has been released with fixes to I/O queue handling, CPU scheduling initialization and platform-dependent scheduling support, utility issues, and a missing crypto header in the build configuration.

### Source excerpt

Today we've released libosmocore 1.14.1. The changelog over 1.14.0 is as follows: libosmocore (1.14.1) unstable; urgency=medium [ Vadim Yanitskiy ] * osmo_io: iofd_txqueue_dequeue(): fix double next->io_len decrement [ Timur Davydov ] * vty: fix osmo_cpu_sched_vty_init() prototype * vty: make CPU scheduling optional based on platform support [ Oliver Smith ] * utils: fix typos * utils/gsmtap-logsend: close infile before exit [ Alexander Couzens ] * gsm/Makefile.am: add missing kdf/crypto.h -- Oliver Smith <osmith@sysmocom.de> Wed, 22 Jul 2026 11:30:55 +0200

## Issue no.17: Build with joy

DevFeed: [Issue no.17: Build with joy](<https://devfeed.tech/articles/issue-no-17-build-with-joy-9549.md>)

Original publisher: [Read original article](<https://www.figma.com/blog/build-with-joy/>)

Author: Figma

Published: 2026-07-02T23:05:00Z

Content type: article

Language: en

Sources: [Figma Blog](<https://devfeed.tech/sources/figma-blog.md>)

Topics: [Figma](<https://devfeed.tech/topics/figma.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [community](<https://devfeed.tech/tags/community.md>), [design](<https://devfeed.tech/tags/design.md>), [figma](<https://devfeed.tech/tags/figma.md>), [make](<https://devfeed.tech/tags/make.md>), [software](<https://devfeed.tech/tags/software.md>), [vision](<https://devfeed.tech/tags/vision.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

Figma's Config 2026 magazine, "Build with joy," explores how teams evolve workflows, develop creative taste, use motion and color, and imagine the future of software. It also recaps Config launches and introduces a new Figma swag collection.

### Source excerpt

The way we make things is changing, but why we make them stays constant--the thrill of seeing a vision come to life.

## Chainguard brings first-party RHEL 9 and RHEL 10 RPM support to Chainguard OS, joins FINOS

DevFeed: [Chainguard brings first-party RHEL 9 and RHEL 10 RPM support to Chainguard OS, joins FINOS](<https://devfeed.tech/articles/chainguard-brings-first-party-rhel-9-and-rhel-10-rpm-support-to-chainguard-os-joins-finos-12933.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/chainguard-brings-first-party-rhel-9-and-rhel-10-rpm-support-to-chainguard-os-joins-finos>)

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

Content type: news

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [chainguard](<https://devfeed.tech/topics/chainguard.md>), [chainguard os](<https://devfeed.tech/topics/chainguard-os.md>), [chainguard containers](<https://devfeed.tech/topics/chainguard-containers.md>), [Security](<https://devfeed.tech/topics/security.md>), [Critical Infrastructure](<https://devfeed.tech/topics/critical-infrastructure.md>), [Package Management](<https://devfeed.tech/topics/package-management.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Cloud Native Ecosystem](<https://devfeed.tech/topics/cloud-native-ecosystem.md>), [Resilience](<https://devfeed.tech/topics/resilience.md>), [APK](<https://devfeed.tech/topics/apk.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [chainguard](<https://devfeed.tech/tags/chainguard.md>), [chainguard-containers](<https://devfeed.tech/tags/chainguard-containers.md>), [chainguard-finserv](<https://devfeed.tech/tags/chainguard-finserv.md>), [chainguard-os](<https://devfeed.tech/tags/chainguard-os.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-native](<https://devfeed.tech/tags/cloud-native.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [container](<https://devfeed.tech/tags/container.md>), [container-images](<https://devfeed.tech/tags/container-images.md>), [containers](<https://devfeed.tech/tags/containers.md>), [critical-infrastructure](<https://devfeed.tech/tags/critical-infrastructure.md>), [cve](<https://devfeed.tech/tags/cve.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [hardening](<https://devfeed.tech/tags/hardening.md>), [images](<https://devfeed.tech/tags/images.md>), [linux](<https://devfeed.tech/tags/linux.md>), [make](<https://devfeed.tech/tags/make.md>), [mythos](<https://devfeed.tech/tags/mythos.md>), [open](<https://devfeed.tech/tags/open.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [project-glasswing](<https://devfeed.tech/tags/project-glasswing.md>), [rhel](<https://devfeed.tech/tags/rhel.md>), [rhel-10](<https://devfeed.tech/tags/rhel-10.md>), [rhel-9](<https://devfeed.tech/tags/rhel-9.md>)

### AI overview

Chainguard announces first-party RHEL 9 and RHEL 10 RPM compatibility for packages in Chainguard Containers built on Chainguard OS. The company also announces that it is joining FINOS to support open source collaboration in financial infrastructure.

### Source excerpt

Chainguard adds first-party RHEL 9/10 RPM compatibility and joins FINOS, helping financial institutions modernize securely for the AI-driven threat era.

## Inside Turbopack: Building Faster by Building Less

DevFeed: [Inside Turbopack: Building Faster by Building Less](<https://devfeed.tech/articles/inside-turbopack-building-faster-by-building-less-3286.md>)

Original publisher: [Read original article](<https://nextjs.org/blog/turbopack-incremental-computation>)

Author: Tobias Koppers

Published: 2026-01-20T17:00:00Z

Content type: article

Language: en

Sources: [Next.js Blog](<https://devfeed.tech/sources/next-js-blog.md>)

Topics: [Caching](<https://devfeed.tech/topics/caching.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>), [make](<https://devfeed.tech/topics/make.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [building](<https://devfeed.tech/tags/building.md>), [cache](<https://devfeed.tech/tags/cache.md>), [caching](<https://devfeed.tech/tags/caching.md>), [code](<https://devfeed.tech/tags/code.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [development](<https://devfeed.tech/tags/development.md>), [make](<https://devfeed.tech/tags/make.md>), [memory](<https://devfeed.tech/tags/memory.md>), [next-js](<https://devfeed.tech/tags/next-js.md>), [performance](<https://devfeed.tech/tags/performance.md>), [scale](<https://devfeed.tech/tags/scale.md>), [web](<https://devfeed.tech/tags/web.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>)

### AI overview

Turbopack uses fine-grained caching and incremental computation to reduce rebuild work and speed up development for large Next.js applications. The article explains its automatic dependency tracking, research foundations, and contrast with coarse-grained systems such as GNU Make.

### Source excerpt

Learn how we built Turbopack with incremental computation to scale development and builds to massive Next.js applications.

## 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.

## 6 winning Figma Makes--and what you can learn from them

DevFeed: [6 winning Figma Makes--and what you can learn from them](<https://devfeed.tech/articles/6-winning-figma-makes-and-what-you-can-learn-from-them-9472.md>)

Original publisher: [Read original article](<https://www.figma.com/blog/6-winning-figma-makes-and-what-you-can-learn-from-them/>)

Author: Emma Webster

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

Content type: article

Language: en

Sources: [Figma Blog](<https://devfeed.tech/sources/figma-blog.md>)

Topics: [Figma](<https://devfeed.tech/topics/figma.md>), [SVG animations in CSS](<https://devfeed.tech/topics/svg-animations-in-css.md>), [Code](<https://devfeed.tech/topics/code.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Prompt Engineering](<https://devfeed.tech/topics/prompt-engineering.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [animation](<https://devfeed.tech/tags/animation.md>), [code](<https://devfeed.tech/tags/code.md>), [creativity](<https://devfeed.tech/tags/creativity.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [figma](<https://devfeed.tech/tags/figma.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [innovation](<https://devfeed.tech/tags/innovation.md>), [learn](<https://devfeed.tech/tags/learn.md>), [make](<https://devfeed.tech/tags/make.md>), [svg](<https://devfeed.tech/tags/svg.md>), [tool](<https://devfeed.tech/tags/tool.md>)

### AI overview

The article presents six winning Figma Make projects from a global Make-a-thon and extracts lessons for prototyping, product structure, prompting, and iteration. It highlights a frame-by-frame SVG animation tool whose creator used iterative dialogue with AI, explored technical implementation details, and relied on reverting to earlier versions when debugging.

### Source excerpt

Winners from our first global Make-a-thon offer insights on how to prototype smarter, structure products better, and push Figma Make further.

## Keep your AGENTS.md in sync -- One Source of Truth for AI Instructions

DevFeed: [Keep your AGENTS.md in sync -- One Source of Truth for AI Instructions](<https://devfeed.tech/articles/keep-your-agents-md-in-sync-one-source-of-truth-for-ai-instructions-25211.md>)

Original publisher: [Read original article](<https://kau.sh/blog/agents-md/>)

Author: Kaushik Gopal

Published: 2025-07-03T22:22:12Z

Content type: tutorial

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [AI Development](<https://devfeed.tech/topics/ai-development.md>), [Development](<https://devfeed.tech/topics/development.md>), [Tool](<https://devfeed.tech/topics/tool.md>)

Tags: [ai-development](<https://devfeed.tech/tags/ai-development.md>), [codex](<https://devfeed.tech/tags/codex.md>), [developers](<https://devfeed.tech/tags/developers.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [make](<https://devfeed.tech/tags/make.md>), [opencode](<https://devfeed.tech/tags/opencode.md>)

### AI overview

This post describes organizing AI assistant instructions in a single source-of-truth repository. It separates user-level defaults from project-level rules and uses symlinks and a Makefile setup command to share configuration across Claude, Codex, and OpenCode.

### Source excerpt

Getting useful results from your AI assistant often comes down to the instructions you give it. Most developers treat that step casually, then wonder why the output is mediocre. One of the simplest ways1 to improve this is to keep one set of master instructions in an AGENTS.md file. In it, you define persistent rules that shape every interaction with the agent. Writing those instructions once is easy enough. Keeping them in sync is the annoying part. If you use more than one tool, things drift fast. So I keep one repo as the source of truth for my AI setup, then wire my tools and projects back to it. This post is the simple version of that setup. Good news Most coding tools have since consolidated around AGENTS.md as the standard. That makes this much simpler than it used to be. I talked about this topic in detail on my AI development podcast: How I organize my AI instructions # I keep my setup at two levels: User-level instructions: my personal defaults that I want available everywhere Project-level instructions: the rules and context that only apply to one repo User level: one source of truth ## I keep my shared AI setup in a single repo. That repo holds the things I want to maintain in one place: AGENTS.md reusable skills/ reusable commands/ compatibility shims like CLAUDE.md Then I wire my local tools back to that repo with one command from the repo's Makefile: make setup That command creates the symlinks for me. I am not updating the same instructions by hand for Claude, Codex, and OpenCode. I edit the shared files once in my repo, and the tools point back to them. At the user level, I keep it direct. The repo is the source of truth, so the tool-specific paths symlink straight to it. For example: ~/.claude/agents -> ~/my-local-directory/aikado/agents ~/.config/opencode/agents -> ~/my-local-directory/aikado/agents So the maintenance story is simple: keep shared defaults in one repo symlink tools back to that repo edit once Project level: thin local scaffolding #

## Using \`make\` to compile C programs (for non-C-programmers)

DevFeed: [Using \`make\` to compile C programs (for non-C-programmers)](<https://devfeed.tech/articles/using-make-to-compile-c-programs-for-non-c-programmers-21120.md>)

Original publisher: [Read original article](<https://jvns.ca/blog/2025/06/10/how-to-compile-a-c-program/>)

Author: Julia Evans

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

Content type: tutorial

Language: en

Sources: [Julia Evans](<https://devfeed.tech/sources/julia-evans.md>)

Topics: [C](<https://devfeed.tech/topics/c.md>), [make](<https://devfeed.tech/topics/make.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Package manager](<https://devfeed.tech/topics/package-manager.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [apt](<https://devfeed.tech/topics/apt.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>)

Tags: [apt](<https://devfeed.tech/tags/apt.md>), [building](<https://devfeed.tech/tags/building.md>), [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [debian](<https://devfeed.tech/tags/debian.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mac](<https://devfeed.tech/tags/mac.md>), [make](<https://devfeed.tech/tags/make.md>), [packages](<https://devfeed.tech/tags/packages.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

A beginner-oriented guide to compiling C programs from source, covering compiler installation, dependency discovery, and build tools on Ubuntu and macOS.

### Source excerpt

I have never been a C programmer but every so often I need to compile a C/C++ program from source. This has been kind of a struggle for me: for a long time, my approach was basically "install the dependencies, run make, if it doesn't work, either try to find a binary someone has compiled or give up". "Hope someone else has compiled it" worked pretty well when I was running Linux but since I've been using a Mac for the last couple of years I've been running into more situations where I have to actually compile programs myself. So let's talk about what you might have to do to compile a C program! I'll use a couple of examples of specific C programs I've compiled and talk about a few things that can go wrong. Here are three programs we'll be talking about compiling: paperjam sqlite qf (a pager you can run to quickly open files from a search with rg -n THING | qf) step 1: install a C compiler This is pretty simple: on an Ubuntu system if I don't already have a C compiler I'll install one with: sudo apt-get install build-essential This installs gcc, g++, and make. The situation on a Mac is more confusing but it's something like "install xcode command line tools". step 2: install the program's dependencies Unlike some newer programming languages, C doesn't have a dependency manager. So if a program has any dependencies, you need to hunt them down yourself. Thankfully because of this, C programmers usually keep their dependencies very minimal and often the dependencies will be available in whatever package manager you're using. There's almost always a section explaining how to get the dependencies in the README, for example in paperjam's README, it says: To compile PaperJam, you need the headers for the libqpdf and libpaper libraries (usually available as libqpdf-dev and libpaper-dev packages). You may need a2x (found in AsciiDoc) for building manual pages. So on a Debian-based system you can install the dependencies like this. sudo apt install -y libqpdf-dev libpaper-dev

## Using if-else Conditionals in a Makefile

DevFeed: [Using if-else Conditionals in a Makefile](<https://devfeed.tech/articles/using-if-else-conditionals-in-a-makefile-4515.md>)

Original publisher: [Read original article](<https://feeds.feedblitz.com/~/919796387/0/baeldung/linux~Using-ifelse-Conditionals-in-a-Makefile>)

Author: baeldung

Published: 2025-06-06T09:36:00Z

Content type: tutorial

Language: en

Sources: [Baeldung - Linux](<https://devfeed.tech/sources/baeldung-linux.md>)

Topics: [make](<https://devfeed.tech/topics/make.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [building](<https://devfeed.tech/tags/building.md>), [building-make-popular](<https://devfeed.tech/tags/building-make-popular.md>), [code](<https://devfeed.tech/tags/code.md>), [examples](<https://devfeed.tech/tags/examples.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [learn](<https://devfeed.tech/tags/learn.md>), [linux](<https://devfeed.tech/tags/linux.md>), [make](<https://devfeed.tech/tags/make.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [os](<https://devfeed.tech/tags/os.md>), [popular](<https://devfeed.tech/tags/popular.md>), [programming](<https://devfeed.tech/tags/programming.md>), [scripting](<https://devfeed.tech/tags/scripting.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A tutorial explaining how to use if-else conditional directives in Makefiles. It covers ifeq, ifneq, ifdef, and ifndef, with examples for selecting compiler flags, handling operating-system differences, and assigning default variable values.

### Source excerpt

Learn how to use if-else conditional statements inside of Makefiles. The post Using if-else Conditionals in a Makefile first appeared on Baeldung on Linux. Related Stories How to Identify the Package Manager of a Linux System Background Jobs in a Loop in Bash Executing Commands in Gnuplot through Shell Script

## Incident management tool integration

DevFeed: [Incident management tool integration](<https://devfeed.tech/articles/incident-management-tool-integration-11831.md>)

Original publisher: [Read original article](<https://incident.io/blog/incident-management-tool-integration>)

Author: Kate Bernacchi-Sass

Published: 2025-03-03T21:14:00Z

Content type: tutorial

Language: en

Sources: [The incident.io Blog](<https://devfeed.tech/sources/the-incident-io-blog.md>)

Topics: [incident management](<https://devfeed.tech/topics/incident-management.md>), [incident](<https://devfeed.tech/topics/incident.md>), [SRE](<https://devfeed.tech/topics/sre.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [Slack](<https://devfeed.tech/topics/slack.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [connectors](<https://devfeed.tech/tags/connectors.md>), [dashboards](<https://devfeed.tech/tags/dashboards.md>), [incident](<https://devfeed.tech/tags/incident.md>), [incident-channel](<https://devfeed.tech/tags/incident-channel.md>), [incident-management](<https://devfeed.tech/tags/incident-management.md>), [incident-response](<https://devfeed.tech/tags/incident-response.md>), [integration](<https://devfeed.tech/tags/integration.md>), [integrations](<https://devfeed.tech/tags/integrations.md>), [make](<https://devfeed.tech/tags/make.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [outage](<https://devfeed.tech/tags/outage.md>), [post](<https://devfeed.tech/tags/post.md>), [post-mortem](<https://devfeed.tech/tags/post-mortem.md>), [slack](<https://devfeed.tech/tags/slack.md>), [slack-incident](<https://devfeed.tech/tags/slack-incident.md>), [source](<https://devfeed.tech/tags/source.md>), [sre](<https://devfeed.tech/tags/sre.md>), [tool](<https://devfeed.tech/tags/tool.md>), [tools](<https://devfeed.tech/tags/tools.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

This guide explains how integrating monitoring, paging, chat, and ticketing tools can shorten incident response times, reduce repetitive work and burnout, and provide a single source of truth. It covers integrated workflows, practical implementation steps, measurement, and common pitfalls, with an Intercom example involving PagerDuty, Slack, and Jira.

### Source excerpt

Incident response slows down when tools don't talk to each other. This post explains how integrating your incident management stack (from monitoring and paging to chat and ticketing) cuts response times, reduces burnout, and creates a single source of truth. Learn practical steps to quickly integrate key tools, avoid common pitfalls, and build workflows that help (not hinder) your team at 2 a.m.

## Docker Bake and Chainguard Images

DevFeed: [Docker Bake and Chainguard Images](<https://devfeed.tech/articles/docker-bake-and-chainguard-images-13022.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/docker-bake-and-chainguard-images>)

Published: 2025-02-13T00:00:00Z

Content type: article

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [chainguard images](<https://devfeed.tech/topics/chainguard-images.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Development](<https://devfeed.tech/topics/development.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [bake](<https://devfeed.tech/tags/bake.md>), [build](<https://devfeed.tech/tags/build.md>), [chainguard](<https://devfeed.tech/tags/chainguard.md>), [chainguard-images](<https://devfeed.tech/tags/chainguard-images.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cli](<https://devfeed.tech/tags/cli.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [docker](<https://devfeed.tech/tags/docker.md>), [make](<https://devfeed.tech/tags/make.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [registry](<https://devfeed.tech/tags/registry.md>), [variable](<https://devfeed.tech/tags/variable.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This article introduces Docker Bake, a Docker CLI capability for defining, simplifying, and automating Docker build workflows with declarative files. It explains basic build definitions and shows how Bake can support multistage workflows with Chainguard Images, separate development and production targets, inheritance, multiplatform builds, registry pushes, and variables. Bake files can use HCL, YAML, or JSON, with HCL providing basic string-interpolation functions.

### Source excerpt

Docker Bake is a great resource to define build configuration using a declarative file that integrates well with Chainguard Images. See how.

## RAG Trick: Embeddings are Spheres

DevFeed: [RAG Trick: Embeddings are Spheres](<https://devfeed.tech/articles/rag-trick-embeddings-are-spheres-33430.md>)

Original publisher: [Read original article](<https://timkellogg.me/blog/2024/07/10/spheres>)

Published: 2024-07-10T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tim Kellogg](<https://devfeed.tech/sources/tim-kellogg.md>)

Topics: [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [Retrieval Augmented Generation (RAG)](<https://devfeed.tech/topics/retrieval-augmented-generation-rag.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [embeddings](<https://devfeed.tech/tags/embeddings.md>), [make](<https://devfeed.tech/tags/make.md>), [model](<https://devfeed.tech/tags/model.md>), [rag](<https://devfeed.tech/tags/rag.md>), [software-design](<https://devfeed.tech/tags/software-design.md>)

### AI overview

This tutorial explains that normalized embeddings lie on a hypersphere and shows how that simplifies similarity calculations. It recommends dot product over other distance measures, notes that cosine similarity is equivalent for normalized vectors, and relates average embeddings to logistic regression.

### Source excerpt

This post offers some helpful simplifications you can make when working with RAG or embeddings that help build a working mental model around them. Embeddings typically form a (hyper)sphere, because they're normalized.

## Adding Tailwind CSS to a Hugo blog

DevFeed: [Adding Tailwind CSS to a Hugo blog](<https://devfeed.tech/articles/adding-tailwind-css-to-a-hugo-blog-25341.md>)

Original publisher: [Read original article](<https://kau.sh/blog/tailwind-hugo/>)

Author: Kaushik Gopal

Published: 2024-07-05T18:36:23Z

Content type: tutorial

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [Tailwind CSS](<https://devfeed.tech/topics/tailwind.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [CSS](<https://devfeed.tech/topics/css.md>), [make](<https://devfeed.tech/topics/make.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [css](<https://devfeed.tech/tags/css.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [installation](<https://devfeed.tech/tags/installation.md>), [make](<https://devfeed.tech/tags/make.md>), [npm](<https://devfeed.tech/tags/npm.md>), [tailwind](<https://devfeed.tech/tags/tailwind.md>)

### AI overview

A tutorial showing how to add Tailwind CSS v4 to a Hugo site using Tailwind CLI, including installation, CSS file setup, development commands, and a Makefile workflow for running or building Hugo and Tailwind together.

### Source excerpt

Updated for Tailwind CSS V4 I veer away from CSS frameworks like Bootstrap because they result in sterilized designs. On a recent side project, I gave Tailwind CSS a try and am now a believer. "Rapidly build modern websites without ever leaving your HTML" makes a lot of sense to me. Case in point: I rebuilt my Hugo theme, Henry, with Tailwind in three days.1 I quite like how it's turned out. Let me show you how to add it to a Hugo theme. This has become even simpler with Tailwind CSS v4. Approach ## I like to keep things as simple as possible. So, it was important for me to use both Hugo & Tailwind as you would independently. I don't use Tailwind as a PostCSS plugin as much of the internet recommends. I prefer Tailwind CLI. Installation ## Let's assume you created your new site with hugo: hugo new site my-blog cd my-blog From this root hugo project directory: # create a package.json file (with default options) npm init -y # install Tailwind CSS as a dependency npm install -D tailwindcss @tailwindcss/cli Let's create the necessary css files for Tailwind to latch on to: mkdir -p my-blog/assets/css touch my-blog/assets/css/input.css touch my-blog/assets/css/theme.css I use the input.css file to help Tailwind wire everything together, and output.css is the final css that Tailwind compiles out. /* input.css */ @import "tailwindcss"; @import "./theme.css"; /* custom css you might want to add as overrides */ That's it! You can now fire up Tailwind & Hugo: # start tailwind npx @tailwindcss/cli \ -i ./assets/css/input.css \ -o ./assets/css/output.css \ --watch # start hugo server hugo server Bonus tip ### Starting Tailwind and Hugo separately in two different shells is a bore. I use a Makefile that conveniently allows me to spin up both processes in parallel. All I have to do when I'm ready to spin up my blog locally is: # runs the default comand which is "run" # it runs both taliwind css & the hugo server in parallel make Sometimes I want to just build the site, not run the

## 重新思考 Go：Channel 不是「消息队列」

DevFeed: [重新思考 Go：Channel 不是「消息队列」](<https://devfeed.tech/articles/go-channel-40987.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/golang-rethink-channel/>)

Author: Joway

Published: 2024-03-31T00:00:00Z

Content type: opinion

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [cpu](<https://devfeed.tech/tags/cpu.md>), [csp](<https://devfeed.tech/tags/csp.md>), [go](<https://devfeed.tech/tags/go.md>), [input](<https://devfeed.tech/tags/input.md>), [make](<https://devfeed.tech/tags/make.md>), [process](<https://devfeed.tech/tags/process.md>), [queue](<https://devfeed.tech/tags/queue.md>), [tech](<https://devfeed.tech/tags/tech.md>)

### AI overview

This article argues that Go channels are designed primarily for communication and blocking coordination between goroutines, not as robust in-process message queues. It examines blocking when channels are full, uncontrolled consumer throughput, and the resulting pressure on core processing paths. The author concludes that using channels as queues can be a questionable technology choice and suggests a more complete standard-library queue implementation.

### Source excerpt

重新思考 Go 系列：这个系列希望结合工作中在 Go 编程与性能优化中遇到过的问题，探讨 Go 在语言哲学、底层实现和现实需求三者之间关系与矛盾。 Go 语言是一门为实现 CSP 并发模型而设计的语言，这也是它区别于其他语言最大的特色。而为了实现这一点，Go 在语法上就内置了 chan 的数据结构来作为不同协程间通信的载体。

## Using Makefiles for software builds, Postfix map generation, and project workflows

DevFeed: [Using Makefiles for software builds, Postfix map generation, and project workflows](<https://devfeed.tech/articles/how-i-stopped-worrying-and-loved-makefiles-27697.md>)

Original publisher: [Read original article](<https://gagor.pro/2024/02/how-i-stopped-worrying-and-loved-makefiles/>)

Author: Tom

Published: 2024-02-16T00: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>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [Terraform](<https://devfeed.tech/topics/terraform.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [build](<https://devfeed.tech/tags/build.md>), [compilation](<https://devfeed.tech/tags/compilation.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [devops](<https://devfeed.tech/tags/devops.md>), [devops-best-practices](<https://devfeed.tech/tags/devops-best-practices.md>), [environment-management](<https://devfeed.tech/tags/environment-management.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [hugo-static-site-generation](<https://devfeed.tech/tags/hugo-static-site-generation.md>), [learn](<https://devfeed.tech/tags/learn.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [make](<https://devfeed.tech/tags/make.md>), [makefile-for-hugo](<https://devfeed.tech/tags/makefile-for-hugo.md>), [makefile-for-terraform](<https://devfeed.tech/tags/makefile-for-terraform.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [terraform](<https://devfeed.tech/tags/terraform.md>), [terraform-automation](<https://devfeed.tech/tags/terraform-automation.md>)

### AI overview

This tutorial explains how GNU Make manages dependencies, detects changed files, sets variables, and runs tasks in parallel. It also shows a Postfix use case for regenerating map files and alias databases from configuration files.

### Source excerpt

Learn how to use Makefiles to streamline your Terraform and Hugo projects, making environment management and static site generation more efficient.

## My pre-commit config for Hugo blog

DevFeed: [My pre-commit config for Hugo blog](<https://devfeed.tech/articles/my-pre-commit-config-for-hugo-blog-27692.md>)

Original publisher: [Read original article](<https://gagor.pro/2024/01/my-pre-commit-config-for-hugo-blog/>)

Author: Tom

Published: 2024-01-29T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [hooks](<https://devfeed.tech/topics/hooks.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [Git](<https://devfeed.tech/topics/git.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [make](<https://devfeed.tech/topics/make.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [config](<https://devfeed.tech/tags/config.md>), [devops](<https://devfeed.tech/tags/devops.md>), [git](<https://devfeed.tech/tags/git.md>), [git-pre-commit-configuration](<https://devfeed.tech/tags/git-pre-commit-configuration.md>), [hooks](<https://devfeed.tech/tags/hooks.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [hugo-blog-automation](<https://devfeed.tech/tags/hugo-blog-automation.md>), [hugo-development-tips](<https://devfeed.tech/tags/hugo-development-tips.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [make](<https://devfeed.tech/tags/make.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [pre-commit](<https://devfeed.tech/tags/pre-commit.md>), [pre-commit-hooks](<https://devfeed.tech/tags/pre-commit-hooks.md>), [pre-commit-setup](<https://devfeed.tech/tags/pre-commit-setup.md>), [static-site-optimization](<https://devfeed.tech/tags/static-site-optimization.md>)

### AI overview

A tutorial showing how to configure pre-commit hooks for a Hugo blog. The configuration automates linting, syntax checks, file optimization, and related cleanup tasks when files are committed.

### Source excerpt

Learn how to set up and use pre-commit hooks to automate tasks like linting, syntax checks, and optimizations for your Hugo blog.

## GNU/Hurd development updates from Q4 2023

DevFeed: [GNU/Hurd development updates from Q4 2023](<https://devfeed.tech/articles/2023-q4-32743.md>)

Original publisher: [Read original article](<http://www.gnu.org/software/hurd/news/2023-q4.html>)

Published: 2024-01-05T22:22:00Z

Content type: news

Language: en

Sources: [GNU Hurd](<https://devfeed.tech/sources/gnu-hurd.md>)

Topics: [gcc](<https://devfeed.tech/topics/gcc.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [make](<https://devfeed.tech/topics/make.md>)

Tags: [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [make](<https://devfeed.tech/tags/make.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [testing](<https://devfeed.tech/tags/testing.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

A quarterly update on GNU/Hurd development describes GCC and GNU Mach improvements, proposed continuous integration, expanded testing across environments, x86_64 build infrastructure, IPC changes, and efforts to improve browser support.

### Source excerpt

Hello! Welcome to a new qoth. This qoth covers new and interesting GNU/Hurd developments in Q4 of 2023! Details. Samuel Thibault fixed gcc's Hurd's default pie and added static pie support. He also added a whatis command to GNU Mach's kernel debugger, which can determine what an address points to (a stack? a port? some kalloc? ...). He also added hurd-amd64 support to GCC. Samuel requested that the Hurd team set up a continuous integration, so that when developers make code changes, they can be certain that they did not break anything. It turns out that the Hurd supports several different environments: 32 bit, 64 bit, 32-on-64 bit, ACPI, non-ACPI, SMP, non-SMP, Xen, etc. Apparently Flavio has a personal CI, but it is set up in a Debian independent way. If you are interested in helping the Hurd project set up a CI, then please get in touch! Luca Dariz worked on adding some simple GNU Mach user-space tests . With a working MiG, a GNU/Linux machine can run make check in the GNU Mach source code, which will launch qemu to ensure that 32 bit (PAE and non PAE), 32 on 64 bit, and full 64 bit GNU Mach works. We currently do this testing on GNU/Linux, because qemu does not run on the Hurd. Many people worked on the Hurd's new x86_64 bit support. A 64-bit debian buildd is set up, and we can bootstrap a chroot! The hurd-amd64 wanna-build infrastructure is also set up. We are having issues reliably building packages on a 64-bit Hurd, which lead Samuel to uncover and fix a proc leak. Flavio Cruz improved GNU Mach's IPC by reordering mach_msg_type_t fields to byte align msgt_name and msgt_size. He also created a patch series to avoid message resizing for x86_64. He also removed untyped mach RPC code. GNU Mach uses typed IPC. The Hurd could support both typed and untyped, but it appears that the Hurd only uses typed RPC. So it seems best to remove any untyped RPC code. Sergey Bugaev added GNU Mach entry re-coalescing support. Essentially, Mach was not always able to merge two vm e

## Keep your Chainguard Images up to date with digestabot

DevFeed: [Keep your Chainguard Images up to date with digestabot](<https://devfeed.tech/articles/keep-your-chainguard-images-up-to-date-with-digestabot-13134.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/keep-your-chainguard-images-up-to-date-with-digestabot>)

Published: 2023-12-18T00:00:00Z

Content type: article

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [chainguard images](<https://devfeed.tech/topics/chainguard-images.md>), [chainguard](<https://devfeed.tech/topics/chainguard.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>), [Pull Request](<https://devfeed.tech/topics/pull-request.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [chainguard](<https://devfeed.tech/tags/chainguard.md>), [chainguard-images](<https://devfeed.tech/tags/chainguard-images.md>), [container](<https://devfeed.tech/tags/container.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [digestabot](<https://devfeed.tech/tags/digestabot.md>), [dockerfiles](<https://devfeed.tech/tags/dockerfiles.md>), [github-action](<https://devfeed.tech/tags/github-action.md>), [helm](<https://devfeed.tech/tags/helm.md>), [make](<https://devfeed.tech/tags/make.md>), [merge](<https://devfeed.tech/tags/merge.md>), [oidc](<https://devfeed.tech/tags/oidc.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerability-automation](<https://devfeed.tech/tags/vulnerability-automation.md>), [vulnerability-management](<https://devfeed.tech/tags/vulnerability-management.md>)

### AI overview

Chainguard's digestabot is a free GitHub Action that helps keep Chainguard Images and other container assets current. It detects outdated image digests, opens pull requests, and supports testing and secure updates through continuous integration and optional ephemeral OIDC tokens.

### Source excerpt

Experience hassle-free updates with Chainguard's digestabot, ensuring your Images stay secure and up-to-date daily.

## Secured #6 - Writing Robust C - Best Practices for Finding and Preventing Vulnerabilities

DevFeed: [Secured #6 - Writing Robust C - Best Practices for Finding and Preventing Vulnerabilities](<https://devfeed.tech/articles/secured-6-writing-robust-c-best-practices-for-finding-and-preventing-vulnerabilities-17078.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2023/11/02/writing-robust-c>)

Author: Justin Traglia

Published: 2023-11-02T00:00:00Z

Content type: article

Language: en

Sources: [Ethereum Foundation Blog](<https://devfeed.tech/sources/ethereum-foundation-blog.md>)

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [C](<https://devfeed.tech/topics/c.md>), [Fuzzing/Fuzz testing](<https://devfeed.tech/topics/fuzzing.md>), [Library](<https://devfeed.tech/topics/library.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Security](<https://devfeed.tech/topics/security.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [make](<https://devfeed.tech/topics/make.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [fuzzing](<https://devfeed.tech/tags/fuzzing.md>), [library](<https://devfeed.tech/tags/library.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [make](<https://devfeed.tech/tags/make.md>), [research-development](<https://devfeed.tech/tags/research-development.md>), [security](<https://devfeed.tech/tags/security.md>), [testing](<https://devfeed.tech/tags/testing.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

The article explains how Ethereum developers secured the c-kzg-4844 C library used by clients to compute and verify KZG commitments for EIP-4844. It covers LibFuzzer-based testing, differential fuzzing against go-kzg-4844, and coverage analysis with LLVM tools.

### Source excerpt

For EIP-4844, Ethereum clients need the ability to compute and verify KZG commitments. Rather than each client rolling their own crypto, researchers and developers came together to write c-kzg-4844, a relatively small C library with bindings for higher-level languages. The idea was to create a robust and efficient cryptographic library...

## Making Twig Macros Work Like Functions

DevFeed: [Making Twig Macros Work Like Functions](<https://devfeed.tech/articles/making-twig-macros-work-like-functions-31280.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/making-twig-macros-work-like-functions>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2023-07-14T18:38:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Development](<https://devfeed.tech/topics/development.md>), [reusable code](<https://devfeed.tech/topics/reusable-code.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [functions](<https://devfeed.tech/tags/functions.md>), [insights](<https://devfeed.tech/tags/insights.md>), [just](<https://devfeed.tech/tags/just.md>), [languages](<https://devfeed.tech/tags/languages.md>), [learn](<https://devfeed.tech/tags/learn.md>), [like](<https://devfeed.tech/tags/like.md>), [macros](<https://devfeed.tech/tags/macros.md>), [make](<https://devfeed.tech/tags/make.md>), [manipulate](<https://devfeed.tech/tags/manipulate.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [return](<https://devfeed.tech/tags/return.md>), [returning](<https://devfeed.tech/tags/returning.md>), [reusable-code](<https://devfeed.tech/tags/reusable-code.md>), [twig](<https://devfeed.tech/tags/twig.md>), [value](<https://devfeed.tech/tags/value.md>), [values](<https://devfeed.tech/tags/values.md>)

### AI overview

A tutorial on making Twig macros return values that can be manipulated like function results. It demonstrates a sales-calculation macro, whitespace control, and returning a value for further computations such as sales tax.

### Source excerpt

Learn how to make Twig macros return values you can manipulate, just like functions in other programming languages

## Indexing by Custom Field in Craft CMS

DevFeed: [Indexing by Custom Field in Craft CMS](<https://devfeed.tech/articles/indexing-by-custom-field-in-craft-cms-31273.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/indexing-by-custom-field-in-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2023-06-28T17:13:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [Database](<https://devfeed.tech/topics/database.md>), [migration](<https://devfeed.tech/topics/migration.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [cms](<https://devfeed.tech/tags/cms.md>), [content](<https://devfeed.tech/tags/content.md>), [craft](<https://devfeed.tech/tags/craft.md>), [custom](<https://devfeed.tech/tags/custom.md>), [custom-fields](<https://devfeed.tech/tags/custom-fields.md>), [database](<https://devfeed.tech/tags/database.md>), [fields](<https://devfeed.tech/tags/fields.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [indexes](<https://devfeed.tech/tags/indexes.md>), [indexing](<https://devfeed.tech/tags/indexing.md>), [insights](<https://devfeed.tech/tags/insights.md>), [learn](<https://devfeed.tech/tags/learn.md>), [make](<https://devfeed.tech/tags/make.md>), [migration](<https://devfeed.tech/tags/migration.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

A tutorial on adding database indexes for custom fields in Craft CMS through a content migration. It explains that Craft CMS does not automatically index custom fields, so queries filtering on those fields may not scale well as datasets grow.

### Source excerpt

Learn how to make a content migration to add database indexes for custom fields in Craft CMS

## Automating customer usage alerts with Tinybird and Make

DevFeed: [Automating customer usage alerts with Tinybird and Make](<https://devfeed.tech/articles/automating-customer-usage-alerts-with-tinybird-and-make-18388.md>)

Original publisher: [Read original article](<https://www.tinybird.co/blog/automating-customer-usage-alerts-with-tinybird-and-make>)

Author: David Margulies

Published: 2023-05-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tinybird](<https://devfeed.tech/sources/tinybird.md>)

Topics: [make](<https://devfeed.tech/topics/make.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Low code](<https://devfeed.tech/topics/low-code.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [customer](<https://devfeed.tech/tags/customer.md>), [i-built-this](<https://devfeed.tech/tags/i-built-this.md>), [low-code](<https://devfeed.tech/tags/low-code.md>), [make](<https://devfeed.tech/tags/make.md>)

### AI overview

The article describes using low-code analytics and automation with Tinybird and Make to help a team become more proactive about customer usage alerts.

### Source excerpt

Here's how I used "low-code" analytics and automation to help my team be more proactive.

[Next page](<https://devfeed.tech/tags/make.md?cursor=WyIyMDIzLTA1LTAxVDAwOjAwOjAwKzAwOjAwIiwgImY1ZTViZDkwLTE0ZmItNGIwOC1hZjQ1LWNhOWFiNmEyNzNjZCJd>)