# module

Published articles for module.

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

## Java 27 Delivers Post-Quantum Cryptography, Future Language Innovation, Helidon 27, JavaFX 27

DevFeed: [Java 27 Delivers Post-Quantum Cryptography, Future Language Innovation, Helidon 27, JavaFX 27](<https://devfeed.tech/articles/java-27-delivers-post-quantum-cryptography-future-language-innovation-helidon-27-javafx-27-30909.md>)

Original publisher: [Read original article](<https://www.infoq.com/news/2026/09/java27-released/>)

Author: Michael Redlich

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

Content type: news

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [java-27](<https://devfeed.tech/topics/java-27.md>), [Post-quantum cryptography](<https://devfeed.tech/topics/post-quantum-cryptography.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Security](<https://devfeed.tech/topics/security.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [application-security](<https://devfeed.tech/tags/application-security.md>), [architecture-design](<https://devfeed.tech/tags/architecture-design.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [development](<https://devfeed.tech/tags/development.md>), [digital-signature](<https://devfeed.tech/tags/digital-signature.md>), [helidon](<https://devfeed.tech/tags/helidon.md>), [java](<https://devfeed.tech/tags/java.md>), [java-27](<https://devfeed.tech/tags/java-27.md>), [java27-released](<https://devfeed.tech/tags/java27-released.md>), [javafx](<https://devfeed.tech/tags/javafx.md>), [jdk-27](<https://devfeed.tech/tags/jdk-27.md>), [jdk-28](<https://devfeed.tech/tags/jdk-28.md>), [lattice](<https://devfeed.tech/tags/lattice.md>), [module](<https://devfeed.tech/tags/module.md>), [news](<https://devfeed.tech/tags/news.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [portfolio](<https://devfeed.tech/tags/portfolio.md>), [post-quantum-cryptography](<https://devfeed.tech/tags/post-quantum-cryptography.md>), [preview](<https://devfeed.tech/tags/preview.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [quantum-computing](<https://devfeed.tech/tags/quantum-computing.md>), [release](<https://devfeed.tech/tags/release.md>), [security](<https://devfeed.tech/tags/security.md>), [structured-concurrency](<https://devfeed.tech/tags/structured-concurrency.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

Oracle released Java 27, the second non-LTS release since JDK 25. Its final feature set contains nine JEPs, including post-quantum hybrid key exchange for TLS 1.3, structured concurrency, compact object headers, JFR data redaction, the Vector API, and PEM encodings for cryptographic objects. Five features remain in preview or incubator stages.

### Source excerpt

Oracle has released version 27 of the Java programming language and virtual machine. As the second non-LTS release since JDK 25, the final feature set includes nine JEPs, five of which are still progressing through the preview and incubator stages. This release focuses on strengthening security, future language innovation, and projects under the auspices of the Java Verified Portfolio. By Michael Redlich

## Starting Android at Khan Academy

DevFeed: [Starting Android at Khan Academy](<https://devfeed.tech/articles/starting-android-at-khan-academy-27408.md>)

Original publisher: [Read original article](<http://engineering.khanacademy.org/posts/starting-android.htm>)

Author: Khan Academy

Published: 2016-02-29T23:00:00Z

Content type: article

Language: en

Sources: [Khan Academy](<https://devfeed.tech/sources/khan-academy.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [android-development](<https://devfeed.tech/topics/android-development.md>), [Development](<https://devfeed.tech/topics/development.md>), [Library](<https://devfeed.tech/topics/library.md>), [modules](<https://devfeed.tech/topics/modules.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Mocking](<https://devfeed.tech/topics/mocking.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [development](<https://devfeed.tech/tags/development.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mocking](<https://devfeed.tech/tags/mocking.md>), [module](<https://devfeed.tech/tags/module.md>), [modules](<https://devfeed.tech/tags/modules.md>), [news](<https://devfeed.tech/tags/news.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [picasso](<https://devfeed.tech/tags/picasso.md>), [play-store](<https://devfeed.tech/tags/play-store.md>), [pre-commit](<https://devfeed.tech/tags/pre-commit.md>), [retrofit](<https://devfeed.tech/tags/retrofit.md>), [test](<https://devfeed.tech/tags/test.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

Khan Academy describes its first Android app, launched in August 2015, and the engineering practices used to build it. The team adopted established Android and open-source libraries, separated Android-independent core code from the app module, and used fast JVM tests and continuous integration.

### Source excerpt

By Ben Komalo The journey of a thousand miles... In March, 2015--almost 1 year ago to the day--we ... Read more

## CVITEK CV1842H-P-based edge AI camera module offers night vision and AI-ISP support (Crowdfunding)

DevFeed: [CVITEK CV1842H-P-based edge AI camera module offers night vision and AI-ISP support (Crowdfunding)](<https://devfeed.tech/articles/cvitek-cv1842h-p-based-edge-ai-camera-module-offers-night-vision-and-ai-isp-support-crowdfunding-27005.md>)

Original publisher: [Read original article](<https://www.cnx-software.com/2026/09/16/cvitek-cv1842h-p-based-edge-ai-camera-module-offers-night-vision-and-ai-isp-support/>)

Author: Debashis Das

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

Content type: news

Language: en

Sources: [CNX Software - Embedded Systems News](<https://devfeed.tech/sources/cnx-software-embedded-systems-news.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [AI Inference](<https://devfeed.tech/topics/ai-inference.md>), [V](<https://devfeed.tech/topics/v.md>), [Arm](<https://devfeed.tech/topics/arm.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Ethernet](<https://devfeed.tech/topics/ethernet.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Toit](<https://devfeed.tech/topics/toit.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [arm](<https://devfeed.tech/tags/arm.md>), [artificial-intelligence-ai](<https://devfeed.tech/tags/artificial-intelligence-ai.md>), [camera](<https://devfeed.tech/tags/camera.md>), [computer-vision](<https://devfeed.tech/tags/computer-vision.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [debug](<https://devfeed.tech/tags/debug.md>), [edge-ai](<https://devfeed.tech/tags/edge-ai.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [ethernet](<https://devfeed.tech/tags/ethernet.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [inference](<https://devfeed.tech/tags/inference.md>), [kickstarter](<https://devfeed.tech/tags/kickstarter.md>), [linux](<https://devfeed.tech/tags/linux.md>), [module](<https://devfeed.tech/tags/module.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [risc-v](<https://devfeed.tech/tags/risc-v.md>), [robotics](<https://devfeed.tech/tags/robotics.md>), [rt-thread](<https://devfeed.tech/tags/rt-thread.md>), [soc](<https://devfeed.tech/tags/soc.md>), [sophgo](<https://devfeed.tech/tags/sophgo.md>), [tinyml](<https://devfeed.tech/tags/tinyml.md>), [usb](<https://devfeed.tech/tags/usb.md>), [video](<https://devfeed.tech/tags/video.md>), [vision](<https://devfeed.tech/tags/vision.md>)

### AI overview

The AIMORELOGY Ovis is an open-source modular AI vision camera built around the CVITEK CV1842H-P SoC. It provides full-color 1080p night vision, 1.5 TOPS edge AI inference, USB and Ethernet connectivity, and a dual-OS environment using Linux and RT-Thread.

### Source excerpt

The AIMORELOGY Ovis is an open-source AI vision camera module built around the CVITEK CV1842H-P SoC, with full-color 1080p night vision and 1.5 TOPS edge AI inference in a compact modular design. It is designed for drones, robotics, security systems, smart cameras, and custom embedded vision products. The camera features a compact stacked design, with a 20 x 20 mm Core board that includes the CVITEK CV1842H-P SoC, 2 Gbit NAND flash, USB, and UART debug pads. A Sensor board with the SC235HAI image sensor connects on top and also adds Ethernet and UART interfaces. An optional CVBS board goes between the Sensor board and the Ovis Core board. AIMORELOGY Ovis specifications: Ovis Core Board SoC - CVITEK CV1842H-P CPU - 1x Arm Cortex-A53 core @ 1.1 GHz, 1x RISC-V C906 core @ 800 MHz NPU - 1.5 TOPS @ INT8 with BF16 support ISP - AI-ISP with real-time 1080p [...] The post CVITEK CV1842H-P-based edge AI camera module offers night vision and AI-ISP support (Crowdfunding) appeared first on CNX Software - Embedded Systems News.

## How to Write a Linux Kernel Module That Actually Builds

DevFeed: [How to Write a Linux Kernel Module That Actually Builds](<https://devfeed.tech/articles/how-to-write-a-linux-kernel-module-that-actually-builds-26900.md>)

Original publisher: [Read original article](<https://www.freecodecamp.org/news/how-to-write-a-linux-kernel-module-that-actually-builds/>)

Author: Chris Roy

Published: 2026-09-15T21:10:57Z

Content type: tutorial

Language: en

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

Topics: [Kernel](<https://devfeed.tech/topics/kernel.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Secure Boot](<https://devfeed.tech/topics/secure-boot.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-kernel](<https://devfeed.tech/tags/linux-kernel.md>), [module](<https://devfeed.tech/tags/module.md>), [secure-boot](<https://devfeed.tech/tags/secure-boot.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains how to build and load a Linux kernel module, including the generated object files, metadata, symbols, debug information, required kernel headers and compiler setup, and common Secure Boot and kernel lockdown restrictions.

### Source excerpt

A Linux kernel module is a small piece of code that can be loaded into the running kernel without rebuilding the entire kernel. That sounds simple enough, but even a minimal module produces a surprisi

## The Android Startup Pattern: A Lifecycle-Aware, Multi-Module Approach

DevFeed: [The Android Startup Pattern: A Lifecycle-Aware, Multi-Module Approach](<https://devfeed.tech/articles/the-android-startup-pattern-a-lifecycle-aware-multi-module-approach-22950.md>)

Original publisher: [Read original article](<https://proandroiddev.com/the-android-startup-pattern-a-lifecycle-aware-multi-module-approach-d0f73e367a62?source=rss----c72404660798---4>)

Author: Ehab Elwan

Published: 2026-09-13T05:31:09Z

Content type: tutorial

Language: en

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

Topics: [Android](<https://devfeed.tech/topics/android.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [app-startup](<https://devfeed.tech/tags/app-startup.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [framework](<https://devfeed.tech/tags/framework.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile-architecture](<https://devfeed.tech/tags/mobile-architecture.md>), [module](<https://devfeed.tech/tags/module.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [software-architecture](<https://devfeed.tech/tags/software-architecture.md>)

### AI overview

This tutorial presents a lifecycle-aware, dependency-injection-driven startup pattern for modular Android applications. It contrasts a centralized startup anti-pattern with Jetpack App Startup and discusses process lifecycles, testability, and delaying tracking SDK initialization until privacy consent is evaluated.

### Source excerpt

A Clean, DI-Driven Architecture for Managing Cold Starts, Background Wakeups, and Privacy Compliance in Modern Android Apps Image generated by AIDisclosure: This article was drafted by me and refined with the help of AI tools. Every growing Android project eventually spawns a two-headed "God Class." On one side, your Application class becomes a dumping ground for global infrastructure--third-party SDKs, crash reporters, and tracking tools. On the other side, your main entry point (typically the MainViewModel) gets choked with UI-blocking startup logic. It usually looks something like this: The Anti-Pattern: The Two-Headed God Class class MyApplication : Application() { override fun onCreate() { super.onCreate() // The framework dumping ground CrashReportingSDK.getInstance().setCollectionEnabled(true) HeavyUiSDK.initialize(context = this, ...) AnalyticsSDK.initialize(this, "API_KEY") // ... 50 more lines of spaghetti } }class MainViewModel : ViewModel() { init { // The UI-blocking dumping ground updateRemoteConfigs() checkUserSessionToken() processPendingDeepLinks() prefetchHomeFeedData() // ... UI cannot render until this finishes } } Splitting initialization across these two files creates major problems: It breaks the Single Responsibility Principle: The app's entry points are forced to orchestrate the inner workings of every single feature, tightly coupling your modules. It ignores process lifecycles: Application tasks run indiscriminately on every silent background wakeup, while MainViewModel tasks fail to re-trigger when the app returns to the foreground. It destroys testability: Hardcoding SDK initializations directly into your entry points makes it incredibly difficult to write isolated unit tests without complicated mocking setups. It complicates privacy compliance: A centralized dumping ground makes it extremely difficult to dynamically suspend tracking SDKs until user consent under global privacy regulations (such as GDPR, CCPA, and CPRA) is explicitly grant

## M5Stack Module13.2 LoRa-1262 expansion board integrates 14x10 mm Stamp LoRa-1262 module

DevFeed: [M5Stack Module13.2 LoRa-1262 expansion board integrates 14x10 mm Stamp LoRa-1262 module](<https://devfeed.tech/articles/m5stack-module13-2-lora-1262-expansion-board-integrates-14-10-mm-stamp-lora-1262-module-14042.md>)

Original publisher: [Read original article](<https://www.cnx-software.com/2026/09/13/m5stack-module13-2-lora-1262-expansion-board-integrates-14x10-mm-stamp-lora-1262-module/>)

Author: Debashis Das

Published: 2026-09-13T05:02:54Z

Content type: news

Language: en

Sources: [CNX Software - Embedded Systems News](<https://devfeed.tech/sources/cnx-software-embedded-systems-news.md>)

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

Tags: [connectivity](<https://devfeed.tech/tags/connectivity.md>), [development-board](<https://devfeed.tech/tags/development-board.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [i2c](<https://devfeed.tech/tags/i2c.md>), [io](<https://devfeed.tech/tags/io.md>), [iot](<https://devfeed.tech/tags/iot.md>), [lora](<https://devfeed.tech/tags/lora.md>), [lorawan](<https://devfeed.tech/tags/lorawan.md>), [low-power](<https://devfeed.tech/tags/low-power.md>), [lpwan](<https://devfeed.tech/tags/lpwan.md>), [m5stack](<https://devfeed.tech/tags/m5stack.md>), [module](<https://devfeed.tech/tags/module.md>), [news](<https://devfeed.tech/tags/news.md>), [power-management](<https://devfeed.tech/tags/power-management.md>), [routing](<https://devfeed.tech/tags/routing.md>), [series](<https://devfeed.tech/tags/series.md>), [smart-agriculture](<https://devfeed.tech/tags/smart-agriculture.md>), [smart-city](<https://devfeed.tech/tags/smart-city.md>), [spi](<https://devfeed.tech/tags/spi.md>), [wireless](<https://devfeed.tech/tags/wireless.md>)

### AI overview

M5Stack has launched the Stamp LoRa-1262 SMD module and the stackable Module13.2 LoRa-1262 expansion board for M5Stack Core controllers. Based on the Semtech SX1262, the module supports several modulation modes across 868-923 MHz, with up to +22 dBm transmit power and -147 dBm receive sensitivity. Module13.2 adds an RP-SMA antenna interface, M5IOE1 I/O expansion, configurable pin routing, and selectable I2C addresses for multi-module stacking.

### Source excerpt

After launching the SX1262-based M5Stamp C6LoRa tiny module, M5Stack has launched two SX1262-based LoRa add-ons for the 868-923 MHz band: the tiny Stamp LoRa-1262 SMD module for custom PCBs, and the stackable Module13.2 LoRa-1262 module for the M5Stack Core series. The Stamp LoRa-1262 supports LoRa, FSK, GFSK, MSK, GMSK, and OOK modulation, with up to +22 dBm transmit power and -147 dBm receive sensitivity. The Module13.2 adds an RP-SMA antenna interface, an M5IOE1 IO expansion chip for reset and power management, and DIP switches for flexible pin routing and configurable I2C addresses, enabling multi-module stacking. Stamp LoRa-1262 SMD module M5Stack Stamp LoRa-1262 specifications: LoRa Transceiver - Semtech SX1262 Wireless Connectivity (LoRa) Frequency Band - 868 to 923 MHz Modulation Modes - LoRa, FSK, GFSK, MSK, GMSK, OOK Bitrate - Up to 300 kbps (programmable) Transmit power (Tx) - Up to +22 dBm Receive sensitivity (Rx) - Down to -147 dBm [...] The post M5Stack Module13.2 LoRa-1262 expansion board integrates 14x10 mm Stamp LoRa-1262 module appeared first on CNX Software - Embedded Systems News.

## Quiz: Python 3.15 Preview: Lazy Imports

DevFeed: [Quiz: Python 3.15 Preview: Lazy Imports](<https://devfeed.tech/articles/quiz-python-3-15-preview-lazy-imports-4410.md>)

Original publisher: [Read original article](<https://realpython.com/quizzes/python315-lazy-imports/>)

Author: Real Python

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

Content type: article

Language: en

Sources: [Real Python](<https://devfeed.tech/sources/real-python.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [.NET 11](<https://devfeed.tech/topics/net-11.md>)

Tags: [module](<https://devfeed.tech/tags/module.md>), [python](<https://devfeed.tech/tags/python.md>), [time](<https://devfeed.tech/tags/time.md>)

### AI overview

An interactive 12-question quiz tests understanding of Python 3.15 Preview lazy imports, including the lazy keyword, __lazy_modules__, deferred module loading, startup-time savings, restrictions, older-Python alternatives, and imports that must remain eager.

### Source excerpt

Test your understanding of Python 3.15 lazy imports, from the lazy keyword and __lazy_modules__ to the imports that have to stay eager.

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

## State divergence enables unauthorized access

DevFeed: [State divergence enables unauthorized access](<https://devfeed.tech/articles/state-divergence-enables-unauthorized-access-7663.md>)

Original publisher: [Read original article](<https://blog.trailofbits.com/2026/08/25/state-divergence-enables-unauthorized-access/>)

Author: "Paweł Płatek"; "Denys Pakizh"

Published: 2026-08-25T11:00:00Z

Content type: article

Language: en

Sources: [The Trail of Bits Blog](<https://devfeed.tech/sources/the-trail-of-bits-blog.md>), [The Trail of Bits Blog](<https://devfeed.tech/sources/the-trail-of-bits-blog-2.md>)

Topics: [bug](<https://devfeed.tech/topics/bug.md>), [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [access-control](<https://devfeed.tech/tags/access-control.md>), [audits](<https://devfeed.tech/tags/audits.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [bug](<https://devfeed.tech/tags/bug.md>), [financial-services](<https://devfeed.tech/tags/financial-services.md>), [module](<https://devfeed.tech/tags/module.md>), [tokens](<https://devfeed.tech/tags/tokens.md>), [transactions](<https://devfeed.tech/tags/transactions.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

The article describes a Provenance Blockchain authorization bug that allowed users to grant themselves admin control over marker accounts without holding tokens. The flaw affected non-fixed-supply markers because the access check read a stale zero-valued supply field instead of the live circulating supply. The issue was mitigated in v1.28.0 and fixed in v1.29.0.

### Source excerpt

We found and reported a bug in Provenance Blockchain, a public proof-of-stake chain built on Cosmos SDK, that lets any user grant themselves admin control over marker accounts without holding a single token. Provenance covers a range of financial services, including on-chain tokenized loans, private equity tokens, bridged assets, and asset registries. Our bug affected 82 markers representing live financial assets on mainnet. We found the bug, which affects versions before 1.28.0, in March 2026, and reported it to Provenance on April 1. It was mitigated in PR #2627 (commit c81fd65), which shipped in v1.28.0 on May 1, 2026, and fixed in PR #2734, which shipped in v1.29.0 on June 8, 2026. What is a marker? The marker module is Provenance's core primitive for fungible tokens. Chain participants can issue a new asset on Provenance by submitting a MsgAddMarkerRequest transaction; the chain creates a dedicated account for that asset, called a marker. Each marker is a special account type that controls: A denomination (e.g., uusd.trading, cusd.deposit, cguaranteedrateomni) An access control list governing who can mint, burn, withdraw, deposit, or administer the token A supply field recording the canonical token count An escrow balance (the marker account can hold any asset, not just its own denomination) Markers are either supply_fixed (the supply field is enforced as a hard cap) or non-fixed (the bank module is the source of truth; the supply field is informational). This distinction is central to the bug. The bug: An access check anyone can pass AddAccess is the Cosmos SDK message handler that processes requests to modify a marker's access control list. It checks whether the caller is authorized using three conditions, any one of which is sufficient: The caller is the marker's designated manager and the marker is in Finalized state. The caller already holds ACCESS_ADMIN on the marker. The caller controls 100% of the marker's circulating supply. case types.StatusFinalized,

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

## jetc.dev Newsletter Issue #322

DevFeed: [jetc.dev Newsletter Issue #322](<https://devfeed.tech/articles/jetc-dev-newsletter-issue-322-22954.md>)

Original publisher: [Read original article](<https://jetc.dev/issues/322.html>)

Author: CommonsWare

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

Content type: article

Language: en

Sources: [jetc.dev | Issues](<https://devfeed.tech/sources/jetc-dev-issues.md>)

Topics: [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [compose-for-desktop](<https://devfeed.tech/topics/compose-for-desktop.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Android](<https://devfeed.tech/topics/android.md>), [navigation](<https://devfeed.tech/topics/navigation.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-for-desktop](<https://devfeed.tech/tags/compose-for-desktop.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [dev](<https://devfeed.tech/tags/dev.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [module](<https://devfeed.tech/tags/module.md>), [navigation](<https://devfeed.tech/tags/navigation.md>)

### AI overview

This newsletter issue rounds up recent Jetpack Compose developments and related community content, including Compose updates, TV Compose performance, navigation, filter bars, settings-screen DSLs, Compose Multiplatform with SwiftUI, and Compose for Desktop performance.

### Source excerpt

SubcomposeLayout! TV Compose! Nav3! Filter bars! Setting screens! And... can we make Compose for Desktop better?!?

## Practical Kotlin Multiplatform: Setting up the Kotlin Multiplatform Networking Module with Ktor

DevFeed: [Practical Kotlin Multiplatform: Setting up the Kotlin Multiplatform Networking Module with Ktor](<https://devfeed.tech/articles/practical-kotlin-multiplatform-setting-up-the-kotlin-multiplatform-networking-module-with-ktor-25190.md>)

Original publisher: [Read original article](<https://joebirch.co/android/practical-kotlin-multiplatform-setting-up-the-kotlin-multiplatform-networking-module-with-ktor/>)

Author: hitherejoe

Published: 2026-07-10T16:16:31Z

Content type: tutorial

Language: en

Sources: [Joe Birch](<https://devfeed.tech/sources/joe-birch.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Ktor](<https://devfeed.tech/topics/ktor.md>), [networking](<https://devfeed.tech/topics/networking.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Firebase](<https://devfeed.tech/topics/firebase.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [androiddev](<https://devfeed.tech/tags/androiddev.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [ios](<https://devfeed.tech/tags/ios.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [library](<https://devfeed.tech/tags/library.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [module](<https://devfeed.tech/tags/module.md>), [networking](<https://devfeed.tech/tags/networking.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>)

### AI overview

A tutorial series installment that sets up a Kotlin Multiplatform networking module with Ktor for shared Android and iOS code. It describes building a portable Firebase Authentication and Firestore REST API layer without relying on platform-specific SDKs.

### Source excerpt

This post is part one of a series adapted from Practical KMP, my book on building production Kotlin Multiplatform apps for Android and iOS. Part 1: Creating the Kotlin Multiplatform Module In this part of the book, we'll build the complete authentication remote store, defining a repository that handles every operation our app needs for... Continue reading ->

## How AI agents could shift software work from code changes to specifications and module rebuilds

DevFeed: [How AI agents could shift software work from code changes to specifications and module rebuilds](<https://devfeed.tech/articles/agents-are-the-new-compilers-specs-are-the-new-code-25207.md>)

Original publisher: [Read original article](<https://kau.sh/blog/agent-compilers/>)

Author: Kaushik Gopal

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

Content type: opinion

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Agent Skills](<https://devfeed.tech/topics/agent-skills.md>), [Software](<https://devfeed.tech/topics/software.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [modules](<https://devfeed.tech/topics/modules.md>), [patches](<https://devfeed.tech/topics/patches.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [code](<https://devfeed.tech/tags/code.md>), [module](<https://devfeed.tech/tags/module.md>), [patches](<https://devfeed.tech/tags/patches.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

### AI overview

This opinion article argues that AI agents may act like compilers, turning detailed specifications into software and reducing the need to write implementation code directly. Drawing on examples where the author changed implementations while preserving behavior, it suggests that agents could make rebuilding entire modules more practical than incremental patching and refactoring.

### Source excerpt

Linus Torvalds recently said1 AI will be to code what compilers were to assembly -- freeing us from writing it by hand. Around the same time, I talked with Jesse Vincent (creator of one of the most popular agent skills out there -- superpowers). Something he said stuck with me: Specs are going to be the new code. I realize those two ideas snap together a little too neatly. Agents are compilers2 and specs will become code. Software engineering is moving up another level of abstraction and we've seen this play out before. Specs as source ## I saw this first-hand with my tiny USB-C cable checker -- usbi. It started as a shell command over macOS's system_profiler, then became Go when I wanted a proper binary, then Rust because I wanted to practice Rust, and later a .kts version. The code kept changing. The thing I cared about did not: parse the USB tree, identify the attached devices, report the speed, and make bad cables obvious. Podsync, my voice track sync program, followed the same pattern. It started in Python because the audio libraries were there. Then I moved it to Rust because I didn't want to ship a Python runtime or care which Python version happened to be on a machine. Again, the implementation changed. The behavior stayed boringly stable: take a master track and local tracks, find the offset, pad or trim each file, and drop aligned audio into the DAW. Compilers freed us from writing assembly. Agents may free us from writing code because it becomes an artifact the spec produces. The somewhat recent push around detailed exec plans could be an early signal of the looming shift at bigger scale. Rebuilds instead of patches ## Push that thought further. We might get comfortable rebuilding whole modules instead of patching and refactoring them. We preserved the old shape of a system because throwing it away cost too much. Even when you know the module is wrong, you sand it down: extract an interface, migrate one caller at a time, add tests around behavior nobody full

## Upgrade Cypress To TypeScript v6

DevFeed: [Upgrade Cypress To TypeScript v6](<https://devfeed.tech/articles/upgrade-cypress-to-typescript-v6-28902.md>)

Original publisher: [Read original article](<https://glebbahmutov.com/blog/upgrade-cypress-to-typescript-v6/>)

Author: Gleb Bahmutov

Published: 2026-04-23T04:00:00Z

Content type: tutorial

Language: en

Sources: [Gleb Bahmutov](<https://devfeed.tech/sources/gleb-bahmutov.md>)

Topics: [Cypress](<https://devfeed.tech/topics/cypress.md>), [TypeScript](<https://devfeed.tech/topics/typescript.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [Webpack](<https://devfeed.tech/topics/webpack.md>)

Tags: [cypress](<https://devfeed.tech/tags/cypress.md>), [import](<https://devfeed.tech/tags/import.md>), [module](<https://devfeed.tech/tags/module.md>), [products](<https://devfeed.tech/tags/products.md>), [typescript](<https://devfeed.tech/tags/typescript.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [webpack](<https://devfeed.tech/tags/webpack.md>)

### AI overview

This tutorial explains how to upgrade Cypress projects to TypeScript v6. It recommends using bundler module resolution with Webpack and adjusting transpilation and path-alias options when needed.

### Source excerpt

Finally, it has happened. Cypress v15.14 supports TypeScript v6. This is a big deal

## Introducing the Koin Migration Skills

DevFeed: [Introducing the Koin Migration Skills](<https://devfeed.tech/articles/introducing-the-koin-migration-skills-22970.md>)

Original publisher: [Read original article](<https://blog.insert-koin.io/introducing-the-koin-migration-skills-0b4be9c819cc?source=rss----925561f2ecdf---4>)

Author: Arnaud Giuliani

Published: 2026-04-22T13:23:59Z

Content type: article

Language: en

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

Topics: [migration](<https://devfeed.tech/topics/migration.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Claude Code](<https://devfeed.tech/topics/claude-code.md>), [Android](<https://devfeed.tech/topics/android.md>), [Dagger](<https://devfeed.tech/topics/dagger.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [claude-code](<https://devfeed.tech/tags/claude-code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [dagger](<https://devfeed.tech/tags/dagger.md>), [dagger-hilt](<https://devfeed.tech/tags/dagger-hilt.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [koin](<https://devfeed.tech/tags/koin.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [migration](<https://devfeed.tech/tags/migration.md>), [module](<https://devfeed.tech/tags/module.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

The article introduces the Koin Migration Skill, a Claude Code plugin for migrating Kotlin and Android projects from Hilt, Dagger, Toothpick, Kodein, or older Koin versions to Koin 4.x and the Koin Compiler Plugin. It describes module-by-module inventory, ranked migration planning, compile-time verification, and human checkpoints.

### Source excerpt

Hello all 👋 Migrating a Kotlin or Android project between DI frameworks (Hilt, Dagger, Toothpick, Kodein, or older Koin versions) is one of those strategic refactors that every team puts off. It touches every module, the call sites are everywhere, and the migration plan never quite survives contact with the real codebase. We wanted to take the pain out of it. So we built the Koin Migration Skill: a Claude Code plugin that automates DI migrations to Koin 4.x and the Koin Compiler Plugin, module by module, with compile-time verification and a human-in-the-loop at every step. Koin Migration Project -- 1.0.0What it covers Initially, this project is intended to help Koin developers to migrate to use the new Koin Compiler Plugin. The skill supports every realistic migration path into modern Koin, with Koin Compiler if possible. This uses either annotations or the safe DSL: Hilt -> Koin (with koin-android-dagger bridging during migration) Dagger -> Koin Toothpick -> Koin Kodein -> Koin Koin 3.x -> Koin 4.x upgrade Classic Koin DSL -> Safe DSL Koin KSP Annotations -> Koin Compiler Plugin All paths converge on the same target: Koin 4.x with Annotations or Safe DSL, powered by the Koin Compiler Plugin for compile-time DI graph verification. How it works Project documentation is available: https://github.com/InsertKoinIO/koin-migration. Point Claude at your project and describe what you want to migrate. /plugin marketplace add InsertKoinIO/koin-migration /plugin install koin-migration@koin-migrationAdding Skill in current project The skill opens with a full inventory of your DI setup: every module, binding, qualifier, and scope. It immediately produces a ranked migration table. The NowInAndroid project below has 35 DI files across core, feature, app, and sync layers. The skill maps each one: bindings count, downstream dependants, complexity rating, and a recommended order. Modules inventory, DI features usage and mapping You can't go "big-bang" in that kind of approach. You need to st

## Leveraging @RequireOptIn to create composables that can be used only in previews

DevFeed: [Leveraging @RequireOptIn to create composables that can be used only in previews](<https://devfeed.tech/articles/leveraging-requireoptin-to-create-composables-that-can-be-used-only-in-previews-28722.md>)

Original publisher: [Read original article](<https://le0nidas.gr/2026/03/22/leveraging-requireoptin-to-create-composables-that-can-be-used-only-in-previews/>)

Author: Leonidas Partsas

Published: 2026-03-22T14:32:15Z

Content type: tutorial

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compilation-error](<https://devfeed.tech/tags/compilation-error.md>), [components](<https://devfeed.tech/tags/components.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [know-your-tools](<https://devfeed.tech/tags/know-your-tools.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [module](<https://devfeed.tech/tags/module.md>), [preview](<https://devfeed.tech/tags/preview.md>), [production](<https://devfeed.tech/tags/production.md>), [requireoptin](<https://devfeed.tech/tags/requireoptin.md>)

### AI overview

This tutorial explains how to use Kotlin's @RequiresOptIn mechanism with a @PreviewOnly annotation to expose composables for preview rendering across modules while preventing their use in production code. Explicit opt-in is required at each call site, otherwise compilation fails.

### Source excerpt

Anyone working with Kotlin, especially in the android world, has dealt with RequireOptIn. Actually they had to deal with the consequence of its application which is to explicitly opt-in into using a piece of code that is annotated with it. @RequiresOptIn In a nutshell, if you want the consumer of your code to be fully ... Continue reading Leveraging @RequireOptIn to create composables that can be used only in previews ->

## Waiting for PostgreSQL 19 - Add pg\_plan\_advice contrib module.

DevFeed: [Waiting for PostgreSQL 19 - Add pg\_plan\_advice contrib module.](<https://devfeed.tech/articles/waiting-for-postgresql-19-add-pg-plan-advice-contrib-module-33682.md>)

Original publisher: [Read original article](<https://www.depesz.com/2026/03/22/waiting-for-postgresql-19-add-pg_plan_advice-contrib-module/>)

Author: depesz

Published: 2026-03-22T13:44:10Z

Content type: tutorial

Language: en

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

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

Tags: [advice](<https://devfeed.tech/tags/advice.md>), [hint](<https://devfeed.tech/tags/hint.md>), [module](<https://devfeed.tech/tags/module.md>), [pg-plan-advice](<https://devfeed.tech/tags/pg-plan-advice.md>), [pg19](<https://devfeed.tech/tags/pg19.md>), [plan](<https://devfeed.tech/tags/plan.md>), [planner](<https://devfeed.tech/tags/planner.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [statistics](<https://devfeed.tech/tags/statistics.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>), [waiting](<https://devfeed.tech/tags/waiting.md>)

### AI overview

This article examines PostgreSQL's proposed pg_plan_advice contrib module, explaining why query planners sometimes choose suboptimal plans, how plan hints could stabilize or override those choices, and how to load and test the extension.

### Source excerpt

On 12nd of March 2026, Robert Haas committed patch: Add pg_plan_advice contrib module. Provide a facility that (1) can be used to stabilize certain plan choices so that the planner cannot reverse course without authorization and (2) can be used by knowledgeable users to insist on plan choices contrary to what the planner believes ... Continue reading "Waiting for PostgreSQL 19 - Add pg_plan_advice contrib module."

## 11ty Hacks for Fun and Performance

DevFeed: [11ty Hacks for Fun and Performance](<https://devfeed.tech/articles/11ty-hacks-for-fun-and-performance-26560.md>)

Original publisher: [Read original article](<https://infrequently.org/2025/10/11ty-hacks-for-fun-and-performance/>)

Author: Alex Russell

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

Content type: tutorial

Language: en

Sources: [Alex Russell](<https://devfeed.tech/sources/alex-russell.md>)

Topics: [Script](<https://devfeed.tech/topics/script.md>), [Nunjucks](<https://devfeed.tech/topics/nunjucks.md>), [Markdown](<https://devfeed.tech/topics/markdown.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [11ty](<https://devfeed.tech/tags/11ty.md>), [async](<https://devfeed.tech/tags/async.md>), [blog](<https://devfeed.tech/tags/blog.md>), [blogging](<https://devfeed.tech/tags/blogging.md>), [build](<https://devfeed.tech/tags/build.md>), [code](<https://devfeed.tech/tags/code.md>), [fun](<https://devfeed.tech/tags/fun.md>), [hacks](<https://devfeed.tech/tags/hacks.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [js](<https://devfeed.tech/tags/js.md>), [module](<https://devfeed.tech/tags/module.md>), [performance](<https://devfeed.tech/tags/performance.md>), [script](<https://devfeed.tech/tags/script.md>), [web](<https://devfeed.tech/tags/web.md>), [webdev](<https://devfeed.tech/tags/webdev.md>)

### AI overview

A developer shares techniques for improving performance in an 11ty site, including selectively loading shortcode resources through the 11ty Bundle plugin, avoiding duplicate scripts, and handling Nunjucks and Markdown preprocessing.

### Source excerpt

This blog really isn't just for beating up on Apple for the way it harms users, the web, standards, and society to maintain power and profits. So here's some fun stuff I've been doing in my 11ty setup to improve page performance. Contents Page-Specific Resources via Shortcodes and the 11ty Bundler Mo Pagination, Mo Problems Build Time Impact Scroll-Position Based Delayed Code Loading Faster CSS Selectors for 11ty Syntax Highlighting Lean Rada's CSS-only Low-Quality Image Previews Bonus Hack: Global Acronyms for Better Abbreviations Does It Work? Page-Specific Resources via Shortcodes and the 11ty Bundler You know how it gets once you've got a mature 11ty setup: shortcodes proliferate, and some generate output that might depend on JS or CSS. If your setup is anything like mine, you might also feel conflicted about including some of those resources globally. It's important to have them available for the posts that need them, but it's not great to bring a charting library, e.g., into every page when only 1 in 20 will need it. This blog has grown many such shortcodes that generate expansions for features like: Web Components for YouTube and Vimeo embeds WebPageTest.org test embeds plot.js based charts Here, for instance, is how a Vimeo embed looks in the markdown of a page, using Nunjucks for Markdown pre-processing: {% vimeo "VIDEOID", "TITLE" %} This expands to: <lite-vimeo videoid="VIDEOID" videotitle="TITLE"> <a href="http://vimeo.com/VIDEOID">TITLE</a> </lite-vimeo> But this also requires script; e.g.: <script type="module" async src="/assets/js/lite-vimeo/lite-vimeo.js"> </script> And the list keeps growing. To avoid having the weight of these components clogging up every page, a system for selectively pulling in their code would be helpful. It'd also be grand if we could make sure scripts appear just once, even if shortcodes are invoked multiple times per page. Included code should preferably also be located towards the top of the document. The 11ty Bundle plugin

## Multi-Module Projects with Cangjie

DevFeed: [Multi-Module Projects with Cangjie](<https://devfeed.tech/articles/multi-module-projects-with-cangjie-24552.md>)

Original publisher: [Read original article](<https://medium.com/snapp-mobile/multi-module-projects-with-cangjie-c43236c37292?source=rss----bcd96e620b02---4>)

Author: Jasper Morgan

Published: 2025-09-02T12:39:21Z

Content type: tutorial

Language: en

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

Topics: [Package manager](<https://devfeed.tech/topics/package-manager.md>), [modules](<https://devfeed.tech/topics/modules.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Code](<https://devfeed.tech/topics/code.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [building](<https://devfeed.tech/tags/building.md>), [cangjie](<https://devfeed.tech/tags/cangjie.md>), [cli](<https://devfeed.tech/tags/cli.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [huawei](<https://devfeed.tech/tags/huawei.md>), [init](<https://devfeed.tech/tags/init.md>), [module](<https://devfeed.tech/tags/module.md>), [programming](<https://devfeed.tech/tags/programming.md>), [run](<https://devfeed.tech/tags/run.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

A tutorial on using the Cangjie package manager, cjpm, to create and configure multi-module projects. It covers initializing a workspace, adding executable and library modules, registering them in the workspace configuration, adding source code, building, and running the project.

### Source excerpt

The Cangjie package manager cjpm is a cli tool which can be used to setup multi-module projects. A module is simply a folder with a cjpm.toml file - whilst these can also be created by hand, the cli tool simplifies the process. The approach to the setup is to create a cjpm workspace at the project root and then separate module within the workspace. It will look like this: my-project (workspace) -- module-1 -- module-2 -- module-3Create the workspace In the root of your project, initialise a workspace: # create a project folder mkdir cat-pic-downloader cd cat-pic-downloader # initialise the workspace cjpm init --workspace At this stage, your project directory will have a cjpm.toml which is the configuration for your workspace. A newly initialised workspace config will look like this. [dependencies] [workspace] build-members = [] compile-option = "" link-option = "" members = [] target-dir = "" test-members = []Add the modules To add a module to the project, use the cjpm init command but with the options to specify the type of module to create (executable, a static library or a dynamic library). Let's add a couple of modules to our sample project. # create a static lib module called 'downloader' cjpm init --type=static --path downloader # create a static lib module called 'img-processor' cjpm init --type=static --path img_processor # create an executable module called 'runner' cjpm init --type=executable --path runner By default, a newly created module has a src directory and it's own cjpm.toml to configure the module. (Static library modules will have no source code. Executable modules will have a main.cj file.) Add the modules to the workspace So that the workspace is aware of the modules we created, we need to add them to the members field of the workspace's cjpm.toml. Edit the cjpm.toml as follows. [dependencies] [workspace] build-members = [] compile-option = "" link-option = "" members = ["./runner", "./downloader", "./img_processor"] target-dir = "" test-member

## How Imports Work in RSC

DevFeed: [How Imports Work in RSC](<https://devfeed.tech/articles/how-imports-work-in-rsc-36172.md>)

Original publisher: [Read original article](<https://overreacted.io/how-imports-work-in-rsc/>)

Published: 2025-06-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dan Abramov](<https://devfeed.tech/sources/dan-abramov.md>)

Topics: [modules](<https://devfeed.tech/topics/modules.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [code](<https://devfeed.tech/tags/code.md>), [components](<https://devfeed.tech/tags/components.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [module](<https://devfeed.tech/tags/module.md>)

### AI overview

This deep dive explains how JavaScript module systems split code between frontend and backend environments, and how React Server Components use import-related semantics to support applications spanning both sides.

### Source excerpt

A layered module system.

## Python 3.14 Adds compression.zstd for Zstandard Support

DevFeed: [Python 3.14 Adds compression.zstd for Zstandard Support](<https://devfeed.tech/articles/python-3-14-adds-compression-zstd-for-zstandard-support-54.md>)

Original publisher: [Read original article](<https://blog.abhimanyu-saharan.com/posts/python-3-14-adds-compression-zstd-for-zstandard-support>)

Author: Abhimanyu Saharan

Published: 2025-05-22T00:00:00Z

Content type: article

Language: en

Sources: [Abhimanyu Saharan](<https://devfeed.tech/sources/abhimanyu-s-blog.md>)

Topics: [Python 3.14](<https://devfeed.tech/topics/python-3-14.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [compression](<https://devfeed.tech/tags/compression.md>), [module](<https://devfeed.tech/tags/module.md>), [python](<https://devfeed.tech/tags/python.md>), [python-3-14](<https://devfeed.tech/tags/python-3-14.md>)

### AI overview

Python 3.14 introduces a native compression.zstd module for Zstandard support, bringing high-performance zstd compression and existing standard-library compressors together under one namespace.

### Source excerpt

Python 3.14 adds a native Zstandard module under compression.zstd, unifying high-performance zstd support and existing stdlib compressors under one namespace.

## Vector Sets are part of Redis

DevFeed: [Vector Sets are part of Redis](<https://devfeed.tech/articles/vector-sets-are-part-of-redis-20640.md>)

Original publisher: [Read original article](<http://antirez.com/news/149>)

Published: 2025-04-03T18:01:20Z

Content type: article

Language: en

Sources: [Antirez](<https://devfeed.tech/sources/antirez.md>)

Topics: [Redis](<https://devfeed.tech/topics/redis.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [API](<https://devfeed.tech/topics/api.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [design](<https://devfeed.tech/tags/design.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [module](<https://devfeed.tech/tags/module.md>), [native](<https://devfeed.tech/tags/native.md>), [redis](<https://devfeed.tech/tags/redis.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

The article announces that Vector Sets have been merged into Redis. It describes them as a new Set-like data type that stores vectors, supports vector-similarity queries, and will be available as a native data type in Redis 8 while retaining modular internal boundaries. The feature is still in beta.

### Source excerpt

Yesterday we finally merged vector sets into Redis, here you can find the README that explains in detail what you get: https://github.com/redis/redis/blob/unstable/modules/vector-sets/README.md The goal of the new data structure is, in short, to create a new "Set alike" data type, similar to Sorted Sets, where instead of having a scalar as a score, you have a vector, and you can add and remove elements the Redis way, without caring about anything except the properties of the abstract data structure Redis implements, ask for elements similar to a given query vector (or a vector associated to some element already in the set), and so forth. But more about that later, a bit of background, first: From the path of the README itself, you can see the implementation is into "modules", but actually, Vector Sets are not a module, it's a part of the Redis core, the thing is that I started developing them as a module, and later I suggested that the implementation should still use the modules API, in order to promote modularity of the internals of Redis, in order to have both the advantages: every Redis instance starting from Redis 8 will have Vector Sets as a native data type, and there are clear boundaries between the core and the implementation ## The first new main data type of Redis after... some time I think that the latest big data structure of Redis were Streams, also developed by me. I resigned, returned, forks happened in the meantime, and it still it looks like the burden to introduce a new data type in Redis is mine :D I must say: I'm ok with that, because as much as I like programming, I also like design, a lot, and I had a feeling, that vectors, and vector similarity, are conceptually very simple, so they deserved a very simple API. And that was what I tried to do. Vector Sets are still a beta feature but I can tell you something, I can guarantee you can learn the API in 3 minutes. I decided that a fundamental requirement for implementing vector similarity was to also

## Assorted NixOS things

DevFeed: [Assorted NixOS things](<https://devfeed.tech/articles/assorted-nixos-things-38528.md>)

Original publisher: [Read original article](<https://msfjarvis.dev/posts/assorted-nixos-things/>)

Author: Harsh Shandilya

Published: 2024-12-07T20:19:00Z

Content type: article

Language: en

Sources: [Posts on Harsh Shandilya](<https://devfeed.tech/sources/posts-on-harsh-shandilya.md>)

Topics: [Nix](<https://devfeed.tech/topics/nix.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [systems](<https://devfeed.tech/topics/systems.md>), [tailscale](<https://devfeed.tech/topics/tailscale.md>), [Virtual Private Network](<https://devfeed.tech/topics/vpn.md>), [Text-based user interface](<https://devfeed.tech/topics/tui.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [commands](<https://devfeed.tech/tags/commands.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [errors](<https://devfeed.tech/tags/errors.md>), [git](<https://devfeed.tech/tags/git.md>), [module](<https://devfeed.tech/tags/module.md>), [nix](<https://devfeed.tech/tags/nix.md>), [nixos](<https://devfeed.tech/tags/nixos.md>), [nixpkgs](<https://devfeed.tech/tags/nixpkgs.md>), [packages](<https://devfeed.tech/tags/packages.md>), [repl](<https://devfeed.tech/tags/repl.md>), [tailscale](<https://devfeed.tech/tags/tailscale.md>)

### AI overview

A running log of practical NixOS, Nix, and Nixpkgs notes covering flake metadata, the module system, package updates, the Nix language, REPL builds, fixed-output derivations, and Tailscale exit nodes.

### Source excerpt

Running log of random things I've learned about Nix/NixOS/Nixpkgs

## Kermit 2.0.5 updates OSLogWriter and adds file logging - Kevin Schildhorn

DevFeed: [Kermit 2.0.5 updates OSLogWriter and adds file logging - Kevin Schildhorn](<https://devfeed.tech/articles/kermit-2-0-5-updates-oslogwriter-and-adds-file-logging-kevin-schildhorn-38232.md>)

Original publisher: [Read original article](<https://touchlab.co/kermit-205>)

Published: 2024-11-22T00:00:00Z

Content type: release

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Logging](<https://devfeed.tech/topics/logging.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [IO](<https://devfeed.tech/topics/io.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>), [file](<https://devfeed.tech/topics/file.md>)

Tags: [added](<https://devfeed.tech/tags/added.md>), [automatic](<https://devfeed.tech/tags/automatic.md>), [features](<https://devfeed.tech/tags/features.md>), [io](<https://devfeed.tech/tags/io.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kermit](<https://devfeed.tech/tags/kermit.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [library](<https://devfeed.tech/tags/library.md>), [logging](<https://devfeed.tech/tags/logging.md>), [logs](<https://devfeed.tech/tags/logs.md>), [module](<https://devfeed.tech/tags/module.md>), [sample](<https://devfeed.tech/tags/sample.md>), [swift](<https://devfeed.tech/tags/swift.md>), [update](<https://devfeed.tech/tags/update.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

Kermit 2.0.5 has been released with updates to OSLogWriter, an upgrade to Kotlin 2.0.10, and a new Kermit-IO module for writing logs to files. The release also adds configurable iOS log categorization, filtering, grouping, and public-versus-redacted log behavior.

### Source excerpt

The 2.0.5 update for Kermit is out now and features various updates to OSLogWriter, as well as the ability to log to a file.

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