# Parsing

Published articles for Parsing.

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

## Building a RAG Pipeline for Semantic Code Search: A Developer Diary and Field Notes

DevFeed: [Building a RAG Pipeline for Semantic Code Search: A Developer Diary and Field Notes](<https://devfeed.tech/articles/building-a-rag-pipeline-for-semantic-code-search-a-developer-diary-and-field-notes-41302.md>)

Original publisher: [Read original article](<https://blog.jetbrains.com/ai/2026/09/building-a-rag-pipeline-for-semantic-code-search-a-developer-diary-and-field-notes/>)

Author: Adam Malek

Published: 2026-09-17T12:39:40Z

Content type: article

Language: en

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

Topics: [Retrieval Augmented Generation (RAG)](<https://devfeed.tech/topics/retrieval-augmented-generation-rag.md>), [code search](<https://devfeed.tech/topics/code-search.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>)

Tags: [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [ai](<https://devfeed.tech/tags/ai.md>), [code-search](<https://devfeed.tech/tags/code-search.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [llm](<https://devfeed.tech/tags/llm.md>), [llm-agents](<https://devfeed.tech/tags/llm-agents.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [rag](<https://devfeed.tech/tags/rag.md>), [search](<https://devfeed.tech/tags/search.md>), [semantic](<https://devfeed.tech/tags/semantic.md>)

### AI overview

Part 1 of a developer diary explains how JetBrains built a RAG pipeline for semantic code search, covering parsing, chunking, and vectorization. The pipeline is intended to give LLM agents precise, citable evidence from real repositories and retrieve code by meaning rather than exact keywords.

### Source excerpt

Part 1: Parsing, chunking, and vectorization Some time ago, we set out to build the best semantic code search platform we could: a RAG pipeline that gives LLM agents precise, citable evidence from real repositories instead of whatever grep happens to surface. The eventual solution was JetBrains Context. We got it working, we got it [...]

## Why KV Cache Stores K and V Vectors But Never Q?

DevFeed: [Why KV Cache Stores K and V Vectors But Never Q?](<https://devfeed.tech/articles/why-kv-cache-stores-k-and-v-vectors-but-never-q-18247.md>)

Original publisher: [Read original article](<https://blog.dailydoseofds.com/p/why-kv-cache-stores-k-and-v-vectors>)

Author: Avi Chawla

Published: 2026-08-30T20:15:33Z

Content type: article

Language: en

Sources: [Daily Dose of Data Science](<https://devfeed.tech/sources/daily-dose-of-data-science.md>)

Topics: [LLMs](<https://devfeed.tech/topics/llms.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Inference](<https://devfeed.tech/topics/inference.md>)

Tags: [gpu](<https://devfeed.tech/tags/gpu.md>), [interview](<https://devfeed.tech/tags/interview.md>), [llms](<https://devfeed.tech/tags/llms.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [pdf](<https://devfeed.tech/tags/pdf.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

The document discusses Marker v2, an open-source PDF parsing pipeline that uses shared inference serving and batching to improve GPU utilization. It also begins explaining autoregressive LLMs and why their forward pass is relevant to KV-cache behavior, but the supplied text ends before the explanation is complete.

### Source excerpt

A popular technical LLM interview question.

## Parsing common IPv4 addresses in C# with AVX-512

DevFeed: [Parsing common IPv4 addresses in C# with AVX-512](<https://devfeed.tech/articles/parsing-ip-addresses-in-c-at-crazy-speeds-29423.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/08/19/parsing-ip-addresses-in-c-at-crazy-speeds/>)

Author: Daniel Lemire

Published: 2026-08-19T19:07:48Z

Content type: article

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [C#](<https://devfeed.tech/topics/csharp.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [performance-optimization](<https://devfeed.tech/topics/performance-optimization.md>), [.NET](<https://devfeed.tech/topics/net.md>)

Tags: [avx](<https://devfeed.tech/tags/avx.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [ip](<https://devfeed.tech/tags/ip.md>), [ipv4](<https://devfeed.tech/tags/ipv4.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

The article examines parsing common IPv4 address strings in C# for performance. It discusses using SIMD and AVX-512 support in .NET 10, including masked loads for safely loading strings shorter than a SIMD register width.

### Source excerpt

We are all familiar with IP addresses such as 192.168.0.1. They are typically written as four numbers in the range 0 to 255 inclusive, separated by dots. In C#, you can parse them with the standard library using IPAddress.TryParse. Pedantic people are quick to point out that IP addresses can take different forms: they can ... Continue reading Parsing IP addresses in C# at crazy speeds

## DocLang: a markup language for LLMs

DevFeed: [DocLang: a markup language for LLMs](<https://devfeed.tech/articles/doclang-a-markup-language-for-llms-17332.md>)

Original publisher: [Read original article](<https://research.ibm.com/blog/doclang-ai-native-doc-standard>)

Author: Kim Martineau

Published: 2026-08-12T12:00:00Z

Content type: article

Language: en

Sources: [IBM Research](<https://devfeed.tech/sources/ibm-research.md>)

Topics: [XML](<https://devfeed.tech/topics/xml.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Generative AI](<https://devfeed.tech/topics/generative-ai.md>), [HTML](<https://devfeed.tech/topics/html.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [algorithms](<https://devfeed.tech/tags/algorithms.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [llms](<https://devfeed.tech/tags/llms.md>), [news](<https://devfeed.tech/tags/news.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

IBM researchers introduce DocLang, a constrained XML sub-language designed to help large language models interpret document structure. The article explains how it represents semantics, layout, bounding boxes, and reading order, and how it may reduce token use, latency, and inference costs in AI pipelines.

### Source excerpt

The lead researcher behind IBM's popular document parser, Docling, explains why generative AI needs its own document standard.

## We compiled our TypeScript parser to WASM

DevFeed: [We compiled our TypeScript parser to WASM](<https://devfeed.tech/articles/we-compiled-our-typescript-parser-to-wasm-17859.md>)

Original publisher: [Read original article](<https://encore.dev/blog/typescript-parser-wasm>)

Author: Ivan Cernja

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

Content type: article

Language: en

Sources: [Encore Updates](<https://devfeed.tech/sources/encore-updates.md>)

Topics: [Parser](<https://devfeed.tech/topics/parser.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [wasm](<https://devfeed.tech/topics/wasm.md>), [browser](<https://devfeed.tech/topics/browser.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [rust](<https://devfeed.tech/tags/rust.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [wasm](<https://devfeed.tech/tags/wasm.md>)

### AI overview

Encore describes compiling its Rust parser for TypeScript infrastructure declarations to WebAssembly so it can run in the browser. The browser-based parser supports reproducing parser errors from code snippets and shared links, and powers the tsparser.encore.dev playground.

### Source excerpt

How we compiled the Rust parser that reads infrastructure out of Encore code so it runs in the browser, and how we use it to reproduce the parser errors people report.

## Expanding Athena

DevFeed: [Expanding Athena](<https://devfeed.tech/articles/expanding-athena-13034.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/expanding-athena>)

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

Content type: article

Language: en

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

Topics: [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [open-source-security](<https://devfeed.tech/topics/open-source-security.md>), [Frontier AI](<https://devfeed.tech/topics/frontier-ai.md>), [AI Models](<https://devfeed.tech/topics/ai-models.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Security](<https://devfeed.tech/topics/security.md>), [Maintainers](<https://devfeed.tech/topics/maintainers.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [akrites](<https://devfeed.tech/tags/akrites.md>), [athena](<https://devfeed.tech/tags/athena.md>), [chainguard-clearinghouse](<https://devfeed.tech/tags/chainguard-clearinghouse.md>), [chainguard-libraries](<https://devfeed.tech/tags/chainguard-libraries.md>), [frontier-ai](<https://devfeed.tech/tags/frontier-ai.md>), [library](<https://devfeed.tech/tags/library.md>), [maintainers](<https://devfeed.tech/tags/maintainers.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [secure-open-source](<https://devfeed.tech/tags/secure-open-source.md>), [secure-oss](<https://devfeed.tech/tags/secure-oss.md>), [security](<https://devfeed.tech/tags/security.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

Chainguard describes Athena, an industry coalition coordinating the discovery, remediation, protection, disclosure, and upstream fixing of vulnerabilities in open source software. The article reports that Athena has processed more than 40,000 vulnerabilities and emphasizes that frontier AI models can identify latent flaws and chain lower-severity bugs into serious attacks.

### Source excerpt

See how Athena is helping secure open source by coordinating AI-discovered vulnerabilities, partner protections, and upstream fixes at scale.

## Crystal 1.20.3 is released!

DevFeed: [Crystal 1.20.3 is released!](<https://devfeed.tech/articles/crystal-1-20-3-is-released-22336.md>)

Original publisher: [Read original article](<https://crystal-lang.org/2026/07/02/1.20.3-released/>)

Author: Julien Portalier

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

Content type: release

Language: en

Sources: [Crystal](<https://devfeed.tech/sources/crystal.md>)

Topics: [Crystal](<https://devfeed.tech/topics/crystal.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [Parser](<https://devfeed.tech/topics/parser.md>)

Tags: [parsing](<https://devfeed.tech/tags/parsing.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [security](<https://devfeed.tech/tags/security.md>), [security-vulnerabilities](<https://devfeed.tech/tags/security-vulnerabilities.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

Crystal 1.20.3 is a release that fixes two security vulnerabilities in its YAML parsers. The fixes address excessive nesting that could cause stack overflows and excessive YAML alias expansion associated with billion laughs attacks. The article recommends upgrading when processing YAML files from unknown origins.

### Source excerpt

We are announcing a new Crystal release 1.20.3 with fixes for two security vulnerabilities in the YAML parsers. We recommend upgrading as soon as possible if your application processes YAML files from unknown origins.

## Parsing JSON at compile time with C++26 static reflection

DevFeed: [Parsing JSON at compile time with C++26 static reflection](<https://devfeed.tech/articles/parsing-json-at-compile-time-with-c-26-static-reflection-29412.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/06/14/parsing-json-at-compile-time-with-c26-static-reflection/>)

Author: Daniel Lemire

Published: 2026-06-14T14:59:44Z

Content type: tutorial

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [JSON](<https://devfeed.tech/topics/json.md>), [C](<https://devfeed.tech/topics/c.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [gcc](<https://devfeed.tech/topics/gcc.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [json](<https://devfeed.tech/tags/json.md>), [library](<https://devfeed.tech/tags/library.md>), [parsing](<https://devfeed.tech/tags/parsing.md>)

### AI overview

This tutorial demonstrates parsing a fixed JSON configuration file at compile time with C++26 static reflection and GCC 16. It explains embedding the file's bytes in the executable, using simdjson to synthesize a typed C++ object, and detecting malformed JSON during compilation instead of at startup.

### Source excerpt

Suppose that you have a configuration file in JSON. Something like this: { "width": 1920, "height": 1080, "fullscreen": true, "title": "My Game", "volume": 0.8 } Normally you ship this file alongside your program, open it at startup, read it, and parse it. That is a lot of work for data that never changes. What if ... Continue reading Parsing JSON at compile time with C++26 static reflection

## Build the Lab Once, Test It Forever: A CML2 Spine-Leaf Wired for pyATS

DevFeed: [Build the Lab Once, Test It Forever: A CML2 Spine-Leaf Wired for pyATS](<https://devfeed.tech/articles/build-the-lab-once-test-it-forever-a-cml2-spine-leaf-wired-for-pyats-30867.md>)

Original publisher: [Read original article](<https://brent.leekley.me/blog/build-the-lab-once/>)

Author: Brent Leekley

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

Content type: tutorial

Language: en

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

Topics: [Network](<https://devfeed.tech/topics/network.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Cisco](<https://devfeed.tech/topics/cisco.md>), [Code](<https://devfeed.tech/topics/code.md>), [API](<https://devfeed.tech/topics/api.md>), [Parser](<https://devfeed.tech/topics/parser.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cisco](<https://devfeed.tech/tags/cisco.md>), [cisco-modeling-labs](<https://devfeed.tech/tags/cisco-modeling-labs.md>), [cml](<https://devfeed.tech/tags/cml.md>), [cml2](<https://devfeed.tech/tags/cml2.md>), [code](<https://devfeed.tech/tags/code.md>), [genie](<https://devfeed.tech/tags/genie.md>), [iol-xe](<https://devfeed.tech/tags/iol-xe.md>), [network-automation](<https://devfeed.tech/tags/network-automation.md>), [network-testing](<https://devfeed.tech/tags/network-testing.md>), [ospf](<https://devfeed.tech/tags/ospf.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [pyats](<https://devfeed.tech/tags/pyats.md>), [spine-leaf](<https://devfeed.tech/tags/spine-leaf.md>), [testbed](<https://devfeed.tech/tags/testbed.md>), [virl2-client](<https://devfeed.tech/tags/virl2-client.md>)

### AI overview

This tutorial describes a four-node spine-leaf lab in Cisco Modeling Labs 2 (CML2) that generates a Cisco pyATS testbed from the CML API. The approach treats the lab definition as the source of truth so regenerated inventories remain aligned with topology changes, and uses an OSPF underlay with a management network.

### Source excerpt

Stop hand-maintaining your pyATS testbed. Build a four-node spine-leaf in CML2 as code, then generate the testbed straight from the CML API so it never drifts from the lab, with live Genie-parsed proof over a System Bridge management network.

## Maestro CLI 2.6.0: introducing Maestro Viewer

DevFeed: [Maestro CLI 2.6.0: introducing Maestro Viewer](<https://devfeed.tech/articles/maestro-cli-2-6-0-introducing-maestro-viewer-22905.md>)

Original publisher: [Read original article](<https://maestro.dev/blog/maestro-cli-v2-6-0>)

Author: Manu Armani

Published: 2026-05-25T09:00:00Z

Content type: release

Language: en

Sources: [mobile.dev - Medium](<https://devfeed.tech/sources/mobile-dev-medium.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [MCP](<https://devfeed.tech/topics/mcp.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [android](<https://devfeed.tech/tags/android.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [ios](<https://devfeed.tech/tags/ios.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [mcp](<https://devfeed.tech/tags/mcp.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [release](<https://devfeed.tech/tags/release.md>), [validation](<https://devfeed.tech/tags/validation.md>), [web-app](<https://devfeed.tech/tags/web-app.md>)

### AI overview

Maestro CLI v2.6.0 introduces Maestro Viewer, a web app that embeds an iOS simulator, Android emulator, or physical device inside a coding agent or browser. The release also adds more reliable concurrent local iOS execution, removes the bundled web-based Maestro Studio and Rhino JavaScript engine, and improves parsing errors, output paths, and iOS XCTest log collection.

### Source excerpt

Maestro CLI v2.6.0 ships Maestro Viewer: your coding agent now has a mobile device, live inside the agent. Plus faster iOS, cleaner output, and fixes.

## Parsing IPv6 Addresses with AVX-512

DevFeed: [Parsing IPv6 Addresses with AVX-512](<https://devfeed.tech/articles/parsing-ipv6-addresses-crazily-fast-with-avx-512-29408.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/05/23/parsing-ipv6-addresses-crazily-fast-with-avx-512/>)

Author: Daniel Lemire

Published: 2026-05-23T02:45:11Z

Content type: article

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [Parsing](<https://devfeed.tech/topics/parsing.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Internet](<https://devfeed.tech/topics/internet.md>)

Tags: [amd](<https://devfeed.tech/tags/amd.md>), [avx](<https://devfeed.tech/tags/avx.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [intel](<https://devfeed.tech/tags/intel.md>), [internet](<https://devfeed.tech/tags/internet.md>), [ipv6](<https://devfeed.tech/tags/ipv6.md>), [parsing](<https://devfeed.tech/tags/parsing.md>)

### AI overview

This article explains how an AVX-512 implementation parses IPv6 addresses using SIMD operations. The approach loads the input into a 512-bit register, identifies colons, expands bytes, translates hexadecimal digits, and combines them into bytes with few branches. It also describes a benchmark using randomly generated canonical compressed IPv6 addresses, but the supplied text does not include benchmark results.

### Source excerpt

Every machine connected to the Internet has an address called an IP address. Originally, these addresses were 32-bit integers (IPv4), giving a theoretical maximum of about four billion distinct addresses. We are all familiar with these addresses (e.g., 192.168.0.0). There was a big fuss about how we would run out of addresses. It never happened ... Continue reading Parsing IPv6 Addresses Crazily Fast with AVX-512

## Designing a custom AI agent for repetitive QA workflows

DevFeed: [Designing a custom AI agent for repetitive QA workflows](<https://devfeed.tech/articles/designing-a-custom-ai-agent-for-repetitive-qa-workflows-22591.md>)

Original publisher: [Read original article](<https://medium.com/amex-gbt-technology/designing-a-custom-ai-agent-for-repetitive-qa-workflows-6dcce6f9de10?source=rss----60a0578f4096---4>)

Author: Rimple Sharma

Published: 2026-05-18T06:01:01Z

Content type: tutorial

Language: en

Sources: [Amex GBT Technology](<https://devfeed.tech/sources/amex-gbt-technology.md>)

Topics: [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [context](<https://devfeed.tech/topics/context.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [ai-skills](<https://devfeed.tech/tags/ai-skills.md>), [context](<https://devfeed.tech/tags/context.md>), [markdown](<https://devfeed.tech/tags/markdown.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [software-testing](<https://devfeed.tech/tags/software-testing.md>), [test-automation](<https://devfeed.tech/tags/test-automation.md>)

### AI overview

This tutorial explains how to design a custom AI agent for repetitive QA workflows. It focuses on encoding structured instructions in Markdown, including headers, rules, variables, examples, output schemas, and executable commands, and introduces the agent's processing loop.

### Source excerpt

Part 2: Markdown as agent logic and the ReAct loop in action. In Part 1, I walked through the problem, repetitive QA work that resists pure scripting and the three pillars of a useful agent: input validation, context awareness, and a decision engine. I also showed why structured instructions beat plain text. This part is about how that structure gets encoded, how the loop runs, and what the impact looked like in practice. Why agents use Markdown When writing instructions for an agent, Markdown isn't just a formatting choice, it acts as a bridge between human-readable text and machine-processable logic. It's become a common format for agent communication because both humans and machines can work with it efficiently. But what most people miss... When you write agent instructions in Markdown, you're creating a weighted logic map, as well as just writing text. A few patterns that matter: 1. Semantic headers (#, ##) act as anchors for the agent's attention. Wrapping your mandatory rules under a clear header makes it far less likely the agent will overlook them mid-task. 2. Horizontal rules ( -- -) separate identity from instructions. Without this boundary, rules from one section bleed into another and the agent loses track of what governs what. 3. Bold keywords (**NEVER**, **ALWAYS**, **MANDATORY**) tend to be treated as hard constraints. Bold is a hard constraint. Italics are treated as a soft suggestion. 4. Blockquotes (>) are useful for examples. Wrapping an example in a blockquote signals to the agent that this is a reference, not a direct command. 5. {{curly_braces}} mark dynamic variables. They tell the agent that this part of the input will be filled in at runtime -- things like {{TICKET_ID}} or {{DATASET_NAME}} -- so it never substitutes a generic placeholder into a production file. 6. Fenced code blocks define output schemas. If you want the agent to always respond in a specific format, put that format in a code block. It treats it as a contract. 7. Inline code signa

## Joining forces to modernize legacy software

DevFeed: [Joining forces to modernize legacy software](<https://devfeed.tech/articles/joining-forces-to-modernize-legacy-software-20747.md>)

Original publisher: [Read original article](<https://tomassetti.me/joining-forces-to-modernize-legacy-software/>)

Author: Mary Louise Stewart

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

Content type: release

Language: en

Sources: [Federico Tomassetti](<https://devfeed.tech/sources/federico-tomassetti.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [Reverse Engineering](<https://devfeed.tech/topics/reverse-engineering.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>), [interoperability](<https://devfeed.tech/topics/interoperability.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>)

Tags: [code-generation](<https://devfeed.tech/tags/code-generation.md>), [interoperability](<https://devfeed.tech/tags/interoperability.md>), [legacy-code](<https://devfeed.tech/tags/legacy-code.md>), [legacy-modernization](<https://devfeed.tech/tags/legacy-modernization.md>), [migration](<https://devfeed.tech/tags/migration.md>), [model-driven-development](<https://devfeed.tech/tags/model-driven-development.md>), [modernization](<https://devfeed.tech/tags/modernization.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [reverse-engineering](<https://devfeed.tech/tags/reverse-engineering.md>), [software](<https://devfeed.tech/tags/software.md>), [transpilers](<https://devfeed.tech/tags/transpilers.md>)

### AI overview

Strumenta and Metadev announced a collaboration to modernize legacy software. Strumenta contributes code analysis, extraction, and transformation capabilities, while Metadev contributes modeling, AI integration, and code generation. Their approach uses LionWeb models as an intermediate representation between legacy code and modernized systems.

### Source excerpt

Strumenta and Metadev Join Forces to Modernize Legacy Software A collaboration combining Strumenta's expertise in code analysis, extraction, and transformation with Metadev's capabilities in modeling, artificial intelligence, and code generation from models. Torino/Seville, May 14, 2026 -- Strumenta S.r.l. and Metadev S.L. have reached a collaboration agreement to offer a joint approach to Modernizing Legacy [...] The post Joining forces to modernize legacy software appeared first on Federico Tomassetti.

## Matching JSON and whitespace characters efficiently on ARM processors

DevFeed: [Matching JSON and whitespace characters efficiently on ARM processors](<https://devfeed.tech/articles/the-fastest-way-to-match-characters-on-arm-processors-29401.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/04/19/the-fastest-way-to-match-characters-on-arm-processors/>)

Author: Daniel Lemire

Published: 2026-04-19T20:41:04Z

Content type: article

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [Arm](<https://devfeed.tech/topics/arm.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>)

Tags: [amd](<https://devfeed.tech/tags/amd.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [arm](<https://devfeed.tech/tags/arm.md>), [ascii](<https://devfeed.tech/tags/ascii.md>), [avx](<https://devfeed.tech/tags/avx.md>), [intel](<https://devfeed.tech/tags/intel.md>), [json](<https://devfeed.tech/tags/json.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [processors](<https://devfeed.tech/tags/processors.md>)

### AI overview

The article examines vectorized classification for matching ASCII whitespace and structural JSON characters. It describes a branch-free NEON approach and discusses newer ARM Scalable Vector Extension instructions as an alternative on recent ARM processors.

### Source excerpt

Consider the following problem. Given a string, you must match all of the ASCII white-space characters (\t, \n, \r, and the space) and some characters important in JSON (:, ,, [, ], {, }). JSON is a text-based data format used for web services. A toy JSON document looks as follows. { "name": "Alice", "age": ... Continue reading The fastest way to match characters on ARM processors?

## The importance of benchmarks

DevFeed: [The importance of benchmarks](<https://devfeed.tech/articles/the-importance-of-benchmarks-33535.md>)

Original publisher: [Read original article](<https://www.aha.io/engineering/articles/the-importance-of-benchmarks>)

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

Content type: article

Language: en

Sources: [Aha! Engineering Blog](<https://devfeed.tech/sources/aha-engineering-blog.md>)

Topics: [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [performance](<https://devfeed.tech/tags/performance.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

The Aha! Develop team investigated a sprint report that took 15 minutes to load and nearly froze the browser. The investigation traced the problem to inefficient progress parsing and data structures that duplicated days without events, producing a more than 100-fold performance increase after changes.

### Source excerpt

Late last year, the Aha! Develop team added support for team line-level reporting. During a team demo in the run-up to the release, we discovered one of our internal sprint reports was taking 15 minutes to load, almost freezing the browser in the p

## Bringing Rust to the Pixel Baseband

DevFeed: [Bringing Rust to the Pixel Baseband](<https://devfeed.tech/articles/bringing-rust-to-the-pixel-baseband-19818.md>)

Original publisher: [Read original article](<http://security.googleblog.com/2026/04/bringing-rust-to-pixel-baseband.html>)

Author: Edward Fernandez (noreply@blogger.com)

Published: 2026-04-10T15:12:00Z

Content type: article

Language: en

Sources: [Google Online Security](<https://devfeed.tech/sources/google-online-security.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [Memory Safety](<https://devfeed.tech/topics/memory-safety.md>), [Security](<https://devfeed.tech/topics/security.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-security](<https://devfeed.tech/tags/android-security.md>), [dns](<https://devfeed.tech/tags/dns.md>), [google](<https://devfeed.tech/tags/google.md>), [internet](<https://devfeed.tech/tags/internet.md>), [library](<https://devfeed.tech/tags/library.md>), [memory-safety](<https://devfeed.tech/tags/memory-safety.md>), [none](<https://devfeed.tech/tags/none.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [pixel](<https://devfeed.tech/tags/pixel.md>), [remote-code-execution](<https://devfeed.tech/tags/remote-code-execution.md>), [rust](<https://devfeed.tech/tags/rust.md>), [security](<https://devfeed.tech/tags/security.md>), [test-coverage](<https://devfeed.tech/tags/test-coverage.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

Google describes integrating a memory-safe Rust DNS parser into Pixel modem firmware. The post explains the security motivation, the modem's remote attack surface, and the evaluation of open-source Rust DNS libraries, identifying hickory-proto as the best candidate based on maintenance, test coverage, and adoption.

### Source excerpt

Posted by Jiacheng Lu, Software Engineer, Google Pixel Team Google is continuously advancing the security of Pixel devices. We have been focusing on hardening the cellular baseband modem against exploitation. Recognizing the risks associated within the complex modem firmware, Pixel 9 shipped with mitigations against a range of memory-safety vulnerabilities. For Pixel 10, Google is advancing its proactive security measures further. Following our previous discussion on "Deploying Rust in Existing Firmware Codebases", this post shares a concrete application: integrating a memory-safe Rust DNS(Domain Name System) parser into the modem firmware. The new Rust-based DNS parser significantly reduces our security risk by mitigating an entire class of vulnerabilities in a risky area, while also laying the foundation for broader adoption of memory-safe code in other areas. Here we share our experience of working on it, and hope it can inspire the use of more memory safe languages in low-level environments. Why Modem Memory Safety Can't Wait In recent years, we have seen increasing interest in the cellular modem from attackers and security researchers. For example, Google's Project Zero gained remote code execution on Pixel modems over the Internet. Pixel modem has tens of Megabytes of executable code. Given the complexity and remote attack surface of the modem, other critical memory safety vulnerabilities may remain in the predominantly memory-unsafe firmware code. Why DNS? The DNS protocol is most commonly known in the context of browsers finding websites. With the evolution of cellular technology, modern cellular communications have migrated to digital data networks; consequently, even basic operations such as call forwarding rely on DNS services. DNS is a complex protocol and requires parsing of untrusted data, which can lead to vulnerabilities, particularly when implemented in a memory-unsafe language (example: CVE-2024-27227). Implementing the DNS parser in Rust offers va

## Text formats are everywhere. Why?

DevFeed: [Text formats are everywhere. Why?](<https://devfeed.tech/articles/text-formats-are-everywhere-why-29394.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/03/05/text-formats-are-everywhere-why/>)

Author: Daniel Lemire

Published: 2026-03-05T14:40:58Z

Content type: opinion

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [Internet](<https://devfeed.tech/topics/internet.md>), [data](<https://devfeed.tech/topics/data.md>), [Web](<https://devfeed.tech/topics/web.md>), [JSON](<https://devfeed.tech/topics/json.md>), [HTML](<https://devfeed.tech/topics/html.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Code](<https://devfeed.tech/topics/code.md>), [GeoJSON](<https://devfeed.tech/topics/geojson.md>), [SVG](<https://devfeed.tech/topics/svg.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [html](<https://devfeed.tech/tags/html.md>), [internet](<https://devfeed.tech/tags/internet.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [json](<https://devfeed.tech/tags/json.md>), [maps](<https://devfeed.tech/tags/maps.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [web](<https://devfeed.tech/tags/web.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This commentary explains why text formats remain dominant across Internet technologies and data exchange. It argues that text is often efficient in practice, easier to transform, search, quote, version, and inspect, while noting that binary formats can be preferable in some performance-sensitive cases. It also emphasizes parsing and validating data received from remote sources.

### Source excerpt

The Internet relies on text formats. Thus, we spend a lot of time producing and consuming data encoded in text. Your web pages are HTML. The code running in them is JavaScript, sent as text (JavaScript source), not as already-parsed code. Your emails, including their attachments, are sent as text (your binary files are sent ... Continue reading Text formats are everywhere. Why?

## You can use newline characters in URLs

DevFeed: [You can use newline characters in URLs](<https://devfeed.tech/articles/you-can-use-newline-characters-in-urls-29393.md>)

Original publisher: [Read original article](<https://lemire.me/blog/2026/02/28/you-can-use-newline-characters-in-urls/>)

Author: Daniel Lemire

Published: 2026-02-28T19:21:39Z

Content type: tutorial

Language: en

Sources: [Daniel Lemire](<https://devfeed.tech/sources/daniel-lemire.md>)

Topics: [Web](<https://devfeed.tech/topics/web.md>), [browsers](<https://devfeed.tech/topics/browsers.md>), [HTML](<https://devfeed.tech/topics/html.md>), [SVG](<https://devfeed.tech/topics/svg.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [ascii](<https://devfeed.tech/tags/ascii.md>), [browsers](<https://devfeed.tech/tags/browsers.md>), [code](<https://devfeed.tech/tags/code.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [html](<https://devfeed.tech/tags/html.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [svg](<https://devfeed.tech/tags/svg.md>), [web](<https://devfeed.tech/tags/web.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This article explains that HTML URLs can contain newline and tab characters in practice because the URL parser reports a validation error but removes those characters and continues. It also describes how ASCII whitespace is handled in data URLs, including base64-encoded PNG and SVG images.

### Source excerpt

We locate web content using special addresses called URLs. We are all familiar with addresses like https://google.com. Sometimes, URLs can get long and they can become difficult to read. Thus, we might be tempted to format them like so in HTML using newline and tab characters, like so: <a href="https://lemire.me/blog/2026/02/21/ how-fast-do-browsers-correct-utf-16-strings/">my blog post</a> It will ... Continue reading You can use newline characters in URLs

## Hardwood: A New Parser for Apache Parquet

DevFeed: [Hardwood: A New Parser for Apache Parquet](<https://devfeed.tech/articles/hardwood-a-new-parser-for-apache-parquet-18827.md>)

Original publisher: [Read original article](<https://www.morling.dev/blog/hardwood-new-parser-for-apache-parquet/>)

Published: 2026-02-26T12:30:00Z

Content type: release

Language: en

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

Topics: [parquet](<https://devfeed.tech/topics/parquet.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [Java](<https://devfeed.tech/topics/java.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [DuckDB](<https://devfeed.tech/topics/duckdb.md>)

Tags: [apache-parquet](<https://devfeed.tech/tags/apache-parquet.md>), [compression](<https://devfeed.tech/tags/compression.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [java](<https://devfeed.tech/tags/java.md>), [maven-central](<https://devfeed.tech/tags/maven-central.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [parquet](<https://devfeed.tech/tags/parquet.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>)

### AI overview

The article announces Hardwood, an open-source Java 21+ parser for Apache Parquet. It is designed to minimize dependencies and improve parsing performance through a multithreaded decoding pipeline, with optional libraries for Parquet compression algorithms. The article also introduces Maven setup and row-oriented and columnar APIs.

### Source excerpt

Table of Contents Why Hardwood? Hello, Hardwood! Parsing Performance Built With AI, Not By AI What's Next? Today, it's my great pleasure to announce the first public release of Hardwood, a new parser for the Apache Parquet file format, optimized for minimal dependencies and great performance. Hardwood is open-source (Apache License 2.0) and supports Java 21 or newer. You can grab it from Maven Central and start parsing your Parquet files with ease and efficiency.

## Crafting Code: Building a Ruby Pattern Generator for a Crochet Circle

DevFeed: [Crafting Code: Building a Ruby Pattern Generator for a Crochet Circle](<https://devfeed.tech/articles/crafting-code-building-a-ruby-pattern-generator-for-a-crochet-circle-20114.md>)

Original publisher: [Read original article](<https://hashrocket.com/blog/posts/crafting-code-building-a-ruby-pattern-generator-for-a-crochet-circle>)

Author: Mary Lee

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

Content type: tutorial

Language: en

Sources: [Hashrocket](<https://devfeed.tech/sources/hashrocket.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [Code](<https://devfeed.tech/topics/code.md>), [coding](<https://devfeed.tech/topics/coding.md>)

Tags: [building](<https://devfeed.tech/tags/building.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [project](<https://devfeed.tech/tags/project.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [side-projects](<https://devfeed.tech/tags/side-projects.md>)

### AI overview

This tutorial describes building a Ruby class that generates crochet circle patterns. It explains how crochet rounds are formatted, how stitch abbreviations and counts reveal repeated increases, and how those patterns can be parsed and modeled in code.

### Source excerpt

In my time as a developer, I have noticed that one of the most common ways my coworkers spend time coding outside of work is by developing little code snippets or apps that solve problems in their everyday lives. From household budgeting, to managing workouts on rowing machines, to generating a Taco Bell order, these projects allow devs to explore different coding styles and learn new technologies. For a long time, most of my side projects have been for the sole purpose of learning a new technology. When I wanted to start building mobile apps with React Native, I wrote a small to-do app that, once finished, I abandoned. The same thing happened when I wanted to try to use PostgreSQL's listen and notify feature to build a live updating chat app. So, when I was thinking about a new side project, I decided it was time to work on something that could be long lived and help me with one of my favorite hobbies: crocheting. The Premise Recently, I've been making a lot of small projects that have started with a base shape that then gets built upon. Often, this shape is a circle. After running through several projects, I started to notice a pattern of increases and repetitions for each row. It occurred to me that if the shape followed a specific pattern, I could probably build a ruby class to generate that pattern. Thus began this side project! Breaking Down a Simplified Pattern To begin, we have to inspect the pattern. Crochet patterns follow a specific format, and use abbreviations for the types of stitches being used. The example pattern uses the following abbreviations and rules: Abbreviation Meaning Use Stitch Count sc single crochet adds a stitch to the round 1 inc increase (two single crochets in the same stitch) adds an extra stitch to the round 2 With those abbreviations in mind, we can start parsing the pattern. R1: 6sc in magic ring (6) R2: [inc] x6 (12) R3: [sc, inc] x6 (18) R4: sc, inc, [2sc, inc] x5, sc (24) R5: [3sc, inc] x6 (30) R6: 2sc, inc, [4sc, inc] x5, 2sc

## Case Study | Vertec | IT Industry | SQL Parser to translate code to English

DevFeed: [Case Study | Vertec | IT Industry | SQL Parser to translate code to English](<https://devfeed.tech/articles/case-study-vertec-it-industry-sql-parser-to-translate-code-to-english-20745.md>)

Original publisher: [Read original article](<https://tomassetti.me/case-study-vertec-sql-parser/>)

Author: Aisling Foley

Published: 2026-01-05T17:15:48Z

Content type: article

Language: en

Sources: [Federico Tomassetti](<https://devfeed.tech/sources/federico-tomassetti.md>)

Topics: [Parser](<https://devfeed.tech/topics/parser.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Code](<https://devfeed.tech/topics/code.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [case-study](<https://devfeed.tech/tags/case-study.md>), [code](<https://devfeed.tech/tags/code.md>), [databases](<https://devfeed.tech/tags/databases.md>), [interview](<https://devfeed.tech/tags/interview.md>), [language-engineering](<https://devfeed.tech/tags/language-engineering.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [software](<https://devfeed.tech/tags/software.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

This case study describes how Strumenta developed and delivered two SQL parsers for Vertec, enabling the company to translate SQL snippets and database-related code into English as it expanded beyond German-speaking markets. The project also included support, improvements, and issue fixes.

### Source excerpt

About Vertec Vertec a Swiss company founded in 1996, provides an integrated CRM and ERP solution for service providers. Their PSA (Professional Services Automation) software has over 1,200 customers across Europe enabling them to optimize business processes and boost daily productivity. Challenge Originally targeting German language companies in Switzerland and Germany, Vertec now operates in [...] The post Case Study | Vertec | IT Industry | SQL Parser to translate code to English appeared first on Federico Tomassetti.

## A Practical guide to building a parser in Go

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

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

Author: Tom

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

Content type: tutorial

Language: en

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

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

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

### AI overview

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

### Source excerpt

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

## Using JSON: json vs. jsonb, pglz vs. lz4, key optimization, parsing speed?

DevFeed: [Using JSON: json vs. jsonb, pglz vs. lz4, key optimization, parsing speed?](<https://devfeed.tech/articles/using-json-json-vs-jsonb-pglz-vs-lz4-key-optimization-parsing-speed-33670.md>)

Original publisher: [Read original article](<https://www.depesz.com/2025/11/29/using-json-json-vs-jsonb-pglz-vs-lz4-key-optimization-parsing-speed/>)

Author: depesz

Published: 2025-11-29T19:16:00Z

Content type: article

Language: en

Sources: [select \* from depesz;](<https://devfeed.tech/sources/select-from-depesz.md>)

Topics: [JSON](<https://devfeed.tech/topics/json.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [compression](<https://devfeed.tech/tags/compression.md>), [discord](<https://devfeed.tech/tags/discord.md>), [irc](<https://devfeed.tech/tags/irc.md>), [json](<https://devfeed.tech/tags/json.md>), [jsonb](<https://devfeed.tech/tags/jsonb.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [performance](<https://devfeed.tech/tags/performance.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [slack](<https://devfeed.tech/tags/slack.md>), [speed](<https://devfeed.tech/tags/speed.md>), [text](<https://devfeed.tech/tags/text.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

### AI overview

This article investigates JSON and JSONB storage in PostgreSQL, comparing pglz and LZ4 compression, storage overhead, key-name handling, and parsing speed. In the reported test, pglz compressed slightly better, while LZ4 processed 16 MB of text faster.

### Source excerpt

Recently(ish) I had a conversation on one of PostgreSQL support chats (IRC, Slack, or Discord) about efficient storage of JSON data, which compression to use, which datatype. Unrelated to this, some people (at least two over the last year or so) said that they aren't sure if PostgreSQL doesn't optimize storage between columns, for example, ... Continue reading "Using JSON: json vs. jsonb, pglz vs. lz4, key optimization, parsing speed?"

## Parsing: How Ruby Understands Your Code

DevFeed: [Parsing: How Ruby Understands Your Code](<https://devfeed.tech/articles/parsing-how-ruby-understands-your-code-31806.md>)

Original publisher: [Read original article](<https://patshaughnessy.net/2025/10/27/parsing-how-ruby-understands-your-code>)

Author: Pat Shaughnessy

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

Content type: article

Language: en

Sources: [Pat Shaughnessy](<https://devfeed.tech/sources/pat-shaughnessy.md>)

Topics: [Parsing](<https://devfeed.tech/topics/parsing.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [syntax](<https://devfeed.tech/topics/syntax.md>), [tokenization](<https://devfeed.tech/topics/tokenization.md>), [Code](<https://devfeed.tech/topics/code.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [code](<https://devfeed.tech/tags/code.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [tokenization](<https://devfeed.tech/tags/tokenization.md>), [updating-ruby-under-a-microscope](<https://devfeed.tech/tags/updating-ruby-under-a-microscope.md>)

### AI overview

This excerpt explains how Ruby parses source code after tokenization. It describes syntax matching, recursive parsing of subexpressions, and syntax errors when no pattern matches.

### Source excerpt

I've started working on a new edition of Ruby Under a Microscope that covers Ruby 3.x. I'm working on this in my spare time, so it will take a while. Leave a comment or drop me a line and I'll email you when it's finished. Update

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