# Encoding

Published articles for Encoding.

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

## The Evolution of HTTP, Clearly Explained

DevFeed: [The Evolution of HTTP, Clearly Explained](<https://devfeed.tech/articles/the-evolution-of-http-clearly-explained-18040.md>)

Original publisher: [Read original article](<https://blog.levelupcoding.com/p/the-evolution-of-http-clearly-explained>)

Author: Nikki Siapno

Published: 2026-09-04T16:39:02Z

Content type: article

Language: en

Sources: [Level Up Coding System Design Newsletter](<https://devfeed.tech/sources/level-up-coding-system-design-newsletter.md>)

Topics: [HTTP](<https://devfeed.tech/topics/http.md>), [client](<https://devfeed.tech/topics/client.md>), [servers](<https://devfeed.tech/topics/servers.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [caching](<https://devfeed.tech/tags/caching.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [evolution](<https://devfeed.tech/tags/evolution.md>), [http](<https://devfeed.tech/tags/http.md>), [http-3](<https://devfeed.tech/tags/http-3.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [request](<https://devfeed.tech/tags/request.md>), [responses](<https://devfeed.tech/tags/responses.md>), [server](<https://devfeed.tech/tags/server.md>), [tcp](<https://devfeed.tech/tags/tcp.md>)

### AI overview

An explanatory article traces HTTP from versions 0.9 through 1.1, describing how headers, status codes, persistent connections, caching, and chunked transfer encoding addressed the web's growing scale and performance needs. It introduces HTTP/3 as part of that broader evolution.

### Source excerpt

From 0.9 to 3.0: What changed and why?

## Using Sentry Application Metrics to improve a browser video size estimator

DevFeed: [Using Sentry Application Metrics to improve a browser video size estimator](<https://devfeed.tech/articles/application-metrics-caught-my-broken-size-estimator-24102.md>)

Original publisher: [Read original article](<https://blog.sentry.io/metrics-caught-ai-size-estimate/>)

Author: Kyle Tryon

Published: 2026-09-01T09:00:00Z

Content type: tutorial

Language: en

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

Topics: [telemetry](<https://devfeed.tech/topics/telemetry.md>), [Transcodings](<https://devfeed.tech/topics/transcodings.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [browser](<https://devfeed.tech/tags/browser.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [media](<https://devfeed.tech/tags/media.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This tutorial explains how the author used Sentry Application Metrics to evaluate and improve a video size estimator in Cliparr, a self-hosted browser-based video clipping tool. Real-world conversion data revealed one estimate was off by 83%.

### Source excerpt

The numbers your app lives on don't belong in logs or on sampled spans. Here's how a browser video converter's KPIs made the case for Application Metrics.

## A Fast Path for Fixed-Length Lists in Parquet

DevFeed: [A Fast Path for Fixed-Length Lists in Parquet](<https://devfeed.tech/articles/a-fast-path-for-fixed-length-lists-in-parquet-18817.md>)

Original publisher: [Read original article](<https://www.morling.dev/blog/fast-path-for-fixed-length-lists-in-parquet/>)

Published: 2026-07-22T05:30:00Z

Content type: article

Language: en

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

Topics: [parquet](<https://devfeed.tech/topics/parquet.md>), [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [embedding](<https://devfeed.tech/tags/embedding.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [parquet](<https://devfeed.tech/tags/parquet.md>), [performance](<https://devfeed.tech/tags/performance.md>), [retrieval](<https://devfeed.tech/tags/retrieval.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

The article explains why Apache Parquet handles fixed-length lists inefficiently through Dremel encoding and describes a Hardwood optimization that detects effectively fixed-length data pages and bypasses regular record reconstruction. Benchmarks show speed-ups of up to 3.7x for 768-element lists, reaching performance comparable to a flat column.

### Source excerpt

Table of Contents Parquet's Dremel Encoding Reading Effectively-Fixed-Length Lists Faster Performance Gains Summary In its current form Apache Parquet isn't a great fit for storing fixed-length lists, such as coordinates, RGB(A) colors, or--an increasingly common case--vector embeddings driving search and retrieval workloads. A 768-dimensional embedding is just a list of floats that always has the same length, yet Parquet's Dremel machinery encodes it as if that length could vary from row to row, spelling out and reconstructing each vector's structure on read. That costs roughly 3x more than a purely flat columnar representation of the same data (see apache/arrow#34510).

## VideoIO, PCM Mixing And Timed Whisper Captions

DevFeed: [VideoIO, PCM Mixing And Timed Whisper Captions](<https://devfeed.tech/articles/videoio-pcm-mixing-and-timed-whisper-captions-19662.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/videoio-audio-mixer-whisper/>)

Author: Shai Almog

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

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [API](<https://devfeed.tech/topics/api.md>), [Whisper](<https://devfeed.tech/topics/whisper.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [audio](<https://devfeed.tech/tags/audio.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [playback](<https://devfeed.tech/tags/playback.md>), [release](<https://devfeed.tech/tags/release.md>), [transcription](<https://devfeed.tech/tags/transcription.md>), [video](<https://devfeed.tech/tags/video.md>), [whisper](<https://devfeed.tech/tags/whisper.md>)

### AI overview

Codename One's release adds cross-platform video encoding and decoding, sample-accurate PCM mixing, and timed Whisper transcription segments with SRT and VTT subtitle output. It can encode app-rendered frames, decode exact frames and audio where supported, and package native integrations across several platforms.

### Source excerpt

Codename One can now generate and inspect real video: encode app-rendered frames, decode exact frames, mix PCM, and turn Whisper timestamps into subtitles.

## Resumable Remote Compaction

DevFeed: [Resumable Remote Compaction](<https://devfeed.tech/articles/resumable-remote-compaction-22399.md>)

Original publisher: [Read original article](<http://rocksdb.org/blog/2026/05/19/resumable-remote-compaction.html>)

Author: Hui Xiao

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

Content type: article

Language: en

Sources: [RocksDB](<https://devfeed.tech/sources/rocksdb.md>)

Topics: [rocksdb](<https://devfeed.tech/topics/rocksdb.md>), [API](<https://devfeed.tech/topics/api.md>), [IO](<https://devfeed.tech/topics/io.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [blog](<https://devfeed.tech/tags/blog.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [files](<https://devfeed.tech/tags/files.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [rocksdb](<https://devfeed.tech/tags/rocksdb.md>), [scale](<https://devfeed.tech/tags/scale.md>), [state](<https://devfeed.tech/tags/state.md>), [stateless](<https://devfeed.tech/tags/stateless.md>)

### AI overview

RocksDB's resumable remote compaction adds checkpointing so interrupted compaction jobs can continue from their latest completed output SST instead of restarting from scratch. The article explains checkpoint contents, delta encoding, safety constraints, resume behavior, and configuration requirements.

### Source excerpt

Background RocksDB can offload compaction work to remote workers through the CompactionService API. In this model, the primary RocksDB instance selects the input files and sends a serialized CompactionServiceInput to a worker; the remote worker runs DB::OpenAndCompact(), writes output SSTs to output_directory, and returns a serialized CompactionServiceResult that the primary RocksDB instance installs into its LSM tree. See the Remote Compaction wiki for the full architecture. This lets operators scale compaction throughput with stateless workers while keeping the primary RocksDB instance's CPU and I/O available for serving reads and writes. However, remote compaction jobs can be long-running--sometimes processing hundreds of gigabytes of input. When a worker crashes, gets preempted, or times out, the entire compaction must restart from scratch, wasting all output produced before the interruption and increasing compaction debt on the primary RocksDB instance. How Resumable Remote Compaction Works Resumable remote compaction introduces a checkpoint-and-resume mechanism. During a compaction, the worker periodically saves its progress to the output_directory. If the compaction is interrupted, a subsequent call to OpenAndCompact() with the same output directory can pick up from the last checkpoint rather than starting over. Checkpointing After each output SST file is completed, the worker persists a progress checkpoint to a compaction progress file in the output directory output_directory. The checkpoint records which internal key to resume from and the metadata of all completed output files. Progress records use delta encoding--each record only contains files completed since the last checkpoint--to keep serialization cost linear. The worker skips checkpointing at boundaries where resuming could be unsafe or requires complicated handling: when range deletions span the file boundary or when adjacent output files share the same user key. These constraints ensure that resuming

## LLM 训练与推理的基本理解

DevFeed: [LLM 训练与推理的基本理解](<https://devfeed.tech/articles/llm-40974.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/deep-into-llm/>)

Author: Joway

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

Content type: tutorial

Language: zh

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

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Language models](<https://devfeed.tech/topics/language-models.md>), [Transformer](<https://devfeed.tech/topics/transformer.md>)

Tags: [embedding](<https://devfeed.tech/tags/embedding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [language](<https://devfeed.tech/tags/language.md>), [large-language-model](<https://devfeed.tech/tags/large-language-model.md>), [llm](<https://devfeed.tech/tags/llm.md>), [model](<https://devfeed.tech/tags/model.md>), [query](<https://devfeed.tech/tags/query.md>), [tech](<https://devfeed.tech/tags/tech.md>), [token](<https://devfeed.tech/tags/token.md>), [value](<https://devfeed.tech/tags/value.md>)

### AI overview

This Chinese tutorial explains foundational LLM training and inference concepts, including vector operations, linear layers, Softmax, LayerNorm, tokenization, token IDs, BPE, token and positional embeddings, and the initial steps of self-attention using Q, K, and V vectors.

### Source excerpt

学习一个技术最好的方式就是能够写一片文章把这个技术的原理解释清楚，本文记录了我在阅读 《Build a Large Language Model (From Scratch)》一书以及和 Claude Code 对话过程中的笔记，仅供参考。 术语解释 向量点积 定义：向量点积为标量 a = (a1, a2, a3) b = (b1, b2, b3) a - b = a1*b1 + a2*b2 + a3*b3 几何意义： a - b = |a| |b| cos(theta) 其中 theta 是两个向量的夹角。

## CKKS -- Polynomials, the Canonical Embedding, and Encoding

DevFeed: [CKKS -- Polynomials, the Canonical Embedding, and Encoding](<https://devfeed.tech/articles/ckks-polynomials-the-canonical-embedding-and-encoding-40495.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2026/04/29/ckks-polynomials-the-canonical-embedding-and-encoding/>)

Published: 2026-04-29T12:25:44Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [homomorphic encryption](<https://devfeed.tech/topics/homomorphic-encryption.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>), [Math and Logic](<https://devfeed.tech/topics/math-and-logic.md>)

Tags: [ckks](<https://devfeed.tech/tags/ckks.md>), [ckks-tutorial](<https://devfeed.tech/tags/ckks-tutorial.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [homomorphic-encryption](<https://devfeed.tech/tags/homomorphic-encryption.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [neural-network](<https://devfeed.tech/tags/neural-network.md>), [polynomial-ring](<https://devfeed.tech/tags/polynomial-ring.md>), [polynomials](<https://devfeed.tech/tags/polynomials.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [technical](<https://devfeed.tech/tags/technical.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial introduces the CKKS homomorphic encryption scheme and develops mathematical background on the polynomial ring used in its basic formulation and the canonical embedding used to encode cleartext messages as plaintexts. It also outlines CKKS's history, including its support for approximate arithmetic and later bootstrapping improvements.

### Source excerpt

Table of Contents In this tutorial series, I will introduce the CKKS homomorphic encryption scheme from the ground up, in rather intricate detail. Each article in this series corresponds to a pull request on a GitHub repository. The code for this article is in this pull request. Follow along by cloning the repository and checking out the code at the relevant commit. This first article will cover some of the mathematical background necessary in the formulation of the CKKS encryption scheme, specifically the polynomial ring used in the most basic version of CKKS, and the canonical embedding used to encode cleartext messages as plaintexts.

## Fine-tuning a DistilBERT classifier with numerical and text inputs

DevFeed: [Fine-tuning a DistilBERT classifier with numerical and text inputs](<https://devfeed.tech/articles/fine-tuning-a-distilbert-classifier-with-numerical-and-text-inputs-30004.md>)

Original publisher: [Read original article](<https://engineering.freeagent.com/2026/04/10/fine-tuning-a-distilbert-classifier-with-numerical-and-text-inputs/>)

Author: Paloma Jol

Published: 2026-04-10T10:04:33Z

Content type: tutorial

Language: en

Sources: [FreeAgent](<https://devfeed.tech/sources/freeagent.md>)

Topics: [Fine-tuning](<https://devfeed.tech/topics/fine-tuning.md>), [Transformer](<https://devfeed.tech/topics/transformer.md>), [foundation-models](<https://devfeed.tech/topics/foundation-models.md>), [Training AI Models](<https://devfeed.tech/topics/training-ai-models.md>), [datasets](<https://devfeed.tech/topics/datasets.md>), [Kaggle](<https://devfeed.tech/topics/kaggle.md>), [scikit-learn](<https://devfeed.tech/topics/scikit-learn.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [aws](<https://devfeed.tech/tags/aws.md>), [data](<https://devfeed.tech/tags/data.md>), [data-ml](<https://devfeed.tech/tags/data-ml.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [dataset](<https://devfeed.tech/tags/dataset.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [fine-tuning](<https://devfeed.tech/tags/fine-tuning.md>), [hugging-face](<https://devfeed.tech/tags/hugging-face.md>), [kaggle](<https://devfeed.tech/tags/kaggle.md>), [llms](<https://devfeed.tech/tags/llms.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model](<https://devfeed.tech/tags/model.md>), [models](<https://devfeed.tech/tags/models.md>), [nlp](<https://devfeed.tech/tags/nlp.md>), [performance](<https://devfeed.tech/tags/performance.md>), [text-classification](<https://devfeed.tech/tags/text-classification.md>), [training-data](<https://devfeed.tech/tags/training-data.md>), [validation](<https://devfeed.tech/tags/validation.md>)

### AI overview

This tutorial explains how to fine-tune a DistilBERT text classifier while incorporating a numerical feature into the same network. It uses the Kaggle wine reviews dataset, combining review descriptions with price and preprocessing the data for training, validation, and testing.

### Source excerpt

Text classification is often done through fine-tuning of a pretrained foundation model with domain-specific data. In FreeAgent we use transformer based models to automatically classify incoming bank transactions. Specifically we use a DistilBERT model that is fine-tuned on hundreds of millions of bank transactions with customer-labelled accounting categories. The model inputs are currently text-based, built from a combination of bank transaction descriptions and amounts. In this post we describe an approach to fine-tuning the DistilBERT model and training the classifier including the numerical amount feature as a single network.

## Revisiting CVE-2025-50165: A critical flaw in Windows Imaging Component

DevFeed: [Revisiting CVE-2025-50165: A critical flaw in Windows Imaging Component](<https://devfeed.tech/articles/revisiting-cve-2025-50165-a-critical-flaw-in-windows-imaging-component-8380.md>)

Original publisher: [Read original article](<https://www.welivesecurity.com/en/eset-research/revisiting-cve-2025-50165-critical-flaw-windows-imaging-component/>)

Author: Romain Dumont

Published: 2025-12-22T09:55:00Z

Content type: article

Language: en

Sources: [WeLiveSecurity](<https://devfeed.tech/sources/welivesecurity.md>)

Topics: [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Exploit](<https://devfeed.tech/topics/exploit.md>), [Code](<https://devfeed.tech/topics/code.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [cve](<https://devfeed.tech/tags/cve.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [eset-research](<https://devfeed.tech/tags/eset-research.md>), [jpeg](<https://devfeed.tech/tags/jpeg.md>), [library](<https://devfeed.tech/tags/library.md>), [remote-code-execution](<https://devfeed.tech/tags/remote-code-execution.md>), [root-cause-analysis](<https://devfeed.tech/tags/root-cause-analysis.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

ESET analyzes CVE-2025-50165, a critical Windows Imaging Component vulnerability in WindowsCodecs.dll. The flaw involves an uninitialized function-pointer dereference during JPG compression and re-encoding, and the article reassesses how difficult the vulnerability is to exploit.

### Source excerpt

A comprehensive analysis and assessment of a critical severity vulnerability with low likelihood of mass exploitation

## Introducing ESP\_NEW\_JPEG: An Efficient JPEG Encoder and Decoder

DevFeed: [Introducing ESP\_NEW\_JPEG: An Efficient JPEG Encoder and Decoder](<https://devfeed.tech/articles/introducing-esp-new-jpeg-an-efficient-jpeg-encoder-and-decoder-13720.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/09/esp-new-jpeg-introduction/>)

Author: John Lee

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

Content type: article

Language: en

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

Topics: [Library](<https://devfeed.tech/topics/library.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [Image processing](<https://devfeed.tech/topics/image-processing.md>), [Espressif](<https://devfeed.tech/topics/espressif.md>), [coding](<https://devfeed.tech/topics/coding.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [camera](<https://devfeed.tech/tags/camera.md>), [compression](<https://devfeed.tech/tags/compression.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [developers](<https://devfeed.tech/tags/developers.md>), [embedded-devices](<https://devfeed.tech/tags/embedded-devices.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [esp32-s3](<https://devfeed.tech/tags/esp32-s3.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [image-processing](<https://devfeed.tech/tags/image-processing.md>), [jpeg](<https://devfeed.tech/tags/jpeg.md>), [multimedia](<https://devfeed.tech/tags/multimedia.md>), [rotation](<https://devfeed.tech/tags/rotation.md>)

### AI overview

Espressif's ESP_NEW_JPEG component provides an optimized software JPEG encoder and decoder for resource-constrained embedded devices. The article explains JPEG compression fundamentals, introduces features such as image rotation, clipping, scaling, and block mode, and offers usage guidance.

### Source excerpt

The ESP_NEW_JPEG library from Espressif enables efficient JPEG encoding and decoding on embedded devices. This article introduces the main features of ESP_NEW_JPEG - including image rotation, clipping, scaling, and block mode - and shares key usage tips for developers.

## JSON - The Fine Print: Part 2 - Emitting JSON

DevFeed: [JSON - The Fine Print: Part 2 - Emitting JSON](<https://devfeed.tech/articles/json-the-fine-print-part-2-emitting-json-22267.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/10/json-the-fine-print-part-2.html>)

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

Content type: tutorial

Language: en

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

Topics: [JSON](<https://devfeed.tech/topics/json.md>), [API](<https://devfeed.tech/topics/api.md>), [Code](<https://devfeed.tech/topics/code.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-layers](<https://devfeed.tech/tags/api-layers.md>), [code](<https://devfeed.tech/tags/code.md>), [common-serialization-errors](<https://devfeed.tech/tags/common-serialization-errors.md>), [data](<https://devfeed.tech/tags/data.md>), [data-serialization](<https://devfeed.tech/tags/data-serialization.md>), [data-structure-separation](<https://devfeed.tech/tags/data-structure-separation.md>), [data-transmission](<https://devfeed.tech/tags/data-transmission.md>), [data-validation](<https://devfeed.tech/tags/data-validation.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [encoding-json](<https://devfeed.tech/tags/encoding-json.md>), [function](<https://devfeed.tech/tags/function.md>), [go-json-types](<https://devfeed.tech/tags/go-json-types.md>), [go-language-serialization](<https://devfeed.tech/tags/go-language-serialization.md>), [go-language-validation](<https://devfeed.tech/tags/go-language-validation.md>), [go-type-mapping](<https://devfeed.tech/tags/go-type-mapping.md>), [http](<https://devfeed.tech/tags/http.md>), [io](<https://devfeed.tech/tags/io.md>), [io-writer](<https://devfeed.tech/tags/io-writer.md>), [json](<https://devfeed.tech/tags/json.md>), [json-best-practices](<https://devfeed.tech/tags/json-best-practices.md>), [json-go-mapping](<https://devfeed.tech/tags/json-go-mapping.md>), [json-marshaling](<https://devfeed.tech/tags/json-marshaling.md>), [json-unmarshaling](<https://devfeed.tech/tags/json-unmarshaling.md>), [json-validation](<https://devfeed.tech/tags/json-validation.md>), [map](<https://devfeed.tech/tags/map.md>), [passing-serialized-data](<https://devfeed.tech/tags/passing-serialized-data.md>), [properties](<https://devfeed.tech/tags/properties.md>), [rest-apis](<https://devfeed.tech/tags/rest-apis.md>), [schema](<https://devfeed.tech/tags/schema.md>), [schema-less-data-format](<https://devfeed.tech/tags/schema-less-data-format.md>), [serialization](<https://devfeed.tech/tags/serialization.md>), [serialization-mistakes](<https://devfeed.tech/tags/serialization-mistakes.md>), [serialization-protocols](<https://devfeed.tech/tags/serialization-protocols.md>), [standard](<https://devfeed.tech/tags/standard.md>), [structure](<https://devfeed.tech/tags/structure.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

This tutorial explains how to emit JSON in Go using the encoding/json package. It compares json.Marshal, which returns bytes, with json.Encoder, which writes to an io.Writer, and discusses error handling in HTTP handlers. It also demonstrates marshaling maps and structs and using field tags to control JSON property names.

### Source excerpt

Introduction In part 1 we took a high-level view on serialization and JSON. In this part, we'll roll our sleeves and start working with JSON, focused on emitting JSON. You might think this is a basic topic, but there is much more to it than just calling json.Marshal. json.Marshal vs json.Encoder The encoding/json package has two main APIs: Marshal and NewEncoder. The Marshal function returns a []byte while the NewEncoder function will write to an io.Writer. The question is: When should you use one API over the other?

## Building Ultra Long Range TOSLINK

DevFeed: [Building Ultra Long Range TOSLINK](<https://devfeed.tech/articles/building-ultra-long-range-toslink-41633.md>)

Original publisher: [Read original article](<https://blog.benjojo.co.uk/post/sfp-experiment-ultra-long-range-toslink>)

Author: ben@benjojo.co.uk

Published: 2025-01-07T12:24:27Z

Content type: article

Language: en

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

Topics: [Data transmission](<https://devfeed.tech/topics/data-transmission.md>), [datacenter](<https://devfeed.tech/topics/datacenter.md>), [Encoding](<https://devfeed.tech/topics/encoding.md>)

Tags: [computer](<https://devfeed.tech/tags/computer.md>), [data-transmission](<https://devfeed.tech/tags/data-transmission.md>), [datacenter](<https://devfeed.tech/tags/datacenter.md>), [encoding](<https://devfeed.tech/tags/encoding.md>)

### AI overview

A textual version of a talk exploring how optical data transmission works through SFP and QSFP modules, including their lanes, laser drivers, EEPROMs, microcontrollers, and advanced processing chips for higher-speed and longer-range links.

### Source excerpt

Building Ultra Long Range TOSLINK This post is a textual version of a talk I gave at The 38th Chaos Computer Congress at the end of 2024

## How Instagram Reduced Video Processing Time and Improved Video Quality

DevFeed: [How Instagram Reduced Video Processing Time and Improved Video Quality](<https://devfeed.tech/articles/how-instagram-saved-90-of-computing-power-improved-video-quality-17973.md>)

Original publisher: [Read original article](<https://newsletter.betterstack.com/p/how-instagram-saved-90-of-computing>)

Author: Richard Oliver Bray

Published: 2024-08-08T13:02:43Z

Content type: article

Language: en

Sources: [Hacking Scale by Better Stack](<https://devfeed.tech/sources/hacking-scale-by-better-stack.md>)

Topics: [Instagram](<https://devfeed.tech/topics/instagram.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Algorithms](<https://devfeed.tech/topics/algorithms.md>)

Tags: [compression](<https://devfeed.tech/tags/compression.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [h-264](<https://devfeed.tech/tags/h-264.md>), [instagram](<https://devfeed.tech/tags/instagram.md>), [quality](<https://devfeed.tech/tags/quality.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

The article explains Instagram's video upload and publishing pipeline, focusing on encoding and packaging. It describes how Instagram uses AV1 and H.264 encodings, and reports that reducing processing time also improved video quality.

### Source excerpt

Ditching this key process gave Instagram users a better video experience

## Writing a Debugger From Scratch - DbgRs Part 7 - Disassembly

DevFeed: [Writing a Debugger From Scratch - DbgRs Part 7 - Disassembly](<https://devfeed.tech/articles/writing-a-debugger-from-scratch-dbgrs-part-7-disassembly-39739.md>)

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

Author: Tim Misiak

Published: 2024-01-18T16:10:45Z

Content type: tutorial

Language: en

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

Topics: [debug](<https://devfeed.tech/topics/debug.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Iced](<https://devfeed.tech/topics/iced.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [code](<https://devfeed.tech/tags/code.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [memory](<https://devfeed.tech/tags/memory.md>), [rust](<https://devfeed.tech/tags/rust.md>), [windbg](<https://devfeed.tech/tags/windbg.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

This tutorial installment explains how the DbgRs low-level debugger adds disassembly for Windows x64 code. It introduces the challenges of decoding x86 instruction encodings and describes using a Rust disassembly crate with iced-x86 instead of implementing a complete disassembler from scratch.

### Source excerpt

(New to this series? Consider starting from part 1) At the end of the last post, DbgRs could display stacks, which is the single most powerful tool in the debugging arsenal. But once you have those frames to examine, you need to understand what that code was doing. Source code is one place to look at, but if you're using a low level debugger like WinDbg or KD there's a good chance you need to see the assembly code, which means we need a disassembler.

## Encoding Schemes in FHE

DevFeed: [Encoding Schemes in FHE](<https://devfeed.tech/articles/encoding-schemes-in-fhe-40476.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2023/09/18/encoding-schemes-in-fhe/>)

Published: 2023-09-18T11:08:39Z

Content type: tutorial

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [Encoding](<https://devfeed.tech/topics/encoding.md>), [FHE](<https://devfeed.tech/topics/fhe.md>), [homomorphic encryption](<https://devfeed.tech/topics/homomorphic-encryption.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Decoding](<https://devfeed.tech/topics/decoding.md>)

Tags: [bits](<https://devfeed.tech/tags/bits.md>), [complex-numbers](<https://devfeed.tech/tags/complex-numbers.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [fhe](<https://devfeed.tech/tags/fhe.md>), [homomorphic-encryption](<https://devfeed.tech/tags/homomorphic-encryption.md>), [learning-with-errors](<https://devfeed.tech/tags/learning-with-errors.md>), [lwe](<https://devfeed.tech/tags/lwe.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [number-theory](<https://devfeed.tech/tags/number-theory.md>), [programming](<https://devfeed.tech/tags/programming.md>), [residue-number-system](<https://devfeed.tech/tags/residue-number-system.md>), [rlwe](<https://devfeed.tech/tags/rlwe.md>), [scaling](<https://devfeed.tech/tags/scaling.md>), [scheme](<https://devfeed.tech/tags/scheme.md>)

### AI overview

This article explains how cleartexts are transformed into plaintexts through encoding, and reversed through decoding, in homomorphic encryption. It catalogs encoding approaches for different HE schemes, including bit-field encoding for LWE and considerations for noise, scaling, bit positions, and programmable bootstrapping in CGGI/TFHE.

### Source excerpt

In cryptography, we need a distinction between a cleartext and a plaintext. A cleartext is a message in its natural form. A plaintext is a cleartext that is represented in a specific way to prepare it for encryption in a specific scheme. The process of taking a cleartext and turning it into a plaintext is called encoding, and the reverse is called decoding. In homomorphic encryption, the distinction matters. Cleartexts are generally all integers, though the bit width of allowed integers can be restricted (e.

## Weird things I learned while writing an x86 emulator

DevFeed: [Weird things I learned while writing an x86 emulator](<https://devfeed.tech/articles/weird-things-i-learned-while-writing-an-x86-emulator-39728.md>)

Original publisher: [Read original article](<https://www.timdbg.com/posts/useless-x86-trivia/>)

Author: Tim Misiak

Published: 2023-02-02T07:54:20Z

Content type: article

Language: en

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

Topics: [Emulator](<https://devfeed.tech/topics/emulator.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [Encoding](<https://devfeed.tech/topics/encoding.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [execution](<https://devfeed.tech/topics/execution.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [breakpoint](<https://devfeed.tech/tags/breakpoint.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [code](<https://devfeed.tech/tags/code.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [execution](<https://devfeed.tech/tags/execution.md>), [software](<https://devfeed.tech/tags/software.md>), [time-travel-debugging](<https://devfeed.tech/tags/time-travel-debugging.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

The author shares x86 and amd64 encoding trivia learned while writing a CPU emulator for Time Travel Debugging. The article explains why alternate instruction encodings matter for software breakpoints, code size, compiler behavior, and CPU understanding.

### Source excerpt

If you've read my first post about assembly language, you might expect that this is another post on how to understand assembly language. I will write more about that at some point, but this post is not that. Instead, this post is going to talk about some of the weird things and random trivia I learned while writing an x86 and amd64 emulator. The emulator I wrote was for Time Travel Debugging.

## Generics vs. Interfaces

DevFeed: [Generics vs. Interfaces](<https://devfeed.tech/articles/generics-vs-interfaces-22185.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/12/generic-vs-interfaces.html>)

Published: 2022-12-16T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Binance](<https://devfeed.tech/topics/binance.md>), [backends](<https://devfeed.tech/topics/backends.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [adapter-pattern](<https://devfeed.tech/tags/adapter-pattern.md>), [api](<https://devfeed.tech/tags/api.md>), [api-server](<https://devfeed.tech/tags/api-server.md>), [business-logic](<https://devfeed.tech/tags/business-logic.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [decoupling](<https://devfeed.tech/tags/decoupling.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [function](<https://devfeed.tech/tags/function.md>), [generics](<https://devfeed.tech/tags/generics.md>), [go](<https://devfeed.tech/tags/go.md>), [go-api-server](<https://devfeed.tech/tags/go-api-server.md>), [gorm](<https://devfeed.tech/tags/gorm.md>), [http](<https://devfeed.tech/tags/http.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [reusable-code](<https://devfeed.tech/tags/reusable-code.md>), [solid](<https://devfeed.tech/tags/solid.md>), [solid-principles](<https://devfeed.tech/tags/solid-principles.md>), [transactions](<https://devfeed.tech/tags/transactions.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

A video explains how generic functions and adapter functions can reduce code duplication and decouple business logic from API server handlers in Go. It demonstrates HTTP handlers, GORM database transactions, performance evaluation with PPROF, and generic data encoding and decoding.

### Source excerpt

Introduction In this video, Paulo shows the benefit of leveraging generic functions to write less code that does more. He starts by walking you through an API server he initially wrote that makes use of Go's default HTTP handlers with a sprinkle of GORM to manage database transactions. He then refactors that code by introducing the concept of adapter functions. Paulo's approach consists of decoupling his business logic with his API code. To achieve this, he defines an adapter function that will establish a bridge between his business logic and API server handlers. This proves to be an effective way to abstract request processing and handling. This approach also promotes code reusability because the business logic is loosely coupled with the API service invoking it.

## Scrubbing videos using JavaScript

DevFeed: [Scrubbing videos using JavaScript](<https://devfeed.tech/articles/scrubbing-videos-using-javascript-37347.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/scrubbing-videos-using-javascript/>)

Author: Stanko

Published: 2022-10-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Code](<https://devfeed.tech/topics/code.md>), [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [code](<https://devfeed.tech/tags/code.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [videos](<https://devfeed.tech/tags/videos.md>), [webm](<https://devfeed.tech/tags/webm.md>)

### AI overview

A tutorial on scrubbing HTML videos with JavaScript. It explains how keyframe frequency affects scrubbing smoothness and file size, compares browser behavior, and discusses providing MP4 and WebM versions.

### Source excerpt

JavaScript part is actually pretty easy, it is more about preparing the video file correctly. If you just want the code for converting videos using ffmpeg, jump to the last section. Otherwise, let's start scrolling down to see these two videos scrubbing: Every 5 framesEvery 100 frames Code used looks like this, it just updates currentTime based on window scroll. But the left video should work smoother than the right one. Depending on your browser, it can be more or less noticeable. The answer why it happens is keyframes. const video = document.querySelector('#video'); window.addEventListener('scroll', function() { video.currentTime = window.scrollY * 0.01; }); Keyframes # In video encoding, the keyframe is the full frame of the image in a video. Frames that are in between these keyframes (aka delta frames), contain only the difference between the previous (or the next) frame. Number of keyframes will vary depending on how the video was created and encoded. Having each frame encoded as a keyframe would be very inefficient and the video file would be huge. To display delta frames, video players decode the information and piece them together. Some players only do this when video is playing, but not when you are scrubbing through it. Because of that, and because it has way less keyframes, the right video feels much choppier than the left one. The video on the right contains a keyframe every one hundred frames, while the one on the left has one keyframe every five frames. That is twenty times more keyframes. Naturally, it reflects on the file size. For this specific video, it is about five times more. line-100.mp4 146 Kb line-5.mp4 845 Kb # ~5 times more line-100.webm 195 Kb line-5.webm 1038 Kb # ~5 times more Browser support # Browsers behave radically differently. But if you provide them a correct video format with enough keyframes, you should be pretty well covered. You'll have to provide the video in at least two formats - mp4 and webm. On desktop, Safari seems to ha

## Kiln Testnet Merge Transition Reveals Client Bugs as Ethereum Testing Continues

DevFeed: [Kiln Testnet Merge Transition Reveals Client Bugs as Ethereum Testing Continues](<https://devfeed.tech/articles/finalized-no-34-17009.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2022/03/23/finalized-no-34>)

Author: Danny Ryan

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

Content type: article

Language: en

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

Topics: [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Security](<https://devfeed.tech/topics/security.md>), [Fuzzing/Fuzz testing](<https://devfeed.tech/topics/fuzzing.md>), [Network](<https://devfeed.tech/topics/network.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [fuzzing](<https://devfeed.tech/tags/fuzzing.md>), [network](<https://devfeed.tech/tags/network.md>), [research-development](<https://devfeed.tech/tags/research-development.md>), [security](<https://devfeed.tech/tags/security.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

The article reports that Ethereum's Kiln testnet completed its transition from proof of work to proof of stake. It describes encoding and synchronization errors during the transition and outlines expanded testing, fuzzing, code review, and security efforts ahead of public testnet upgrades.

### Source excerpt

tl;dr Kiln🧱🔥 is up, check it out #TestingTheMerge is in full swing. Do your part, get involved!...

## JPEG Is a Family of Formats With Different Decoding Requirements

DevFeed: [JPEG Is a Family of Formats With Different Decoding Requirements](<https://devfeed.tech/articles/one-of-these-jpegs-is-not-like-the-other-41621.md>)

Original publisher: [Read original article](<https://blog.benjojo.co.uk/post/not-all-jpegs-are-the-same>)

Author: ben@benjojo.co.uk

Published: 2021-11-19T10:47:26Z

Content type: article

Language: en

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

Topics: [Encoding](<https://devfeed.tech/topics/encoding.md>), [format](<https://devfeed.tech/topics/format.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [Decoding](<https://devfeed.tech/topics/decoding.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [Software](<https://devfeed.tech/topics/software.md>), [hdmi](<https://devfeed.tech/topics/hdmi.md>), [intel](<https://devfeed.tech/topics/intel.md>)

Tags: [compression](<https://devfeed.tech/tags/compression.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [format](<https://devfeed.tech/tags/format.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [hdmi](<https://devfeed.tech/tags/hdmi.md>), [intel](<https://devfeed.tech/tags/intel.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

An exploration of JPEG as a family of formats rather than a single uniform format, focusing on hardware and software decoding, compression, and a failed attempt to transmit JPEG data through HDMI equipment.

### Source excerpt

One of these JPEGs is not like the other "JPEG" or the image encoding specification by the "Joint Photographic Experts Group" (JPEG) is a truly universal format at this stage. You really cannot go very far on the internet without seeing a JPEG file

## Downmixing Multichannel Audio on Android

DevFeed: [Downmixing Multichannel Audio on Android](<https://devfeed.tech/articles/downmixing-multichannel-audio-on-android-25143.md>)

Original publisher: [Read original article](<https://ianbird.dev/downmixing-multichannel-audio/>)

Author: Ian Bird

Published: 2021-11-15T18:53:33Z

Content type: tutorial

Language: en

Sources: [Ian Bird](<https://devfeed.tech/sources/ian-bird.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [audio](<https://devfeed.tech/tags/audio.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [mediacodec](<https://devfeed.tech/tags/mediacodec.md>), [multichannel](<https://devfeed.tech/tags/multichannel.md>)

### AI overview

A practical guide to downmixing multichannel audio on Android. It explains why downmixing may be needed for compatibility, how Android represents decoded audio as PCM buffers, and the role of channel order and PCM encoding.

### Source excerpt

Sometimes we need to dig a little deeper into how things work. This is a quick and simple guide covering raw audio buffers on Android, and how to downmix multichannel formats.

## Android's Codec Support

DevFeed: [Android's Codec Support](<https://devfeed.tech/articles/android-s-codec-support-25142.md>)

Original publisher: [Read original article](<https://ianbird.dev/android-mediacodec/>)

Author: Ian Bird

Published: 2021-11-01T13:36:32Z

Content type: tutorial

Language: en

Sources: [Ian Bird](<https://devfeed.tech/sources/ian-bird.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [API](<https://devfeed.tech/topics/api.md>), [Playback](<https://devfeed.tech/topics/playback.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [article](<https://devfeed.tech/tags/article.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [mediacodec](<https://devfeed.tech/tags/mediacodec.md>)

### AI overview

A concise overview of Android's MediaCodec API, explaining how device-specific codec capabilities are configured and how applications can inspect supported encoders, decoders, formats, and capabilities.

### Source excerpt

A quick overview of Android's MediaCodec API. What they are, how to find out about device support and some general usage tips when integrating within your application.

## Understanding HTTP Content Encoding and Compression

DevFeed: [Understanding HTTP Content Encoding and Compression](<https://devfeed.tech/articles/encoding-your-http-for-fun-and-profit-19070.md>)

Original publisher: [Read original article](<https://httptoolkit.com/blog/http-encodings/>)

Author: HTTP Toolkit; Tim Perry

Published: 2021-06-10T14:00:00Z

Content type: tutorial

Language: en

Sources: [HTTP Toolkit](<https://devfeed.tech/sources/http-toolkit.md>)

Topics: [HTTP](<https://devfeed.tech/topics/http.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [API](<https://devfeed.tech/topics/api.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [compression](<https://devfeed.tech/tags/compression.md>), [developers](<https://devfeed.tech/tags/developers.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [http](<https://devfeed.tech/tags/http.md>), [json](<https://devfeed.tech/tags/json.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

A tutorial explaining HTTP content encoding, distinguishing it from content type and transfer encoding. It focuses mainly on compression, while also covering encryption and format transformations such as base64, with examples involving gzip and JSON.

### Source excerpt

HTTP content encoding is an incredibly powerful tool that can save you huge amounts of bandwidth and make your web or mobile application faster, basically for free. Unfortunately, it's poorly understood by most developers. There's a lot of power here, but few people are aware of the options or what "content encoding" really means, so it's mostly left to be handled automatically (for better or worse) by your web server. In many cases that means no encoding at all. In some helpful cases (typically CDNs or static site PaaS hosts) a useful basic default will be provided, but those defaults are rarely the best choice for every situation. With just a tiny sprinkle of knowledge, you can enable this and speed up your web application, your API, and all your HTTP requests & responses in no time at all. What is content encoding? Content encoding is the wrapper around the meaningful body of an HTTP request or response. It is not the type of the content - that's something else entirely. This is a common mistake! For example, you might have a response that contains JSON data, encoded with gzip. In that case, you'd use HTTP headers like: Content-Encoding: gzip Content-Type: application/json This tells the HTTP client that it needs to unwrap the content using gzip, and then it's going find some JSON inside. That's the best way to think of it: if you receive a request or response with a content-encoding header, then you should undo that content encoding (e.g. un-gzip the body) and then you'll find content that matches the content-type header. The main use for this by a very long way is compression: there's a variety of different compression algorithms you can use to shrink your request and response bodies dramatically. You could also use it to describe a layer of encryption around the content though (for unusual environments where HTTPS isn't sufficient/possible) or to send content encoded in a format that's more easily compatible with other infrastructure (encoding it as base64 rat

## The Stateless Tech Tree: reGenesis Edition

DevFeed: [The Stateless Tech Tree: reGenesis Edition](<https://devfeed.tech/articles/the-stateless-tech-tree-regenesis-edition-16922.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2020/08/24/the-1x-files-tech-tree-regenesis>)

Author: Griffin Ichiba Hotchkiss

Published: 2020-08-25T00:00:00Z

Content type: opinion

Language: en

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

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [Network](<https://devfeed.tech/topics/network.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [dht](<https://devfeed.tech/tags/dht.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [network](<https://devfeed.tech/tags/network.md>), [re](<https://devfeed.tech/tags/re.md>), [research-development](<https://devfeed.tech/tags/research-development.md>), [smart-contract](<https://devfeed.tech/tags/smart-contract.md>), [snapshots](<https://devfeed.tech/tags/snapshots.md>), [state](<https://devfeed.tech/tags/state.md>), [stateless](<https://devfeed.tech/tags/stateless.md>), [structure](<https://devfeed.tech/tags/structure.md>), [switching](<https://devfeed.tech/tags/switching.md>)

### AI overview

The article revises Ethereum 1.x's Tech Tree around reGenesis and other milestones that could provide a more attainable mid-term step toward Stateless Ethereum. It also discusses static state networks, code merkleization, binary trie state representation, and the transition challenges involved.

### Source excerpt

This week we're revising the Tech Tree to reflect some new major milestones to Ethereum 1.x R&D that are not quite a complete realization of Stateless Ethereum, but much more reasonably attainable in the mid-term. The most significant addition to the tech tree is Alexey's reGenesis proposal. This is far...

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