# implementation

Published articles for implementation.

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

## How to Decide How Much Authorship AI Should Have in Software Work

DevFeed: [How to Decide How Much Authorship AI Should Have in Software Work](<https://devfeed.tech/articles/use-curiosity-craft-and-care-to-decide-what-ai-should-write-41359.md>)

Original publisher: [Read original article](<https://spin.atomicobject.com/ai-authorship/>)

Author: Kyle Humphrey

Published: 2026-09-17T12:00:32Z

Content type: opinion

Language: en

Sources: [Atomic Object](<https://devfeed.tech/sources/atomic-object.md>)

Topics: [agentic-engineering](<https://devfeed.tech/topics/agentic-engineering.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [agentic](<https://devfeed.tech/tags/agentic.md>), [agentic-engineering](<https://devfeed.tech/tags/agentic-engineering.md>), [ai](<https://devfeed.tech/tags/ai.md>), [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [development-practices](<https://devfeed.tech/tags/development-practices.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [ownership](<https://devfeed.tech/tags/ownership.md>), [software](<https://devfeed.tech/tags/software.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This commentary examines how AI-generated meeting summaries, backlog items, and implementation work can introduce vocabulary, decisions, scope, and structure that a team does not recognize or own. It argues that the artifact's purpose should guide how much authorship is delegated to AI, using Curiosity, Craft, and Care as principles for making that decision.

### Source excerpt

Atomic's Agentic Engineering for Teams describes how work moves through a product backlog, definition, planning, implementation, and review when agents do much of the building. While working with a small team during a Research, Design, and Planning (RDP) engagement, I started paying attention to a smaller decision inside that process: how much authorship we give [...] The post Use Curiosity, Craft, and Care to Decide What AI Should Write appeared first on Atomic Spin.

## CISA's Logging Reference Architecture for OMB M-26-14: What federal agencies should do next

DevFeed: [CISA's Logging Reference Architecture for OMB M-26-14: What federal agencies should do next](<https://devfeed.tech/articles/cisa-s-logging-reference-architecture-for-omb-m-26-14-what-federal-agencies-should-do-next-30890.md>)

Original publisher: [Read original article](<https://www.elastic.co/blog/cisa-logging-omb-m-26-14>)

Author: Woody Walton

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

Content type: article

Language: en

Sources: [Elastic Blog - Elasticsearch, Kibana, and ELK Stack](<https://devfeed.tech/sources/elastic-blog-elasticsearch-kibana-and-elk-stack.md>)

Topics: [cisa](<https://devfeed.tech/topics/cisa.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [cybersecurity and infrastructure security agency](<https://devfeed.tech/topics/cybersecurity-and-infrastructure-security-agency.md>), [log management](<https://devfeed.tech/topics/log-management.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [audit](<https://devfeed.tech/topics/audit.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [audit](<https://devfeed.tech/tags/audit.md>), [cisa](<https://devfeed.tech/tags/cisa.md>), [cybersecurity-and-infrastructure-security-agency](<https://devfeed.tech/tags/cybersecurity-and-infrastructure-security-agency.md>), [cybersecurity-open-source-standards-log-management-government](<https://devfeed.tech/tags/cybersecurity-open-source-standards-log-management-government.md>), [government](<https://devfeed.tech/tags/government.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [logging](<https://devfeed.tech/tags/logging.md>), [logs](<https://devfeed.tech/tags/logs.md>), [public-sector](<https://devfeed.tech/tags/public-sector.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

This Elastic blog explains CISA's Logging Reference Architecture for OMB M-26-14 and the actions federal civilian executive branch agencies must take. It highlights planning and maturity deadlines, recommends assessing existing capabilities and documenting gaps, and discusses storage tiers, retrieval, immutability, and audit requirements.

### Source excerpt

Now that CISA has released its Logging Reference Architecture (LRA) for OMB M-26-14, federal agencies tasked to complete their logging plans. In this blog, we walk you through the most important aspects of the LRA guidance.

## Why didn't ReadDirectoryChangesW provide a way to correlate the two sides of a rename operation?

DevFeed: [Why didn't ReadDirectoryChangesW provide a way to correlate the two sides of a rename operation?](<https://devfeed.tech/articles/why-didn-t-read-directory-changesw-provide-a-way-to-correlate-the-two-sides-of-a-rename-operation-21762.md>)

Original publisher: [Read original article](<https://devblogs.microsoft.com/oldnewthing/20260914-00/?p=112696>)

Author: Raymond Chen

Published: 2026-09-14T14:00:00Z

Content type: article

Language: en

Sources: [Raymond Chen](<https://devfeed.tech/sources/raymond-chen.md>)

Topics: [Filesystems](<https://devfeed.tech/topics/filesystems.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [concurrent](<https://devfeed.tech/tags/concurrent.md>), [events](<https://devfeed.tech/tags/events.md>), [files](<https://devfeed.tech/tags/files.md>), [ids](<https://devfeed.tech/tags/ids.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [information](<https://devfeed.tech/tags/information.md>), [old-new-thing](<https://devfeed.tech/tags/old-new-thing.md>), [other](<https://devfeed.tech/tags/other.md>), [post](<https://devfeed.tech/tags/post.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

The article explains why ReadDirectoryChangesW did not explicitly provide a mechanism for correlating the two events generated by a file rename. It suggests that the events were expected to occur consecutively, but that assumption was never documented and could fail when concurrent renames or disk activity interleave events. File IDs provide the information needed to correlate the two sides reliably.

### Source excerpt

Perhaps it wasn't necessary, or perhaps it didn't occur to them that this a problem. The post Why didn't <CODE>ReadDirectoryChangesW</CODE> provide a way to correlate the two sides of a rename operation? appeared first on The Old New Thing.

## Yoneda Lemma in Double Categories

DevFeed: [Yoneda Lemma in Double Categories](<https://devfeed.tech/articles/yoneda-lemma-in-double-categories-28865.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/09/13/yoneda-lemma-in-double-categories/>)

Author: Bartosz Milewski

Published: 2026-09-13T12:23:31Z

Content type: article

Language: en

Sources: [Bartosz Milewski's Programming Cafe](<https://devfeed.tech/sources/bartosz-milewski-s-programming-cafe.md>)

Topics: [Category Theory](<https://devfeed.tech/topics/category-theory.md>), [Profunctors](<https://devfeed.tech/topics/profunctors.md>), [String Diagrams](<https://devfeed.tech/topics/string-diagrams.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>)

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [double-category](<https://devfeed.tech/tags/double-category.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [kan-extensions](<https://devfeed.tech/tags/kan-extensions.md>), [proarrow-equipment](<https://devfeed.tech/tags/proarrow-equipment.md>), [profunctor-equipment](<https://devfeed.tech/tags/profunctor-equipment.md>), [profunctors](<https://devfeed.tech/tags/profunctors.md>), [string-diagrams](<https://devfeed.tech/tags/string-diagrams.md>), [yoneda-structure](<https://devfeed.tech/tags/yoneda-structure.md>)

### AI overview

The article explains how to formulate the Yoneda lemma in double categories without directly referring to presheaves or hom-sets. It uses profunctors, universal constructions, Kan extensions, tabulations, 2-cells, and string diagrams to describe the Yoneda embedding and its desired properties, including density and full faithfulness.

### Source excerpt

Working with double categories can be aptly summarized in a meme: Talk to me about sets without mentioning sets. We don't talk about hom-sets, we talk about horizontal units. Secretly, we are visualizing horizontal arrows as profunctors, and the unit of profunctor composition is a hom-functor. Presheaves are defined as -valued functors, so we immediately [...]

## Koin Compiler 1.2: Compile-Time Safety for ALL Koin DSL

DevFeed: [Koin Compiler 1.2: Compile-Time Safety for ALL Koin DSL](<https://devfeed.tech/articles/koin-compiler-1-2-compile-time-safety-for-all-koin-dsl-22973.md>)

Original publisher: [Read original article](<https://blog.insert-koin.io/koin-compiler-1-2-compile-time-safety-for-all-koin-dsl-4603787b9921?source=rss----925561f2ecdf---4>)

Author: Arnaud Giuliani

Published: 2026-09-10T12:01:01Z

Content type: release

Language: en

Sources: [Koin developers - Medium](<https://devfeed.tech/sources/koin-developers-medium.md>)

Topics: [Compiler](<https://devfeed.tech/topics/compiler.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [koin](<https://devfeed.tech/tags/koin.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>)

### AI overview

Koin Compiler Plugin 1.2, with 1.2.1 as the latest patch, extends compile-time validation to Koin's reified, constructor, and classic lambda DSLs. It also adds visibility across Gradle modules, supports additional entry points, and provides one artifact for Kotlin 2.3.20 through 2.4.20 without requiring a DSL migration.

### Source excerpt

Hello, dear Koin community 👋 I'm happy to share that Koin Compiler Plugin 1.2 is out, with 1.2.1 already available as the latest patch. Developer mascott unboxing new Koin Features!TL;DR Compile-time validation now works on the Koin application you already have, where before 1.2 it only covered code written specifically for the compiler plugin. Koin DSL -- All now covered! All Koin DSL: the plugin's reified DSL, Koin's constructor DSL (singleOf(::T)), and the classic lambda DSL (single { Foo(get()) }). Across Gradle modules: definitions are now visible two or more implementation hops away. More entry points: Ktor's install(Koin) and KoinApplication.withConfiguration<T>(). One artifact for Kotlin 2.3.20 through 2.4.20. You get there with no migration to a new DSL, and nothing to rewrite. Let's go through what shipped. Covering now all Koin DSL Until now, compile-time safety only covered the plugin's own reified DSL, which means the two DSL styles you have most likely already written were invisible to it. val appModule = module { single<UserService>() // checked singleOf(::UserRepository) // not checked before 1.2 single { AnalyticsHelper(get()) } // not checked before 1.2 } Three ways to declare a definition, and only the first was validated. If your UserRepository needed a Database that no module provided, your build passed and Koin threw at runtime. In 1.2, all three are validated. The two DSL styles get there differently. For the constructor DSL, the referenced constructor's parameters become real requirements, exactly like single<T>(), and any named() qualifier you put on the registration is matched against the consumers that ask for it. The classic lambda DSL works differently. The plugin doesn't try to work out dependencies from free-form lambda code. What it validates instead are the get() calls you wrote inside the lambda, treated as ordinary resolution call sites. Before 1.2 those calls were skipped on purpose, because a hand-written get() is difficult to dis

## From Permissions to Sessions: Rethinking Location Access in Android 17

DevFeed: [From Permissions to Sessions: Rethinking Location Access in Android 17](<https://devfeed.tech/articles/from-permissions-to-sessions-rethinking-location-access-in-android-17-22946.md>)

Original publisher: [Read original article](<https://proandroiddev.com/from-permissions-to-sessions-rethinking-location-access-in-android-17-5a13124b777d?source=rss----c72404660798---4>)

Author: Nav Singh

Published: 2026-09-09T01:15:51Z

Content type: tutorial

Language: en

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

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

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [android-permissions](<https://devfeed.tech/tags/android-permissions.md>), [android17](<https://devfeed.tech/tags/android17.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [compose](<https://devfeed.tech/tags/compose.md>), [development](<https://devfeed.tech/tags/development.md>), [feature](<https://devfeed.tech/tags/feature.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [permission](<https://devfeed.tech/tags/permission.md>)

### AI overview

A tutorial on implementing Android 17's system-rendered Location Button in Jetpack Compose. The button uses the USE_LOCATION_BUTTON permission and grants precise location for the current session, with local rendering fallback on older Android versions or when remote rendering fails.

### Source excerpt

Image generated using Gemini In this article, we will learn how to implement the new 📍Location button introduced in Android 17 in Jetpack Compose-based Android applications. Android 17 adds a system-rendered 📍Location Button that we can drop into the layout via a Jetpack library, and tapping it gives the app precise location for that session only, gated by a new USE_LOCATION_BUTTON permission. What the feature is Android now exposes a system-owned, standard location button that we can embed in our UI instead of designing a custom control. When the user taps it, the system handles the permission flow, then grants the app precise location for the current session only, rather than long-lived access. How it changes permissions Instead of immediately requesting ACCESS_FINE_LOCATION (and maybe ACCESS_COARSE_LOCATION) at runtime, we declare the new USE_LOCATION_BUTTON permission to host the button. <!-- Standard Coarse and Fine Location Permissions + onlyForLocationButton --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:usesPermissionFlags="onlyForLocationButton"/> <!-- Required system permission for rendering the LocationButton --> <uses-permission android:name="android.permission.USE_LOCATION_BUTTON" />Developer benefits Less custom permission boilerplate: We lean on system UX and the Jetpack library for the hardest parts of location consent. [versions] locationbuttonCompose = "1.0.0-alpha01" [libraries] androidx-locationbutton-compose = { group = "androidx.core.locationbutton", name = "locationbutton-compose", version.ref = "locationbuttonCompose" } Higher trust and clarity for users: the control looks and behaves consistently across apps, and session-only precise access is easier to understand than broader access. Implementation As we all know, Android development is now Compose-first, so we will implement it using the LocationButton composable provided by th

## Report: Stablecoins Are Reshaping Remittances

DevFeed: [Report: Stablecoins Are Reshaping Remittances](<https://devfeed.tech/articles/report-stablecoins-are-reshaping-remittances-17246.md>)

Original publisher: [Read original article](<https://solana.com/news/report-stablecoins-are-reshaping-remittances>)

Author: Solana Foundation

Published: 2026-09-08T13:14:00Z

Content type: news

Language: en

Sources: [Solana News Feed](<https://devfeed.tech/sources/solana-news-feed.md>)

Topics: [Solana](<https://devfeed.tech/topics/solana.md>), [Finance](<https://devfeed.tech/topics/finance.md>)

Tags: [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-technology](<https://devfeed.tech/tags/blockchain-technology.md>), [cross-border-payments](<https://devfeed.tech/tags/cross-border-payments.md>), [crypto-news](<https://devfeed.tech/tags/crypto-news.md>), [cryptocurrency](<https://devfeed.tech/tags/cryptocurrency.md>), [defi](<https://devfeed.tech/tags/defi.md>), [fintech](<https://devfeed.tech/tags/fintech.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [money-transfer-operators](<https://devfeed.tech/tags/money-transfer-operators.md>), [nfts](<https://devfeed.tech/tags/nfts.md>), [payments](<https://devfeed.tech/tags/payments.md>), [podcasts](<https://devfeed.tech/tags/podcasts.md>), [regulatory](<https://devfeed.tech/tags/regulatory.md>), [remittances](<https://devfeed.tech/tags/remittances.md>), [report](<https://devfeed.tech/tags/report.md>), [solana](<https://devfeed.tech/tags/solana.md>), [solana-ecosystem](<https://devfeed.tech/tags/solana-ecosystem.md>), [stablecoins](<https://devfeed.tech/tags/stablecoins.md>), [web3](<https://devfeed.tech/tags/web3.md>)

### AI overview

Solana Foundation published a report on how stablecoins could change remittances. It examines implementation paths, business models, regional corridors, existing projects, and regulatory risks for money transfer operators and fintech startups.

### Source excerpt

New report on stablecoin remittances covering four implementation paths for money transfer operators, corridor overviews, and case studies.

## Setting Up Koin in a Real Kotlin Multiplatform Project: A Step-by-Step Guide

DevFeed: [Setting Up Koin in a Real Kotlin Multiplatform Project: A Step-by-Step Guide](<https://devfeed.tech/articles/setting-up-koin-in-real-project-a-step-by-step-guide-22976.md>)

Original publisher: [Read original article](<https://blog.insert-koin.io/setting-up-koin-in-real-project-a-step-by-step-guide-1575e2357239?source=rss----925561f2ecdf---4>)

Author: Gabriel Bronzatti Moro

Published: 2026-09-07T12:01:03Z

Content type: tutorial

Language: en

Sources: [Koin developers - Medium](<https://devfeed.tech/sources/koin-developers-medium.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [guide](<https://devfeed.tech/tags/guide.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [koin](<https://devfeed.tech/tags/koin.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [module](<https://devfeed.tech/tags/module.md>), [viewmodel](<https://devfeed.tech/tags/viewmodel.md>)

### AI overview

A step-by-step tutorial for setting up Koin in a Kotlin Multiplatform project targeting Android and iOS. It covers dependencies, data, domain, and UI modules, a platform bridge, platform entry points, and dependency injection in Composables.

### Source excerpt

Hi everyone! 👋 In this article, we'll take a practical, step-by-step approach to setting up Koin in a real-world Kotlin Multiplatform (KMP) project. Instead of starting with an isolated example or a simple Hello World, we'll work with a project created by the CodandoTV community: the World Cup Best Team Simulator. The app allows users to browse football players by country and build their own dream team. It runs on both Android and iOS, using Kotlin Multiplatform for sharing business and data logic, and Compose Multiplatform to share the UI across platforms. Step 1: Add Koin Dependencies Add the Koin libraries to your version catalog: # gradle/libs.versions.toml [versions] koin = "4.2.2" [libraries] koin_core = { group = "io.insert-koin", name = "koin-core", version.ref = "koin" } koin_android = { group = "io.insert-koin", name = "koin-android", version.ref = "koin" } koin_compose = { module = "io.insert-koin:koin-compose", version.ref = "koin" } koin_compose_viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koin" } In the shared module shared/build.gradle.kts, split the dependencies by source set -- commonMain gets the shared Koin libraries, androidMain gets the Android-specific one: // shared/build.gradle.kts sourceSets { commonMain.dependencies { implementation(libs.koin.core) implementation(libs.koin.compose) implementation(libs.koin.compose.viewmodel) } androidMain.dependencies { implementation(libs.koin.android) } } In the Android app module androidApp/build.gradle.kts , add the Android Koin dependency: // androidApp/build.gradle.kts dependencies { implementation(libs.koin.android) implementation(libs.koin.core) }Step 2: Create the Data Module Create shared/src/commonMain/.../data/DataModule.kt . This module provides singleton instances -- repositories, and data sources that live for the entire app lifecycle. val dataModule = module { single<WorldCupRepository> { WorldCupRepositoryImpl(ioDispatcher = Dispatchers.IO) } }Step 3: Create

## GSoC 2026 Final Report | Modernizing Haiku's Bluetooth Stack: HID Profile Implementation

DevFeed: [GSoC 2026 Final Report | Modernizing Haiku's Bluetooth Stack: HID Profile Implementation](<https://devfeed.tech/articles/gsoc-2026-final-report-modernizing-haiku-s-bluetooth-stack-hid-profile-implementation-34781.md>)

Original publisher: [Read original article](<https://www.haiku-os.org/blog/mohammedrattia/2026-09-01_gsoc_2026_final_report/>)

Author: mohammedrattia

Published: 2026-09-06T12:00:24Z

Content type: article

Language: en

Sources: [Haiku Project](<https://devfeed.tech/sources/haiku-project.md>)

Topics: [Bluetooth](<https://devfeed.tech/topics/bluetooth.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [bluetooth](<https://devfeed.tech/tags/bluetooth.md>), [drivers](<https://devfeed.tech/tags/drivers.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [gsoc2026](<https://devfeed.tech/tags/gsoc2026.md>), [haiku](<https://devfeed.tech/tags/haiku.md>), [hid](<https://devfeed.tech/tags/hid.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [input](<https://devfeed.tech/tags/input.md>), [report](<https://devfeed.tech/tags/report.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

This final GSoC 2026 report describes work to improve Haiku's Bluetooth stack and implement the HID profile. It reports that Bluetooth mice and keyboards are functioning and that the core stack is ready for additional profiles, while noting that Low Energy Bluetooth remains unimplemented and further work is needed.

### Source excerpt

Hello! Finally, GSoC is done for me. This is the final report for my project. The project was focused on improving the Bluetooth stack and making it useful. Hopefully, the Bluetooth stack is now in a much better state than before GSoC 2026. It still needs much work to be fully developed. However, currently Bluetooth mice and keyboards are functioning. In addition, the core of the stack is ready for implementing other profiles. This report will include the following: Project Overview What I Did Future Work Conclusion Project Overview The State of Bluetooth on Haiku Before GSoC 2026 Although the Bluetooth stack was outdated (based on version 2.0 and 2.1 of Bluetooth) before GSoC, it contained many core components that helped us focus less on starting from scratch and more on making the already built stack useful. However, that's true only for BR/EDR (Basic Rate / Enhanced Data Rate) Bluetooth, not Low Energy Bluetooth, which isn't implemented yet in Haiku. The BR/EDR Bluetooth core stack is divided into several core modules that provide services for the Bluetooth profiles, which in turn provide services to users like human interface devices, audio, file transfer, etc. Some of those core modules and their state in Haiku are: L2CAP: Functional, but needed some fixes. HCI (Host Controller Interface): Functional, but on an old Bluetooth version, as stated above. Transfer Layer (h2generic): Functional, but required further extension to cover vendor-specific devices. Preferences Application: Functional, but it lacked some features, such as changing the Bluetooth friendly name, canceling inquiry and pairing, and adding devices to a block list. Security Manager: Not complete; it's blended into the Bluetooth Server, and most of its functions were missing. Service Discovery Protocol (SDP): Not implemented. The state mentioned above meant the Bluetooth stack couldn't yet offer much practical functionality to users, because none of the Bluetooth profiles were implemented. In addi

## From Permissions to Sessions: Rethinking Location Access in Android 17

DevFeed: [From Permissions to Sessions: Rethinking Location Access in Android 17](<https://devfeed.tech/articles/from-permissions-to-sessions-rethinking-location-access-in-android-17-25982.md>)

Original publisher: [Read original article](<https://proandroiddev.com/from-permissions-to-sessions-rethinking-location-access-in-android-17-5a13124b777d?source=rss-711ab22c5c77------2>)

Author: Nav Singh

Published: 2026-09-03T18:18:32Z

Content type: tutorial

Language: en

Sources: [Stories by Nav Singh 🇨🇦 on Medium](<https://devfeed.tech/sources/stories-by-nav-singh-on-medium.md>)

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

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [android-permissions](<https://devfeed.tech/tags/android-permissions.md>), [android17](<https://devfeed.tech/tags/android17.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [branding](<https://devfeed.tech/tags/branding.md>), [consent](<https://devfeed.tech/tags/consent.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [layout](<https://devfeed.tech/tags/layout.md>), [permissions](<https://devfeed.tech/tags/permissions.md>)

### AI overview

A tutorial on implementing Android 17's system-rendered Location Button in Jetpack Compose applications. It explains session-only precise location access, the USE_LOCATION_BUTTON permission, the required Jetpack library, fallback rendering, and UI customization.

### Source excerpt

Image generated using Gemini In this article, we will learn how to implement the new 📍Location button introduced in Android 17 in Jetpack Compose-based Android applications. Android 17 adds a system-rendered 📍Location Button that we can drop into the layout via a Jetpack library, and tapping it gives the app precise location for that session only, gated by a new USE_LOCATION_BUTTON permission. What the feature is Android now exposes a system-owned, standard location button that we can embed in our UI instead of designing a custom control. When the user taps it, the system handles the permission flow, then grants the app precise location for the current session only, rather than long-lived access. How it changes permissions Instead of immediately requesting ACCESS_FINE_LOCATION (and maybe ACCESS_COARSE_LOCATION) at runtime, we declare the new USE_LOCATION_BUTTON permission to host the button. <!-- Standard Coarse and Fine Location Permissions + onlyForLocationButton --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:usesPermissionFlags="onlyForLocationButton"/> <!-- Required system permission for rendering the LocationButton --> <uses-permission android:name="android.permission.USE_LOCATION_BUTTON" />Developer benefits Less custom permission boilerplate: We lean on system UX and the Jetpack library for the hardest parts of location consent. [versions] locationbuttonCompose = "1.0.0-alpha01" [libraries] androidx-locationbutton-compose = { group = "androidx.core.locationbutton", name = "locationbutton-compose", version.ref = "locationbuttonCompose" } Higher trust and clarity for users: the control looks and behaves consistently across apps, and session-only precise access is easier to understand than broader access. Implementation As we all know, Android development is now Compose-first, so we will implement it using the LocationButton composable provided by th

## Building an Operational Ontology: An E-Commerce Walkthrough

DevFeed: [Building an Operational Ontology: An E-Commerce Walkthrough](<https://devfeed.tech/articles/building-an-operational-ontology-an-e-commerce-walkthrough-18253.md>)

Original publisher: [Read original article](<https://www.dataengineeringweekly.com/p/building-an-operational-ontology>)

Author: Togo YAMANAKA

Published: 2026-08-26T14:29:30Z

Content type: tutorial

Language: en

Sources: [Data Engineering Weekly](<https://devfeed.tech/sources/data-engineering-weekly.md>)

Topics: [semantic-layer](<https://devfeed.tech/topics/semantic-layer.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [customer](<https://devfeed.tech/tags/customer.md>), [data-pipeline](<https://devfeed.tech/tags/data-pipeline.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [integration](<https://devfeed.tech/tags/integration.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [semantic-layer](<https://devfeed.tech/tags/semantic-layer.md>), [sql](<https://devfeed.tech/tags/sql.md>), [typescript](<https://devfeed.tech/tags/typescript.md>)

### AI overview

A walkthrough builds an operational ontology over integrated e-commerce order data from two systems with different schemas and status encodings. It models customers, orders, products, and relationships, then introduces named actions, business rules, and write-back to systems of record.

### Source excerpt

The write side of the ontology conversation: named actions, business rules, and write-back to the systems of record -- a pattern already running at enterprise scale.

## \[GSoC 2026\] Modernizing Haiku's Bluetooth stack: Implementing support for HFP profile - Progress Report

DevFeed: [\[GSoC 2026\] Modernizing Haiku's Bluetooth stack: Implementing support for HFP profile - Progress Report](<https://devfeed.tech/articles/gsoc-2026-modernizing-haiku-s-bluetooth-stack-implementing-support-for-hfp-profile-progress-report-34783.md>)

Original publisher: [Read original article](<https://www.haiku-os.org/blog/vighnesh-sawant/2026-08-21_gsoc_2026_modernizing_haikus_bluetooth_stack_implementing_support_for_hfp_profile_-_progress_report/>)

Author: vighnesh-sawant

Published: 2026-08-21T18:04:07Z

Content type: article

Language: en

Sources: [Haiku Project](<https://devfeed.tech/sources/haiku-project.md>)

Topics: [Bluetooth](<https://devfeed.tech/topics/bluetooth.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [bug](<https://devfeed.tech/topics/bug.md>), [USB](<https://devfeed.tech/topics/usb.md>)

Tags: [bluetooth](<https://devfeed.tech/tags/bluetooth.md>), [bug-fixes](<https://devfeed.tech/tags/bug-fixes.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [haiku](<https://devfeed.tech/tags/haiku.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [progress-report](<https://devfeed.tech/tags/progress-report.md>), [software](<https://devfeed.tech/tags/software.md>), [usb](<https://devfeed.tech/tags/usb.md>)

### AI overview

This GSoC 2026 progress report describes work modernizing Haiku's Bluetooth stack for the Hands-Free Profile (HFP). It covers RFCOMM implementation, xHCI improvements, Bluetooth stack and media fixes, HFP session functionality, and a Bluetooth SCO Media Kit add-on. RFCOMM and SCO are nearly ready for merging, while HFP still needs to be split, reviewed, and prepared for merging.

### Source excerpt

Introduction The goal of this post is to document the changes I made during the GSoC period and the current state of the project. I would also like to thank waddlesplash for his continued support throughout the project. Progress So Far RFCOMM Protocol RFCOMM is now almost ready to be merged. It acts as the control channel required by HFP. The implementation includes: RFCOMM socket addressing and connection management DLCI multiplexing over a shared L2CAP connection SABM, UA, DM, DISC, and UIH frame handling MCC commands Credit-based flow control USB and xHCI Improvements During implementation, I found that the xHCI driver assumed all isochronous packets had the same size, which is not always true. The xHCI driver now supports variable-length isochronous packets and processes completed transfers in FIFO order instead of LIFO order. Bug Fixes A part of this period was spent fixing issues in the existing Bluetooth stack. The main fixes include: Correcting ACL packet splitting when packets exceed the L2CAP MTU. Holding socket references while working on them. Related changes include the L2CAP refactor,send-status fix, socket lifetime changes, and MTU packet fix Media Stack Fixes While working on Bluetooth audio integration, I found some bugs in the media stack. After initial work, waddlesplash took over these changes and implemented the actual changes. The improvements landed in the media auto-stop change and the live output reconnection change. Hands-Free Profile The first pass for HFP is done. It includes: Hands-Free service discovery through SDP. HFP session management. Basic AT-command parsing. The implementation is functional but work is needed to split the changes, getting it reviewed and making it merge ready. Bluetooth SCO Media Add-on The Bluetooth SCO Media Kit add-on has also been implemented. It discovers Bluetooth audio devices, exposes them through the Media Kit, and creates media nodes for headset playback and capture. It includes: Bluetooth headset disco

## Keep Kotlin Multiplatform bindings at the platform boundary

DevFeed: [Keep Kotlin Multiplatform bindings at the platform boundary](<https://devfeed.tech/articles/keep-kotlin-multiplatform-bindings-at-the-platform-boundary-23964.md>)

Original publisher: [Read original article](<https://cloud-inject.io/notes/kotlin-multiplatform-module-boundaries/>)

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

Content type: tutorial

Language: en

Sources: [Koin - Cloud-Inject.io -Kotzilla](<https://devfeed.tech/sources/koin-cloud-inject-io-kotzilla.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [modules](<https://devfeed.tech/topics/modules.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [module](<https://devfeed.tech/tags/module.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [test](<https://devfeed.tech/tags/test.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

A guide to keeping Kotlin Multiplatform dependency bindings at platform boundaries. It recommends defining small capability interfaces in common code, implementing them in platform source sets, organizing modules around capabilities and product features, and testing both shared contracts and real platform bindings.

### Source excerpt

Kotlin Multiplatform makes source-set boundaries visible, but a dependency container can blur them again. A shared module should state a capability such as secure storage, HTTP transport, or local time. The platform source set should supply the implementation. Put contracts where consumers can see them Define the smallest useful interface in common code. Avoid copying a platform API into that interface. A storage contract might expose read, write, and remove; it does not need to expose Android preferences or an Apple keychain type.

## C++29 -- начало. Встреча ISO C++ в Брно

DevFeed: [C++29 -- начало. Встреча ISO C++ в Брно](<https://devfeed.tech/articles/c-29-iso-c-24878.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/yandex/articles/1067348/>)

Author: antoshkka (Яндекс)

Published: 2026-08-17T07:01:31Z

Content type: article

Language: ru

Sources: [Яндекс - Как мы делаем Яндекс / Статьи](<https://devfeed.tech/sources/source.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [floating-point](<https://devfeed.tech/topics/floating-point.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [c-plus-plus-29](<https://devfeed.tech/tags/c-plus-plus-29.md>), [floating-point](<https://devfeed.tech/tags/floating-point.md>), [fmt](<https://devfeed.tech/tags/fmt.md>), [format](<https://devfeed.tech/tags/format.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [iso](<https://devfeed.tech/tags/iso.md>), [standard](<https://devfeed.tech/tags/standard.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [tagged-pointers](<https://devfeed.tech/tags/tagged-pointers.md>), [thread](<https://devfeed.tech/tags/thread.md>), [threads](<https://devfeed.tech/tags/threads.md>), [undefined-behavior](<https://devfeed.tech/tags/undefined-behavior.md>), [undefined-behaviour](<https://devfeed.tech/tags/undefined-behaviour.md>)

### AI overview

A report on the ISO C++ committee meeting in Brno, where work on C++29 began. It describes plans to organize and clarify documented undefined behavior and ill-formed-no-diagnostic-required cases, along with changes involving constexpr floating-point evaluation and other language rules.

### Source excerpt

Привет! На связи Антон Полухин из Техплатформы Городских сервисов Яндекса. Недавно в Брно состоялась встреча международного комитета по стандартизации языка программирования C++, в которой я принимал активное участие. В этот раз началась работа над C++29 и как раз о новинках и хочется рассказать. Читать далее

## Treating Issue Bodies as Untrusted Input

DevFeed: [Treating Issue Bodies as Untrusted Input](<https://devfeed.tech/articles/treating-issue-bodies-as-untrusted-input-34113.md>)

Original publisher: [Read original article](<https://philipptheserver.com/posts/prompt-injection-untrusted-issues/>)

Author: Philipp Lehmann (philipp.lehmann@gruppe.ai)

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

Content type: tutorial

Language: en

Sources: [Philipp Lehmann](<https://devfeed.tech/sources/philipp-lehmann.md>)

Topics: [prompt injection](<https://devfeed.tech/topics/prompt-injection.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [JSON Feed](<https://devfeed.tech/topics/json-feed.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>), [issue tracker](<https://devfeed.tech/topics/issue-tracker.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [github](<https://devfeed.tech/tags/github.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [issue-tracker](<https://devfeed.tech/tags/issue-tracker.md>), [json](<https://devfeed.tech/tags/json.md>), [llm](<https://devfeed.tech/tags/llm.md>), [prompt-injection](<https://devfeed.tech/tags/prompt-injection.md>), [schema](<https://devfeed.tech/tags/schema.md>), [security](<https://devfeed.tech/tags/security.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

The article explains how GitHub issue bodies can carry prompt injection attacks when an agent treats public input as instructions. It recommends fencing untrusted text, clearly labeling it, constraining model output to a fixed JSON action schema, and testing the validation boundary without a live model.

### Source excerpt

Prompt injection via GitHub issue bodies: fence untrusted text and accept model output only as a fixed JSON action schema, tested without a model.

## Roadmap decisions rather than dates.

DevFeed: [Roadmap decisions rather than dates.](<https://devfeed.tech/articles/roadmap-decisions-rather-than-dates-35683.md>)

Original publisher: [Read original article](<https://lethain.com/decisions-not-dates/>)

Published: 2026-08-11T14:00:00Z

Content type: opinion

Language: en

Sources: [Will Larson - Irrational Exuberance](<https://devfeed.tech/sources/will-larson-irrational-exuberance.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Passkeys](<https://devfeed.tech/topics/passkeys.md>), [resiliency](<https://devfeed.tech/topics/resiliency.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Web](<https://devfeed.tech/topics/web.md>)

Tags: [development](<https://devfeed.tech/tags/development.md>), [experience](<https://devfeed.tech/tags/experience.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [phishing](<https://devfeed.tech/tags/phishing.md>), [resiliency](<https://devfeed.tech/tags/resiliency.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The article argues that product roadmaps should prioritize decisions and execution constraints rather than fixed dates. It uses the development and rollout of passkey support at Imprint as an example, describing implementation behind a feature flag, staged web release, feedback iteration, and expansion to native mobile experiences.

### Source excerpt

One thing that bothered me about Imprint's product after joining was our lack of passkey support. Passkey support is a rare opportunity to increase resiliency to phishing attacks while simultaneously reducing login friction. If it's good for our members, our partners, and our product, it felt like something we should have already shipped. Nonetheless, it was hard to get it onto the roadmap alongside everything else we were working on. To dig into passkeys, I started sketching out the implementation as a side quest. Some iterations later, I had something implemented behind a disabled feature flag for team review. At that point, most problems had a concrete solution implemented, and the remaining issues were messy intersections between passkey implementation and user experience. Issues remained, but the tangible implementation made tradeoffs explicit, and we were able to work through them. Soon thereafter, we launched passkeys to a small group in our web experience, iterated on feedback, finalized the details, and brought those details forward to our native mobile experiences as well. It never got onto the roadmap, but it did ship. Our passkey release planted a seed for me, but it required another experience to fully germinate. We had a discussion about hitting a date for a product extension we're developing. Our conversation kept anchoring on the idea that pulling in a date was dependent on pushing out dates for other projects. Presenting two conflicting projects as requiring timeline tradeoffs wouldn't have caused me to blink an eye five years ago, but in this conversation it inspired a sort of instinctual revolt: with modern development techniques, I believe very few projects are essentially constrained by execution bandwidth. Some are constrained by approvals, others are constrained by cross-team and cross-functional handoffs, and many are constrained by missing decisions, but almost none should be constrained purely on time. Shifting blocks of time across project

## When the human is the Workflow: Durable Execution in harsh physical field operations

DevFeed: [When the human is the Workflow: Durable Execution in harsh physical field operations](<https://devfeed.tech/articles/when-the-human-is-the-workflow-durable-execution-in-harsh-physical-field-operations-35818.md>)

Original publisher: [Read original article](<https://temporal.io/blog/durable-execution-in-harsh-physical-field-operations>)

Author: Saman Batool

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

Content type: article

Language: en

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

Topics: [implementation](<https://devfeed.tech/topics/implementation.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Process](<https://devfeed.tech/topics/process.md>), [Encryption](<https://devfeed.tech/topics/encryption.md>)

Tags: [community](<https://devfeed.tech/tags/community.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [idempotency](<https://devfeed.tech/tags/idempotency.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [network](<https://devfeed.tech/tags/network.md>), [offline-first](<https://devfeed.tech/tags/offline-first.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [real-world](<https://devfeed.tech/tags/real-world.md>), [retries](<https://devfeed.tech/tags/retries.md>)

### AI overview

A case study describes how Xgrid and a construction company rebuilt crew clock-ins, daily reporting, and document signing on Temporal. It presents a single durable Workflow per shift as the source of truth for unreliable, offline-first field operations, with patterns for idempotency, compliance, retries, encryption, and scalable execution.

### Source excerpt

This blog from Xgrid, a Certified Temporal Cloud Partner, explores how field operations in construction, infrastructure, and facilities management can be modeled as a Durable Execution problem rather than a collection of fragile services. Drawing from a real-world implementation, it shows how crew clock-ins, daily reporting, and document signing were rebuilt on Temporal using a single Workflow per shift as the durable source of truth.

## Call for testing: Restricting trait implementability and field mutability

DevFeed: [Call for testing: Restricting trait implementability and field mutability](<https://devfeed.tech/articles/call-for-testing-restricting-trait-implementability-and-field-mutability-15099.md>)

Original publisher: [Read original article](<https://blog.rust-lang.org/inside-rust/2026/08/10/call-for-testing-impl-and-mut-restrictions/>)

Author: Ryosuke Yamano

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

Content type: article

Language: en

Sources: [Inside Rust Blog](<https://devfeed.tech/sources/inside-rust-blog.md>)

Topics: [Rust](<https://devfeed.tech/topics/rust.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [rust](<https://devfeed.tech/tags/rust.md>), [scope](<https://devfeed.tech/tags/scope.md>), [sealed](<https://devfeed.tech/tags/sealed.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

Rust RFC 3323, "Restrictions," is ready for testing on nightly Rust. It introduces impl_restriction for limiting where traits may be implemented and mut_restriction for limiting where fields may be mutated.

### Source excerpt

We are excited to announce that RFC 3323 "Restrictions" is ready for testing on nightly Rust. In this post, we will briefly describe the features. If you are already familiar with them, you can skip ahead to the How can I help? section. The RFC is split into two features: impl_restriction and mut_restriction. What is impl_restriction? The impl_restriction feature allows explicit restriction of the scope in which a trait may be implemented. For example, consider a trait Foo with a method that we want users to be able to call, while preventing downstream crates from providing their own implementations. With this feature, we can write: #![feature(impl_restriction)] pub impl(crate) trait Foo { fn method(); } impl Foo for usize { fn method() {} } The impl(crate) restriction prevents Foo from being implemented outside the current crate. As with pub, other paths can also be specified, such as impl(super) or impl(in path). Without this feature, this use case is typically handled using the sealed trait pattern, which is described in the Rust API Guidelines. In short, this pattern defines a public Sealed trait inside a private module and makes it a supertrait of Foo. Because downstream crates cannot name Sealed, they cannot implement Foo. pub trait Foo: private::Sealed { fn method(); } // Implement `Foo` for selected types. impl Foo for usize { fn method() {} } mod private { pub trait Sealed {} // Implement `Sealed` for those same types, but no others. impl Sealed for usize {} } However, this pattern requires defining an additional Sealed trait. The new impl_restriction feature provides a more direct and concise way to express the same restriction. The feature also allows the compiler to produce a more direct error message when an implementation is attempted outside the permitted scope. For example, the following code: #![feature(impl_restriction)] pub mod foo { pub mod bar { pub(crate) impl(super) trait Foo {} } // `Foo` may be implemented here. impl bar::Foo for i8 {} } //

## Coding Challenge #130 - Sort Visualiser

DevFeed: [Coding Challenge #130 - Sort Visualiser](<https://devfeed.tech/articles/coding-challenge-130-sort-visualiser-29206.md>)

Original publisher: [Read original article](<https://codingchallenges.substack.com/p/coding-challenge-130-sort-visualiser>)

Author: John Crickett

Published: 2026-08-08T08:01:19Z

Content type: tutorial

Language: en

Sources: [Coding Challenges](<https://devfeed.tech/sources/coding-challenges.md>)

Topics: [Sorting](<https://devfeed.tech/topics/sorting.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [coding](<https://devfeed.tech/topics/coding.md>), [ui](<https://devfeed.tech/topics/ui.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [animation](<https://devfeed.tech/tags/animation.md>), [coding](<https://devfeed.tech/tags/coding.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [sorting](<https://devfeed.tech/tags/sorting.md>), [tool](<https://devfeed.tech/tags/tool.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

Coding Challenge #130 asks readers to build a sorting algorithm visualiser that animates how eight classic algorithms operate on arrays. The project also provides practice with UI rendering, animation timing, and clean abstractions, while allowing choices such as algorithm, sample size, data order, display mode, and animation speed.

### Source excerpt

This challenge is to build your own tool to visualise how sorting algorithms work.

## A Polyline Is Not a Route

DevFeed: [A Polyline Is Not a Route](<https://devfeed.tech/articles/a-polyline-is-not-a-route-19500.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/road-following-map-routing/>)

Author: Shai Almog

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

Content type: tutorial

Language: en

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

Topics: [API](<https://devfeed.tech/topics/api.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Self-hosted](<https://devfeed.tech/topics/self-hosted.md>), [Server](<https://devfeed.tech/topics/server.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [backend](<https://devfeed.tech/tags/backend.md>), [code](<https://devfeed.tech/tags/code.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [route](<https://devfeed.tech/tags/route.md>), [routing](<https://devfeed.tech/tags/routing.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>), [server](<https://devfeed.tech/tags/server.md>)

### AI overview

This article explains a Codename One maps routing API that converts coordinates into road-following routes and provides geometry, distance, duration, alternatives, legs, and step instructions. It describes the callback behavior, encoded geometry support, and use of OSRM as the default service, while noting that the public demonstration server is unsuitable for production and that applications can use a self-hosted or other provider.

### Source excerpt

The new Codename One maps routing API turns coordinates into road-following geometry, distance, duration, legs, and steps through OSRM or an application-defined service.

## ParparVM Adds Compact String Storage with Latin-1 and Wider Encodings

DevFeed: [ParparVM Adds Compact String Storage with Latin-1 and Wider Encodings](<https://devfeed.tech/articles/compact-strings-cut-character-storage-in-half-19264.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/compact-strings-parparvm/>)

Author: Shai Almog

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

Content type: article

Language: en

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

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

Tags: [code](<https://devfeed.tech/tags/code.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [java](<https://devfeed.tech/tags/java.md>), [memory](<https://devfeed.tech/tags/memory.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

ParparVM now stores strings in a byte array when all characters fit Latin-1 and uses a char array for wider text. The implementation preserves fused allocation and accounts for concurrent garbage-collector initialization constraints.

### Source excerpt

ParparVM now stores strings in a byte array when every character fits and falls back to a char array for wider text.

## AppFunctions, revisited

DevFeed: [AppFunctions, revisited](<https://devfeed.tech/articles/appfunctions-revisited-26158.md>)

Original publisher: [Read original article](<https://dev.to/tkuenneth/appfunctions-revisited-4n90>)

Author: Thomas Künneth

Published: 2026-07-25T11:36:27Z

Content type: tutorial

Language: en

Sources: [Thomas Künneth](<https://devfeed.tech/sources/thomas-kunneth.md>)

Topics: [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [Android](<https://devfeed.tech/topics/android.md>), [Library](<https://devfeed.tech/topics/library.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Maven](<https://devfeed.tech/topics/maven.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [android](<https://devfeed.tech/tags/android.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [community](<https://devfeed.tech/tags/community.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [inclusive](<https://devfeed.tech/tags/inclusive.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [library](<https://devfeed.tech/tags/library.md>), [maven](<https://devfeed.tech/tags/maven.md>), [programming](<https://devfeed.tech/tags/programming.md>), [software](<https://devfeed.tech/tags/software.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

This tutorial revisits Android Jetpack AppFunctions after alpha10 stopped publishing appfunctions-service. It explains the new service entry-point model, generated subclasses and XML, manual service declaration, the removal of AppFunctionContext, and a correction about using installed-app display names instead of package names.

### Source excerpt

In Agentic interaction using AppFunctions I showed how Be nice publishes createAppPair for agents, using Jetpack appfunctions 1.0.0-alpha08. That setup leaned on a library-merged PlatformAppFunctionService, an AppFunctionContext parameter, and aggregate XML named app_functions.xml / app_functions_v2.xml. When I bumped toward what Android Studio was suggesting as of mid July, Sync failed: Could not find androidx.appfunctions:appfunctions-service:1.0.0-alpha10. On 1 July 2026, alpha10 stopped publishing appfunctions-service (Maven still lists it through alpha09). The Add the AppFunctions API guide now expects you to host an @AppFunctionServiceEntryPoint AppFunctionService. Spoiler: that is the real change. The rest of this post is how that landed in Be nice, plus an important update to the earlier article that is easy to miss if you only chase compile errors. Correction first In the earlier post I wrote that agents would pass package names for app1 and app2. That was wrong for Be nice. The implementation matches display names, case-insensitively, against installed apps. Package names are a convenient engineer habit; they are a poor agent habit when the user said "Clock" and "Contacts". KDoc and app-level metadata have to say what the code accepts -- agents lean on that text harder than on your mental model of the APK. What changed in the model Before alpha10 you annotated a helper class and let the service AAR merge a stock entry point into the manifest. Starting with alpha10: @AppFunction lives in androidx.appfunctions (not androidx.appfunctions.service) It is only legal on methods of an abstract AppFunctionService marked @AppFunctionServiceEntryPoint KSP generates the concrete subclass named in serviceName and the XML named in appFunctionXmlFileName You declare that generated service yourself; nothing merges a stock one anymore There is no AppFunctionContext parameter; the service is a Context Drop appfunctions:aggregateAppFunctions. Grepping for empty app_functions.

## GSoC Bluetooth Improvement Midterm Recap

DevFeed: [GSoC Bluetooth Improvement Midterm Recap](<https://devfeed.tech/articles/gsoc-bluetooth-improvement-midterm-recap-34780.md>)

Original publisher: [Read original article](<https://www.haiku-os.org/blog/mohammedrattia/2026-07-18_gsoc_bluetooth_improvement_midterm_recap/>)

Author: mohammedrattia

Published: 2026-07-17T23:06:42Z

Content type: article

Language: en

Sources: [Haiku Project](<https://devfeed.tech/sources/haiku-project.md>)

Topics: [Bluetooth](<https://devfeed.tech/topics/bluetooth.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>)

Tags: [bluetooth](<https://devfeed.tech/tags/bluetooth.md>), [commands](<https://devfeed.tech/tags/commands.md>), [devices](<https://devfeed.tech/tags/devices.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [gsoc](<https://devfeed.tech/tags/gsoc.md>), [gsoc2026](<https://devfeed.tech/tags/gsoc2026.md>), [haiku](<https://devfeed.tech/tags/haiku.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [interface](<https://devfeed.tech/tags/interface.md>), [midterm](<https://devfeed.tech/tags/midterm.md>), [recap](<https://devfeed.tech/tags/recap.md>), [software](<https://devfeed.tech/tags/software.md>)

### AI overview

This midterm recap describes improvements to Haiku's Bluetooth stack during a Google Summer of Code project. The work includes updating outdated Host-Controller Interface commands and events, implementing mandatory Bluetooth functionality, adding a setting for the device's friendly name, and adding support for canceling device inquiries.

### Source excerpt

Hello! The GSoC's midterm (at least for me) has just passed, so I thought of making a recap post about the improvements I've made so far. I'll try to keep the post brief to make it easier for readers (foreshadowing: I realized that's impossible :P). I've already posted an introduction about me and the project. You can read it here if you haven't already. Host-Controller Interface (HCI) Commands and Events The Host-Controller Interface (HCI) is the specification for how the operating system (the host, in our case, is Haiku) communicates with the Bluetooth controller. The Bluetooth controller is basically the firmware on the Bluetooth chip. So, it's vital to implement at least most of the mandatory HCI commands and events from the Bluetooth specification for Bluetooth to function properly. HCI commands and events were mostly outdated, dating back to version 2.0 or 2.1, so updating them was the first step to get the Bluetooth stack back to life. The Bluetooth SIG provides an Implementation Conformance Statement (ICS) for HCI, which can be used as a checklist for what's mandatory and what's optional. So, I started by completing what Haiku's Bluetooth stack lacked from the mandatory list. I'll mention here the features that users will be using without getting into internal details, so please feel free to contact me if you want to know more. Set Friendly Name Honestly... I personally don't think this would affect the user experience that much, but it's not me who decides anyway. It was mandatory in HCI, so I implemented it in the Bluetooth settings. Anyway, users can now set any name they want for their Haiku's Bluetooth device. Thanks to Máximo for solving a crash this caused later on and to KitsunePrefecture for reporting the crash :) Cancel Inquiry Discovering Bluetooth devices in Haiku wasn't working before the GSoC application phase. It lacked the handling of critical events needed to understand modern devices. Some GSoC applicants had already fixed a great part of it

## Enable Your SAML Requesting App for Cross App Access

DevFeed: [Enable Your SAML Requesting App for Cross App Access](<https://devfeed.tech/articles/enable-your-saml-requesting-app-for-cross-app-access-15972.md>)

Original publisher: [Read original article](<https://developer.okta.com/blog/2026/07/17/xaa-saml-requester>)

Author: Alisa Duncan

Published: 2026-07-17T05:00:00Z

Content type: tutorial

Language: en

Sources: [Okta Developer](<https://devfeed.tech/sources/okta-developer.md>)

Topics: [OAuth 2.0](<https://devfeed.tech/topics/oauth2.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [OpenID connect (OIDC)](<https://devfeed.tech/topics/oidc.md>), [API](<https://devfeed.tech/topics/api.md>), [AI Agent](<https://devfeed.tech/topics/ai-agent.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [claude](<https://devfeed.tech/tags/claude.md>), [cross-app-access](<https://devfeed.tech/tags/cross-app-access.md>), [digital-signature](<https://devfeed.tech/tags/digital-signature.md>), [identity](<https://devfeed.tech/tags/identity.md>), [idp](<https://devfeed.tech/tags/idp.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [jwt](<https://devfeed.tech/tags/jwt.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [oauth-2-0](<https://devfeed.tech/tags/oauth-2-0.md>), [oidc](<https://devfeed.tech/tags/oidc.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [payload](<https://devfeed.tech/tags/payload.md>), [saml](<https://devfeed.tech/tags/saml.md>), [signing](<https://devfeed.tech/tags/signing.md>), [sso](<https://devfeed.tech/tags/sso.md>), [xaa](<https://devfeed.tech/tags/xaa.md>)

### AI overview

This guide explains how SAML-federated applications can use Cross App Access (XAA) to connect to third-party applications without migrating to OpenID Connect. It covers exchanging a SAML assertion for an OAuth refresh token, an ID-JAG, and an access token, along with token validation and Okta configuration.

### Source excerpt

If you currently federate enterprise customers using Security Assertion Markup Language (SAML) and want to connect with third-party applications without migrating to OpenID Connect (OIDC), this Cross App Access (XAA) guide is for you. The Identity Assertion Authorization Grant specification, the basis of XAA, was originally designed with OIDC in mind. To use it in SAML applications, you must accommodate specific security and uniqueness requirements. This guide details what you need to support and how to make resource requests to a third-party app using XAA. Table of Contents How XAA in SAML works XAA implementation checklist for SAML-federated applications Request the refresh token Request the ID-JAG token Request the access token Handle token expiration Making cross-application requests from your SAML app securely Configure your XAA SAML Requesting App in Okta Register and configure the AI Agent in Okta Test the SAML 2.0 app Validate the XAA connection end-to-end Learn more about Cross App Access, SAML, and OAuth 2.0 How XAA in SAML works When an agent (like one running in Claude) needs API access, it presents an Identity Assertion Authorization Grant (ID-JAG). The ID-JAG is a short-lived JSON Web Token (JWT) issued by the Identity Provider (IdP) for your app's user. You exchange the ID-JAG token for an access token to the resource application you're connecting with. The sequence diagram shown below describes the SAML XAA flow and how your application fits in. You'll handle the flow in two parts: where your application requests the ID-JAG from the IdP using a refresh token, and where your app requests the access token from the ID-JAG from the third-party resource app's authorization server. XAA implementation checklist for SAML-federated applications Follow the guide in this section to support XAA in your SAML application when your app connects to a third-party resource application. The XAA flow places the burden of token validation onto the IdP and the resource ap

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