# reuse

Published articles for reuse.

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

## Announcing the S3 API: Use any S3 client with Appwrite Storage

DevFeed: [Announcing the S3 API: Use any S3 client with Appwrite Storage](<https://devfeed.tech/articles/announcing-the-s3-api-use-any-s3-client-with-appwrite-storage-16442.md>)

Original publisher: [Read original article](<https://appwrite.io/blog/post/announcing-s3-api>)

Author: Torsten Dittmann

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

Content type: release

Language: en

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

Topics: [Appwrite](<https://devfeed.tech/topics/appwrite.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [API](<https://devfeed.tech/topics/api.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [migration](<https://devfeed.tech/topics/migration.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [api](<https://devfeed.tech/tags/api.md>), [aws](<https://devfeed.tech/tags/aws.md>), [backup](<https://devfeed.tech/tags/backup.md>), [cli](<https://devfeed.tech/tags/cli.md>), [code](<https://devfeed.tech/tags/code.md>), [commands](<https://devfeed.tech/tags/commands.md>), [data](<https://devfeed.tech/tags/data.md>), [files](<https://devfeed.tech/tags/files.md>), [migration](<https://devfeed.tech/tags/migration.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [s3](<https://devfeed.tech/tags/s3.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [server](<https://devfeed.tech/tags/server.md>), [storage](<https://devfeed.tech/tags/storage.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

Appwrite Storage now exposes an S3-compatible API that supports AWS CLI, AWS SDKs, rclone, s3cmd, and other S3 clients. Existing buckets and files remain available through both the native Storage API and the S3 API, with support for standard operations, multipart uploads, and presigned URLs.

### Source excerpt

Appwrite Storage now exposes an S3-compatible API. Point the AWS CLI, the AWS SDKs, and tools like rclone at your Appwrite buckets, with no migration required.

## Ray tracing massive amounts of animated geometry using tetrahedral cages

DevFeed: [Ray tracing massive amounts of animated geometry using tetrahedral cages](<https://devfeed.tech/articles/ray-tracing-massive-amounts-of-animated-geometry-using-tetrahedral-cages-15048.md>)

Original publisher: [Read original article](<https://gpuopen.com/learn/ray-tracing-massive-amounts-animated-geometry/>)

Author: Holger Gruen

Published: 2026-07-22T01:00:00Z

Content type: article

Language: en

Sources: [AMD GPUOpen](<https://devfeed.tech/sources/amd-gpuopen.md>)

Topics: [Ray Tracing](<https://devfeed.tech/topics/ray-tracing.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [real-time](<https://devfeed.tech/topics/real-time.md>)

Tags: [agility-sdk](<https://devfeed.tech/tags/agility-sdk.md>), [animation](<https://devfeed.tech/tags/animation.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [article-release](<https://devfeed.tech/tags/article-release.md>), [directx](<https://devfeed.tech/tags/directx.md>), [game-development](<https://devfeed.tech/tags/game-development.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [graphics](<https://devfeed.tech/tags/graphics.md>), [graphics-apis](<https://devfeed.tech/tags/graphics-apis.md>), [memory](<https://devfeed.tech/tags/memory.md>), [microsoft-agility-sdk](<https://devfeed.tech/tags/microsoft-agility-sdk.md>), [microsoft-directx](<https://devfeed.tech/tags/microsoft-directx.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [ray-tracing](<https://devfeed.tech/tags/ray-tracing.md>), [raytracing](<https://devfeed.tech/tags/raytracing.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [research](<https://devfeed.tech/tags/research.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [technical-article](<https://devfeed.tech/tags/technical-article.md>), [technical-articles](<https://devfeed.tech/tags/technical-articles.md>), [white-paper](<https://devfeed.tech/tags/white-paper.md>)

### AI overview

The article explains a ray-tracing method for massive animated scenes that uses low-resolution tetrahedral cages to deform geometry while reusing static mini-meshes and mini-BLASes. This reduces per-frame update and memory costs, with the paper demonstrating roughly 585 million animated triangles at 60 frames per second on an AMD Radeon RX 9070 XT at 1080p.

### Source excerpt

Animate compact tetrahedral cages and reuse static mini-BLASes to ray-trace hundreds of millions of triangles in real time, dramatically cutting per-frame update and memory costs for dense foliage, grass, and crowds.

## Nginx TLS tuning for HTTPS performance, TTFB, and latency

DevFeed: [Nginx TLS tuning for HTTPS performance, TTFB, and latency](<https://devfeed.tech/articles/nginx-tuning-tips-https-tls-turbocharge-ttfb-latency-20880.md>)

Original publisher: [Read original article](<https://linuxblog.io/nginx-tuning-tips-tls-ssl-https-ttfb-latency/>)

Author: Hayden James

Published: 2026-06-10T12:06:18Z

Content type: tutorial

Language: en

Sources: [Hayden James](<https://devfeed.tech/sources/hayden-james.md>)

Topics: [nginx](<https://devfeed.tech/topics/nginx.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Handshake](<https://devfeed.tech/topics/handshake.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [http](<https://devfeed.tech/tags/http.md>), [http-3](<https://devfeed.tech/tags/http-3.md>), [latency](<https://devfeed.tech/tags/latency.md>), [linux](<https://devfeed.tech/tags/linux.md>), [nginx](<https://devfeed.tech/tags/nginx.md>), [performance](<https://devfeed.tech/tags/performance.md>), [request](<https://devfeed.tech/tags/request.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [security](<https://devfeed.tech/tags/security.md>), [server](<https://devfeed.tech/tags/server.md>), [sysadmins](<https://devfeed.tech/tags/sysadmins.md>), [tls](<https://devfeed.tech/tags/tls.md>)

### AI overview

A practical guide to tuning Nginx TLS, HTTP/2, and HTTP/3 settings for HTTPS performance. It explains that tuning can reduce handshake overhead and improve connection reuse, while application execution often remains the main contributor to TTFB and latency.

### Source excerpt

Nginx TLS tuning won't fix a slow application, but it does cut handshake overhead and improve connection reuse, which shaves milliseconds off every HTTPS request. Continue reading...

## Flutter's multiplatform value for agentic development

DevFeed: [Flutter's multiplatform value for agentic development](<https://devfeed.tech/articles/flutter-s-multiplatform-value-for-agentic-development-23038.md>)

Original publisher: [Read original article](<https://blog.flutter.dev/flutters-multiplatform-value-for-agentic-development-cb5c7da7c2bc?source=rss----4da7dfd21a33---4>)

Author: Michael Thomsen

Published: 2026-05-18T18:42:10Z

Content type: article

Language: en

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

Topics: [Flutter](<https://devfeed.tech/topics/flutter.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Dart](<https://devfeed.tech/topics/dart.md>), [Development](<https://devfeed.tech/topics/development.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>)

Tags: [agentic](<https://devfeed.tech/tags/agentic.md>), [agentic-ai](<https://devfeed.tech/tags/agentic-ai.md>), [agentic-development](<https://devfeed.tech/tags/agentic-development.md>), [ai](<https://devfeed.tech/tags/ai.md>), [code](<https://devfeed.tech/tags/code.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [dart](<https://devfeed.tech/tags/dart.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [flutter-app-development](<https://devfeed.tech/tags/flutter-app-development.md>), [llms](<https://devfeed.tech/tags/llms.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [reuse](<https://devfeed.tech/tags/reuse.md>)

### AI overview

The article explains how Flutter's single shared codebase can support multiplatform app development and agent-driven workflows. It argues that writing features once in Dart gives AI assistants unified context, reduces token usage and hallucination risk, and helps maintain consistency across platforms. It also describes reported benefits including code reuse, native compilation, and strongly typed Dart code.

### Source excerpt

The fundamental value of multiplatform development with Flutter lies in building apps that support multiple platforms with just a single, shared source codebase, allowing developer teams to work in unison across all platforms. This is crucial in an AI-driven world where enhanced consistency, reduced token usage, and fast market reach become vital. By maintaining a single codebase, builders can focus their AI assistants on one unified context, drastically reduce token overhead, and minimize AI hallucinations. Instead of asking AI to translate features across fragmented, platform-specific languages, builders can leverage AI to write it once in Dart and instantly deploy it everywhere. Dash secretly hanging out in an alley doing agentive thingsThe existing value proposition Multiplatform development relies on enabling a single, shared source codebase. In our first-party Flutter apps, between 95% and 99% of the source code is shared. This massive code reuse unlocks several benefits: Faster time to market across multiple platforms because a team only needs to maintain one codebase. Guaranteed consistency across platforms, giving companies a single, consistent feature set to support across all their customers, regardless of their platform of choice. Native performance and stability because Flutter code is compiled to each platform's native machine code. Semantic guardrails increase security because the Dart language is strongly typed. The agentic value proposition While LLMs are good at translating requirements into code, using them to build separate native apps for each platform scales poorly. Replicating features across different languages using LLMs multiplies generation time and token usage, and can quickly lead to implementations drifting apart. Flutter's single-source solution eliminates these problems. But beyond just code sharing, Flutter's specific architecture makes it the ideal framework for agent-driven development. This emerging value proposition is driven by

## Transforming Capital One's Data Marketplace with Embedded Governance and a Product Mindset

DevFeed: [Transforming Capital One's Data Marketplace with Embedded Governance and a Product Mindset](<https://devfeed.tech/articles/transforming-capital-one-s-data-marketplace-with-embedded-governance-and-a-product-mindset-23548.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/transforming-capital-ones-data-marketplace-with-embedded-governance-and-a-product-mindset>)

Author: Valeria Gomez

Published: 2026-01-13T13:34:19Z

Content type: article

Language: en

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

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [apollo-federation](<https://devfeed.tech/tags/apollo-federation.md>), [dashboards](<https://devfeed.tech/tags/dashboards.md>), [data](<https://devfeed.tech/tags/data.md>), [ecosystems](<https://devfeed.tech/tags/ecosystems.md>), [events](<https://devfeed.tech/tags/events.md>), [governance](<https://devfeed.tech/tags/governance.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [latency](<https://devfeed.tech/tags/latency.md>), [low-latency](<https://devfeed.tech/tags/low-latency.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [performance](<https://devfeed.tech/tags/performance.md>), [platform](<https://devfeed.tech/tags/platform.md>), [product-mindset](<https://devfeed.tech/tags/product-mindset.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [router](<https://devfeed.tech/tags/router.md>), [scale](<https://devfeed.tech/tags/scale.md>)

### AI overview

A recap of GraphQL Summit 2025 describing how Capital One used GraphQL, Apollo Federation, and Apollo Router to build an enterprise data marketplace. The approach centralized orchestration across microservices, applied company standards, improved data discoverability and reuse, and was validated with a production-traffic rollout showing low latency, high throughput, and no disruption to live workloads.

### Source excerpt

A recap from GraphQL Summit 2025 on how Capital One applied a product mindset to build an enterprise data marketplace powered by Apollo Large organizations with complex data ecosystems often face a familiar challenge. As systems evolve over time, data becomes harder to find, harder to trust, and harder to use. Teams build APIs independently, integrations multiply, and identifying the authoritative source of data can take significant effort.

## The Open Evaluation Standard: Benchmarking NVIDIA Nemotron 3 Nano with NeMo Evaluator

DevFeed: [The Open Evaluation Standard: Benchmarking NVIDIA Nemotron 3 Nano with NeMo Evaluator](<https://devfeed.tech/articles/the-open-evaluation-standard-benchmarking-nvidia-nemotron-3-nano-with-nemo-evaluator-7393.md>)

Original publisher: [Read original article](<https://huggingface.co/blog/nvidia/nemotron-3-nano-evaluation-recipe>)

Author: Seph Mard; Isabel Hulseman; Besmira Nushi; Piotr Januszewski; Grzegorz Chlebus; VivienneZhang; Wojciech Prazuch; Pablo Ribalta; Nik Spirin; Ferenc Galko

Published: 2025-12-17T13:22:18Z

Content type: article

Language: en

Sources: [Hugging Face - Blog](<https://devfeed.tech/sources/hugging-face-blog.md>)

Topics: [LLM evaluation / benchmarking](<https://devfeed.tech/topics/llm-evaluation-benchmarking.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [NeMo](<https://devfeed.tech/topics/nemo.md>), [Nemotron](<https://devfeed.tech/topics/nemotron.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Nvidia](<https://devfeed.tech/topics/nvidia.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Library](<https://devfeed.tech/topics/library.md>), [Inference](<https://devfeed.tech/topics/inference.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [build](<https://devfeed.tech/tags/build.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [evaluation](<https://devfeed.tech/tags/evaluation.md>), [inference](<https://devfeed.tech/tags/inference.md>), [library](<https://devfeed.tech/tags/library.md>), [model](<https://devfeed.tech/tags/model.md>), [models](<https://devfeed.tech/tags/models.md>), [nemo](<https://devfeed.tech/tags/nemo.md>), [nemotron](<https://devfeed.tech/tags/nemotron.md>), [nvidia](<https://devfeed.tech/tags/nvidia.md>), [open](<https://devfeed.tech/tags/open.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [validation](<https://devfeed.tech/tags/validation.md>), [verify](<https://devfeed.tech/tags/verify.md>)

### AI overview

This article presents an open, reproducible evaluation recipe for NVIDIA Nemotron 3 Nano 30B A3B using the NeMo Evaluator library. It explains how complete configurations, prompts, runtime settings, harness versions, logs, and artifacts enable independent verification and consistent model comparisons across inference backends and infrastructure.

### Source excerpt

NVIDIA released Nemotron 3 Nano 30B A3B with an explicitly open evaluation approach to make that distinction clear. Alongside the model card, we are publishing the complete evaluation recipe used to generate the results, built with the NVIDIA NeMo Evaluator library, so anyone can rerun the evaluation pipeline, inspect the artifacts, and analyze the outcomes independently. We believe that open innovation is the foundation of AI progress.

## Six Principles for Writing Clean, Maintainable Classes

DevFeed: [Six Principles for Writing Clean, Maintainable Classes](<https://devfeed.tech/articles/write-clean-classes-like-a-pro-26216.md>)

Original publisher: [Read original article](<https://craftbettersoftware.com/p/write-clean-classes-like-a-pro>)

Author: Daniel Moka

Published: 2025-04-19T05:00:55Z

Content type: tutorial

Language: en

Sources: [Craft Better Software](<https://devfeed.tech/sources/craft-better-software.md>)

Topics: [clean-code](<https://devfeed.tech/topics/clean-code.md>), [Code](<https://devfeed.tech/topics/code.md>), [Development](<https://devfeed.tech/topics/development.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [quality](<https://devfeed.tech/tags/quality.md>), [reuse](<https://devfeed.tech/tags/reuse.md>)

### AI overview

This tutorial presents six principles for writing clean classes: use noun-based names, avoid unnecessary getters and setters, hide internal state, expose a focused API, order methods by call flow, and favor composition over inheritance. It argues that small, focused, intention-revealing classes are easier to change, test, and understand.

### Source excerpt

7 essential tips to produce maintainable and intention-revealing classes

## Configuring IP Addresses Won't Make You an Expert

DevFeed: [Configuring IP Addresses Won't Make You an Expert](<https://devfeed.tech/articles/configuring-ip-addresses-won-t-make-you-an-expert-11118.md>)

Original publisher: [Read original article](<https://blog.ipspace.net/2025/01/common-labbing-misconceptions/>)

Published: 2025-01-09T05:39:00Z

Content type: opinion

Language: en

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

Topics: [Networks](<https://devfeed.tech/topics/networks.md>), [Learning](<https://devfeed.tech/topics/learning.md>), [networking](<https://devfeed.tech/topics/networking.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Containers](<https://devfeed.tech/topics/containers.md>)

Tags: [art](<https://devfeed.tech/tags/art.md>), [container](<https://devfeed.tech/tags/container.md>), [containers](<https://devfeed.tech/tags/containers.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [mistakes](<https://devfeed.tech/tags/mistakes.md>), [netlab](<https://devfeed.tech/tags/netlab.md>), [ospf](<https://devfeed.tech/tags/ospf.md>), [production](<https://devfeed.tech/tags/production.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [routing](<https://devfeed.tech/tags/routing.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

This opinion argues that repeatedly configuring routine networking details in labs does not by itself build expertise. The author describes using netlab to automate familiar setup, reuse lab designs, create new topologies quickly, and focus on unfamiliar networking concepts, while noting that adapting existing topologies can still be useful for engineers who work on running networks.

### Source excerpt

A friend of mine recently wrote a nice post explaining how netlab helped him set up a large network topology in a reasonably short timeframe. As expected, his post attracted a wide variety of comments, from "netlab is a gamechanger" (thank you 😎) to "I prefer traditional labs." Instead of writing a bunch of replies into a walled-garden ecosystem, I decided to address some of those concerns in a public place. Let's start with: Read more ...

## How to create an ESP-IDF component

DevFeed: [How to create an ESP-IDF component](<https://devfeed.tech/articles/how-to-create-an-esp-idf-component-13673.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2024/12/how-to-create-an-esp-idf-component/>)

Author: John Lee

Published: 2024-12-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [Development](<https://devfeed.tech/topics/development.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [component](<https://devfeed.tech/tags/component.md>), [components](<https://devfeed.tech/tags/components.md>), [driver](<https://devfeed.tech/tags/driver.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp-idf-component](<https://devfeed.tech/tags/esp-idf-component.md>), [esp32-c3](<https://devfeed.tech/tags/esp32-c3.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [i2c](<https://devfeed.tech/tags/i2c.md>), [library](<https://devfeed.tech/tags/library.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [project](<https://devfeed.tech/tags/project.md>), [registry](<https://devfeed.tech/tags/registry.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [sensor](<https://devfeed.tech/tags/sensor.md>)

### AI overview

This tutorial explains how to create and add project components in ESP-IDF. It covers component structure, placement in an application or separate project, and an example sensor driver for an I2C device using an ESP32-C3 development board with an integrated SHTC3 sensor.

### Source excerpt

Using a monolithic architecture to develop complex applications tightly integrated with all the business logic, peripheral drivers, protocols, cloud connectivity, and so on, might sound like a nightmare. Yet, this is common in embedded systems, because it helps keep the resource overhead to the minimum. Inevitably, such approach makes collaborative development, maintenance, and reuse of code challenging to say the least.

## What is the ESP Component Registry?

DevFeed: [What is the ESP Component Registry?](<https://devfeed.tech/articles/what-is-the-esp-component-registry-13670.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2024/10/what-is-the-esp-registry/>)

Author: John Lee

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

Content type: article

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Development](<https://devfeed.tech/topics/development.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Code](<https://devfeed.tech/topics/code.md>), [CMake](<https://devfeed.tech/topics/cmake.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [cli](<https://devfeed.tech/tags/cli.md>), [cmake](<https://devfeed.tech/tags/cmake.md>), [component](<https://devfeed.tech/tags/component.md>), [components](<https://devfeed.tech/tags/components.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [development](<https://devfeed.tech/tags/development.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [registry](<https://devfeed.tech/tags/registry.md>), [reuse](<https://devfeed.tech/tags/reuse.md>)

### AI overview

This article explains the ESP Component Registry and the concepts behind it: components, the component manager, and the registry. It describes how reusable components support ESP-IDF projects and how the component manager adds dependencies, creates component structures, and downloads dependencies during CMake builds.

### Source excerpt

When starting a new project, we often reuse existing code, for example from libraries and drivers. This not only saves time but also makes your project easier to maintain. In this article, we will explore what the ESP Component Registry is and the key concepts of components, making it easy to understand not only how to use components but also how to contribute. Concept# The architecture of ESP-IDF is modular, making it easier to understand and maintain.

## Reusable Styles in Compose

DevFeed: [Reusable Styles in Compose](<https://devfeed.tech/articles/reusable-styles-in-compose-25101.md>)

Original publisher: [Read original article](<https://dladukedev.com/articles/046_reusable_styles_in_compose/>)

Published: 2024-10-17T00:00:00Z

Content type: tutorial

Language: en

Sources: [Donovan LaDuke - Developer](<https://devfeed.tech/sources/donovan-laduke-developer.md>)

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

Tags: [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [function](<https://devfeed.tech/tags/function.md>), [layout](<https://devfeed.tech/tags/layout.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [reuse](<https://devfeed.tech/tags/reuse.md>)

### AI overview

This article explains how to create reusable styles in Jetpack Compose by grouping shared modifier chains into reusable modifier functions. It discusses applying padding, borders, and card styling across layout components, while warning against excessive nesting and overuse of abstraction.

### Source excerpt

Leverage Modifier chains to create reusable styles in Compose

## Scaling Mobile Development at Microsoft-- Mental Model

DevFeed: [Scaling Mobile Development at Microsoft-- Mental Model](<https://devfeed.tech/articles/scaling-mobile-development-at-microsoft-mental-model-22783.md>)

Original publisher: [Read original article](<https://medium.com/microsoft-mobile-engineering/scaling-mobile-development-at-microsoft-mental-model-9e51241ea41a?source=rss----87f10537e947---4>)

Author: Anand Nath

Published: 2024-06-12T14:37:04Z

Content type: article

Language: en

Sources: [Android@Microsoft - Medium](<https://devfeed.tech/sources/android-microsoft-medium.md>)

Topics: [Mobile](<https://devfeed.tech/topics/mobile.md>), [Development](<https://devfeed.tech/topics/development.md>), [Microsoft](<https://devfeed.tech/topics/microsoft.md>), [App](<https://devfeed.tech/topics/app.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [development](<https://devfeed.tech/tags/development.md>), [ios](<https://devfeed.tech/tags/ios.md>), [microsoft](<https://devfeed.tech/tags/microsoft.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-development](<https://devfeed.tech/tags/mobile-development.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

This first article in a series presents a high-level mental model for scaling development across Microsoft mobile applications. It describes separately maintained codebases and overlapping experiences, then discusses High Value Controls such as One Camera and One Player, including problems caused by siloed development such as inconsistency, limited interoperability, and redundant libraries.

### Source excerpt

Scaling Mobile Development at Microsoft -- Mental Model In the Scaling Teams Mobile Development series we looked at scaling development in a single mobile code base. Since then, we were at work, looking at up-levelling this problem statement and look at how to scale across mobile applications. Here is a new series which tries to throw some light around this topic. This article is the first of a series, starting with understanding the problem statement and a high level solution. In the following articles we will dive deeper with an example and discuss practical aspects of how we got it done. Let's dive in! Photo by Hans-Peter Gauster on UnsplashShared experiences Microsoft has a suite of mobile applications. Each of these applications are developed in separate code base, has its own release cycles. There are a lot of overlapping experiences across these applications. These experiences are also implemented, tested and maintained independently in each application. Here are some examples: File picking experience across Microsoft mobile apps.Calendar experience across Microsoft mobile apps.File sharing experience across Microsoft mobile apps. In order to drive consistent user experience across these applications, Microsoft is invested in developing "High Value Controls" aka HVCs. For example, there is One Camera which provides camera functionality for most of the Microsoft apps, there is One Player which provides video playback in Microsoft apps and some more. Most of the HVCs are developed in silos without any common considerations or guidelines. Some HVCs are developed inside one of the Microsoft mobile apps and then lifted out to be positioned as reusable. These come with the remnants of the app specific concepts and logic, which does not sit well with other apps. This kind of HVC development lack consistency, coherence and interoperability. This also leads to a series of issues for both the Microsoft mobile apps and HVCs. Issues for Microsoft mobile apps Note: In this

## Managing State in Vue Applications: The Composable Provider Pattern

DevFeed: [Managing State in Vue Applications: The Composable Provider Pattern](<https://devfeed.tech/articles/managing-state-in-vue-applications-the-composable-provider-pattern-20035.md>)

Original publisher: [Read original article](<https://technology.doximity.com/articles/managing-state-in-vue-applications-the-composable-provider-pattern>)

Author: Doximity

Published: 2023-07-21T07:23:00Z

Content type: article

Language: en

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

Topics: [Vue.js](<https://devfeed.tech/topics/vue.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Nuxt.js](<https://devfeed.tech/topics/nuxt.md>)

Tags: [code-modularity](<https://devfeed.tech/tags/code-modularity.md>), [components](<https://devfeed.tech/tags/components.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [reusable-code](<https://devfeed.tech/tags/reusable-code.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [state-management](<https://devfeed.tech/tags/state-management.md>), [vue](<https://devfeed.tech/tags/vue.md>)

### AI overview

This article explains the Composable Provider pattern for state management in Vue applications. The approach combines the Vue Composition API with the Provide/Inject APIs to manage complex, feature-driven state, with benefits including scalability, maintainability, reusability, and reduced code duplication.

### Source excerpt

State management is a fundamental concept of front-end application design, and a critical aspect in building robust Vue applications. As Vue applications grow in complexity, managing state becomes an increasingly challenging task, especially when working with a large organization of engineers spread across various product teams. Fortunately, the Vue and Nuxt ecosystem provides a variety of state management solutions, each with its own trade-offs. In this blog post we will explore the Composable Provider pattern, which handles state management by combining the Vue Composition and Provide/Inject APIs, and why its clean and simple implementation is a powerful approach to handling complex, feature-driven state in modern Vue applications. Note: This article was originally intended as a reference for our internal engineering team, but given its potential general use among Vue application developers we are publishing it here. We hope you'll find this pattern helpful when designing your Vue application's state as we have here at Doximity! Why Efficient State Management Matters Efficient state management plays a crucial role in the development of Vue applications. As applications grow in complexity, the ways in which we manage and handle changes to state become increasingly important. Here are a few key reasons why managing state efficiently matters: Scalability: As Vue applications and the teams building them grow in size, the complexity and size of their state grow also. Efficient state management allows for better scalability by providing a structured and organized approach to handling state. It becomes easier to add new features, maintain existing functionality, and reason about the flow of data within the application. Code Maintainability: Well-managed state reduces code complexity and promotes code maintainability. When state is not encapsulated properly, it becomes challenging to understand and modify the application's behavior. By implementing sound state management

## Ultimate Go: Advanced Engineering Episode 9

DevFeed: [Ultimate Go: Advanced Engineering Episode 9](<https://devfeed.tech/articles/ultimate-go-advanced-engineering-episode-9-22195.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2022/12/ultimate-go-advanced-engineering-episode-9.html>)

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

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Blockchain](<https://devfeed.tech/topics/blockchain.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Bitcoin](<https://devfeed.tech/topics/bitcoin.md>), [Ethereum](<https://devfeed.tech/topics/ethereum.md>)

Tags: [bitcoin](<https://devfeed.tech/tags/bitcoin.md>), [blockchain](<https://devfeed.tech/tags/blockchain.md>), [blockchain-asset](<https://devfeed.tech/tags/blockchain-asset.md>), [build](<https://devfeed.tech/tags/build.md>), [building](<https://devfeed.tech/tags/building.md>), [code](<https://devfeed.tech/tags/code.md>), [concepts](<https://devfeed.tech/tags/concepts.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [genesis](<https://devfeed.tech/tags/genesis.md>), [genesis-json](<https://devfeed.tech/tags/genesis-json.md>), [genesis-record](<https://devfeed.tech/tags/genesis-record.md>), [go](<https://devfeed.tech/tags/go.md>), [go-blockchain](<https://devfeed.tech/tags/go-blockchain.md>), [implement](<https://devfeed.tech/tags/implement.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [project](<https://devfeed.tech/tags/project.md>), [project-layout](<https://devfeed.tech/tags/project-layout.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>)

### AI overview

This video tutorial covers the initial layout of a blockchain project in Go, including creating a genesis record and explaining its role. It also introduces fundamental blockchain verifications.

### Source excerpt

Introduction In episode 8, Bill wanted to build a blockchain in Go and began to lay the groundwork for the project. Go is a good choice because its standard library has the necessary network and cryptographical functionality required to build a blockchain. Unlike the previous segment, Bill plans to use this blockchain to manage accounts and balances with hypothetical assets. Bill will reuse concepts from ethereum, bitcoin and the previous segment of the series to implement this blockchain.

## Why the DRY Principle Is Often Misunderstood in Software Design

DevFeed: [Why the DRY Principle Is Often Misunderstood in Software Design](<https://devfeed.tech/articles/dry-do-repeat-yourself-39901.md>)

Original publisher: [Read original article](<https://mende.io/blog/dry-do-repeat-yourself/>)

Author: tobi@techunicorn.builders (Tobias Mende)

Published: 2022-04-30T13:13:00Z

Content type: opinion

Language: en

Sources: [Tobias Mende](<https://devfeed.tech/sources/tobias-mende.md>)

Topics: [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [abstraction](<https://devfeed.tech/topics/abstraction.md>), [reuse](<https://devfeed.tech/topics/reuse.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [component](<https://devfeed.tech/tags/component.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [maintenance](<https://devfeed.tech/tags/maintenance.md>), [practices-software-development-software-craft](<https://devfeed.tech/tags/practices-software-development-software-craft.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [software-design](<https://devfeed.tech/tags/software-design.md>)

### AI overview

The article argues that the DRY principle is frequently misapplied in software development. Reusing code can reduce duplication but may introduce dependencies, rigid contracts, and abstractions that are difficult to change, especially when systems evolve independently.

### Source excerpt

DRY - DO repeat yourself When I started my career as a software developer and already during university, almost no principle was mentioned as often as the DRY principle: "Do not repeat yourself"

## Effective Kotlin Item 36: Prefer composition over inheritance

DevFeed: [Effective Kotlin Item 36: Prefer composition over inheritance](<https://devfeed.tech/articles/effective-kotlin-item-36-prefer-composition-over-inheritance-39274.md>)

Original publisher: [Read original article](<https://kt.academy/article/ek-composition>)

Published: 2021-04-25T00:00:00Z

Content type: article

Language: en

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

Topics: [Inheritance](<https://devfeed.tech/topics/inheritance.md>), [Object-oriented programming (OOP)](<https://devfeed.tech/topics/oop.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [reuse](<https://devfeed.tech/topics/reuse.md>), [superclass](<https://devfeed.tech/topics/superclass.md>)

Tags: [approach](<https://devfeed.tech/tags/approach.md>), [behavior](<https://devfeed.tech/tags/behavior.md>), [hierarchy](<https://devfeed.tech/tags/hierarchy.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [oop](<https://devfeed.tech/tags/oop.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [superclass](<https://devfeed.tech/tags/superclass.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

The article argues that inheritance should primarily model a clear "is a" relationship and can be problematic when used mainly for code extraction or reuse. It presents class composition as a safer and more explicit alternative, while acknowledging that composition requires additional code.

### Source excerpt

Years of OOP made us overuse inheritance. Instead, we should more often use a composition that is safer and more explicit. More often, but not always...

## Threat Modeling Building Blocks

DevFeed: [Threat Modeling Building Blocks](<https://devfeed.tech/articles/threat-modeling-building-blocks-37032.md>)

Original publisher: [Read original article](<https://shostack.org/blog/threat-modeling-building-blocks/>)

Author: Adam

Published: 2019-09-04T00:00:00Z

Content type: article

Language: en

Sources: [Shostack & Friends Blog](<https://devfeed.tech/sources/shostack-friends-blog.md>)

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

Tags: [building](<https://devfeed.tech/tags/building.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [data-protection](<https://devfeed.tech/tags/data-protection.md>), [models](<https://devfeed.tech/tags/models.md>), [requirements](<https://devfeed.tech/tags/requirements.md>), [results](<https://devfeed.tech/tags/results.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [tasks](<https://devfeed.tech/tags/tasks.md>), [techniques](<https://devfeed.tech/tags/techniques.md>), [things](<https://devfeed.tech/tags/things.md>)

### AI overview

The article presents threat modeling as a collection of interconnected tasks and discusses research on breaking threat modeling into smaller, assessable building blocks. It highlights comparisons involving privacy and data protection, requirements, STRIDE, CAPEC, CWE, OWASP, data-flow-diagram variants, and CARiSMA extended.

### Source excerpt

Threat modeling isn't one task -- its a collection of tasks that build on each other to produce more valuable insights.

## Features composability

DevFeed: [Features composability](<https://devfeed.tech/articles/features-composability-30328.md>)

Original publisher: [Read original article](<https://www.mdubakov.com/posts/features-composability>)

Published: 2019-03-19T14:27:48Z

Content type: opinion

Language: en

Sources: [Blog by Michael Dubakov](<https://devfeed.tech/sources/blog-by-michael-dubakov.md>)

Topics: [implementation](<https://devfeed.tech/topics/implementation.md>), [Software](<https://devfeed.tech/topics/software.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [component](<https://devfeed.tech/tags/component.md>), [evolution](<https://devfeed.tech/tags/evolution.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [software](<https://devfeed.tech/tags/software.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

The article argues that software features should avoid depending on other features' internal details. Treating features as independent components with public interfaces and extension points improves composability, reuse, and software evolution.

### Source excerpt

When we add features to a product, we rarely think about composability. We assume that it is OK for any feature to rely on internal...

## UI Testing the Clean Way

DevFeed: [UI Testing the Clean Way](<https://devfeed.tech/articles/ui-testing-the-clean-way-22309.md>)

Original publisher: [Read original article](<https://www.thecodedself.com/UI-Testing-The-Clean-Way/>)

Author: Keegan Rush

Published: 2018-10-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [The Coded Self](<https://devfeed.tech/sources/the-coded-self.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Swift](<https://devfeed.tech/topics/swift.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [To-Do](<https://devfeed.tech/topics/todo.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [swift](<https://devfeed.tech/tags/swift.md>), [testing](<https://devfeed.tech/tags/testing.md>), [ui-testing](<https://devfeed.tech/tags/ui-testing.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This tutorial discusses keeping Swift UI tests clean and readable using a To-Do list app. It explains that Xcode's recorded UI tests can produce unreadable, brittle, duplicated code and may fail to capture some interactions, then introduces a cleaner testing approach.

### Source excerpt

I write software, and sometimes I write bugs. But, when I do, I catch them early with testing. I do manual tests before I commit, I write unit tests as I write my code. Lately, I've also been getting into writing UI tests. One critique of UI testing is how messy and brittle it can be. Building the tests can be complicated. You might spend hours on a test just for a design to change that breaks the test and ruins all your hard work. So, I want to tell you about some problems you might face in keeping your UI tests clean and readable, and how we can leverage Swift for this endeavour. I'll walk you through my approach to UI testing with everyone's favorite example project - a To-Do list app. I know, boring, right? Well, it works perfectly for the examples we'll be looking at, so... You can download the example project here. It's a simple app that allows us to create, edit, and delete a to-do. Just press record UI testing in Xcode is easy. Click inside the body of an empty UI test, click the Record button, and you're up and running. Let's start off by recording a UI test to add a new to-do. That was easy! And it sure did create a lot of code. That must be good, right? func testExample() { let app = XCUIApplication() app.navigationBars["Todo List"].buttons["Add"].tap() let textField = app.otherElements.containing(.navigationBar, identifier:"New Todo") .children(matching: .other).element.children(matching: .other).element .children(matching: .other).element.children(matching: .textField).element textField.tap() textField.tap() let datePickersQuery = app.datePickers datePickersQuery.pickerWheels["October"]/*@START_MENU_TOKEN@*/.press(forDuration: 0.6);/*[[".tap()",".press(forDuration: 0.6);"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/ datePickersQuery.pickerWheels["9"]/*@START_MENU_TOKEN@*/.press(forDuration: 0.5);/*[[".tap()",".press(forDuration: 0.5);"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/ app.buttons["Done"].tap() } I'll be honest, most of that is unreadable to me. Run

## From ng-controller to components with Angular 1.5

DevFeed: [From ng-controller to components with Angular 1.5](<https://devfeed.tech/articles/from-ng-controller-to-components-with-angular-1-5-21292.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2016/06/from-ngcontroller-to-components/>)

Published: 2016-06-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Code](<https://devfeed.tech/topics/code.md>), [Routing (disambiguation)](<https://devfeed.tech/topics/routing.md>), [modern web development](<https://devfeed.tech/topics/modern-web-development.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [component](<https://devfeed.tech/tags/component.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [refactor](<https://devfeed.tech/tags/refactor.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [router](<https://devfeed.tech/tags/router.md>), [routing](<https://devfeed.tech/tags/routing.md>)

### AI overview

A tutorial explaining how to migrate an Angular 1 application from an ng-controller and MV* architecture toward a component-oriented structure. It covers the "controller as" syntax, converting controllers to directives, and using the component() helper introduced in Angular 1.5.

### Source excerpt

Lorem ipsum dolor sit amet

## Caviar iOS: Migrating from AdvancedCollectionView to PJFDataSource

DevFeed: [Caviar iOS: Migrating from AdvancedCollectionView to PJFDataSource](<https://devfeed.tech/articles/caviar-ios-migrating-from-advancedcollectionview-to-pjfdatasource-15573.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/caviar-ios-migrating-from-advancedcollectionview-to-pjfdatasource>)

Author: Square Engineering

Published: 2016-06-13T16:11:00Z

Content type: article

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Library](<https://devfeed.tech/topics/library.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [app-architecture](<https://devfeed.tech/tags/app-architecture.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [ios](<https://devfeed.tech/tags/ios.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [reuse](<https://devfeed.tech/tags/reuse.md>)

### AI overview

This article explains how the Caviar iOS app moved from Apple's AdvancedCollectionView sample architecture to PJFDataSource. The team created an external library that retained the useful data-source patterns while reducing unnecessary complexity, then open-sourced it.

### Source excerpt

Behind-the-scenes look at the evolution of PJFDataSource in our Caviar iOS app.

## Wrapping a jQuery plugin in a Ember.js component (Screencast)

DevFeed: [Wrapping a jQuery plugin in a Ember.js component (Screencast)](<https://devfeed.tech/articles/wrapping-a-jquery-plugin-in-a-ember-js-component-screencast-40629.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2014-06-03-jquery-component/>)

Published: 2014-06-03T00:00:00Z

Content type: tutorial

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Ember](<https://devfeed.tech/topics/ember.md>), [jQuery](<https://devfeed.tech/topics/jquery.md>), [reuse](<https://devfeed.tech/topics/reuse.md>)

Tags: [component](<https://devfeed.tech/tags/component.md>), [ember](<https://devfeed.tech/tags/ember.md>), [js](<https://devfeed.tech/tags/js.md>), [plugin](<https://devfeed.tech/tags/plugin.md>), [reuse](<https://devfeed.tech/tags/reuse.md>)

### AI overview

A screencast demonstrates how to wrap a jQuery plugin in an Ember.js component for reuse.

### Source excerpt

Time for another screencast! This one is shorter and shows how easy it is to wrap a jQuery plugin in an Ember.js component for reuse.

## Intellectual Property: Ideology vs Practicality

DevFeed: [Intellectual Property: Ideology vs Practicality](<https://devfeed.tech/articles/intellectual-property-ideology-vs-practicality-32848.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/intellectual-property-ideology-vs-practicality/>)

Published: 2013-12-14T00:00:00Z

Content type: opinion

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [GNU General Public License](<https://devfeed.tech/topics/gpl.md>), [free software](<https://devfeed.tech/topics/free-software.md>), [Code](<https://devfeed.tech/topics/code.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [apache](<https://devfeed.tech/tags/apache.md>), [cost](<https://devfeed.tech/tags/cost.md>), [free](<https://devfeed.tech/tags/free.md>), [free-software](<https://devfeed.tech/tags/free-software.md>), [intellectual-property](<https://devfeed.tech/tags/intellectual-property.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [source](<https://devfeed.tech/tags/source.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

The article argues that the GPL's ideological goal of preserving users' rights to modify and extend software also creates obligations for developers who reuse GPL-licensed code. It contends that the resulting source-disclosure burden can make developing a separate solution or choosing a more permissive license such as Apache or BSD more practical.

### Source excerpt

The thing that people need to keep in mind when discussing the GPL is that it was created to achieve an ideological and political goal, namely that users of software should have the right to modify and extend the software as they see fit. To achieve this goal, the GPL seeks to ensure that the source code is always available and that reusing the source code in question comes without any restrictions save for what the GPL itself imposes in order to ensure this "

## Interface Segregation Principle

DevFeed: [Interface Segregation Principle](<https://devfeed.tech/articles/interface-segregation-principle-40702.md>)

Original publisher: [Read original article](<https://radek.io/posts/interface-segregation-principle-in-software-design/>)

Published: 2011-08-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>), [abstraction](<https://devfeed.tech/topics/abstraction.md>), [reuse](<https://devfeed.tech/topics/reuse.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [code](<https://devfeed.tech/tags/code.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [reuse](<https://devfeed.tech/tags/reuse.md>), [software-design](<https://devfeed.tech/tags/software-design.md>), [solid](<https://devfeed.tech/tags/solid.md>)

### AI overview

This tutorial explains the Interface Segregation Principle, the final principle in the SOLID object-oriented design set. It describes how oversized interfaces create unused or dummy methods and recommends splitting them into smaller, purpose-specific interfaces, illustrated with a car example involving automatic transmission and air conditioning.

### Source excerpt

I build software products and write on the Internet.