# Decoding

Published articles for Decoding.

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

## Firefox Touts Lower CPU Use for Large JPEGs, Faster PDF Viewer Startup (and AI Controls)

DevFeed: [Firefox Touts Lower CPU Use for Large JPEGs, Faster PDF Viewer Startup (and AI Controls)](<https://devfeed.tech/articles/firefox-touts-lower-cpu-use-for-large-jpegs-faster-pdf-viewer-startup-and-ai-controls-41540.md>)

Original publisher: [Read original article](<https://news.slashdot.org/story/26/09/16/0352217/firefox-touts-lower-cpu-use-for-large-jpegs-faster-pdf-viewer-startup-and-ai-controls>)

Author: EditorDavid

Published: 2026-09-16T13:04:00Z

Content type: release

Language: en

Sources: [Slashdot](<https://devfeed.tech/sources/slashdot.md>)

Topics: [Firefox](<https://devfeed.tech/topics/firefox.md>), [browser](<https://devfeed.tech/topics/browser.md>), [pdf](<https://devfeed.tech/topics/pdf.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [Decoding](<https://devfeed.tech/topics/decoding.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [browser](<https://devfeed.tech/tags/browser.md>), [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [pdf](<https://devfeed.tech/tags/pdf.md>)

### AI overview

Firefox 156 reduces CPU and memory use when decoding large JPEG images and starts its built-in PDF viewer up to 45% faster. The release also expands sponsored address-bar suggestions and includes an AI controls section for managing browser AI features.

### Source excerpt

Firefox 156 is the second release since Mozilla moved to a twice-monthly release schedule, and the blog OMG Ubuntu notes it has faster start-up times for its built-in PDF viewer and also lower CPU usage when viewing large JPEG images: In Firefox 156, the browser now uses libjpeg-turbo's IDCT scaling to reduce images during decoding, rather than loading a full-size image into memory and then shrinking it. Benchmarks from the bug report show up to 20x less memory used during very large image loading, and decoding is up to twice as fast. Since these speeds were quite fast already, there's no perceptible difference to users. Behind the scenes, it's more efficient. Firefox's built-in PDF viewer starts up to 45% faster in this release. The browser now loads the background PDF.js worker sooner, rather than launching it only when needed. Sponsored suggestions in the address bar are live for users in France, Germany and Italy (Ouais!, Juhu!, etc). These are already available in some other locales. Don't want them? Disable them via Settings > Search > Firefox Suggest > Suggestions from Sponsors. Besides that, the rest of this release is primarily bug fixes -- worthwhile and welcome as always. And in about two weeks Firefox 157 will be released, reports PC World. "That update should add support for JPEG XL (JXL), a modern image format that offers the same quality as JPEG at a significantly smaller size. Although JPEG XL was launched in 2021, Safari is the only browser to support it yet. For a short period, Chrome also supported it, but that ended in 2022." Also, a recent Firefox blog post emphasized that it supports whatever level of AI engagement "is right for you... Because the only person telling you how much AI you need should be you." Opting out of upcoming and current AI features on your browser should not require endless navigation through multiple Settings pages. That's why Firefox offers an AI controls section within its General Settings panel. A single, easily located

## How WebRTC Scales: Signaling, NAT Traversal, and the Mesh/SFU/MCU Tradeoff

DevFeed: [How WebRTC Scales: Signaling, NAT Traversal, and the Mesh/SFU/MCU Tradeoff](<https://devfeed.tech/articles/how-webrtc-scales-signaling-nat-traversal-and-the-mesh-sfu-mcu-tradeoff-26901.md>)

Original publisher: [Read original article](<https://www.freecodecamp.org/news/how-webrtc-scales-signaling-nat-traversal-and-the-mesh-sfu-mcu-tradeoff/>)

Author: Karan Pratap Singh

Published: 2026-09-15T15:57:39Z

Content type: article

Language: en

Sources: [freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More](<https://devfeed.tech/sources/freecodecamp-programming-tutorials-python-javascript-git-more.md>)

Topics: [WebRTC](<https://devfeed.tech/topics/webrtc.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [API](<https://devfeed.tech/topics/api.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Firewall](<https://devfeed.tech/topics/firewall.md>), [Network](<https://devfeed.tech/topics/network.md>), [servers](<https://devfeed.tech/topics/servers.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [firewall](<https://devfeed.tech/tags/firewall.md>), [http](<https://devfeed.tech/tags/http.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [network](<https://devfeed.tech/tags/network.md>), [networking](<https://devfeed.tech/tags/networking.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [server](<https://devfeed.tech/tags/server.md>), [webrtc](<https://devfeed.tech/tags/webrtc.md>)

### AI overview

This article explains how WebRTC enables browsers to exchange audio, video, and data directly. It covers the three WebRTC APIs, signaling through WebSockets or HTTP, NAT traversal using ICE, STUN, and TURN, and the mesh, SFU, and MCU approaches to scaling media delivery.

### Source excerpt

Web Real-Time Communication (or WebRTC) is the open standard browsers use to send audio, video, and data straight to each other. There's no plugin or native app, nothing beyond an API that every brows

## Hot Chips 2026: Interviewing IBM's Christian Zoellin & Christian Jacobi

DevFeed: [Hot Chips 2026: Interviewing IBM's Christian Zoellin & Christian Jacobi](<https://devfeed.tech/articles/hot-chips-2026-interviewing-ibm-s-christian-zoellin-christian-jacobi-13996.md>)

Original publisher: [Read original article](<https://chipsandcheese.com/p/hot-chips-2026-interviewing-ibms>)

Author: George Cozma

Published: 2026-08-30T17:31:05Z

Content type: article

Language: en

Sources: [Chips and Cheese](<https://devfeed.tech/sources/chips-and-cheese.md>)

Topics: [Arm](<https://devfeed.tech/topics/arm.md>), [ibm](<https://devfeed.tech/topics/ibm.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [architectures](<https://devfeed.tech/tags/architectures.md>), [arm](<https://devfeed.tech/tags/arm.md>), [core](<https://devfeed.tech/tags/core.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [ibm](<https://devfeed.tech/tags/ibm.md>), [interviewing](<https://devfeed.tech/tags/interviewing.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

An interview with IBM engineers at Hot Chips 2026 discusses the company's next-generation z/Architecture processor, which supports both the z/Architecture and Arm instruction sets. The conversation covers its shared decode pipeline, separate instruction decoders, and handling of differing endianness in the load-store unit.

### Source excerpt

Hello you fine Internet folks,

## How Speculative Decoding Can Make LLM Generation 2-3 Times Faster

DevFeed: [How Speculative Decoding Can Make LLM Generation 2-3 Times Faster](<https://devfeed.tech/articles/how-to-make-llms-3x-faster-17992.md>)

Original publisher: [Read original article](<https://blog.bytebytego.com/p/how-to-make-llms-3x-faster>)

Author: ByteByteGo

Published: 2026-08-26T15:30:34Z

Content type: tutorial

Language: en

Sources: [ByteByteGo](<https://devfeed.tech/sources/bytebytego.md>)

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [text-generation](<https://devfeed.tech/topics/text-generation.md>), [GPU](<https://devfeed.tech/topics/gpu.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [data-center](<https://devfeed.tech/tags/data-center.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [generation](<https://devfeed.tech/tags/generation.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [llms](<https://devfeed.tech/tags/llms.md>), [tokens](<https://devfeed.tech/tags/tokens.md>)

### AI overview

This tutorial explains speculative decoding, in which a smaller model proposes candidate tokens and a larger model evaluates them in a single forward pass. It covers autoregressive generation, GPU utilization, candidate acceptance and rejection, output-quality preservation, acceptance rates, draft sources, and when the technique may stop helping.

### Source excerpt

In this article, we will look at how speculative decoding works.

## 10 LLM Inference Optimization Techniques, Simply Explained

DevFeed: [10 LLM Inference Optimization Techniques, Simply Explained](<https://devfeed.tech/articles/10-llm-inference-optimization-techniques-simply-explained-18270.md>)

Original publisher: [Read original article](<https://www.intoai.pub/p/10-llm-inference-optimization-techniques>)

Author: Dr. Ashish Bamania

Published: 2026-08-01T11:15:38Z

Content type: tutorial

Language: en

Sources: [Into AI](<https://devfeed.tech/sources/into-ai.md>)

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Inference](<https://devfeed.tech/topics/inference.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [text-generation](<https://devfeed.tech/topics/text-generation.md>), [quantization](<https://devfeed.tech/topics/quantization.md>), [GPU](<https://devfeed.tech/topics/gpu.md>)

Tags: [caching](<https://devfeed.tech/tags/caching.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [inference](<https://devfeed.tech/tags/inference.md>), [llm](<https://devfeed.tech/tags/llm.md>), [llms](<https://devfeed.tech/tags/llms.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [quantization](<https://devfeed.tech/tags/quantization.md>), [text-generation](<https://devfeed.tech/tags/text-generation.md>)

### AI overview

A visual guide to ten techniques for optimizing LLM inference, including KV caching, quantization, speculative decoding, and prefill-decode disaggregation. It explains how KV caching reduces repeated computation while increasing HBM memory usage.

### Source excerpt

A visual guide to 10 techniques, from KV caching and Quantization to Speculative decoding and Prefill-decode disaggregation, that make LLM inference faster and cheaper.

## Advanced Prompt Caching at Scale

DevFeed: [Advanced Prompt Caching at Scale](<https://devfeed.tech/articles/advanced-prompt-caching-at-scale-19856.md>)

Original publisher: [Read original article](<https://www.digitalocean.com/blog/advanced-prompt-caching>)

Author: Andrew Dugan

Published: 2026-04-07T19:11:40Z

Content type: tutorial

Language: en

Sources: [DigitalOcean](<https://devfeed.tech/sources/digitalocean.md>)

Topics: [Caching](<https://devfeed.tech/topics/caching.md>), [Inference Performance](<https://devfeed.tech/topics/inference-performance.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Inference](<https://devfeed.tech/topics/inference.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Load Balancing](<https://devfeed.tech/topics/load-balancing.md>), [round robin](<https://devfeed.tech/topics/round-robin.md>), [sglang](<https://devfeed.tech/topics/sglang.md>), [TensorRT-LLM](<https://devfeed.tech/topics/tensorrt-llm.md>), [vllm](<https://devfeed.tech/topics/vllm.md>), [model architecture](<https://devfeed.tech/topics/model-architecture.md>)

Tags: [ai-ml](<https://devfeed.tech/tags/ai-ml.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [caching](<https://devfeed.tech/tags/caching.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [inference](<https://devfeed.tech/tags/inference.md>), [latency](<https://devfeed.tech/tags/latency.md>), [llm](<https://devfeed.tech/tags/llm.md>), [load-balancing](<https://devfeed.tech/tags/load-balancing.md>), [prompt](<https://devfeed.tech/tags/prompt.md>), [round-robin](<https://devfeed.tech/tags/round-robin.md>), [sglang](<https://devfeed.tech/tags/sglang.md>), [tensorrt-llm](<https://devfeed.tech/tags/tensorrt-llm.md>), [token](<https://devfeed.tech/tags/token.md>), [tokens](<https://devfeed.tech/tags/tokens.md>), [vllm](<https://devfeed.tech/tags/vllm.md>)

### AI overview

This tutorial explains how prompt caching works across multiple LLM replicas. It describes how round-robin load balancing reduces cache-hit rates and presents session affinity, tiered routing, and prefix-aware load balancing as architectural strategies for preserving KV-cache reuse while reducing latency and inference costs.

### Source excerpt

Introduction Prompt caching is the process of reusing already computed KV states across inference requests in order to save money and reduce latency. Within a single replica, modern inference engines like vLLM, SGLang, and TensorRT-LLM handle it automatically. Incoming prompts are matched against cached prefixes and recomputed only where necessary, without requiring user configurations The problem nobody talks about is what happens when you scale to many replicas. Under round-robin load balancing, a request with an identical prefix has only a 1/N chance of hitting the replica where that prefix is already cached. The cache hit rate that made prompt caching so attractive at one replica degrades almost linearly as your fleet grows, unless you architect around it deliberately. Done right, prompt caching at scale offers 50-90% discounts on cached input tokens and can reduce time-to-first-token (TTFT) latency by up to 80%. This article covers the architectural strategies that make that possible. The Single-Replica Ceiling Refer to our previous prompt caching article for a detailed explanation of how KV caching works under the hood. Every transformer-based LLM uses KV caching to store key and value vectors from the attention layers in GPU VRAM during decoding. This intra-request caching is baked into the model architecture to increase throughput and maximize efficiency. Within a single replica, modern open-source engines like vLLM, SGLang (via RadixAttention), and TensorRT-LLM support automatic prefix caching out of the box, matching incoming prompts against previously cached prefixes to maximize KV reuse without any user configuration. Reusing KV states across requests from many users and replicas is where inference frameworks differ significantly. In the simplest architecture, the cache lives on individual replicas in VRAM. It is not shared across model instances at all. When a user makes an inference request, the prompt from their request is cached on a single replica.

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

## Scalable JSON Streaming with HTTP and Go - Ep.5

DevFeed: [Scalable JSON Streaming with HTTP and Go - Ep.5](<https://devfeed.tech/articles/scalable-json-streaming-with-http-and-go-ep-5-22271.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/11/scalable-json-streaming-with--http-and-go.html>)

Published: 2024-11-25T00: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>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [JSON](<https://devfeed.tech/topics/json.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Error Handling](<https://devfeed.tech/topics/error-handling.md>), [datasets](<https://devfeed.tech/topics/datasets.md>)

Tags: [chunked-transfer-json](<https://devfeed.tech/tags/chunked-transfer-json.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [data-transmission](<https://devfeed.tech/tags/data-transmission.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [decoding-json-streams](<https://devfeed.tech/tags/decoding-json-streams.md>), [efficient-json-handling](<https://devfeed.tech/tags/efficient-json-handling.md>), [encoding-json](<https://devfeed.tech/tags/encoding-json.md>), [encoding-json-in-go](<https://devfeed.tech/tags/encoding-json-in-go.md>), [error-handling](<https://devfeed.tech/tags/error-handling.md>), [examples](<https://devfeed.tech/tags/examples.md>), [go](<https://devfeed.tech/tags/go.md>), [go-json-encoding](<https://devfeed.tech/tags/go-json-encoding.md>), [go-json-memory-management](<https://devfeed.tech/tags/go-json-memory-management.md>), [handling-large-json-files](<https://devfeed.tech/tags/handling-large-json-files.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [http](<https://devfeed.tech/tags/http.md>), [http-chunked-encoding](<https://devfeed.tech/tags/http-chunked-encoding.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [json](<https://devfeed.tech/tags/json.md>), [json-chunked-transfer](<https://devfeed.tech/tags/json-chunked-transfer.md>), [json-error-logging](<https://devfeed.tech/tags/json-error-logging.md>), [json-for-engineers](<https://devfeed.tech/tags/json-for-engineers.md>), [json-lines-format](<https://devfeed.tech/tags/json-lines-format.md>), [json-lines-ndjson](<https://devfeed.tech/tags/json-lines-ndjson.md>), [json-streaming](<https://devfeed.tech/tags/json-streaming.md>), [json-streaming-in-go](<https://devfeed.tech/tags/json-streaming-in-go.md>), [memory-efficient-data-transmission](<https://devfeed.tech/tags/memory-efficient-data-transmission.md>), [memory-efficient-json](<https://devfeed.tech/tags/memory-efficient-json.md>), [real-time-data-streaming](<https://devfeed.tech/tags/real-time-data-streaming.md>), [real-time-json-streaming](<https://devfeed.tech/tags/real-time-json-streaming.md>), [scalable-json-processing](<https://devfeed.tech/tags/scalable-json-processing.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [streaming-json-over-http](<https://devfeed.tech/tags/streaming-json-over-http.md>), [streaming-large-json-datasets](<https://devfeed.tech/tags/streaming-large-json-datasets.md>)

### AI overview

The final episode of the JSON for Engineers series explains how to stream large JSON datasets efficiently using JSON Lines, Go's encoding/json package, and HTTP/1.1 chunked transfer encoding. It covers incremental encoding and decoding, memory usage, response flushing, and logging errors after streaming begins.

### Source excerpt

Introduction: Welcome to the final episode of the JSON for Engineers series! In this concluding session, we tackle the challenges of working with large JSON datasets, exploring efficient strategies for streaming data while minimizing memory usage. These techniques enable developers to handle massive payloads without overburdening system resources, ensuring scalable and cost-effective applications. JSON Streaming: Using JSON Lines for memory-efficient data transmission. HTTP Chunked Encoding: Leveraging HTTP/1.1 chunked transfer encoding for streaming large datasets. Practical Error Handling: Logging and managing errors in streaming JSON responses. This episode starts by addressing the inefficiencies of constructing large JSON objects in memory when working with massive datasets, such as database query results. Instead of consuming significant memory to create one monolithic JSON object, the recommended approach involves using JSON Lines (NDJSON), a format where each line represents a separate JSON object. This method reduces memory requirements by transmitting data incrementally. Using Go's encoding/json package, developers can easily encode and stream multiple JSON objects, as it automatically appends newlines between objects. On the receiving end, decoding JSON streams requires careful looping to handle incoming data dynamically while avoiding memory reuse issues, which could lead to errors or stale data.

## JSON Handling and Type Management with Large Datasets in Go - Ep.4

DevFeed: [JSON Handling and Type Management with Large Datasets in Go - Ep.4](<https://devfeed.tech/articles/json-handling-and-type-management-with-large-datasets-in-go-ep-4-22262.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/10/json-handling-and-type-management-with-large-datasets-in-go.html>)

Published: 2024-11-14T00: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>), [JSON](<https://devfeed.tech/topics/json.md>), [Code](<https://devfeed.tech/topics/code.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [advanced-json-management-go](<https://devfeed.tech/tags/advanced-json-management-go.md>), [code](<https://devfeed.tech/tags/code.md>), [custom-go-struct-json-serialization](<https://devfeed.tech/tags/custom-go-struct-json-serialization.md>), [custom-json-serialization-go](<https://devfeed.tech/tags/custom-json-serialization-go.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [efficient-json-processing-in-go](<https://devfeed.tech/tags/efficient-json-processing-in-go.md>), [encoding-json](<https://devfeed.tech/tags/encoding-json.md>), [examples](<https://devfeed.tech/tags/examples.md>), [go](<https://devfeed.tech/tags/go.md>), [go-encoding-json-package](<https://devfeed.tech/tags/go-encoding-json-package.md>), [go-json-handling-tutorial](<https://devfeed.tech/tags/go-json-handling-tutorial.md>), [go-selective-decoding](<https://devfeed.tech/tags/go-selective-decoding.md>), [go-type-management-json](<https://devfeed.tech/tags/go-type-management-json.md>), [handling-mixed-type-arrays-json-go](<https://devfeed.tech/tags/handling-mixed-type-arrays-json-go.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [json](<https://devfeed.tech/tags/json.md>), [json-anonymous-structures-go](<https://devfeed.tech/tags/json-anonymous-structures-go.md>), [json-best-practices](<https://devfeed.tech/tags/json-best-practices.md>), [json-data-optimization-techniques](<https://devfeed.tech/tags/json-data-optimization-techniques.md>), [json-for-engineers](<https://devfeed.tech/tags/json-for-engineers.md>), [json-handling-techniques-for-engineers](<https://devfeed.tech/tags/json-handling-techniques-for-engineers.md>), [json-marshaler-and-unmarshaler-interfaces-in-go](<https://devfeed.tech/tags/json-marshaler-and-unmarshaler-interfaces-in-go.md>), [json-nested-fields-go](<https://devfeed.tech/tags/json-nested-fields-go.md>), [json-strategies-large-datasets](<https://devfeed.tech/tags/json-strategies-large-datasets.md>), [json-type-pollution-avoidance](<https://devfeed.tech/tags/json-type-pollution-avoidance.md>), [managing-large-json-datasets-in-go](<https://devfeed.tech/tags/managing-large-json-datasets-in-go.md>), [pitfalls](<https://devfeed.tech/tags/pitfalls.md>), [reducing-type-declarations-go](<https://devfeed.tech/tags/reducing-type-declarations-go.md>), [serialization](<https://devfeed.tech/tags/serialization.md>)

### AI overview

Episode 4 of the JSON for Engineers series explains how to process large JSON datasets in Go. It covers selective decoding with anonymous structures, custom JSON serialization through Marshaler and Unmarshaler interfaces, and handling mixed-type arrays.

### Source excerpt

Introduction: Welcome to Episode 4 of the JSON for Engineers series! In this episode, we tackle the complexities of working with JSON data, especially when dealing with extensive datasets and optimizing type management. Here, Miki introduces key strategies for managing large JSON documents, avoiding unnecessary type definitions, and using Go's encoding/json package to handle custom serialization needs effectively. Type Pollution Avoidance: Minimizing type declarations by using selective decoding and anonymous structures. Custom JSON Serialization: Implementing Go's Marshaler and Unmarshaler interfaces for precise JSON formatting. Working with Mixed-Type Arrays: Handling JSON arrays containing diverse types in Go Miki begins by addressing the challenge of "type pollution" when working with large JSON responses. When dealing with massive JSON datasets, like data from social trading platforms, defining a separate type for every possible field can quickly lead to an unwieldy codebase. To streamline this, Miki demonstrates how to leverage anonymous structures and selective decoding in Go. By defining only the relevant fields within a function, we can avoid creating additional struct types, making the code more compact and efficient. This technique is especially useful when working with JSON data containing nested fields that may not all be necessary for your application. Through this approach, Go's encoding/json package will simply ignore any unreferenced fields, allowing you to handle only the data that matters to your project.

## Exploring JSON Encoding and Data Handling in Go - Ep.2

DevFeed: [Exploring JSON Encoding and Data Handling in Go - Ep.2](<https://devfeed.tech/articles/exploring-json-encoding-and-data-handling-in-go-ep-2-22264.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2024/10/json-the-fine-print-ep-2-exploring-json-encoding-and-data-handling-in-go.html>)

Published: 2024-10-17T00: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>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [debug](<https://devfeed.tech/tags/debug.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [efficient-data-encoding-in-go](<https://devfeed.tech/tags/efficient-data-encoding-in-go.md>), [encoding-json-in-go-with-type-assertions](<https://devfeed.tech/tags/encoding-json-in-go-with-type-assertions.md>), [format](<https://devfeed.tech/tags/format.md>), [go](<https://devfeed.tech/tags/go.md>), [go-encoding-json-package-tutorial](<https://devfeed.tech/tags/go-encoding-json-package-tutorial.md>), [go-interface-with-json](<https://devfeed.tech/tags/go-interface-with-json.md>), [go-json-handling](<https://devfeed.tech/tags/go-json-handling.md>), [go-programming-json-tips](<https://devfeed.tech/tags/go-programming-json-tips.md>), [go-strongly-typed-system-and-json](<https://devfeed.tech/tags/go-strongly-typed-system-and-json.md>), [handling-json-null-values-in-go](<https://devfeed.tech/tags/handling-json-null-values-in-go.md>), [json](<https://devfeed.tech/tags/json.md>), [json-decoding-in-go-examples](<https://devfeed.tech/tags/json-decoding-in-go-examples.md>), [json-encoding-in-go](<https://devfeed.tech/tags/json-encoding-in-go.md>), [json-for-engineers](<https://devfeed.tech/tags/json-for-engineers.md>), [json-marshalling-and-unmarshalling-in-go](<https://devfeed.tech/tags/json-marshalling-and-unmarshalling-in-go.md>), [json-schema-less-format-benefits-and-challenges](<https://devfeed.tech/tags/json-schema-less-format-benefits-and-challenges.md>), [json-vs-binary-formats-in-go](<https://devfeed.tech/tags/json-vs-binary-formats-in-go.md>), [mapping-json-to-go-types](<https://devfeed.tech/tags/mapping-json-to-go-types.md>), [pitfalls](<https://devfeed.tech/tags/pitfalls.md>), [working-with-json-in-go](<https://devfeed.tech/tags/working-with-json-in-go.md>)

### AI overview

Episode 2 explains JSON as a schema-less, human-readable format and examines its benefits and pitfalls. It focuses on mapping JSON data to Go's strongly typed system, handling nullable and numeric values, comparing JSON with binary formats, and using Go's encoding and decoding tools.

### Source excerpt

Introduction: Welcome to Episode 2 of JSON for Engineers! In this episode, we explore the unique characteristics of JSON as a schema-less format, discussing both its benefits and challenges. You'll learn how JSON's flexibility, while enabling rapid development, can create issues when working with strongly-typed languages like Go. Additionally, we'll cover the differences between JSON and more compact binary formats, and how to handle JSON's broader use in web applications.

## Generation configurations: temperature, top-k, top-p, and test time compute

DevFeed: [Generation configurations: temperature, top-k, top-p, and test time compute](<https://devfeed.tech/articles/generation-configurations-temperature-top-k-top-p-and-test-time-compute-31796.md>)

Original publisher: [Read original article](<https://huyenchip.com//2024/01/16/sampling.html>)

Author: Chip Huyen

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

Content type: tutorial

Language: en

Sources: [Chip Huyen](<https://devfeed.tech/sources/chip-huyen.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [Language models](<https://devfeed.tech/topics/language-models.md>), [Neural Network](<https://devfeed.tech/topics/neural-network.md>), [Inference](<https://devfeed.tech/topics/inference.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [hallucinations](<https://devfeed.tech/tags/hallucinations.md>), [inference](<https://devfeed.tech/tags/inference.md>), [ml](<https://devfeed.tech/tags/ml.md>), [neural](<https://devfeed.tech/tags/neural.md>), [neural-network](<https://devfeed.tech/tags/neural-network.md>), [responses](<https://devfeed.tech/tags/responses.md>), [token](<https://devfeed.tech/tags/token.md>), [tokens](<https://devfeed.tech/tags/tokens.md>)

### AI overview

This tutorial explains why machine-learning models produce probabilistic responses and how sampling, or decoding, generates them. It covers sampling strategies such as temperature, top-k, and top-p, test-time compute through multiple outputs, and structured outputs.

### Source excerpt

ML models are probabilistic. Imagine that you want to know what's the best cuisine in the world. If you ask someone this question twice, a minute apart, their answers both times should be the same. If you ask a model the same question twice, its answer can change. If the model thinks that Vietnamese cuisine has a 70% chance of being the best cuisine and Italian cuisine has a 30% chance, it'll answer "Vietnamese" 70% of the time, and "Italian" 30%. This probabilistic nature makes AI great for creative tasks. What is creativity but the ability to explore beyond the common possibilities, to think outside the box? However, this probabilistic nature also causes inconsistency and hallucinations. It's fatal for tasks that depend on factuality. Recently, I went over 3 months' worth of customer support requests of an AI startup I advise and found that ⅕ of the questions are because users don't understand or don't know how to work with this probabilistic nature. To understand why AI's responses are probabilistic, we need to understand how models generate responses, a process known as sampling (or decoding). This post consists of 3 parts. Sampling: sampling strategies and sampling variables including temperature, top-k, and top-p. Test time compute: increasing the compute allocated to inference, e.g. sampling multiple outputs, to help improve a model's performance. Structured outputs: how to get models to generate outputs in a certain format. Sampling Given an input, a neural network produces an output by first computing the probabilities of all possible values. For a classifier, possible values are the available classes. For example, if a model is trained to classify whether an email is spam, there are only two possible values: spam and not spam. The model computes the probability of each of these two values, say being spam is 90% and not spam is 10%. To generate the next token, a language model first computes the probability distribution over all tokens in the vocabulary. Fo

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

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

## Postgres 15: Logical Decoding Row Filters With Debezium

DevFeed: [Postgres 15: Logical Decoding Row Filters With Debezium](<https://devfeed.tech/articles/postgres-15-logical-decoding-row-filters-with-debezium-18858.md>)

Original publisher: [Read original article](<https://www.morling.dev/blog/postgres-15-logical-decoding-row-filters-with-debezium/>)

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

Content type: tutorial

Language: en

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

Topics: [Database](<https://devfeed.tech/topics/database.md>), [Replication](<https://devfeed.tech/topics/replication.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [connectors](<https://devfeed.tech/tags/connectors.md>), [data](<https://devfeed.tech/tags/data.md>), [database](<https://devfeed.tech/tags/database.md>), [debezium](<https://devfeed.tech/tags/debezium.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [network](<https://devfeed.tech/tags/network.md>), [pii](<https://devfeed.tech/tags/pii.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [replication](<https://devfeed.tech/tags/replication.md>), [server](<https://devfeed.tech/tags/server.md>)

### AI overview

This tutorial explains how Postgres 15 row filters for logical decoding can be used with Debezium to produce more targeted change data streams. It contrasts server-side filtering with Debezium-side configuration and transformations, including use cases involving bandwidth reduction, privacy, and tenant-specific streams. It also notes a Postgres bug affecting UPDATE and DELETE events when column lists are used.

### Source excerpt

Table of Contents Using Logical Decoding Row Filters With Debezium Observing Filtered Change Events Wrap-Up This post originally appeared on the Decodable blog. All rights reserved. Since logical decoding was added to Postgres in version 9.4, this powerful feature for capturing changes from the write-ahead log of the database has been continuously improved. Postgres 15, released in October this year, added support for fine-grained control over which columns (by means of column lists) and rows (via row filters) should be exported from captured tables. This means, in relational terminology, projections and filters are now natively supported by Postgres change event publications.

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

## Debugging Problematic Videos with ExoPlayer's Demo App

DevFeed: [Debugging Problematic Videos with ExoPlayer's Demo App](<https://devfeed.tech/articles/battling-problematic-videos-with-google-s-exoplayer-25144.md>)

Original publisher: [Read original article](<https://ianbird.dev/exoplayer-debugging-files/>)

Author: Ian Bird

Published: 2021-11-04T11:26:34Z

Content type: tutorial

Language: en

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

Topics: [ExoPlayer](<https://devfeed.tech/topics/exoplayer.md>), [Demo](<https://devfeed.tech/topics/demo.md>), [Android](<https://devfeed.tech/topics/android.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [demo](<https://devfeed.tech/tags/demo.md>), [exoplayer](<https://devfeed.tech/tags/exoplayer.md>), [json](<https://devfeed.tech/tags/json.md>), [python](<https://devfeed.tech/tags/python.md>), [repository](<https://devfeed.tech/tags/repository.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

A practical guide to diagnosing video playback problems in ExoPlayer by testing media with its Demo application. It explains how to add test files through the app's JSON configuration and how to stream files from Google Drive or a local Python HTTP server.

### Source excerpt

Unfortunately not all videos are created equally, and neither are Android devices. Learn some useful tips and tricks to sanity check your ExoPlayer integration by running the Demo App directly.

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

## Red announces preliminary Parse documentation and other planned projects for 2020

DevFeed: [Red announces preliminary Parse documentation and other planned projects for 2020](<https://devfeed.tech/articles/happy-new-year-22375.md>)

Original publisher: [Read original article](<https://www.red-lang.org/2020/01/happy-new-year.html>)

Author: Unknown (noreply@blogger.com)

Published: 2020-01-01T07:23:00Z

Content type: article

Language: en

Sources: [Red](<https://devfeed.tech/sources/red.md>)

Topics: [Red](<https://devfeed.tech/topics/red.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>)

Tags: [compilers](<https://devfeed.tech/tags/compilers.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [languages](<https://devfeed.tech/tags/languages.md>), [lexer](<https://devfeed.tech/tags/lexer.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [validation](<https://devfeed.tech/tags/validation.md>)

### AI overview

Red's New Year article previews projects planned for 2020, including a new product and a robust preliminary draft of documentation for the Parse dialect. It explains Parse's uses in searching, validation, extraction, modification, language processing, and encoding and decoding data formats.

### Source excerpt

Hello and happy new year, friends of Red! We have some exciting projects we've been working on that will be available this year, including a new product. Let's talk a little about what the team has been working on behind the scenes. (TL;DR: A cool new product with Red in 2020...plus, a robust preliminary draft of Parse documentation can now be previewed...CLI library...fast-lexer to merge soon...GTK on the horizon...and a new native OS calendar widget!) Documentation for Parse: Red's Language Construction Tool Our esteemed forerunner, Rebol, broke new ground with its Parse dialect, which Red has expanded on. Today, in Red, Parse has become an even more powerful built-in dialect (embedded domain-specific language) that processes input series with grammar rules in a clean and simple manner. Other language building tools exist, of course, such as Lexx and Yacc. ANTLR is a modern framework built in Java, and libraries exist for other languages, but the ease of use and power that Red's Parse offers is unique. This isn't a new feature, by any means, with the first public introduction here. Parse is easy enough to use that those basic docs have been enough, for the most part. But over time, with new users joining the Parse chat room to discuss the dialect, and it was time for full reference documentation. For the uninitiated, Parse can be used to for searching, to surface various patterns; validation, in order to confirm an input's compliance to a specification; extraction, to sift through data and aggregate values; and modification--that is, changing the input stream itself (insertion of values, removing or transforming matched input). And Parse's true power lies in language processing (compilers, interpreters, and lexical analyzers), particularly for DSLs; and encoding/decoding, to "translate" data formats from one to another. What makes Red's Parse dialect a killer feature is that you can do more than parse at the character level in strings of text. That's what every ot

## Using DTMF tones to route phone calls offline in the Simple healthcare app

DevFeed: [Using DTMF tones to route phone calls offline in the Simple healthcare app](<https://devfeed.tech/articles/reinventing-the-dial-up-modem-29024.md>)

Original publisher: [Read original article](<https://saket.me/dtmf-tones/>)

Author: Saket Narayan

Published: 2019-08-18T00:55:04Z

Content type: article

Language: en

Sources: [Saket Narayan](<https://devfeed.tech/sources/saket-narayan.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [Android](<https://devfeed.tech/topics/android.md>), [Internet](<https://devfeed.tech/topics/internet.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [communication](<https://devfeed.tech/tags/communication.md>), [data](<https://devfeed.tech/tags/data.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [dtmf](<https://devfeed.tech/tags/dtmf.md>), [offline-first](<https://devfeed.tech/tags/offline-first.md>), [proxy](<https://devfeed.tech/tags/proxy.md>), [simple](<https://devfeed.tech/tags/simple.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

The article explains how the Simple healthcare app used DTMF tones to send a patient's phone number to a server during calls, enabling phone-number masking and offline-first operation when internet access was unavailable.

### Source excerpt

While working on a healthcare app called Simple at my previous company, we wanted to improve how nurses follow up with their patients. The aim was to replace traditional paper registers + landline phones with the app, which could intelligently suggest patients who are potentially at risk based on their medical history, age, and other [...] The post Reinventing the dial-up modem appeared first on Saket Narayan.

## Release 306

DevFeed: [Release 306](<https://devfeed.tech/articles/release-306-8604.md>)

Original publisher: [Read original article](<https://trino.io/blog/2019/03/16/release-306.html>)

Published: 2019-03-16T00:00:00Z

Content type: release

Language: en

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

Topics: [releases](<https://devfeed.tech/topics/releases.md>), [bug](<https://devfeed.tech/topics/bug.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [data](<https://devfeed.tech/tags/data.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [notes](<https://devfeed.tech/tags/notes.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>)

### AI overview

Release 306 includes bug fixes and performance improvements for decoding ORC data.

### Source excerpt

This version includes some bug fixes, as well as performance improvements when decoding ORC data. Release notes Download

## How VP9 delivers value for Twitch's esports live streaming

DevFeed: [How VP9 delivers value for Twitch's esports live streaming](<https://devfeed.tech/articles/how-vp9-delivers-value-for-twitch-s-esports-live-streaming-20450.md>)

Original publisher: [Read original article](<https://medium.com/twitch-news/how-does-vp9-deliver-value-for-twitchs-esports-live-streaming-35db26f6322f?source=rss----3ae745429979--engineering>)

Author: Yueshi Shen

Published: 2018-12-19T21:12:17Z

Content type: article

Language: en

Sources: [Twitch](<https://devfeed.tech/sources/twitch.md>)

Topics: [Twitch](<https://devfeed.tech/topics/twitch.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [fpga](<https://devfeed.tech/topics/fpga.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [Playback](<https://devfeed.tech/topics/playback.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [compression](<https://devfeed.tech/tags/compression.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [fpga](<https://devfeed.tech/tags/fpga.md>), [h-264](<https://devfeed.tech/tags/h-264.md>), [live-streaming](<https://devfeed.tech/tags/live-streaming.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [twitch](<https://devfeed.tech/tags/twitch.md>), [videos](<https://devfeed.tech/tags/videos.md>), [vp9](<https://devfeed.tech/tags/vp9.md>)

### AI overview

This article explains how Twitch selected FPGA hardware for real-time VP9 encoding of premium esports and partner live streams. It discusses VP9's compression advantages and implementation challenges, and reports at least 25% bitrate savings compared with the highest-quality H.264 encoders used in Twitch's production.

### Source excerpt

By: Akrum Elkhazin, Video Algorithm Architect, NGCodec, akrum.elkhazin@ngcodec.com Avinash Ramachandran, Video Software Architect, NGCodec, avinash.ramachandran@ngcodec.com Roshan Baliga, Product Manager, Google, rdb@google.com Jai Krishnan, Product Manager, Google, jaikk@google.com Tarek Amara, Senior Video Specialist, Twitch, amatarek@twitch.tv Alex Converse, Senior Software Engineer, Twitch, alexconv@twitch.tv Yueshi Shen, Principal Research Engineer, Twitch, yshen@twitch.tv Summary: VP9 will soon help Twitch offer a better viewing experience for premium esports and partner channels Video compression is the key to successful delivery of digital video across various applications like broadcast, teleconference, surveillance, and online streaming services. Since 2003 (i.e., 15 years ago), H.264 has been the state-of-the-art video compression format and has enabled HDTV, Blu-ray Disc, Internet video websites (e.g., YouTube, Twitch), and so on. Nevertheless, according to Twitch's recent analysis, H.264 has reached its compression performance limit, particularly for real-time encoding of gaming content at the HD resolution (1080p60). On the other hand, newer-generation video standards, namely VP9, HEVC, and AV1, show significant compression gain, which can bring considerable commercial benefits to content platforms (e.g., offering viewers better video quality, reducing the video loading time and the buffering rate, increasing the customer reach, decreasing the IP transit cost). Currently, although decoding and playback of VP9 video are widely supported on devices and browsers used by Twitch's audience, encoding gaming video content with a high efficiency and real-time performance is a substantial challenge due to the high complexity of VP9. Through a rigorous feasibility study, we have eventually selected FPGA as the hardware platform for real-time VP9 encoding and are deploying it to broadcast our premium eSports and partner channels in the near future (please watch t

## Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part II

DevFeed: [Live Video Transmuxing/Transcoding: FFmpeg vs TwitchTranscoder, Part II](<https://devfeed.tech/articles/live-video-transmuxing-transcoding-ffmpeg-vs-twitchtranscoder-part-ii-20453.md>)

Original publisher: [Read original article](<https://medium.com/twitch-news/live-video-transmuxing-transcoding-ffmpeg-vs-twitchtranscoder-part-ii-4973f475f8a3?source=rss----3ae745429979--engineering>)

Author: Yueshi Shen

Published: 2017-10-23T21:08:55Z

Content type: article

Language: en

Sources: [Twitch](<https://devfeed.tech/sources/twitch.md>)

Topics: [FFmpeg (Fast Forward Moving Picture Experts Group)](<https://devfeed.tech/topics/ffmpeg.md>), [Transcodings](<https://devfeed.tech/topics/transcodings.md>), [Code](<https://devfeed.tech/topics/code.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [C](<https://devfeed.tech/topics/c.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ffmpeg](<https://devfeed.tech/tags/ffmpeg.md>), [files](<https://devfeed.tech/tags/files.md>), [function](<https://devfeed.tech/tags/function.md>), [loops](<https://devfeed.tech/tags/loops.md>), [message-queue](<https://devfeed.tech/tags/message-queue.md>), [programming](<https://devfeed.tech/tags/programming.md>), [thread](<https://devfeed.tech/tags/thread.md>), [threading](<https://devfeed.tech/tags/threading.md>), [threads](<https://devfeed.tech/tags/threads.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

This second part of a two-part series examines FFmpeg Release 3.3's threading model and transcoding pipeline for a one-input, multiple-output scenario. It traces how FFmpeg orchestrates I/O, filtering, decoding, encoding, and output processing, and reports that the number of input files determines input-thread creation, so a one-input scenario uses a single thread.

### Source excerpt

By: Jeff Gong, Software Engineer, jeffgon@twitch.tv Sahil Dhanju, Software Engineer Intern Chih-Chiang Lu, Senior Software Engineer, chihchil@twitch.tv Yueshi Shen, Principal Research Engineer, yshen@twitch.tv Special thanks go to: Christopher Kennedy, Staff Video Engineer at Crunchyroll/Ellation John Nichols, Principal Software Engineer at Xilinx, jnichol@xilinx.com for their information on FFmpeg and reviewing this article. Note: This is the second part of a 2-part series. Make sure you read Part 1 first. FFmpeg's 1-In-N-Out Pipeline. Why doesn't it handle the technical issues discussed earlier? How does FFmpeg programmatically deal with instances where a single input stream is required to generate multiple transcoded and/or transmuxed outputs? We went directly into the latest FFmpeg Release 3.3. source code in order to understand its threading model and transcoding pipeline. In the top-level ffmpeg.c file, the transcode() function (line 4544) loops and repeatedly calls transcode_step() (line 4478) until its inputs are completely processed, or until the user interrupts the execution. Transcode_step() wraps the main pipeline and orchestrates file I/O, filtering, decoding and encoding amongst many other immediate steps. During the initial setup phase, init_input_threads() (line 4020) is called, and based on the number of input files, a number of new threads may be spawned to process the input. if (nb_input_files == 1) { return 0;}for (i = 0; i < nb_input_files; i++) { ... ret = av_thread_message_queue_alloc(&f->in_thread_queue, f->thread_queue_size, sizeof(AVPacket)); // line 4033} In line 4033, we see that the number of threads spawned is solely determined by the number of inputs. This means FFmpeg will process a 1-in-N-out scenario using only a single thread. In get_input_packet() (line 4055), the multithreaded companion function get_input_packet_mt() (line 4047) is only called if the number of input files is greater than one. get_input_packet_mt() can read input

## Using createImageBitmap to reduce image-decoding jank

DevFeed: [Using createImageBitmap to reduce image-decoding jank](<https://devfeed.tech/articles/the-hack-is-back-39441.md>)

Original publisher: [Read original article](<https://aerotwist.com/blog/the-hack-is-back>)

Author: Paul Lewis

Published: 2016-01-25T00:00:00Z

Content type: article

Language: en

Sources: [Paul Lewis](<https://devfeed.tech/sources/paul-lewis.md>)

Topics: [Decoding](<https://devfeed.tech/topics/decoding.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Canvas](<https://devfeed.tech/topics/canvas.md>), [Chrome Canary](<https://devfeed.tech/topics/chrome-canary.md>), [Firefox](<https://devfeed.tech/topics/firefox.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [canvas](<https://devfeed.tech/tags/canvas.md>), [chrome-canary](<https://devfeed.tech/tags/chrome-canary.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [images](<https://devfeed.tech/tags/images.md>), [jank](<https://devfeed.tech/tags/jank.md>), [main-thread](<https://devfeed.tech/tags/main-thread.md>), [perf](<https://devfeed.tech/tags/perf.md>), [pixel](<https://devfeed.tech/tags/pixel.md>)

### AI overview

The article explains how image decoding can block other paint tasks and cause checkerboarding or jank. It introduces createImageBitmap as a browser-managed way to decode images off the main paint flow, noting availability in Chrome Canary behind an experimental canvas flag and in Firefox 42 onward.

### Source excerpt

Image decoding can be a source of checkboarding and jank. What if there was a way to work around it without resorting to a cluster of horror hacks? Step right up and meet my new friend createImageBitmap!

## Python Helpers for String/Unicode Encoding, Decoding and Printing

DevFeed: [Python Helpers for String/Unicode Encoding, Decoding and Printing](<https://devfeed.tech/articles/python-helpers-for-string-unicode-encoding-decoding-and-printing-31831.md>)

Original publisher: [Read original article](<https://www.metachris.dev/2015/11/python-tools-for-string-unicode-encoding-decoding-printing/>)

Author: Chris Hager

Published: 2015-11-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Chris Hager](<https://devfeed.tech/sources/chris-hager.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Code](<https://devfeed.tech/topics/code.md>), [pdf](<https://devfeed.tech/topics/pdf.md>), [console](<https://devfeed.tech/topics/console.md>), [Windows](<https://devfeed.tech/topics/windows.md>)

Tags: [console](<https://devfeed.tech/tags/console.md>), [decoding](<https://devfeed.tech/tags/decoding.md>), [encoding](<https://devfeed.tech/tags/encoding.md>), [pdf](<https://devfeed.tech/tags/pdf.md>), [python](<https://devfeed.tech/tags/python.md>), [string](<https://devfeed.tech/tags/string.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This tutorial presents two public-domain Python helpers: make_compat_str decodes bytes or strings into Unicode, while print_to_console prints Unicode safely across terminals and output encodings. The helpers are used in PDFx.

### Source excerpt

String encoding and decoding as well as encoding detection can be a headache, more so in Python 2 than in Python 3. Here are two little helpers which are used in PDFx, the PDF metadata and reference extractor: make_compat_str - decode any kind of bytes/str into an unicode object print_to_console - print (unicode) strings to any kind of console (even windows with cp437, etc.) All of this code is in the public domain via The Unlicense.

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