# xml

Published articles for xml.

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

## A Failed XML-Based DSL Design Using a Large Regular Expression

DevFeed: [A Failed XML-Based DSL Design Using a Large Regular Expression](<https://devfeed.tech/articles/best-of-classic-wtf-a-dumbain-specific-language-28506.md>)

Original publisher: [Read original article](<https://thedailywtf.com/articles/classic-wtf-a-dumbain-specific-language>)

Author: Remy Porter

Published: 2026-09-07T06:30:00Z

Content type: opinion

Language: en

Sources: [The Daily WTF](<https://devfeed.tech/sources/the-daily-wtf.md>)

Topics: [XML](<https://devfeed.tech/topics/xml.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [best-of](<https://devfeed.tech/tags/best-of.md>), [bug](<https://devfeed.tech/tags/bug.md>), [code](<https://devfeed.tech/tags/code.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [domain-specific-languages](<https://devfeed.tech/tags/domain-specific-languages.md>), [dsls](<https://devfeed.tech/tags/dsls.md>), [regex](<https://devfeed.tech/tags/regex.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The article revisits a failed attempt to build a domain-specific language with XML schemas and a 1,310-character regular expression. It describes a bug in the expression and criticizes the resulting design as an unsuccessful effort to save labor.

### Source excerpt

It's a holiday here in the US, a celebration of labor, so we're reaching back through the archives for a story about an attempt to be labor saving that was not successful. Original. --Remy I've had to write a few domain-specific-languages in the past. As per Remy's Law of Requirements Gathering, it's been mostly because the users needed an Excel-like formula language. The danger of DSLs, of course, is that they're often YAGNI in the extreme, or at least a sign that you don't really understand your problem. XML, coupled with schemas, is a tool for building data-focused DSLs. If you have some complex structure, you can convert each of its features into an XML attribute. For example, if you had a grammar that looked something like this: The Source specification obeys the following syntax source = ( Feature1+Feature2+... ":" ) ? steps Feature1 = "local" | "global" Feature2 ="real" | "virtual" | "ComponentType.all" Feature3 ="self" | "ancestors" | "descendants" | "Hierarchy.all" Feature4 = "first" | "last" | "DayAllocation.all" If features are specified, the order of features as given above has strictly to be followed. steps = oneOrMoreNameSteps | zeroOrMoreNameSteps | componentSteps oneOrMoreNameSteps = nameStep ( "." nameStep ) * zeroOrMoreNameSteps = ( nameStep "." ) * nameStep = "#" name name is a string of characters from "A"-"Z", "a"-"z", "0"-"9", "-" and "_". No umlauts allowed, one character is minimum. componentSteps is a list of valid values, see below. Valid 'componentSteps' are: - GlobalValue - Product - Product.Brand - Product.Accommodation - Product.Accommodation.SellingAccom - Product.Accommodation.SellingAccom.Board - Product.Accommodation.SellingAccom.Unit - Product.Accommodation.SellingAccom.Unit.SellingUnit - Product.OnewayFlight - Product.OnewayFlight.BookingClass - Product.ReturnFlight - Product.ReturnFlight.BookingClass - Product.ReturnFlight.Inbound - Product.ReturnFlight.Outbound - Product.Addon - Product.Addon.Service - Product.Addon.ServiceFeatu

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

## kPointer Replaces cw-json with Support for JSON, YAML, HTML, and XML

DevFeed: [kPointer Replaces cw-json with Support for JSON, YAML, HTML, and XML](<https://devfeed.tech/articles/goodbye-cw-json-hello-kpointer-28101.md>)

Original publisher: [Read original article](<https://commonsware.com/blog/2026/07/22/goodbye-cwjson-hello-kpointer.html>)

Author: CommonsWare

Published: 2026-07-22T12:27:15Z

Content type: release

Language: en

Sources: [The CommonsBlog](<https://devfeed.tech/sources/the-commonsblog.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [JSON](<https://devfeed.tech/topics/json.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [HTML](<https://devfeed.tech/topics/html.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [cli](<https://devfeed.tech/tags/cli.md>), [data](<https://devfeed.tech/tags/data.md>), [html](<https://devfeed.tech/tags/html.md>), [json](<https://devfeed.tech/tags/json.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [xml](<https://devfeed.tech/tags/xml.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

kPointer replaces cw-json as a library for extracting values from structured data. It supports JSON, YAML, HTML, and XML through adapter-style abstractions, adds JavaScript access path notation, and includes conformance testing and a CLI.

### Source excerpt

The cw-json project has been replaced by kPointer -- learn what kPointer offers!

## Rich Text And Code Editing: RichTextArea And A Syntax-Highlighting CodeEditor

DevFeed: [Rich Text And Code Editing: RichTextArea And A Syntax-Highlighting CodeEditor](<https://devfeed.tech/articles/rich-text-and-code-editing-richtextarea-and-a-syntax-highlighting-codeeditor-19497.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/rich-text-and-code-editing/>)

Author: Shai Almog

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

Content type: article

Language: en

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

Topics: [Syntax Highlighting](<https://devfeed.tech/topics/syntax-highlighting.md>), [Code](<https://devfeed.tech/topics/code.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Web](<https://devfeed.tech/topics/web.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Python](<https://devfeed.tech/topics/python.md>), [CSS](<https://devfeed.tech/topics/css.md>), [JSON](<https://devfeed.tech/topics/json.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [code-completion](<https://devfeed.tech/tags/code-completion.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [css](<https://devfeed.tech/tags/css.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [python](<https://devfeed.tech/tags/python.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [web](<https://devfeed.tech/tags/web.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The article describes RichTextArea and CodeEditor, two Codename One visual editors built on a shared semantic abstraction. A bundled cross-platform web-view engine is the default backend, while ports can provide optional native peers. The CodeEditor supports syntax highlighting for eight languages, themes, automatic bracket and quote closing, and asynchronous code completion.

### Source excerpt

RichTextArea and a syntax-highlighting CodeEditor, both built on a shared editor abstraction with a cross-platform web-view engine and an optional native peer.

## Sliding Doors: ten years of RSS-Parser

DevFeed: [Sliding Doors: ten years of RSS-Parser](<https://devfeed.tech/articles/sliding-doors-ten-years-of-rss-parser-25593.md>)

Original publisher: [Read original article](<https://www.marcogomiero.com/posts/2026/rss-parser-ten-years/>)

Author: Marco Gomiero

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

Content type: opinion

Language: en

Sources: [Posts on Marco Gomiero](<https://devfeed.tech/sources/posts-on-marco-gomiero.md>)

Topics: [RSS Feed](<https://devfeed.tech/topics/rss-feed.md>), [RSS](<https://devfeed.tech/topics/rss.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Java](<https://devfeed.tech/topics/java.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [macOS](<https://devfeed.tech/topics/macos.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [ios](<https://devfeed.tech/tags/ios.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [macos](<https://devfeed.tech/tags/macos.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [rss](<https://devfeed.tech/tags/rss.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The author reflects on ten years of RSS-Parser, a library that began as part of an RSS-reading app and was later published for other developers. The article describes how the project contributed to the author's learning and career, including its move from Java to Kotlin and Coroutines, and its continued use in developing a new RSS app.

### Source excerpt

Today marks ten years since the first commit of RSS-Parser. TEN YEARS. I want to use this opportunity to reflect on the journey of this library, the sliding doors moments along the way, and the chain of events that made RSS-Parser an important part of my career. The bare bones of the library started earlier, though; it was 2015 when I wrote my first app that I've published to the Play Store. This app was for reading the articles of the tech blog that I was collaborating with (for a while I was reviewing apps, phones, consumer tech - that's when I fell in love with mobile). The blog was built (of course) with the good old WordPress, and at the time I discovered that you can have the published articles formatted in XML - yes, I discovered the existence of RSS.

## Extract Text from Your PDF and Image Files with Apache Tika

DevFeed: [Extract Text from Your PDF and Image Files with Apache Tika](<https://devfeed.tech/articles/extract-text-from-your-pdf-and-image-files-with-apache-tika-21847.md>)

Original publisher: [Read original article](<https://www.thepolyglotdeveloper.com/blog/2026/06/extract-text-from-your-pdf-and-image-files-with-apache-tika/>)

Author: Nic Raboy

Published: 2026-06-13T00:45:07Z

Content type: tutorial

Language: en

Sources: [Nic Raboy](<https://devfeed.tech/sources/nic-raboy.md>)

Topics: [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [container](<https://devfeed.tech/topics/container.md>), [AI search](<https://devfeed.tech/topics/ai-search.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [browser](<https://devfeed.tech/tags/browser.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [container](<https://devfeed.tech/tags/container.md>), [docker](<https://devfeed.tech/tags/docker.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [image](<https://devfeed.tech/tags/image.md>), [pdf](<https://devfeed.tech/tags/pdf.md>), [rag](<https://devfeed.tech/tags/rag.md>), [services](<https://devfeed.tech/tags/services.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This tutorial explains how to deploy Apache Tika with Docker or Docker Compose and use it to extract text from PDF, image, and other document formats. The extracted text can provide plaintext context for local AI tools and RAG workflows.

### Source excerpt

With AI becoming increasingly popular in everything, and retrieval-augmented generation (RAG) becoming a requirement in everyone's organization, how you're providing context to the AI tools becomes im... The post Extract Text from Your PDF and Image Files with Apache Tika appeared first on The Polyglot Developer.

## OpenAPI, ORM, SVG and Lottie

DevFeed: [OpenAPI, ORM, SVG and Lottie](<https://devfeed.tech/articles/openapi-orm-svg-and-lottie-19231.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/build-time-codegen/>)

Author: Shai Almog

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

Content type: release

Language: en

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

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [JSON](<https://devfeed.tech/topics/json.md>), [XML](<https://devfeed.tech/topics/xml.md>), [SVG](<https://devfeed.tech/topics/svg.md>), [ASP.NET Core](<https://devfeed.tech/topics/asp-net-core.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Nest](<https://devfeed.tech/topics/nestjs.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [http](<https://devfeed.tech/tags/http.md>), [java](<https://devfeed.tech/tags/java.md>), [json](<https://devfeed.tech/tags/json.md>), [lottie](<https://devfeed.tech/tags/lottie.md>), [maven-plugin](<https://devfeed.tech/tags/maven-plugin.md>), [net](<https://devfeed.tech/tags/net.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [orm](<https://devfeed.tech/tags/orm.md>), [rest](<https://devfeed.tech/tags/rest.md>), [spring](<https://devfeed.tech/tags/spring.md>), [svg](<https://devfeed.tech/tags/svg.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

A Codename One release follow-up describes a shared build-time code generation pipeline for OpenAPI client generation, a SQLite ORM, JSON and XML mappers, SVG and Lottie transcoders, and a declarative router. The pipeline emits typed Java from annotations or declarative source files without reflection.

### Source excerpt

An OpenAPI client generator, a JPA-shaped SQLite ORM, JAXB-shaped JSON / XML mappers, build-time SVG / Lottie transcoders, and a declarative router with deep links. All on the same build-time codegen pipeline.

## From RSS to Atom

DevFeed: [From RSS to Atom](<https://devfeed.tech/articles/from-rss-to-atom-37668.md>)

Original publisher: [Read original article](<https://susam.net/from-rss-to-atom.html>)

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

Content type: opinion

Language: en

Sources: [Susam Pal](<https://devfeed.tech/sources/susam-pal.md>)

Topics: [Atom Feed](<https://devfeed.tech/topics/atom-feed.md>), [RSS Feed](<https://devfeed.tech/topics/rss-feed.md>), [Lisp](<https://devfeed.tech/topics/lisp.md>), [Git](<https://devfeed.tech/topics/git.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [git](<https://devfeed.tech/tags/git.md>), [git-commit](<https://devfeed.tech/tags/git-commit.md>), [lisp](<https://devfeed.tech/tags/lisp.md>), [rss](<https://devfeed.tech/tags/rss.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The author describes switching a personal website from RSS feeds to Atom feeds in 2026. The change was implemented in Common Lisp, took about an hour, and included replacing RSS item identifiers with UUID-based Atom entry identifiers and updating feed templates.

### Source excerpt

Yesterday, I switched my website from RSS feeds to Atom feeds. In case you are wondering whether you have somehow landed on an ancient post from 2010, no, you have not. Yes, this is the year 2026, and I have finally switched from RSS feeds to Atom feeds. Yes, I am fifteen, or perhaps twenty, years too late. Contents Impulse Coding Atom Entries Temporary Workaround Does It Matter? References Impulse Coding I have always wanted to do this but could never make the time for it. Finally, it happened while I was giving my brain some rest from my ongoing algebraic graph theory studies. That's when I felt like spending a little time on my website and doing a little Lisp to change the feeds from RSS to Atom. I suppose this was impulse coding, a bit like impulse buying, except that I ended up with an Atom feed instead of a new book. I find it quite surprising that when I have plenty of time, it usually does not occur to me to do these things, but when I am too busy and really short of time, these little ideas possess me during the short breaks I take. My personal website is one of my passion projects. Common Lisp is one of my favourite programming languages. So any time spent on this passion project using my favourite programming language is a very relaxing experience for me. It serves as an ideal break between intense study sessions. It took about an hour to implement the changes needed to make the switch from RSS to Atom. In the end, I could go back to my studies reinvigorated. In case you are curious, here is the Git commit where I implemented the change from RSS to Atom: 596e1dd. As you might notice, a large portion of the change consists of replacing the key attribute in each post with the uuid attribute. The key attribute value was used as the value of the <guid> element in the RSS feeds. While an arbitrary short string could serve as the <guid> element for the items in an RSS feed, the <id> element of the entries in an Atom feed needs to be a URI. It turns out UUID URN

## Managing Sensitive Data in jOOQ 3.21+ Logs

DevFeed: [Managing Sensitive Data in jOOQ 3.21+ Logs](<https://devfeed.tech/articles/managing-sensitive-data-in-jooq-3-21-logs-28956.md>)

Original publisher: [Read original article](<https://blog.jooq.org/managing-sensitive-data-in-jooq-3-21-logs/>)

Author: lukaseder

Published: 2026-03-27T12:45:19Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [Logging](<https://devfeed.tech/topics/logging.md>), [sensitive data](<https://devfeed.tech/topics/sensitive-data.md>), [Security](<https://devfeed.tech/topics/security.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [csv](<https://devfeed.tech/tags/csv.md>), [debug-logging](<https://devfeed.tech/tags/debug-logging.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [json](<https://devfeed.tech/tags/json.md>), [logging](<https://devfeed.tech/tags/logging.md>), [logs](<https://devfeed.tech/tags/logs.md>), [maven](<https://devfeed.tech/tags/maven.md>), [redacted-columns](<https://devfeed.tech/tags/redacted-columns.md>), [security](<https://devfeed.tech/tags/security.md>), [sensitive-data](<https://devfeed.tech/tags/sensitive-data.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This article explains how jOOQ debug logging can expose query bind values and fetched records in application logs, creating security concerns in production. It describes a code-generation configuration available in commercial jOOQ distributions to mask exported data, including text, HTML, and optionally CSV, JSON, or XML output.

### Source excerpt

One of jOOQ's most popular feature is the out-of-the-box debug logging experience. jOOQ developers find this feature very useful when developing their applications. Assuming you run a jOOQ query and configure your logger to print DEBUG log output: When this query is executed, your log output might contain something like this: Executing query : select ... Continue reading Managing Sensitive Data in jOOQ 3.21+ Logs ->

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

## Moved my blog to \[blog.wagemakers.be\](https://blog.wagemakers.be)

DevFeed: [Moved my blog to \[blog.wagemakers.be\](https://blog.wagemakers.be)](<https://devfeed.tech/articles/moved-my-blog-to-blog-wagemakers-be-https-blog-wagemakers-be-39540.md>)

Original publisher: [Read original article](<https://blog.wagemakers.be/blog/2026/01/26/blog-wagemakers-be/>)

Author: Staf Wagemakers

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

Content type: tutorial

Language: en

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

Topics: [migration](<https://devfeed.tech/topics/migration.md>), [hosting](<https://devfeed.tech/topics/hosting.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Security](<https://devfeed.tech/topics/security.md>), [RSS Feed](<https://devfeed.tech/topics/rss-feed.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [Atom](<https://devfeed.tech/topics/atom.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [atom](<https://devfeed.tech/tags/atom.md>), [blog](<https://devfeed.tech/tags/blog.md>), [disquss](<https://devfeed.tech/tags/disquss.md>), [github](<https://devfeed.tech/tags/github.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [html](<https://devfeed.tech/tags/html.md>), [https](<https://devfeed.tech/tags/https.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [jekell](<https://devfeed.tech/tags/jekell.md>), [migration](<https://devfeed.tech/tags/migration.md>), [rss](<https://devfeed.tech/tags/rss.md>), [security](<https://devfeed.tech/tags/security.md>), [security-privacy](<https://devfeed.tech/tags/security-privacy.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The author moved the blog from GitHub to self-hosted hosting and documents the migration issues encountered. The article covers HTML redirects, updating hardcoded links, Disqus comment reindexing, and difficulties redirecting RSS feeds when moving from Octopress to Jekyll.

### Source excerpt

If you follow my blog posts with an RSS reader, update the rss feed to: https://blog.wagemakers.be/atom.xml ...If you want to continue to follow me off-course ;-) I moved my blog from GitHub to my own hosting ( powered by Procolix ). Procolix sponsored my hosting for 20 years, till I decided to start my company Mask27.dev. One reason is that Microsoft seems to like to put "copilot everywhere", including on repositories hosted on github. While I don't dislike AI ( artificial intelligence ), LLM ( Large Language Models ) are a nice piece of technology. The security, privacy, and other issues are overlooked or even just ignored. The migration was a bit more complicated as usual, as nothing "is easy" ;-) You'll find the pitfalls of moving my blog below as they might be useful for somebody else ( including the future me ).

## \[Pentesting\] ONVIF (CCTV cameras) auth

DevFeed: [\[Pentesting\] ONVIF (CCTV cameras) auth](<https://devfeed.tech/articles/pentesting-onvif-cctv-cameras-auth-20544.md>)

Original publisher: [Read original article](<https://yurichev.com/blog/ONVIF/>)

Published: 2025-11-27T23:00:00Z

Content type: tutorial

Language: en

Sources: [Dennis Yurichev](<https://devfeed.tech/sources/dennis-yurichev.md>)

Topics: [passwords](<https://devfeed.tech/topics/passwords.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [auth](<https://devfeed.tech/tags/auth.md>), [camera](<https://devfeed.tech/tags/camera.md>), [cameras](<https://devfeed.tech/tags/cameras.md>), [password](<https://devfeed.tech/tags/password.md>), [python](<https://devfeed.tech/tags/python.md>), [tcp](<https://devfeed.tech/tags/tcp.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This article examines ONVIF authentication for CCTV cameras over TCP. It explains the username, password digest, nonce, and date fields, gives the digest calculation, and describes using Hashcat to crack a known password digest.

### Source excerpt

[Pentesting] ONVIF (CCTV cameras) auth

## XML Modelling in OpenAPI 3.2: A Quiet but Important Upgrade for Enterprise Teams

DevFeed: [XML Modelling in OpenAPI 3.2: A Quiet but Important Upgrade for Enterprise Teams](<https://devfeed.tech/articles/xml-modelling-in-openapi-3-2-a-quiet-but-important-upgrade-for-enterprise-teams-30964.md>)

Original publisher: [Read original article](<https://developerhub.io/blog/xml-modelling-in-openapi-3-2-a-quiet-but-important-upgrade-for-enterprise-teams/>)

Author: Zaid Daba'een

Published: 2025-11-14T14:54:07Z

Content type: tutorial

Language: en

Sources: [DeveloperHub.io](<https://devfeed.tech/sources/developerhub-io.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [XML](<https://devfeed.tech/topics/xml.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api-design](<https://devfeed.tech/tags/api-design.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [enterprise](<https://devfeed.tech/tags/enterprise.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

OpenAPI 3.2 expands XML modelling with clearer support for namespaces, attributes, mixed content, and precisely named nested wrappers. The article explains how these capabilities address limitations in OpenAPI 3.1 and reduce reliance on parallel XSDs, proprietary extensions, and prose documentation.

### Source excerpt

OpenAPI 3.2 modernises XML support with richer modelling, proper attribute handling, and nested structures. It removes old workarounds and gives enterprise teams clearer, more accurate ways to define their XML based APIs.

## Changes in ipSpace.net RSS Feeds

DevFeed: [Changes in ipSpace.net RSS Feeds](<https://devfeed.tech/articles/changes-in-ipspace-net-rss-feeds-11255.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/10/changes-rss-feeds/>)

Published: 2025-10-08T04:40:00Z

Content type: article

Language: en

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

Topics: [RSS Feed](<https://devfeed.tech/topics/rss-feed.md>), [Atom](<https://devfeed.tech/topics/atom.md>), [Atom Feed](<https://devfeed.tech/topics/atom-feed.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [XML](<https://devfeed.tech/topics/xml.md>), [HTML](<https://devfeed.tech/topics/html.md>)

Tags: [hugo](<https://devfeed.tech/tags/hugo.md>), [rss](<https://devfeed.tech/tags/rss.md>), [update](<https://devfeed.tech/tags/update.md>), [web](<https://devfeed.tech/tags/web.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The author describes replacing the ipSpace.net RSS and Atom feed generation system with static Hugo-generated feeds, adding redirects for older URLs, and discontinuing the free-content feed. The changes followed a Feedburner failure that prevented Apple Podcasts from discovering a new episode. The article also discusses feed formatting issues involving iTunes tags, whitespace trimming, HTML escaping, content truncation, and conversion of HTML to plain text.

### Source excerpt

TL&DR: You shouldn't see any immediate impact of this change, but I'll eventually clean up old stuff, so you might want to check the URLs if you use RSS/Atom feeds to get the list of ipSpace.net blog posts or podcast episodes. The (hopefully) final URLs are listed on this page. Executive Summary: I cleaned up the whole ipSpace.net RSS/Atom feeds system. The script that generated the content for various feeds has been replaced with static Hugo-generated RSS/Atom feeds. I added redirects for all the old stuff I could find (including ioshints.blogspot.com), but I could have missed something. The only defunct feed is the free content feed (which hasn't changed in a while, anyway), as it required scanning the documents database. You can use this page to find the (ever-increasing) free content. And now for the real story ;) Read more ...

## Compose Unstyled v1.40: Android XML themes

DevFeed: [Compose Unstyled v1.40: Android XML themes](<https://devfeed.tech/articles/compose-unstyled-v1-40-android-xml-themes-28446.md>)

Original publisher: [Read original article](<https://composables.com/blog/compose-unstyled-1.40.0>)

Author: Alex Styl

Published: 2025-08-14T00:00:00Z

Content type: release

Language: en

Sources: [Composables - Concise, no-fluff video tutorials for Android developers](<https://devfeed.tech/sources/composables-concise-no-fluff-video-tutorials-for-android-developers.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Android](<https://devfeed.tech/topics/android.md>), [XML](<https://devfeed.tech/topics/xml.md>), [material-components](<https://devfeed.tech/topics/material-components.md>)

Tags: [adapter](<https://devfeed.tech/tags/adapter.md>), [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [compose](<https://devfeed.tech/tags/compose.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [material-components](<https://devfeed.tech/tags/material-components.md>), [migration](<https://devfeed.tech/tags/migration.md>), [performance](<https://devfeed.tech/tags/performance.md>), [v1](<https://devfeed.tech/tags/v1.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

Compose Unstyled v1.40.0 introduces the resolveTheme API, which lets Jetpack Compose resolve selected values from existing Android XML themes during a gradual migration from Views. The approach avoids maintaining duplicate theme sources, but each resolution has a measurable performance cost and is intended to be temporary.

### Source excerpt

v1.40.0 introduces a new resolveThemeX() API to make the migration to Jetpack Compose simpler.

## Where Are the NETCONF/YANG Tools?

DevFeed: [Where Are the NETCONF/YANG Tools?](<https://devfeed.tech/articles/where-are-the-netconf-yang-tools-11201.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/06/netconf-tooling/>)

Published: 2025-06-04T05:38:00Z

Content type: opinion

Language: en

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

Topics: [NETCONF](<https://devfeed.tech/topics/netconf.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Network](<https://devfeed.tech/topics/network.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [netconf](<https://devfeed.tech/tags/netconf.md>), [network](<https://devfeed.tech/tags/network.md>), [network-automation](<https://devfeed.tech/tags/network-automation.md>), [tooling](<https://devfeed.tech/tags/tooling.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The article examines difficulties finding reliable, current tooling for NETCONF/YANG network-device configuration and model inspection. It discusses ncclient's incomplete documentation, abandoned or outdated YANG tools, installation problems on modern Python versions, and the challenges of using Docker-based tooling. It mentions pyang as a possible tool and asks readers to recommend maintained alternatives.

### Source excerpt

Jo attempted to follow the vendor Kool-Aid recommendations and use NETCONF/YANG to configure network devices. Here's what he found (slightly edited): IMHO, the whole NETCONF ecosystem primarily suffers from a tooling problem. Or I haven't found the right tools yet. ncclient is (as you mentioned somewhere else) an underdocumented mess. And that undocumented part is not even up to date. The commit hash at the bottom of the docs page is from 2020... I am amazed how so many people got it working well enough to depend on it in their applications. Read more ...

## Repost: On the Advantages of XML

DevFeed: [Repost: On the Advantages of XML](<https://devfeed.tech/articles/repost-on-the-advantages-of-xml-11188.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/05/repost-xml-advantages/>)

Published: 2025-05-26T06:07:00Z

Content type: article

Language: en

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

Topics: [XML](<https://devfeed.tech/topics/xml.md>), [JSON](<https://devfeed.tech/topics/json.md>), [NETCONF](<https://devfeed.tech/topics/netconf.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Python](<https://devfeed.tech/topics/python.md>), [ChatGPT](<https://devfeed.tech/topics/chatgpt.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [automation](<https://devfeed.tech/tags/automation.md>), [chatgpt](<https://devfeed.tech/tags/chatgpt.md>), [json](<https://devfeed.tech/tags/json.md>), [netconf](<https://devfeed.tech/tags/netconf.md>), [python](<https://devfeed.tech/tags/python.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This reposted discussion examines XML and JSON for network automation. It argues that XML's semantic structure can support reliable, maintainable automation despite XML's size and complexity, while describing mixed results from ChatGPT-generated XPath and Python code, including failures in a fuller ncclient solution.

### Source excerpt

Continuing the discussion started by my Breaking APIs or Data Models Is a Cardinal Sin and Screen Scraping in 2025 blog posts, Dr. Tony Przygienda left another thoughtful comment worth reposting as a publicly visible blog post: Having read your newest rant around my rant ;-} I can attest that you hit the nail on the very head in basically all you say: XML output big? yeah. JSON squishy syntax? yeah. SSH prioritization? You didn't live it until you had a customer where a runaway python script generated 800+ XML netconf sessions pumping data ;-) Read more ...

## Screen Scraping in 2025

DevFeed: [Screen Scraping in 2025](<https://devfeed.tech/articles/screen-scraping-in-2025-11190.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/05/screen-scraping-2025/>)

Published: 2025-05-07T09:32:00Z

Content type: opinion

Language: en

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

Topics: [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [JSON](<https://devfeed.tech/topics/json.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [code](<https://devfeed.tech/tags/code.md>), [data](<https://devfeed.tech/tags/data.md>), [json](<https://devfeed.tech/tags/json.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [python](<https://devfeed.tech/tags/python.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The article examines why screen scraping remains necessary for network devices that lack reliable JSON or XML output. It compares screen-scraped text with structured data, noting that JSON and XML can be larger and that manually generated or legacy structured output may be invalid or unavailable. It also argues that XML is generally harder to process than JSON, especially for large objects and data involving namespaces.

### Source excerpt

Dr. Tony Przygienda left a very valid (off-topic) comment to my Breaking APIs or Data Models Is a Cardinal Sin blog post: If, on the other hand, the customers would not camp for literally tens of years on regex scripts scraping screens, lots of stuff could progress much faster. He's right, particularly from Juniper's perspective; they were the first vendor to use a data-driven approach to show commands. Unfortunately, we're still not living in a perfect world: Read more ...

## Inner Loop Agents

DevFeed: [Inner Loop Agents](<https://devfeed.tech/articles/inner-loop-agents-33461.md>)

Original publisher: [Read original article](<https://timkellogg.me/blog/2025/04/19/inner-loops>)

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

Content type: opinion

Language: en

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

Topics: [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [Ollama](<https://devfeed.tech/topics/ollama.md>), [vllm](<https://devfeed.tech/topics/vllm.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Reinforcement learning](<https://devfeed.tech/topics/reinforcement-learning.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [anthropic](<https://devfeed.tech/tags/anthropic.md>), [api](<https://devfeed.tech/tags/api.md>), [json](<https://devfeed.tech/tags/json.md>), [llm](<https://devfeed.tech/tags/llm.md>), [ollama](<https://devfeed.tech/tags/ollama.md>), [openai](<https://devfeed.tech/tags/openai.md>), [parsing](<https://devfeed.tech/tags/parsing.md>), [reinforcement-learning](<https://devfeed.tech/tags/reinforcement-learning.md>), [tools](<https://devfeed.tech/tags/tools.md>), [vllm](<https://devfeed.tech/tags/vllm.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This article explains "inner loop agents," a design in which an LLM can parse and execute tool calls within the model-serving loop instead of returning control to a client. It discusses how software such as Ollama and vLLM handles model-specific tool-call formats and suggests that concurrent tool use during generation is a key motivation.

### Source excerpt

What if an LLM could use tools directly? In this post I discuss a potentially divergent view of agents, where agents are less like systems and more like LLMs specially trained to solve problems with a specific set of tools.

## SAML roulette: the hacker always wins

DevFeed: [SAML roulette: the hacker always wins](<https://devfeed.tech/articles/saml-roulette-the-hacker-always-wins-7696.md>)

Original publisher: [Read original article](<https://portswigger.net/research/saml-roulette-the-hacker-always-wins>)

Author: Gareth Heyes

Published: 2025-03-18T14:55:43Z

Content type: article

Language: en

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

Topics: [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Security](<https://devfeed.tech/topics/security.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Exploit](<https://devfeed.tech/topics/exploit.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [attacks](<https://devfeed.tech/tags/attacks.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [exploit](<https://devfeed.tech/tags/exploit.md>), [github](<https://devfeed.tech/tags/github.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [library](<https://devfeed.tech/tags/library.md>), [research](<https://devfeed.tech/tags/research.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [saml](<https://devfeed.tech/tags/saml.md>), [security](<https://devfeed.tech/tags/security.md>), [testing](<https://devfeed.tech/tags/testing.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>), [vulnerability](<https://devfeed.tech/tags/vulnerability.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This security research post explains how round-trip attacks and namespace confusion in the ruby-saml library can be chained to bypass signature verification and obtain unauthenticated administrative access to GitLab Enterprise. It describes parser inconsistencies involving REXML and Nokogiri, XML mutations using comments and CDATA, and a testbed for evaluating SAML libraries. The supplied article text ends during the discussion of DOCTYPE analysis.

### Source excerpt

Introduction In this post, we'll show precisely how to chain round-trip attacks and namespace confusion to achieve unauthenticated admin access on GitLab Enterprise by exploiting the ruby-saml library

## Using Compose Previews to Preview XML-Based Android Views

DevFeed: [Using Compose Previews to Preview XML-Based Android Views](<https://devfeed.tech/articles/back-to-the-future-compose-previewing-your-xml-based-views-25687.md>)

Original publisher: [Read original article](<https://sergiosastre.hashnode.dev/back-to-the-future-compose-previewing-your-xml-based-views>)

Author: Sergio Sastre Florez

Published: 2024-12-17T20:09:09Z

Content type: tutorial

Language: en

Sources: [Sergio's little tech corner](<https://devfeed.tech/sources/sergio-s-little-tech-corner.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [XML](<https://devfeed.tech/topics/xml.md>), [Android](<https://devfeed.tech/topics/android.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [compose](<https://devfeed.tech/tags/compose.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [layout](<https://devfeed.tech/tags/layout.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This tutorial explains how Jetpack Compose Previews can be used to preview XML-based Android Views, including ViewHolder UI logic and dynamic behavior that static XML previews cannot represent.

### Source excerpt

Jetpack Compose has transformed Android UI development with its declarative approach, making UI code simpler to write. One of its standout features is Compose Previews, which allows developers to instantly view how Composable functions will look on a...

## Demystifying Maestro's UI Testing Implementation

DevFeed: [Demystifying Maestro's UI Testing Implementation](<https://devfeed.tech/articles/demystifying-maestro-s-ui-testing-implementation-25128.md>)

Original publisher: [Read original article](<https://handstandsam.com/2024/11/18/demystifying-maestros-ui-testing-implementation/>)

Author: Sam Edwards

Published: 2024-11-18T13:59:04Z

Content type: article

Language: en

Sources: [Handstand Sam](<https://devfeed.tech/sources/handstand-sam.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [ui-testing](<https://devfeed.tech/topics/ui-testing.md>), [Android](<https://devfeed.tech/topics/android.md>), [Code](<https://devfeed.tech/topics/code.md>), [Git](<https://devfeed.tech/topics/git.md>)

Tags: [adb](<https://devfeed.tech/tags/adb.md>), [android](<https://devfeed.tech/tags/android.md>), [android-testing](<https://devfeed.tech/tags/android-testing.md>), [code](<https://devfeed.tech/tags/code.md>), [format](<https://devfeed.tech/tags/format.md>), [git](<https://devfeed.tech/tags/git.md>), [library](<https://devfeed.tech/tags/library.md>), [maestro](<https://devfeed.tech/tags/maestro.md>), [on-device](<https://devfeed.tech/tags/on-device.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [server](<https://devfeed.tech/tags/server.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [uiautomator](<https://devfeed.tech/tags/uiautomator.md>), [updates](<https://devfeed.tech/tags/updates.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

This technical post examines how Maestro implements UI testing. It describes its YAML-based test commands, CLI-installed APKs, an on-device Netty gRPC server, UiAutomator view-hierarchy access, XML serialization, and UI interactions.

### Source excerpt

I first heard about Maestro when it was released in 2022, but I haven't played with it until now. I'm doing some work with Espresso and UiAutomator for Android testing and was curious how Maestro worked under the hood, so I cloned their git repo and dove into the code. This quick post shares what [...]

## Essential Annotations Every Spring Developer Should Know

DevFeed: [Essential Annotations Every Spring Developer Should Know](<https://devfeed.tech/articles/essential-annotations-every-spring-developer-should-know-17739.md>)

Original publisher: [Read original article](<https://blog.amigoscode.com/p/essential-annotations-every-spring>)

Author: Nelson Djalo

Published: 2024-10-08T16:03:11Z

Content type: tutorial

Language: en

Sources: [Amigoscode Newsletter](<https://devfeed.tech/sources/amigoscode-newsletter.md>)

Topics: [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Java](<https://devfeed.tech/topics/java.md>), [Application Development](<https://devfeed.tech/topics/application-development.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Spring MVC](<https://devfeed.tech/topics/spring-mvc.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [JSON](<https://devfeed.tech/topics/json.md>), [XML](<https://devfeed.tech/topics/xml.md>)

Tags: [application-development](<https://devfeed.tech/tags/application-development.md>), [developer](<https://devfeed.tech/tags/developer.md>), [http](<https://devfeed.tech/tags/http.md>), [java](<https://devfeed.tech/tags/java.md>), [json](<https://devfeed.tech/tags/json.md>), [mvc](<https://devfeed.tech/tags/mvc.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

A tutorial explaining commonly used Spring Boot annotations for configuring applications, managing dependencies, enabling auto-configuration, scanning components, defining MVC controllers, handling HTTP responses, and binding URL and request parameters.

### Source excerpt

Understanding Key Annotations for Simplified Development

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