# Streams

In C standard I/O, a stream is represented by a FILE object that holds state for its connection to an associated file.

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

## Quiz: The subprocess Module: Wrapping Programs With Python

DevFeed: [Quiz: The subprocess Module: Wrapping Programs With Python](<https://devfeed.tech/articles/quiz-the-subprocess-module-wrapping-programs-with-python-4407.md>)

Original publisher: [Read original article](<https://realpython.com/quizzes/python-subprocess/>)

Author: Real Python

Published: 2026-09-11T12:00:00Z

Content type: article

Language: en

Sources: [Real Python](<https://devfeed.tech/sources/real-python.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [Exception](<https://devfeed.tech/topics/exception.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [exception](<https://devfeed.tech/tags/exception.md>), [processes](<https://devfeed.tech/tags/processes.md>), [python](<https://devfeed.tech/tags/python.md>), [streams](<https://devfeed.tech/tags/streams.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

An interactive 13-question quiz testing understanding of Python's subprocess module, including launching external programs, handling exit codes and failures, preventing hangs with timeouts, and working with standard streams.

### Source excerpt

Test your understanding of Python's subprocess module. Run shell commands, handle exit codes and timeouts, and work with standard streams.

## Build an AI Voice Assistant with Twilio Voice and Media Streams, OpenAI's GPT-Live API, and Node.js

DevFeed: [Build an AI Voice Assistant with Twilio Voice and Media Streams, OpenAI's GPT-Live API, and Node.js](<https://devfeed.tech/articles/build-an-ai-voice-assistant-with-twilio-voice-and-media-streams-openai-s-gpt-live-api-and-node-js-16093.md>)

Original publisher: [Read original article](<https://www.twilio.com/en-us/blog/developers/tutorials/integrations/voice-ai-assistant-openai-gpt-live-1-node>)

Author: Paul Kamp

Published: 2026-09-10T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Node.js](<https://devfeed.tech/topics/node-js.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [API](<https://devfeed.tech/topics/api.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Fastify](<https://devfeed.tech/topics/fastify.md>), [API keys](<https://devfeed.tech/topics/api-keys.md>), [.env](<https://devfeed.tech/topics/dotenv.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [api](<https://devfeed.tech/tags/api.md>), [audio](<https://devfeed.tech/tags/audio.md>), [developer-insights](<https://devfeed.tech/tags/developer-insights.md>), [env-file-security](<https://devfeed.tech/tags/env-file-security.md>), [js](<https://devfeed.tech/tags/js.md>), [ngrok](<https://devfeed.tech/tags/ngrok.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [openai](<https://devfeed.tech/tags/openai.md>), [sign-up](<https://devfeed.tech/tags/sign-up.md>), [streams](<https://devfeed.tech/tags/streams.md>)

### AI overview

This tutorial explains how to build an AI voice assistant that answers phone calls using Twilio Programmable Voice and Media Streams, OpenAI's GPT-Live-1 API, and a Node.js server. It also covers web search and custom function tool calls.

### Source excerpt

Build an AI voice assistant that answers a phone call with Twilio Programmable Voice and Media Streams, powered by OpenAI's GPT-Live-1.

## Mongorewind: Rewind Your MongoDB Test Data Without Restoring a Backup

DevFeed: [Mongorewind: Rewind Your MongoDB Test Data Without Restoring a Backup](<https://devfeed.tech/articles/mongorewind-rewind-your-mongodb-test-data-without-restoring-a-backup-14103.md>)

Original publisher: [Read original article](<https://www.percona.com/blog/mongorewind-rewind-your-mongodb-test-data-without-restoring-a-backup/>)

Author: Zelmar Michelini

Published: 2026-09-02T11:38:40Z

Content type: tutorial

Language: en

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

Topics: [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [ci](<https://devfeed.tech/topics/ci.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Streams](<https://devfeed.tech/topics/streams.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [code](<https://devfeed.tech/tags/code.md>), [commands](<https://devfeed.tech/tags/commands.md>), [database](<https://devfeed.tech/tags/database.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [state](<https://devfeed.tech/tags/state.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [tests](<https://devfeed.tech/tags/tests.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This article introduces mongorewind, a terminal UI tool that records MongoDB data changes through a cluster-wide change stream and reverses them in reverse chronological order. It is designed to restore test data to its pre-test state without restoring a backup and supports interactive and CI use.

### Source excerpt

Mongorewind: Rewind Your MongoDB Test Data Without Restoring a Backup One day, my friend Martín told me about a problem he and his team were dealing with. Every time they needed to run a pre-production test, they had to restore a copy of the production database into their test cluster. That process alone takes about ... Continued The post Mongorewind: Rewind Your MongoDB Test Data Without Restoring a Backup appeared first on Percona.

## How Fly.io logging works and how to collect application logs

DevFeed: [How Fly.io logging works and how to collect application logs](<https://devfeed.tech/articles/a-comprehensive-guide-to-fly-io-logging-20051.md>)

Original publisher: [Read original article](<https://www.honeybadger.io/blog/fly-io-logging/>)

Author: Muhammed Ali

Published: 2026-08-13T07:00:00Z

Content type: tutorial

Language: en

Sources: [Honeybadger](<https://devfeed.tech/sources/honeybadger.md>)

Topics: [fly.io](<https://devfeed.tech/topics/fly-io.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [App](<https://devfeed.tech/topics/app.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [devops-articles](<https://devfeed.tech/tags/devops-articles.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [fly-io](<https://devfeed.tech/tags/fly-io.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [logging](<https://devfeed.tech/tags/logging.md>), [streams](<https://devfeed.tech/tags/streams.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

This tutorial explains how Fly.io collects and routes application logs, including output from standard output and standard error. It also demonstrates a FastAPI application that generates different log messages and describes handling logs with Honeybadger.

### Source excerpt

Logging is an import part of debugging an app. Without a good method of catching errors or logs in general, you would end up with uncaught issues and could also lose valuable customers in the process. Read this article to learn how to effectively handle logs on Fly.io.

## How to build a contact form with SendGrid email delivery on Webflow Cloud

DevFeed: [How to build a contact form with SendGrid email delivery on Webflow Cloud](<https://devfeed.tech/articles/how-to-build-a-contact-form-with-sendgrid-email-delivery-on-webflow-cloud-9189.md>)

Original publisher: [Read original article](<https://webflowmarketingmain.com/blog/contact-form-sendgrid-webflow-cloud>)

Author: Ismail Ajagbe

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

Content type: tutorial

Language: en

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

Topics: [webflow](<https://devfeed.tech/topics/webflow.md>), [Next.js](<https://devfeed.tech/topics/next-js.md>), [React](<https://devfeed.tech/topics/react.md>), [App](<https://devfeed.tech/topics/app.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [Server](<https://devfeed.tech/topics/server.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [development](<https://devfeed.tech/tags/development.md>), [guide](<https://devfeed.tech/tags/guide.md>), [guides](<https://devfeed.tech/tags/guides.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [html](<https://devfeed.tech/tags/html.md>), [router](<https://devfeed.tech/tags/router.md>), [routing](<https://devfeed.tech/tags/routing.md>), [server](<https://devfeed.tech/tags/server.md>), [validation](<https://devfeed.tech/tags/validation.md>), [webflow](<https://devfeed.tech/tags/webflow.md>)

### AI overview

This guide explains how to build a Webflow Cloud contact form using a React component, a Next.js App Router route handler, server-side validation, honeypot bot filtering, CORS configuration, and SendGrid for confirmation and team notification emails.

### Source excerpt

Learn how to build a contact form on Webflow Cloud that sends confirmation and notification emails via SendGrid.

## ScyllaDB 2026.2: DynamoDB Streams and Vector Search, Trie Indexes, and Strongly Consistent Tables

DevFeed: [ScyllaDB 2026.2: DynamoDB Streams and Vector Search, Trie Indexes, and Strongly Consistent Tables](<https://devfeed.tech/articles/scylladb-2026-2-dynamodb-streams-and-vector-search-trie-indexes-and-strongly-consistent-tables-4867.md>)

Original publisher: [Read original article](<https://www.scylladb.com/2026/06/29/scylladb-2026-2/>)

Author: Tzach Livyatan

Published: 2026-06-29T19:18:20Z

Content type: release

Language: en

Sources: [ScyllaDB](<https://devfeed.tech/sources/scylladb.md>)

Topics: [2026.2](<https://devfeed.tech/topics/2026-2.md>), [Alternator (for DynamoDB)](<https://devfeed.tech/topics/alternator-for-dynamodb.md>), [API](<https://devfeed.tech/topics/api.md>), [Amazon DynamoDB](<https://devfeed.tech/topics/amazon-dynamodb.md>), [ScyllaDB Cloud](<https://devfeed.tech/topics/scylladb-cloud.md>), [AI search](<https://devfeed.tech/topics/ai-search.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [event driven](<https://devfeed.tech/topics/event-driven.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [2026-2](<https://devfeed.tech/tags/2026-2.md>), [amazon-dynamodb](<https://devfeed.tech/tags/amazon-dynamodb.md>), [api](<https://devfeed.tech/tags/api.md>), [event](<https://devfeed.tech/tags/event.md>), [event-driven](<https://devfeed.tech/tags/event-driven.md>), [features](<https://devfeed.tech/tags/features.md>), [latency](<https://devfeed.tech/tags/latency.md>), [performance](<https://devfeed.tech/tags/performance.md>), [product](<https://devfeed.tech/tags/product.md>), [replication](<https://devfeed.tech/tags/replication.md>), [scylladb](<https://devfeed.tech/tags/scylladb.md>), [scylladb-cloud](<https://devfeed.tech/tags/scylladb-cloud.md>), [search](<https://devfeed.tech/tags/search.md>), [streams](<https://devfeed.tech/tags/streams.md>), [updates](<https://devfeed.tech/tags/updates.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

ScyllaDB 2026.2 adds generally available DynamoDB Streams compatibility and a Vector Search extension to Alternator, alongside ScyllaDB Cloud integrations, Trie index performance improvements, stability updates, and experimental strongly consistent tables and online migration.

### Source excerpt

ScyllaDB 2026.2 brings a combination of GA new features, exciting experimental features, and multiple stability and external use case improvements.

## ESP-IDF v6.0: Default libc Switches from Newlib to PicolibC

DevFeed: [ESP-IDF v6.0: Default libc Switches from Newlib to PicolibC](<https://devfeed.tech/articles/esp-idf-v6-0-default-libc-switches-from-newlib-to-picolibc-13762.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2026/04/esp-idf-6-default-libc-picolibc/>)

Author: John Lee

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

Content type: article

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [C](<https://devfeed.tech/topics/c.md>), [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Library](<https://devfeed.tech/topics/library.md>), [POSIX](<https://devfeed.tech/topics/posix.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [architectures](<https://devfeed.tech/tags/architectures.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [compatibility](<https://devfeed.tech/tags/compatibility.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [libc](<https://devfeed.tech/tags/libc.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [memory](<https://devfeed.tech/tags/memory.md>), [migration](<https://devfeed.tech/tags/migration.md>), [newlib](<https://devfeed.tech/tags/newlib.md>), [performance](<https://devfeed.tech/tags/performance.md>), [picolibc](<https://devfeed.tech/tags/picolibc.md>), [posix](<https://devfeed.tech/tags/posix.md>), [streams](<https://devfeed.tech/tags/streams.md>), [systems](<https://devfeed.tech/tags/systems.md>), [toolchains](<https://devfeed.tech/tags/toolchains.md>)

### AI overview

ESP-IDF v6.0 changes its default C library from Newlib to PicolibC. The article compares the libraries' memory usage, standard I/O behavior, compatibility, and migration considerations, including measurements on ESP32-C3.

### Source excerpt

ESP-IDF v6.0 switches the default C library from Newlib to PicolibC. This article compares both libraries in terms of memory usage, stdio behavior, compatibility, and migration tradeoffs, and explains when keeping Newlib still makes sense.

## Introducing the SPIFFS component

DevFeed: [Introducing the SPIFFS component](<https://devfeed.tech/articles/introducing-the-spiffs-component-13757.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2026/03/introducing-spiffs-component/>)

Author: John Lee

Published: 2026-03-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Filesystems](<https://devfeed.tech/topics/filesystems.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [C](<https://devfeed.tech/topics/c.md>), [POSIX](<https://devfeed.tech/topics/posix.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [beginner](<https://devfeed.tech/tags/beginner.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [filesystem](<https://devfeed.tech/tags/filesystem.md>), [guide](<https://devfeed.tech/tags/guide.md>), [posix](<https://devfeed.tech/tags/posix.md>), [spiffs](<https://devfeed.tech/tags/spiffs.md>), [storage](<https://devfeed.tech/tags/storage.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This practical guide introduces the SPIFFS component bundled with ESP-IDF for storing files on SPI NOR flash. It explains how SPIFFS works with the VFS layer and standard C and POSIX file APIs, describes features such as wear levelling, consistency checks, and format-on-mount, and outlines a basic flow for mounting, writing, renaming, and reading files. It also points to SPIFFSgen and an official working example.

### Source excerpt

Learn what the ESP-IDF SPIFFS component is, how it works with the VFS layer and standard C file APIs, and how to use the SPIFFSgen tool to embed files. This article is a practical guide with references to the official example.

## Accelerating Mathematical and Scientific Discovery with Gemini Deep Think

DevFeed: [Accelerating Mathematical and Scientific Discovery with Gemini Deep Think](<https://devfeed.tech/articles/accelerating-mathematical-and-scientific-discovery-with-gemini-deep-think-6133.md>)

Original publisher: [Read original article](<https://deepmind.google/blog/accelerating-mathematical-and-scientific-discovery-with-gemini-deep-think/>)

Author: Thang Luong; Vahab Mirrokni

Published: 2026-02-09T16:12:06Z

Content type: article

Language: en

Sources: [Google DeepMind News](<https://devfeed.tech/sources/google-deepmind-news.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Machine Learning & Artificial Intelligence](<https://devfeed.tech/topics/machine-learning-artificial-intelligence.md>), [Combinatorial optimization](<https://devfeed.tech/topics/combinatorial-optimization.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Computer science](<https://devfeed.tech/topics/computer-science.md>), [Training AI Models](<https://devfeed.tech/topics/training-ai-models.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [data](<https://devfeed.tech/topics/data.md>), [Network](<https://devfeed.tech/topics/network.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [algorithms](<https://devfeed.tech/tags/algorithms.md>), [combinatorial-optimization](<https://devfeed.tech/tags/combinatorial-optimization.md>), [data](<https://devfeed.tech/tags/data.md>), [gemini](<https://devfeed.tech/tags/gemini.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [physics](<https://devfeed.tech/tags/physics.md>), [research](<https://devfeed.tech/tags/research.md>), [science](<https://devfeed.tech/tags/science.md>), [streams](<https://devfeed.tech/tags/streams.md>), [training](<https://devfeed.tech/tags/training.md>)

### AI overview

An advanced version of Gemini Deep Think helped researchers resolve long-standing problems across algorithms, machine learning optimization, combinatorial optimization, economics, and physics. The article highlights new counterexamples, mathematical explanations for AI training techniques, an extension of an auction theorem to real-valued bids, and a closed-form solution for integrals involving cosmic-string singularities.

### Source excerpt

Research papers point to the growing impact of Deep Think across fields

## PostgreSQL + ClickHouse as the Open Source unified data stack

DevFeed: [PostgreSQL + ClickHouse as the Open Source unified data stack](<https://devfeed.tech/articles/postgresql-clickhouse-as-the-open-source-unified-data-stack-5511.md>)

Original publisher: [Read original article](<https://clickhouse.com/blog/postgres-clickhouse-oss>)

Author: Lionel Palacin

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

Content type: article

Language: en

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

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [data](<https://devfeed.tech/topics/data.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [data](<https://devfeed.tech/tags/data.md>), [github](<https://devfeed.tech/tags/github.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [sql](<https://devfeed.tech/tags/sql.md>), [streams](<https://devfeed.tech/tags/streams.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

This article presents an open source unified data stack that combines PostgreSQL for transactional workloads with ClickHouse for analytics at scale. It explains how components such as PeerDB and pg_clickhouse enable data replication and direct analytical queries without rewriting applications or SQL.

### Source excerpt

A ready-to-use open source data stack that combines PostgreSQL and ClickHouse to handle transactional and analytical workloads.

## Codex is Live in Zed

DevFeed: [Codex is Live in Zed](<https://devfeed.tech/articles/codex-is-live-in-zed-13440.md>)

Original publisher: [Read original article](<https://zed.dev/blog/codex-is-live-in-zed>)

Author: Richard Feldman

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

Content type: release

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [codex](<https://devfeed.tech/topics/codex.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>), [client](<https://devfeed.tech/topics/client.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Streams](<https://devfeed.tech/topics/streams.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [cli](<https://devfeed.tech/tags/cli.md>), [codex](<https://devfeed.tech/tags/codex.md>), [openai](<https://devfeed.tech/tags/openai.md>), [process](<https://devfeed.tech/tags/process.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [streams](<https://devfeed.tech/tags/streams.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

Zed announces that OpenAI's Codex AI agent is available through the Agent Client Protocol (ACP). The integration is intended to improve the in-IDE experience, while billing and legal arrangements remain between users and OpenAI. Zed also open-sourced its codex-acp adapter.

### Source excerpt

OpenAI's Codex AI agent is now available in Zed via the Agent Client Protocol (ACP).

## Redirecting Standard Output in C With the dup2() Function

DevFeed: [Redirecting Standard Output in C With the dup2() Function](<https://devfeed.tech/articles/redirecting-standard-output-in-c-with-the-dup2-function-4519.md>)

Original publisher: [Read original article](<https://feeds.feedblitz.com/~/920203664/0/baeldung/linux~Redirecting-Standard-Output-in-C-With-the-dup-Function>)

Author: Marcin Buczkowski

Published: 2025-06-14T07:02:25Z

Content type: tutorial

Language: en

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

Topics: [C](<https://devfeed.tech/topics/c.md>), [Redirection](<https://devfeed.tech/topics/redirection.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [linux](<https://devfeed.tech/tags/linux.md>), [processes](<https://devfeed.tech/tags/processes.md>), [processes-gcc-redirection-streams](<https://devfeed.tech/tags/processes-gcc-redirection-streams.md>), [redirection](<https://devfeed.tech/tags/redirection.md>), [streams](<https://devfeed.tech/tags/streams.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains how standard input and output redirection works in Linux and how to implement it in C. It introduces file descriptors and standard streams, then shows how dup2() duplicates a descriptor so program output can be redirected to a file without changing the code that writes to STDOUT.

### Source excerpt

Learn how redirection works and the way the dup2() function achieves it in C. The post Redirecting Standard Output in C With the dup2() Function first appeared on Baeldung on Linux. Related Stories How to Find the SCHED_RR Scheduling Policy's Time Slice How Can I Swap Colors With GIMP? How to Identify the Package Manager of a Linux System

## Stream Data from Linode Object Storage using the AWS S3 SDK

DevFeed: [Stream Data from Linode Object Storage using the AWS S3 SDK](<https://devfeed.tech/articles/stream-data-from-linode-object-storage-using-the-aws-s3-sdk-15389.md>)

Original publisher: [Read original article](<https://www.fermyon.com/blog/stream-data-from-linode-object-storage>)

Author: Thorsten Hans

Published: 2025-02-27T12:00:00Z

Content type: tutorial

Language: en

Sources: [Fermyon - Experience the next wave of cloud computing.](<https://devfeed.tech/sources/fermyon-experience-the-next-wave-of-cloud-computing.md>)

Topics: [Linode](<https://devfeed.tech/topics/linode.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [deployment](<https://devfeed.tech/tags/deployment.md>), [files](<https://devfeed.tech/tags/files.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [linode](<https://devfeed.tech/tags/linode.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [streams](<https://devfeed.tech/tags/streams.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

A tutorial on streaming and transforming files from Linode Object Storage in a Spin application using the AWS S3 SDK. It covers setup, implementation, and deployment of a TypeScript application.

### Source excerpt

Learn how to stream data from Linode Object Storage using the AWS S3 SDK in a Spin application. This tutorial walks through setup, implementation, and deployment of a Spin app written in TypeScript that streams and transforms files.

## Why pipes sometimes get "stuck": buffering

DevFeed: [Why pipes sometimes get "stuck": buffering](<https://devfeed.tech/articles/why-pipes-sometimes-get-stuck-buffering-21115.md>)

Original publisher: [Read original article](<https://jvns.ca/blog/2024/11/29/why-pipes-get-stuck-buffering/>)

Author: Julia Evans

Published: 2024-11-29T08:23:31Z

Content type: article

Language: en

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

Topics: [Terminal](<https://devfeed.tech/topics/terminal.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Streams](<https://devfeed.tech/topics/streams.md>)

Tags: [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [glibc](<https://devfeed.tech/tags/glibc.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [libc](<https://devfeed.tech/tags/libc.md>), [performance](<https://devfeed.tech/tags/performance.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

This article explains why output from commands in Unix pipelines can appear to get stuck. Programs such as grep often use block buffering when writing to a pipe, so matches may remain in memory until the buffer fills or the program exits. When output goes directly to a terminal, line buffering usually makes each line appear immediately. The behavior depends on the program's implementation and, in the case discussed, libc and glibc.

### Source excerpt

Here's a niche terminal problem that has bothered me for years but that I never really understood until a few weeks ago. Let's say you're running this command to watch for some specific output in a log file: tail -f /some/log/file | grep thing1 | grep thing2 If log lines are being added to the file relatively slowly, the result I'd see is... nothing! It doesn't matter if there were matches in the log file or not, there just wouldn't be any output. I internalized this as "uh, I guess pipes just get stuck sometimes and don't show me the output, that's weird", and I'd handle it by just running grep thing1 /some/log/file | grep thing2 instead, which would work. So as I've been doing a terminal deep dive over the last few months I was really excited to finally learn exactly why this happens. why this happens: buffering The reason why "pipes get stuck" sometimes is that it's VERY common for programs to buffer their output before writing it to a pipe or file. So the pipe is working fine, the problem is that the program never even wrote the data to the pipe! This is for performance reasons: writing all output immediately as soon as you can uses more system calls, so it's more efficient to save up data until you have 8KB or so of data to write (or until the program exits) and THEN write it to the pipe. In this example: tail -f /some/log/file | grep thing1 | grep thing2 the problem is that grep thing1 is saving up all of its matches until it has 8KB of data to write, which might literally never happen. programs don't buffer when writing to a terminal Part of why I found this so disorienting is that tail -f file | grep thing will work totally fine, but then when you add the second grep, it stops working!! The reason for this is that the way grep handles buffering depends on whether it's writing to a terminal or not. Here's how grep (and many other programs) decides to buffer its output: Check if stdout is a terminal or not using the isatty function If it's a terminal, use line b

## Essential Node.js backend examples for developers in 2024

DevFeed: [Essential Node.js backend examples for developers in 2024](<https://devfeed.tech/articles/essential-node-js-backend-examples-for-developers-in-2024-7908.md>)

Original publisher: [Read original article](<https://snyk.io/blog/essential-node-js-backend-examples-2024/>)

Author: Liran Tal

Published: 2024-06-12T05:00:00Z

Content type: tutorial

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [backend-development](<https://devfeed.tech/topics/backend-development.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Code](<https://devfeed.tech/topics/code.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [acquisition](<https://devfeed.tech/tags/acquisition.md>), [api](<https://devfeed.tech/tags/api.md>), [application-security](<https://devfeed.tech/tags/application-security.md>), [async](<https://devfeed.tech/tags/async.md>), [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [backend](<https://devfeed.tech/tags/backend.md>), [backends](<https://devfeed.tech/tags/backends.md>), [blog](<https://devfeed.tech/tags/blog.md>), [building](<https://devfeed.tech/tags/building.md>), [code](<https://devfeed.tech/tags/code.md>), [code-security](<https://devfeed.tech/tags/code-security.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developers](<https://devfeed.tech/tags/developers.md>), [devrel](<https://devfeed.tech/tags/devrel.md>), [examples](<https://devfeed.tech/tags/examples.md>), [github](<https://devfeed.tech/tags/github.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [js](<https://devfeed.tech/tags/js.md>), [node](<https://devfeed.tech/tags/node.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [openai](<https://devfeed.tech/tags/openai.md>), [snyk-code](<https://devfeed.tech/tags/snyk-code.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [streams](<https://devfeed.tech/tags/streams.md>)

### AI overview

A practical introduction to Node.js backend examples for 2024, covering streams, async iterables, cryptography, buffers, Symbols, and template literals for HTML and SQL generation.

### Source excerpt

Boost your Node.js skills with these backend code snippets for 2024. Copy and paste them into your own projects to save time when building backends.

## Writing a Debugger From Scratch - DbgRs Part 8 - Source and Symbols

DevFeed: [Writing a Debugger From Scratch - DbgRs Part 8 - Source and Symbols](<https://devfeed.tech/articles/writing-a-debugger-from-scratch-dbgrs-part-8-source-and-symbols-39740.md>)

Original publisher: [Read original article](<https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-8/>)

Author: Tim Misiak

Published: 2024-05-29T15:50:13Z

Content type: tutorial

Language: en

Sources: [TimDbg](<https://devfeed.tech/sources/timdbg.md>)

Topics: [debug](<https://devfeed.tech/topics/debug.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [debugger](<https://devfeed.tech/tags/debugger.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [streams](<https://devfeed.tech/tags/streams.md>), [symbols](<https://devfeed.tech/tags/symbols.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This installment of the DbgRs debugger series introduces source-level debugging through symbols, focusing on Windows PDB files. It explains how PDBs connect compiled code with source code and can contain function signatures, type definitions, local variables, and stream-based file data.

### Source excerpt

(New to this series? Consider starting from part 1) At the end of the last post, DbgRs gained the ability to disassemble the code that it was debugging. While disassembly is critical for many debugging tasks, using source code to step through the code line by line is usually more convenient when it's available. In this post we'll start looking at how to use symbols (PDB files on Windows) so that we can display the source for the code that's being debugged.

## A Pattern for Composing Flow Operations

DevFeed: [A Pattern for Composing Flow Operations](<https://devfeed.tech/articles/a-pattern-for-composing-flow-operations-39359.md>)

Original publisher: [Read original article](<https://kt.academy/article/pattern_for_composing_flows>)

Published: 2024-04-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [async](<https://devfeed.tech/topics/async.md>), [backpressure](<https://devfeed.tech/topics/backpressure.md>), [flux](<https://devfeed.tech/topics/flux.md>), [RxJava](<https://devfeed.tech/topics/rxjava.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [backpressure](<https://devfeed.tech/tags/backpressure.md>), [flux](<https://devfeed.tech/tags/flux.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>), [streams](<https://devfeed.tech/tags/streams.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains a pattern for composing Kotlin Flow operations by collecting one cold flow within another flow definition. It discusses sequential processing, asynchronous operations, and the limitations of using internal flow types when composing streams.

### Source excerpt

Extending and operating on top of your existing flows

## A Zipping Gatherer

DevFeed: [A Zipping Gatherer](<https://devfeed.tech/articles/a-zipping-gatherer-18894.md>)

Original publisher: [Read original article](<https://www.morling.dev/blog/zipping-gatherer/>)

Published: 2024-03-18T17:12:00Z

Content type: tutorial

Language: en

Sources: [Gunnar Morling](<https://devfeed.tech/sources/gunnar-morling.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [java](<https://devfeed.tech/tags/java.md>), [preview](<https://devfeed.tech/tags/preview.md>), [streams](<https://devfeed.tech/tags/streams.md>)

### AI overview

This tutorial explains how to implement a zip-like operation for Java Streams using the preview Stream Gatherer API introduced in Java 22. The implementation combines corresponding elements from two streams and stops when either stream is exhausted.

### Source excerpt

The other day, I was looking for means of zipping two Java streams: connecting them element by element--essentially a join based on stream offset position--and emitting an output stream with the results. Unfortunately, there is no zip() method offered by the Java Streams API itself. While it was considered for inclusion in early preview versions, the method was removed before the API went GA with Java 8 and you have to resort to 3rd party libraries such as Google Guava if you need this functionality.

## Filtering Process Output With tee

DevFeed: [Filtering Process Output With tee](<https://devfeed.tech/articles/filtering-process-output-with-tee-18818.md>)

Original publisher: [Read original article](<https://www.morling.dev/blog/filtering-process-output-with-tee/>)

Published: 2024-02-10T10:11:00Z

Content type: tutorial

Language: en

Sources: [Gunnar Morling](<https://devfeed.tech/sources/gunnar-morling.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [Streams](<https://devfeed.tech/topics/streams.md>)

Tags: [capture](<https://devfeed.tech/tags/capture.md>), [disk-space](<https://devfeed.tech/tags/disk-space.md>), [files](<https://devfeed.tech/tags/files.md>), [filter](<https://devfeed.tech/tags/filter.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [logging](<https://devfeed.tech/tags/logging.md>), [redirection](<https://devfeed.tech/tags/redirection.md>)

### AI overview

This tutorial explains how to use tee and process substitution to expose complete Java process output to Kubernetes logging while writing only filtered lines to a log file. It also discusses preventing unbounded log growth and illustrates how process substitution uses file descriptors and pipes.

### Source excerpt

Recently I ran into a situation where it was necessary to capture the output of a Java process on the stdout stream, and at the same time a filtered subset of the output in a log file. The former, so that the output gets picked up by the Kubernetes logging infrastructure. The letter for further processing on our end: we were looking to detect when the JVM stops due to an OutOfMemoryError, passing on that information to some error classifier.

## Node.js 20.8.0 (Current)

DevFeed: [Node.js 20.8.0 (Current)](<https://devfeed.tech/articles/node-js-20-8-0-current-2740.md>)

Original publisher: [Read original article](<https://nodejs.org/en/blog/release/v20.8.0>)

Published: 2023-09-29T03:26:00Z

Content type: release

Language: en

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

Topics: [Node.js](<https://devfeed.tech/topics/node-js.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [debug](<https://devfeed.tech/topics/debug.md>)

Tags: [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [memory-leaks](<https://devfeed.tech/tags/memory-leaks.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>), [streams](<https://devfeed.tech/tags/streams.md>)

### AI overview

Node.js 20.8.0 is a Current release focused on performance and stability. It improves writable, readable, and web stream performance, reduces stream memory overhead, addresses memory leaks and use-after-free issues, and includes updates to the test runner, snapshots, debugging, and V8 integration.

### Source excerpt

Node.js® is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.

## Real-time data platforms explained: components & benefits

DevFeed: [Real-time data platforms explained: components & benefits](<https://devfeed.tech/articles/real-time-data-platforms-explained-components-benefits-18625.md>)

Original publisher: [Read original article](<https://www.tinybird.co/blog/real-time-data-platforms>)

Author: Cameron Archer

Published: 2023-07-27T00:00:00Z

Content type: article

Language: en

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

Topics: [data-platforms](<https://devfeed.tech/topics/data-platforms.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [data](<https://devfeed.tech/topics/data.md>), [Streams](<https://devfeed.tech/topics/streams.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [components](<https://devfeed.tech/tags/components.md>), [data](<https://devfeed.tech/tags/data.md>), [data-platforms](<https://devfeed.tech/tags/data-platforms.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [scalable-analytics-architecture](<https://devfeed.tech/tags/scalable-analytics-architecture.md>), [streams](<https://devfeed.tech/tags/streams.md>)

### AI overview

An overview of real-time data platforms, focusing on how they process incoming streams and how their architecture can help readers choose a platform for their needs.

### Source excerpt

Real-time data platforms process streams as they arrive. Understanding the architecture helps you pick the right one for your needs.

## CDC patterns in Apache Iceberg

DevFeed: [CDC patterns in Apache Iceberg](<https://devfeed.tech/articles/cdc-patterns-in-apache-iceberg-8721.md>)

Original publisher: [Read original article](<https://trino.io/blog/2023/06/30/trino-fest-2023-apacheiceberg.html>)

Author: Ryan Blue, Ryan Duan

Published: 2023-06-30T00:00:00Z

Content type: article

Language: en

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

Topics: [Apache Iceberg](<https://devfeed.tech/topics/apache-iceberg.md>), [data](<https://devfeed.tech/topics/data.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [changelog](<https://devfeed.tech/topics/changelog.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [apache-iceberg](<https://devfeed.tech/tags/apache-iceberg.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>), [latency](<https://devfeed.tech/tags/latency.md>), [storage](<https://devfeed.tech/tags/storage.md>), [streams](<https://devfeed.tech/tags/streams.md>)

### AI overview

This article recaps Ryan Blue's Trino Fest 2023 presentation on change data capture (CDC) patterns in Apache Iceberg. It explains how CDC keeps copies of relational or transactional tables synchronized and discusses trade-offs involving latency, write amplification, storage, merge strategies, commit frequency, and consistency.

### Source excerpt

Have you ever wanted to keep your data in a table and have an efficient way to interact with them? Iceberg, an open standard table format, is exactly what you need. One of the great and unique features of the Iceberg table format is its support for change data capture (CDC). Co-creator of Apache Iceberg, Ryan Blue, presented at Trino Fest 2023 this past week detailing the CDC support and the trade-offs between different patterns that can be used for writing CDC streams into Iceberg tables.

## Interfaces 101 : Interface Type Assertion Ep. 6

DevFeed: [Interfaces 101 : Interface Type Assertion Ep. 6](<https://devfeed.tech/articles/interfaces-101-interface-type-assertion-ep-6-22218.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2023/03/interfaces-101-interface-type-assertions.html>)

Published: 2023-03-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [interfaces](<https://devfeed.tech/topics/interfaces.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [IO](<https://devfeed.tech/topics/io.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [copy](<https://devfeed.tech/tags/copy.md>), [flush](<https://devfeed.tech/tags/flush.md>), [go](<https://devfeed.tech/tags/go.md>), [golang](<https://devfeed.tech/tags/golang.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [io](<https://devfeed.tech/tags/io.md>), [io-interface](<https://devfeed.tech/tags/io-interface.md>), [io-reader](<https://devfeed.tech/tags/io-reader.md>), [io-writer](<https://devfeed.tech/tags/io-writer.md>), [library](<https://devfeed.tech/tags/library.md>), [logger](<https://devfeed.tech/tags/logger.md>), [receiver](<https://devfeed.tech/tags/receiver.md>), [type-alias](<https://devfeed.tech/tags/type-alias.md>), [versatile](<https://devfeed.tech/tags/versatile.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This video tutorial explains how to use type assertions and Go interfaces. It demonstrates io.Reader and io.Writer, io.Copy, and interface design while building a logging library that moves data from memory to stable storage.

### Source excerpt

Introduction In episode 5, Miki wrote a function that counted the number of lines in a file with interfaces. The first thing his function did was to open a file with Go's os.Open function. Miki chose this method because the variable returned by said function implements the io.Reader interface which is crucial for the next step. The remaining parts of this function consisted of a primitive type alias that satisfied the io.Writer interface and tracked the number of lines by increasing the Write method's receiver value. To put the process in motion, Miki will invoke function io.Copy to trigger his type alias' Write method and in essence, count the number of lines in the file.

## What Can You Monitor with epoll on Linux?

DevFeed: [What Can You Monitor with epoll on Linux?](<https://devfeed.tech/articles/linux-what-can-you-epoll-35432.md>)

Original publisher: [Read original article](<https://darkcoding.net/software/linux-what-can-you-epoll/>)

Author: Graham King

Published: 2022-10-20T07:00:00Z

Content type: tutorial

Language: en

Sources: [Graham King](<https://devfeed.tech/sources/graham-king.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [Network](<https://devfeed.tech/topics/network.md>), [async](<https://devfeed.tech/topics/async.md>), [Filesystems](<https://devfeed.tech/topics/filesystems.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Streams](<https://devfeed.tech/topics/streams.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [epoll](<https://devfeed.tech/tags/epoll.md>), [file](<https://devfeed.tech/tags/file.md>), [go](<https://devfeed.tech/tags/go.md>), [linux](<https://devfeed.tech/tags/linux.md>), [logging](<https://devfeed.tech/tags/logging.md>), [network](<https://devfeed.tech/tags/network.md>), [notifications](<https://devfeed.tech/tags/notifications.md>), [process](<https://devfeed.tech/tags/process.md>), [rust](<https://devfeed.tech/tags/rust.md>), [software](<https://devfeed.tech/tags/software.md>), [tcp](<https://devfeed.tech/tags/tcp.md>), [tokio](<https://devfeed.tech/tags/tokio.md>), [udp](<https://devfeed.tech/tags/udp.md>), [unix](<https://devfeed.tech/tags/unix.md>)

### AI overview

This article surveys Linux file descriptors that can be monitored with epoll, including network sockets, timers, signals, filesystem events, child processes, terminals, page faults, and seccomp notifications. It explains how these sources can be integrated into an epoll event loop or an asynchronous engine such as Go or Rust's tokio.

### Source excerpt

On Linux what can you turn into a file descriptor and then monitor with epoll?

[Next page](<https://devfeed.tech/topics/streams.md?cursor=WyIyMDIyLTEwLTIwVDA3OjAwOjAwKzAwOjAwIiwgIjM3ZjEwNGJmLWQ3NzQtNDljZC1iZmVkLWFiZjE0YjUzNzkwMSJd>)