# List

Published articles for List.

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

## RBP Tracker: Counting the CVE IDs the CVE List Cannot See

DevFeed: [RBP Tracker: Counting the CVE IDs the CVE List Cannot See](<https://devfeed.tech/articles/rbp-tracker-counting-the-cve-ids-the-cve-list-cannot-see-27481.md>)

Original publisher: [Read original article](<https://jerrygamblin.com/2026/09/14/rbp-tracker-counting-the-cve-ids-the-cve-list-cannot-see/>)

Author: jgamblin

Published: 2026-09-14T14:16:42Z

Content type: article

Language: en

Sources: [Jerry Gamblin](<https://devfeed.tech/sources/jerry-gamblin.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [NVD](<https://devfeed.tech/topics/nvd.md>), [API](<https://devfeed.tech/topics/api.md>), [GitHub](<https://devfeed.tech/topics/github.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cve](<https://devfeed.tech/tags/cve.md>), [cve-list](<https://devfeed.tech/tags/cve-list.md>), [data](<https://devfeed.tech/tags/data.md>), [ids](<https://devfeed.tech/tags/ids.md>), [list](<https://devfeed.tech/tags/list.md>), [nvd](<https://devfeed.tech/tags/nvd.md>), [report](<https://devfeed.tech/tags/report.md>), [scanner](<https://devfeed.tech/tags/scanner.md>), [source](<https://devfeed.tech/tags/source.md>), [state](<https://devfeed.tech/tags/state.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

### AI overview

The article examines a corrected RogoLabs tracker for Reserved but Public CVE IDs. It explains that the CVE Services API returns 404 for reserved IDs, while a separate unauthenticated endpoint reveals their RESERVED state. The tracker lists IDs from public advisory feeds and describes how reserved records are absent from the bulk CVE List until publication.

### Source excerpt

A new RogoLabs site lists Reserved but Public CVE IDs: 2,315 of them on September 14, drawn from 17 public advisory feeds, refreshed every six hours, and held a week before they appear. The first version of this tracker reported that none of the CVE IDs it found existed in the CVE List, in any ... Read more

## Kotlin 2.4.20 Collection Checks and Experimental Context-Sensitive Resolution

DevFeed: [Kotlin 2.4.20 Collection Checks and Experimental Context-Sensitive Resolution](<https://devfeed.tech/articles/features-you-waited-for-so-long-in-kotlin-22944.md>)

Original publisher: [Read original article](<https://proandroiddev.com/features-you-waited-for-so-long-in-kotlin-6c822e9e344a?source=rss----c72404660798---4>)

Author: Andrii Dubovyk

Published: 2026-09-14T06:32:51Z

Content type: tutorial

Language: en

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

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

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [collections](<https://devfeed.tech/tags/collections.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [features](<https://devfeed.tech/tags/features.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [list](<https://devfeed.tech/tags/list.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [technology](<https://devfeed.tech/tags/technology.md>)

### AI overview

The article explains two Kotlin features: allDistinctBy and allEqualBy in Kotlin 2.4.20 for checking collection values, and experimental context-sensitive resolution introduced in Kotlin 2.2 to reduce repetition when the expected type is known.

### Source excerpt

Kotlin 2.4.20 gives your collections opinions, and 2.2's compiler finally learns to read the room Some Kotlin features get a lot of attention when they arrive. Others are much less noticeable, but still make everyday code a little easier to write. Two examples of the latter are allDistinctBy/ allEqualBy in Kotlin 2.4.20 and context-sensitive resolution, which was introduced experimentally in Kotlin 2.2. allDistinctBy/ allEqualBy: A Simpler Way to Check Collections For years, checking whether all values in a collection were unique often looked something like this: val users = listOf( User(name = "A", age = 20), User(name = "B", age = 25), User(name = "C", age = 30) ) users.map { it.age }.distinct().size == users.size // true It works, but it creates another list, removes duplicates, counts the result, and then compares the sizes just to get a Boolean answer. Kotlin 2.4.20 adds a more direct way to express the same check: users.allDistinctBy { it.age } // true users.allEqualBy { it.age } // false allDistinctBy returns false as soon as it finds a duplicate, so it doesn't need to process the entire collection or create a separate Set. allEqualBy does the opposite: it checks whether all elements produce the same value when passed through the selector. Both functions work with Iterable, Sequence, and arrays. They use structural equality. For floating-point values, they follow Double.equals semantics, so NaN is considered equal to NaN, while -0.0 is different from 0.0. They're still @ExperimentalStdlibApi, so you'll need to opt in before using them in production code. The underlying allDistinct() and allEqual() requests have also been around in YouTrack for quite a while, which makes their appearance in the standard library feel long overdue. Context-Sensitive Resolution: Less Repetition in when The second feature is more about syntax. When the compiler already knows the type you're working with, you can sometimes leave out the type qualifier. Before: enum class Problem {

## 【kube-apiserver】List、Pagination 与一致性 List：continue token 与 etcd Range 成本

DevFeed: [【kube-apiserver】List、Pagination 与一致性 List：continue token 与 etcd Range 成本](<https://devfeed.tech/articles/kube-apiserver-list-pagination-list-continue-token-etcd-range-33962.md>)

Original publisher: [Read original article](<https://quant67.com/post/apiserver/06-list-pagination/06-list-pagination.html>)

Author: Liao Tonglang

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

Content type: tutorial

Language: zh

Sources: [土法炼钢 - 系统与基础设施](<https://devfeed.tech/sources/source-4.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [API](<https://devfeed.tech/topics/api.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [version](<https://devfeed.tech/topics/version.md>)

Tags: [410-gone](<https://devfeed.tech/tags/410-gone.md>), [apiserver](<https://devfeed.tech/tags/apiserver.md>), [cacher](<https://devfeed.tech/tags/cacher.md>), [continue-token](<https://devfeed.tech/tags/continue-token.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [etcd](<https://devfeed.tech/tags/etcd.md>), [etcd-range](<https://devfeed.tech/tags/etcd-range.md>), [http](<https://devfeed.tech/tags/http.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [limit](<https://devfeed.tech/tags/limit.md>), [list](<https://devfeed.tech/tags/list.md>), [pagination](<https://devfeed.tech/tags/pagination.md>), [range](<https://devfeed.tech/tags/range.md>), [resourceversion](<https://devfeed.tech/tags/resourceversion.md>), [v1-30-3](<https://devfeed.tech/tags/v1-30-3.md>)

### AI overview

This article examines Kubernetes v1.30.3 List pagination in kube-apiserver, explaining continue-token semantics, limit-and-continue etcd Range behavior, resourceVersion consistency, and the different costs of cacher and etcd3 paths. It also explains how label and field selectors affect scanning and filtering.

### Source excerpt

钉 Kubernetes v1.30.3 List 分页的 continue token 编码语义、limit+continue 多轮 etcd Range 行为、resourceVersion 对一致性语义的影响，以及 label/field selector 在 cacher 与 etcd3 路径上的不同成本。

## Ubiquiti Memory Surcharges - ALL 290 Products Affected

DevFeed: [Ubiquiti Memory Surcharges - ALL 290 Products Affected](<https://devfeed.tech/articles/ubiquiti-memory-surcharges-all-290-products-affected-17363.md>)

Original publisher: [Read original article](<https://nascompares.com/2026/08/21/ubiquiti-memory-surcharges-all-290-products-affected/>)

Author: Rob Andrews

Published: 2026-08-21T16:00:17Z

Content type: news

Language: en

Sources: [NAS Compares](<https://devfeed.tech/sources/nas-compares.md>)

Topics: [Ubiquiti](<https://devfeed.tech/topics/ubiquiti.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [dram-price-increase](<https://devfeed.tech/tags/dram-price-increase.md>), [enas](<https://devfeed.tech/tags/enas.md>), [enterprise-nas](<https://devfeed.tech/tags/enterprise-nas.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [hardware-component-costs](<https://devfeed.tech/tags/hardware-component-costs.md>), [list](<https://devfeed.tech/tags/list.md>), [memory-price-increases](<https://devfeed.tech/tags/memory-price-increases.md>), [nand-flash-price-increase](<https://devfeed.tech/tags/nand-flash-price-increase.md>), [networking-hardware-prices](<https://devfeed.tech/tags/networking-hardware-prices.md>), [networking-news](<https://devfeed.tech/tags/networking-news.md>), [partners](<https://devfeed.tech/tags/partners.md>), [products](<https://devfeed.tech/tags/products.md>), [storage](<https://devfeed.tech/tags/storage.md>), [ubiquiti](<https://devfeed.tech/tags/ubiquiti.md>), [ubiquiti-airmax](<https://devfeed.tech/tags/ubiquiti-airmax.md>), [ubiquiti-fiber](<https://devfeed.tech/tags/ubiquiti-fiber.md>), [ubiquiti-memory-surcharge](<https://devfeed.tech/tags/ubiquiti-memory-surcharge.md>), [ubiquiti-news](<https://devfeed.tech/tags/ubiquiti-news.md>), [ubiquiti-price-increase](<https://devfeed.tech/tags/ubiquiti-price-increase.md>), [ubiquiti-price-list](<https://devfeed.tech/tags/ubiquiti-price-list.md>), [ubiquiti-storage-surcharge](<https://devfeed.tech/tags/ubiquiti-storage-surcharge.md>), [ubiquiti-surcharge-2026](<https://devfeed.tech/tags/ubiquiti-surcharge-2026.md>), [ubiquiti-wave](<https://devfeed.tech/tags/ubiquiti-wave.md>), [unas](<https://devfeed.tech/tags/unas.md>), [uncategorised](<https://devfeed.tech/tags/uncategorised.md>), [unifi](<https://devfeed.tech/tags/unifi.md>), [unifi-2026](<https://devfeed.tech/tags/unifi-2026.md>), [unifi-2027](<https://devfeed.tech/tags/unifi-2027.md>), [unifi-access](<https://devfeed.tech/tags/unifi-access.md>), [unifi-access-points](<https://devfeed.tech/tags/unifi-access-points.md>), [unifi-cameras](<https://devfeed.tech/tags/unifi-cameras.md>), [unifi-cloud-gateway](<https://devfeed.tech/tags/unifi-cloud-gateway.md>), [unifi-connect](<https://devfeed.tech/tags/unifi-connect.md>), [unifi-memory-surcharge](<https://devfeed.tech/tags/unifi-memory-surcharge.md>), [unifi-nas](<https://devfeed.tech/tags/unifi-nas.md>)

### AI overview

The article reproduces Ubiquiti's July 1, 2026 memory surcharge schedule for 290 UniFi products, including each product's MSRP, surcharge, percentage increase, and resulting price. Ubiquiti attributed the adjustment to volatility in global memory and storage markets and higher hardware-component costs.

### Source excerpt

The UniFi Memory Surcharges - FULL LIST OF PRODUCTS & PRICES These tables reproduce the Ubiquiti memory surcharge schedule supplied to partners for July 1, 2026, showing each affected SKU's stated MSRP, surcharge, percentage increase and resulting price. Ubiquiti attributed the adjustment to volatility in global memory and storage markets, explaining that higher hardware-component costs [...]

## Create animated stripes in Jetpack Compose

DevFeed: [Create animated stripes in Jetpack Compose](<https://devfeed.tech/articles/create-animated-stripes-in-jetpack-compose-25770.md>)

Original publisher: [Read original article](<https://www.sinasamaki.com/create-animated-stripes-in-jetpack-compose/>)

Author: sinasamaki

Published: 2025-12-05T18:11:39Z

Content type: tutorial

Language: en

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

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

Tags: [app](<https://devfeed.tech/tags/app.md>), [article](<https://devfeed.tech/tags/article.md>), [building](<https://devfeed.tech/tags/building.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [design](<https://devfeed.tech/tags/design.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [learn](<https://devfeed.tech/tags/learn.md>), [list](<https://devfeed.tech/tags/list.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [repeat](<https://devfeed.tech/tags/repeat.md>), [rotation](<https://devfeed.tech/tags/rotation.md>)

### AI overview

A tutorial on creating and animating repeating stripe patterns in Jetpack Compose using gradients, color stops, tiling, offsets, and a helper function based on weighted colors, repetition width, and angle.

### Source excerpt

Use default gradients to create mesmerizing patterns in your app

## Implementing Unsure Calculator in 100 lines of Haskell

DevFeed: [Implementing Unsure Calculator in 100 lines of Haskell](<https://devfeed.tech/articles/implementing-unsure-calculator-in-100-lines-of-haskell-27917.md>)

Original publisher: [Read original article](<http://alt-romes.github.io/posts/2025-04-25-unsure-calculator-in-100-lines-of-haskell.html>)

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

Content type: tutorial

Language: en

Sources: [Romes' Musings](<https://devfeed.tech/sources/romes-musings.md>)

Topics: [Haskell](<https://devfeed.tech/topics/haskell.md>), [Development](<https://devfeed.tech/topics/development.md>), [math](<https://devfeed.tech/topics/math.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [expression](<https://devfeed.tech/tags/expression.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [list](<https://devfeed.tech/tags/list.md>), [monad](<https://devfeed.tech/tags/monad.md>), [numbers](<https://devfeed.tech/tags/numbers.md>), [operations](<https://devfeed.tech/tags/operations.md>), [range](<https://devfeed.tech/tags/range.md>)

### AI overview

This tutorial implements an Unsure Calculator in Haskell. It introduces a range operator for uncertain values, models calculations with a probability monad and normal distributions, samples results using pseudo-randomness, and builds an embedded calculator expression language.

### Source excerpt

Contents 1 Unsure Calculator 1.1 Sampling it up 1.2 Calculator Expressions 1.3 Showing up 1.4 Conclusion 1 Unsure Calculator The recently trendy Unsure Calculator makes reasoning about numbers with some uncertainty just as easy as calculating with specific numbers. The key idea is to add a new "range" operator (written ~) to the vocabulary of a standard calculator. The range x~y denotes that a real value is uncertain, but we are 95% sure that it falls between x and y1. Reading the notation is easy: when you see 10~15, you say: "ten to fifteen". Arithmetic operations and friends (e.g. sin, or log) transparently operate on ranges and literal numbers alike. Calculation results in a plot with a range of values that the input expression can take, and with what frequency. The motivation behind the original article is neat, so I'll just recommend you read it there to learn how and why you'd use such a calculator. Here's a real life example they used: 1400~1700 * 0.55~0.65 - 600~700 - 100~200 - 30 - 20 Now, let's implement it. 1.1 Sampling it up Summon a probability monad from the void2. data Dist a where Return :: a -> Dist a Bind :: Dist b -> (b -> Dist a) -> Dist a Normal :: Double -> Double -> Dist Double instance Monad Dist where (>>=) = Bind instance Applicative Dist where pure = Return; (<*>) = ap instance Functor Dist where fmap = liftM The monad instance is free: pure = Return and (>>=) = Bind. The Normal constructor denotes a normal distribution given the standard deviation and mean. With do-notation we can easily construct a complex tree mixing Returns, Binds, and Normals. For instance: d = do s <- Normal 0 1 return (5 + s) desugars to d = Bind (Normal 0 1) (\s -> Return (5 + s)) Then, embue meaning onto a Dist a by allowing an a to be sampled according to the distribution the Dist represents. We use StdGen from random as a source of uniform pseudo-randomness: sample :: StdGen -> Dist a -> a sample g d = case d of Return x -> x Normal mean std_dev -> n1 * std_dev

## Hidden Gems of the Kotlin Standard Library - List

DevFeed: [Hidden Gems of the Kotlin Standard Library - List](<https://devfeed.tech/articles/hidden-gems-of-the-kotlin-standard-library-list-25100.md>)

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

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

Content type: tutorial

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [function](<https://devfeed.tech/tags/function.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-standard-library](<https://devfeed.tech/tags/kotlin-standard-library.md>), [library](<https://devfeed.tech/tags/library.md>), [list](<https://devfeed.tech/tags/list.md>), [overview](<https://devfeed.tech/tags/overview.md>), [sealed-class](<https://devfeed.tech/tags/sealed-class.md>), [standard](<https://devfeed.tech/tags/standard.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>)

### AI overview

An overview of useful Kotlin Standard Library functions for working with lists, including orEmpty, filterIsInstance, distinctBy, chunked, and random.

### Source excerpt

An overview of several hidden gem List Functions in the Kotlin Standard Library

## Avoid the Long Parameter List

DevFeed: [Avoid the Long Parameter List](<https://devfeed.tech/articles/avoid-the-long-parameter-list-23855.md>)

Original publisher: [Read original article](<http://testing.googleblog.com/2024/05/avoid-long-parameter-list.html>)

Author: Google Testing Bloggers (noreply@blogger.com)

Published: 2024-05-20T13:42:00Z

Content type: tutorial

Language: en

Sources: [Google Testing Blog](<https://devfeed.tech/sources/google-testing-blog.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Java](<https://devfeed.tech/topics/java.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [class](<https://devfeed.tech/tags/class.md>), [code](<https://devfeed.tech/tags/code.md>), [code-health](<https://devfeed.tech/tags/code-health.md>), [data-class](<https://devfeed.tech/tags/data-class.md>), [gene-volovich](<https://devfeed.tech/tags/gene-volovich.md>), [google](<https://devfeed.tech/tags/google.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [language](<https://devfeed.tech/tags/language.md>), [list](<https://devfeed.tech/tags/list.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [post](<https://devfeed.tech/tags/post.md>), [python](<https://devfeed.tech/tags/python.md>), [series](<https://devfeed.tech/tags/series.md>), [tott](<https://devfeed.tech/tags/tott.md>)

### AI overview

This Google Code Health article explains how long parameter lists make method calls difficult to understand and maintain. It recommends grouping related parameters into meaningful value objects, with language-specific options including Java records, Kotlin data classes, C++ option structs, Python keyword arguments and defaults, and the Java Builder pattern.

### Source excerpt

This is another post in our Code Health series. A version of this post originally appeared in Google bathrooms worldwide as a Google Testing on the Toilet episode. You can download a printer-friendly version to display in your office. By Gene Volovich Have you seen code like this? void transform(String fileIn, String fileOut, String separatorIn, String separatorOut); This seems simple enough, but it can be difficult to remember the parameter ordering. It gets worse if you add more parameters (e.g., to specify the encoding, or to email the resulting file): void transform(String fileIn, String fileOut, String separatorIn, String separatorOut, String encoding, String mailTo, String mailSubject, String mailTemplate); To make the change, will you add another (overloaded) transform method? Or add more parameters to the existing method, and update every single call to transform? Neither seems satisfactory. One solution is to encapsulate groups of the parameters into meaningful objects. The CsvFile class used here is a "value object" -- simply a holder for the data. class CsvFile { CsvFile(String filename, String separator, String encoding) { ... } String filename() { return filename; } String separator() { return separator; } String encoding() { return encoding; } } // ... and do the same for the EmailMessage class void transform(CsvFile src, CsvFile target, EmailMessage resultMsg) { ... } How to define a value object varies by language. For example, in Java, you can use a record class, which is available in Java 16+ (for older versions of Java, you can use AutoValue to generate code for the value object); in Kotlin, you can use a data class; in C++, you can use an option struct. Using a value object this way may still result in a long parameter list when instantiating it. Solutions for this vary by language. For example, in Python, you can use keyword arguments and default parameter values to shorten the parameter list; in Java, one option is to use the Builder pattern, wh

## Generics

DevFeed: [Generics](<https://devfeed.tech/articles/generics-25057.md>)

Original publisher: [Read original article](<https://typealias.com/start/kotlin-generics/>)

Author: author@typealias.com (Dave Leeds)

Published: 2024-03-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [generics](<https://devfeed.tech/topics/generics.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [collections](<https://devfeed.tech/tags/collections.md>), [enum-class](<https://devfeed.tech/tags/enum-class.md>), [function](<https://devfeed.tech/tags/function.md>), [generics](<https://devfeed.tech/tags/generics.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-generic-function](<https://devfeed.tech/tags/kotlin-generic-function.md>), [kotlin-generics](<https://devfeed.tech/tags/kotlin-generics.md>), [kotlin-parameterized-types](<https://devfeed.tech/tags/kotlin-parameterized-types.md>), [kotlin-type-argument](<https://devfeed.tech/tags/kotlin-type-argument.md>), [kotlin-type-erasure](<https://devfeed.tech/tags/kotlin-type-erasure.md>), [kotlin-type-parameter](<https://devfeed.tech/tags/kotlin-type-parameter.md>), [kotlin-type-parameter-constraint](<https://devfeed.tech/tags/kotlin-type-parameter-constraint.md>), [kotlin-type-safety](<https://devfeed.tech/tags/kotlin-type-safety.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [list](<https://devfeed.tech/tags/list.md>), [map](<https://devfeed.tech/tags/map.md>), [pair](<https://devfeed.tech/tags/pair.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

A tutorial introducing Kotlin generics through collection types such as List, Pair, and Map, using a beverage-menu example with classes and an enum class.

### Source excerpt

All the way back in Chapter 8, when we introduced collections, we saw our first generic type: List<String> ... then we saw more generics in Chapter 9 when we looked at the Pair and Map classes. In order to stay focused on learning about collection types, we glossed over the details about these classes. Well, we've put off learning about them for long enough! It's finally time for us to gain a full understanding of generics, so buckle up!

## New GraphQL observability and insights in GraphOS Studio

DevFeed: [New GraphQL observability and insights in GraphOS Studio](<https://devfeed.tech/articles/new-graphql-observability-and-insights-in-graphos-studio-23468.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/new-graphql-observability-and-insights-in-graphos-studio>)

Author: Parul Schroff

Published: 2023-10-31T16:11:06Z

Content type: release

Language: en

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

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [GraphOS](<https://devfeed.tech/topics/graphos.md>), [observability](<https://devfeed.tech/topics/observability.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [API Platform](<https://devfeed.tech/topics/api-platform.md>), [SIEM, Security, Observability](<https://devfeed.tech/topics/siem-security-observability.md>)

Tags: [announcement](<https://devfeed.tech/tags/announcement.md>), [api](<https://devfeed.tech/tags/api.md>), [api-platform](<https://devfeed.tech/tags/api-platform.md>), [apollo](<https://devfeed.tech/tags/apollo.md>), [apollo-federation](<https://devfeed.tech/tags/apollo-federation.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [graphos](<https://devfeed.tech/tags/graphos.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [insights](<https://devfeed.tech/tags/insights.md>), [list](<https://devfeed.tech/tags/list.md>), [load](<https://devfeed.tech/tags/load.md>), [observability](<https://devfeed.tech/tags/observability.md>), [platform](<https://devfeed.tech/tags/platform.md>), [release](<https://devfeed.tech/tags/release.md>), [search](<https://devfeed.tech/tags/search.md>)

### AI overview

Apollo announces a new insights dashboard in GraphOS Studio for scalable GraphQL observability. The release consolidates operation and field insights, adds search and filtering, and improves list loading for large graphs.

### Source excerpt

As API platform teams continue to back Apollo Federation as the standard for GraphQL architecture at scale, graphs have rapidly become more sophisticated -- expanding across innumerable teams, services, clients, and business units. As sophistication increases, so too does the need for powerful and user-friendly observability, tailored to the needs of graph owners.

## Snyk Ranked #19 on 2023 Forbes Cloud 100 List

DevFeed: [Snyk Ranked #19 on 2023 Forbes Cloud 100 List](<https://devfeed.tech/articles/snyk-ranked-19-on-2023-forbes-cloud-100-list-8154.md>)

Original publisher: [Read original article](<https://snyk.io/blog/snyk-ranked-19-on-2023-forbes-cloud-100-list/>)

Author: Peter McKay

Published: 2023-08-08T14:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [Cloud](<https://devfeed.tech/topics/cloud.md>), [snyk](<https://devfeed.tech/topics/snyk.md>), [Application Security](<https://devfeed.tech/topics/application-security.md>), [DevSecOps](<https://devfeed.tech/topics/devsecops.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [awareness](<https://devfeed.tech/tags/awareness.md>), [blog](<https://devfeed.tech/tags/blog.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-100](<https://devfeed.tech/tags/cloud-100.md>), [cybersecurity](<https://devfeed.tech/tags/cybersecurity.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devsecops](<https://devfeed.tech/tags/devsecops.md>), [list](<https://devfeed.tech/tags/list.md>), [recognition](<https://devfeed.tech/tags/recognition.md>), [security](<https://devfeed.tech/tags/security.md>), [snyk](<https://devfeed.tech/tags/snyk.md>), [snyk-team](<https://devfeed.tech/tags/snyk-team.md>)

### AI overview

Snyk announces that it ranked 19th on the 2023 Forbes Cloud 100 list, marking its fourth consecutive appearance. The article also highlights company milestones including funding, acquisitions, leadership appointments, and the introduction of Snyk Agent Fix.

### Source excerpt

Snyk has been named to the prestigious Forbes Cloud 100 list for the fourth consecutive year, coming in at #19. The full list was unveiled this morning.

## Building a Note-Taking App in Compose

DevFeed: [Building a Note-Taking App in Compose](<https://devfeed.tech/articles/building-a-note-taking-app-in-compose-20024.md>)

Original publisher: [Read original article](<https://technology.doximity.com/articles/building-a-note-taking-app-in-compose>)

Author: Doximity

Published: 2023-07-05T19:47:00Z

Content type: tutorial

Language: en

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

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

Tags: [app](<https://devfeed.tech/tags/app.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [build](<https://devfeed.tech/tags/build.md>), [building](<https://devfeed.tech/tags/building.md>), [class](<https://devfeed.tech/tags/class.md>), [clean-architecture](<https://devfeed.tech/tags/clean-architecture.md>), [code](<https://devfeed.tech/tags/code.md>), [collect](<https://devfeed.tech/tags/collect.md>), [compose](<https://devfeed.tech/tags/compose.md>), [data-class](<https://devfeed.tech/tags/data-class.md>), [di](<https://devfeed.tech/tags/di.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [flow](<https://devfeed.tech/tags/flow.md>), [icons](<https://devfeed.tech/tags/icons.md>), [implement](<https://devfeed.tech/tags/implement.md>), [koin](<https://devfeed.tech/tags/koin.md>), [list](<https://devfeed.tech/tags/list.md>), [state](<https://devfeed.tech/tags/state.md>), [state-management](<https://devfeed.tech/tags/state-management.md>), [view](<https://devfeed.tech/tags/view.md>)

### AI overview

A case study showing how to build a note-taking app with Jetpack Compose. It models note state, renders the notes UI, collects note data through a presenter and Clean Architecture use cases, and plans events for adding, editing, checking, and deleting notes.

### Source excerpt

In this case study, we will build a note-taking app that lets the user add, edit and delete notes. It uses Compose for both the view and presentation layers! Note: This is a follow up to Part 1: Simplifying State Management with Compose and assumes the reader is already familiar with Jetpack Compose. The Template I find it useful to start with the model that represents the state of the screen we're building. It will have a list of notes, with each note containing properties for the text and checkbox: data class NotesUiModel(val notes: List<Note>) : UiModel { data class Note(val text: String, val isChecked: Boolean) : UiModel } It'll be the job of the presenter to produce this model. Initially, let's implement a stub to return an empty list of notes (we'll ignore parameters for now): class NotesListPresenter : Presenter<NotesUiModel, Unit> { @Composable override fun present(params: Unit): NotesUiModel { return NotesUiModel(notes = emptyList()) } } Then we can build our view to render the model that's returned by the presenter: @Composable fun NotesScreen() { val presenter: NotesListPresenter = koinInject() // we use koin for DI val uiModel = presenter.present(Unit) Column { TopAppBar(title = { Text("Notes") }) Notes(uiModel) } } } The View The views themselves are pretty self-explanatory if you're already familiar with building UIs in Compose. For the notes, we'll take in a NotesUiModel argument and create a LazyColumn with the notes property. A FAB button is used for adding new notes, although we'll skip the triggering of events and return to this part in a little bit: @Composable private fun Notes(uiModel: NotesUiModel) { Box { LazyColumn { items(uiModel.notes) { note -> Note(note) } } FloatingActionButton(onClick = { /* TODO */ }) { Icon(imageVector = Icons.Rounded.Add) } } } Then we can render each note with a checkbox, text field and delete button: @Composable private fun Note(uiModel: Note) { Row { Checkbox( checked = uiModel.isChecked, onCheckedChange = { /* T

## Remove Duplicates From a List in Kotlin

DevFeed: [Remove Duplicates From a List in Kotlin](<https://devfeed.tech/articles/remove-duplicates-from-a-list-in-kotlin-25157.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/remove-duplicates-from-a-list-in-kotlin/>)

Author: Ishan Khanna

Published: 2023-01-25T20:33:45Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [function](<https://devfeed.tech/tags/function.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [list](<https://devfeed.tech/tags/list.md>)

### AI overview

This Kotlin tutorial explains four ways to remove duplicate elements from a list: toSet(), toHashSet(), distinct(), and an extension-function approach. It compares their return types, ordering guarantees, mutability, and usage considerations.

### Source excerpt

In this article, Ishan Khanna shows you the best way to remove duplicates from a List in Kotlin.

## Keep your Tabs and List in sync using Jetpack Compose

DevFeed: [Keep your Tabs and List in sync using Jetpack Compose](<https://devfeed.tech/articles/keep-your-tabs-and-list-in-sync-using-jetpack-compose-23699.md>)

Original publisher: [Read original article](<https://engineering.theblueground.com/auto-sync-tabs-and-a-list-with-jetpack-compose/>)

Author: Vaios Tsitsonis

Published: 2022-06-20T12:15:00Z

Content type: tutorial

Language: en

Sources: [Blueground Engineering blog](<https://devfeed.tech/sources/blueground-engineering-blog.md>)

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

Tags: [android](<https://devfeed.tech/tags/android.md>), [code](<https://devfeed.tech/tags/code.md>), [compose](<https://devfeed.tech/tags/compose.md>), [development](<https://devfeed.tech/tags/development.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [list](<https://devfeed.tech/tags/list.md>), [recomposition](<https://devfeed.tech/tags/recomposition.md>), [state](<https://devfeed.tech/tags/state.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

This tutorial introduces Jetpack Compose and explains how to build a UI with grouped list items, synchronized tabs, scrolling behavior, and automatic navigation to corresponding groups. It also discusses Compose's Kotlin-based UI model, state handling, recomposition, and interoperability with the older UI system.

### Source excerpt

Jetpack Compose In May 2019, Google announced a new UI toolkit for Kotlin developers. In July 2021 the first stable version of this toolkit was made available. So, it is a fresh but I believe very promising toolkit. Some of the benefits of using the Jetpack Compose will be mentioned

## Collections: Lists and Sets

DevFeed: [Collections: Lists and Sets](<https://devfeed.tech/articles/collections-lists-and-sets-25049.md>)

Original publisher: [Read original article](<https://typealias.com/start/kotlin-collections/>)

Author: author@typealias.com (Dave Leeds)

Published: 2022-04-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dave Leeds on Kotlin - typealias.com](<https://devfeed.tech/sources/dave-leeds-on-kotlin-typealias-com.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Code](<https://devfeed.tech/topics/code.md>), [Learning](<https://devfeed.tech/topics/learning.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [collection-operations](<https://devfeed.tech/tags/collection-operations.md>), [collections](<https://devfeed.tech/tags/collections.md>), [filter](<https://devfeed.tech/tags/filter.md>), [foreach](<https://devfeed.tech/tags/foreach.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [learning](<https://devfeed.tech/tags/learning.md>), [list](<https://devfeed.tech/tags/list.md>), [map](<https://devfeed.tech/tags/map.md>), [programming](<https://devfeed.tech/tags/programming.md>), [set](<https://devfeed.tech/tags/set.md>)

### AI overview

A Kotlin tutorial introduces collections by explaining how to group values and begins demonstrating lists and sets through a book-list example.

### Source excerpt

So far, we've only worked with variables as individual values. Writing Kotlin becomes so much more interesting once we start putting values together in such a way that we can work with them as a collection. To learn about collections, let's visit Libby, a bright young lady who's always got a book nearby! Let's put things together! Libby is a voracious reader. She's always on the lookout for a great novel, so whenever someone tells her about a good book, she jots down the title on a list that she keeps on a sheet of paper.

## Effective Kotlin Item 55: Consider associating elements to a map

DevFeed: [Effective Kotlin Item 55: Consider associating elements to a map](<https://devfeed.tech/articles/effective-kotlin-item-55-consider-associating-elements-to-a-map-39271.md>)

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

Published: 2021-09-27T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [data](<https://devfeed.tech/topics/data.md>), [Code](<https://devfeed.tech/topics/code.md>), [identifier](<https://devfeed.tech/topics/identifier.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [class](<https://devfeed.tech/topics/class.md>)

Tags: [complexity](<https://devfeed.tech/tags/complexity.md>), [elements](<https://devfeed.tech/tags/elements.md>), [function](<https://devfeed.tech/tags/function.md>), [hashmap](<https://devfeed.tech/tags/hashmap.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [list](<https://devfeed.tech/tags/list.md>), [map](<https://devfeed.tech/tags/map.md>), [performance](<https://devfeed.tech/tags/performance.md>), [property](<https://devfeed.tech/tags/property.md>), [standard](<https://devfeed.tech/tags/standard.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This Effective Kotlin article explains why key-based lookups are usually faster with maps than lists. It covers Kotlin hashmaps, converting iterables to maps with associate and associateBy, and the requirement that map keys be unique.

### Source excerpt

How associateBy is useful to improve the performance of finding elements.

## Collection like objects in python

DevFeed: [Collection like objects in python](<https://devfeed.tech/articles/collection-like-objects-in-python-27328.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/202004/python-and-collection-like-objects/>)

Published: 2020-04-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [behavior](<https://devfeed.tech/tags/behavior.md>), [class](<https://devfeed.tech/tags/class.md>), [collections](<https://devfeed.tech/tags/collections.md>), [dsl](<https://devfeed.tech/tags/dsl.md>), [functional](<https://devfeed.tech/tags/functional.md>), [list](<https://devfeed.tech/tags/list.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [python](<https://devfeed.tech/tags/python.md>), [set](<https://devfeed.tech/tags/set.md>), [slices](<https://devfeed.tech/tags/slices.md>)

### AI overview

A tutorial on implementing Python collection-like objects using the collections protocol. It discusses slices and methods such as __getitem__, __setitem__, __delitem__, __iter__, __contains__, and __missing__, including how they support collection behavior and domain-specific language extensions.

### Source excerpt

Collections are an important part of every programming language. In python, there is a couple of built-in collections like list, set, dictionary but I'm not going to dig into them now. In this post, I'll explore what it takes to implement collection like objects on your own using collections protocol. Read more

## Flutter or React Native, a cross-platform dilemma - How they work - (Part 3)

DevFeed: [Flutter or React Native, a cross-platform dilemma - How they work - (Part 3)](<https://devfeed.tech/articles/flutter-or-react-native-a-cross-platform-dilemma-how-they-work-part-3-25550.md>)

Original publisher: [Read original article](<https://www.marcogomiero.com/posts/2020/rn-flutter-dilemma-3-under-hood/>)

Author: Marco Gomiero

Published: 2020-03-16T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [React Native](<https://devfeed.tech/topics/react-native.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [event driven](<https://devfeed.tech/topics/event-driven.md>), [Flutter](<https://devfeed.tech/topics/flutter.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>)

Tags: [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [bridge](<https://devfeed.tech/tags/bridge.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [event](<https://devfeed.tech/tags/event.md>), [flutter](<https://devfeed.tech/tags/flutter.md>), [list](<https://devfeed.tech/tags/list.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [render](<https://devfeed.tech/tags/render.md>), [serialization](<https://devfeed.tech/tags/serialization.md>)

### AI overview

This third-part article explains, at a high level, how React Native and Flutter work under the hood. The supplied text focuses on React Native's Bridge, which connects JavaScript and native code through asynchronous, serialized messages, and describes how message queues can introduce delays for complex interfaces. It also mentions Facebook's Fabric architecture as an effort to address those delays.

### Source excerpt

Welcome to the third part of this article series about React Native and Flutter. In the latest episode, we have talked about User Interfaces and how to build them in the two frameworks. In this article, we'll go deeper under the hoods to understand how things work. But I will not go deeper with lot's of details and implementation things, because I want to make you understand how the thing works at a high level. If you are interested to go deeper, I will leave across the article some links for further information.

## Rails Form Technique - Using collection\_select with Open Structs

DevFeed: [Rails Form Technique - Using collection\_select with Open Structs](<https://devfeed.tech/articles/rails-form-technique-using-collection-select-with-open-structs-28264.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/rails/2020/03/01/rails-form-technique-using-collection-select-with-open-structs.html>)

Author: Fuzzygroup

Published: 2020-03-01T00:00:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>)

Tags: [array](<https://devfeed.tech/tags/array.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [list](<https://devfeed.tech/tags/list.md>), [open-struct](<https://devfeed.tech/tags/open-struct.md>), [rails](<https://devfeed.tech/tags/rails.md>)

### AI overview

A Rails tutorial explains how to use collection_select with an array of OpenStruct objects when the selectable data is not a database collection. It shows matching the expected id and name methods in the controller and view.

### Source excerpt

I've written about Open Structs before: Sorting Responding to Method Calls To review, an Open Struct is a hash like data structure that responds to dot methods (i.e. .id or .name). I use these in a lot of different places and I just finished using them for a form collection_select operation. The Rails collection_select form helper is really designed to work with database objects that you need to make pick lists from. The canonical usage is like this: <%= form.label :project_id %> <%= form.collection_select :project_id, current_user.projects.all, :id, :name %> The expression current_user.projects.all is a list of all projects as an iterable ActiveRecord collection and what collection_select does under the hood is loop over the collection and call the .id and .name methods (.id is the value in the collection and .name is what's displayed). And this works great - until what you have to select isn't a database collection. And that, dear reader, is where open structs come out to play! Here's what I just did: Controller Side @contexts = [] @contexts << OpenStruct.new(id: "web_browser_on_computer", name: "Web Browser (Desktop Computer)") @contexts << OpenStruct.new(id: "mobile_app", name: "Mobile App") This defines an array of open struct objects. And an array is an iterable collection just like the database collection so this implementation, despite being an entirely different underlying data structure, works just like the ActiveRecord collection based version. View Side And here's the view side: <%= form.label :context %> <%= form.collection_select :context, @contexts, :id, :name %> Appearance Here's how this looks by default and then when dropped down:

## Falsehoods CS Students (Still) Believe Upon Graduating

DevFeed: [Falsehoods CS Students (Still) Believe Upon Graduating](<https://devfeed.tech/articles/falsehoods-cs-students-still-believe-upon-graduating-30170.md>)

Original publisher: [Read original article](<https://www.netmeister.org/blog/cs-falsehoods.html>)

Published: 2019-11-02T02:58:27Z

Content type: article

Language: en

Sources: [Signs of Triviality](<https://devfeed.tech/sources/signs-of-triviality.md>)

Topics: [Computer science](<https://devfeed.tech/topics/computer-science.md>)

Tags: [computer](<https://devfeed.tech/tags/computer.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [list](<https://devfeed.tech/tags/list.md>)

### AI overview

A list of misconceptions that computer science students may still hold upon graduating, including beliefs they likely should know are erroneous.

### Source excerpt

A list of things (not only) computer science students tend to erroneously and at times surprisingly believe even though they (probably) should know better.

## Announcing Item Options for the Catalog API

DevFeed: [Announcing Item Options for the Catalog API](<https://devfeed.tech/articles/announcing-item-options-for-the-catalog-api-15508.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/announcing-item-options-for-the-catalog-api>)

Author: Leah Walkiewicz

Published: 2019-08-28T19:00:00Z

Content type: release

Language: en

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

Topics: [API](<https://devfeed.tech/topics/api.md>), [Binance](<https://devfeed.tech/topics/binance.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [catalog](<https://devfeed.tech/tags/catalog.md>), [list](<https://devfeed.tech/tags/list.md>), [object](<https://devfeed.tech/tags/object.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

Square announces Item Options for the Catalog API, allowing catalog items to be organized through option dimensions and values that form an item variation matrix.

### Source excerpt

Use Item Options to streamline your Catalog

## Matlab toolstrip - part 6 (complex controls)

DevFeed: [Matlab toolstrip - part 6 (complex controls)](<https://devfeed.tech/articles/matlab-toolstrip-part-6-complex-controls-22323.md>)

Original publisher: [Read original article](<https://undocumentedmatlab.com/articles/matlab-toolstrip-part-6-complex-controls>)

Author: Yair Altman

Published: 2019-01-21T16:00:38Z

Content type: tutorial

Language: en

Sources: [Undocumented Matlab](<https://devfeed.tech/sources/undocumented-matlab.md>)

Topics: [MATLAB](<https://devfeed.tech/topics/matlab.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [components](<https://devfeed.tech/tags/components.md>), [customization](<https://devfeed.tech/tags/customization.md>), [figure](<https://devfeed.tech/tags/figure.md>), [figure-window](<https://devfeed.tech/tags/figure-window.md>), [figure-window-gui-high-risk-of-breaking-in-future-versions-ui-controls-undocumented-feature](<https://devfeed.tech/tags/figure-window-gui-high-risk-of-breaking-in-future-versions-ui-controls-undocumented-feature.md>), [function](<https://devfeed.tech/tags/function.md>), [gui](<https://devfeed.tech/tags/gui.md>), [high-risk-of-breaking-in-future-versions](<https://devfeed.tech/tags/high-risk-of-breaking-in-future-versions.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [list](<https://devfeed.tech/tags/list.md>), [mnemonic](<https://devfeed.tech/tags/mnemonic.md>), [properties](<https://devfeed.tech/tags/properties.md>), [property](<https://devfeed.tech/tags/property.md>), [toolbox](<https://devfeed.tech/tags/toolbox.md>), [toolstrip](<https://devfeed.tech/tags/toolstrip.md>), [types](<https://devfeed.tech/tags/types.md>), [ui-controls](<https://devfeed.tech/tags/ui-controls.md>), [undocumented-feature](<https://devfeed.tech/tags/undocumented-feature.md>)

### AI overview

This tutorial explains how to add complex controls such as button groups, edit boxes, spinners, and sliders to custom MATLAB toolstrips. It recommends using built-in toolstrip demos and their available M-file source code as implementation references, and introduces shared control properties.

### Source excerpt

Multiple types of customizable controls can be added to Matlab toolstrips The post Matlab toolstrip - part 6 (complex controls) appeared first on Undocumented Matlab. Related posts: Matlab toolstrip - part 7 (selection controls) Matlab toolstrips can contain a wide variety of selection controls: popups, combo-boxes, and galleries. ... Matlab toolstrip - part 4 (control customization) Matlab toolstrip components (controls) can be customized in various ways, including user-defined callbacks. ... Matlab toolstrip - part 8 (galleries) Matlab toolstrips can contain customizable gallery panels of items. ... Matlab toolstrip - part 3 (basic customization) Matlab toolstrips can be created and customized in a variety of ways. ...

## Resources for Infosec Skillbuilding

DevFeed: [Resources for Infosec Skillbuilding](<https://devfeed.tech/articles/resources-for-infosec-skillbuilding-36955.md>)

Original publisher: [Read original article](<https://shostack.org/blog/resources-for-infosec-skillbuilding/>)

Author: Adam

Published: 2018-12-12T00:00:00Z

Content type: opinion

Language: en

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

Topics: [infosec](<https://devfeed.tech/topics/infosec.md>)

Tags: [book](<https://devfeed.tech/tags/book.md>), [featured](<https://devfeed.tech/tags/featured.md>), [infosec](<https://devfeed.tech/tags/infosec.md>), [list](<https://devfeed.tech/tags/list.md>), [resources](<https://devfeed.tech/tags/resources.md>)

### AI overview

The author thanks Digital Guardian for featuring The Threat Modeling Book in its list of resources for InfoSec skillbuilding and notes that the book has remained useful over time.

### Source excerpt

The Threat Modeling Book has been featured on a list of resources by Digital Guardian.

## Button Lists

DevFeed: [Button Lists](<https://devfeed.tech/articles/button-lists-19233.md>)

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

Author: Shai Almog

Published: 2018-12-04T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Code](<https://devfeed.tech/topics/code.md>), [API](<https://devfeed.tech/topics/api.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [demo](<https://devfeed.tech/tags/demo.md>), [developers](<https://devfeed.tech/tags/developers.md>), [dialog](<https://devfeed.tech/tags/dialog.md>), [ios](<https://devfeed.tech/tags/ios.md>), [issue](<https://devfeed.tech/tags/issue.md>), [layout](<https://devfeed.tech/tags/layout.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [list](<https://devfeed.tech/tags/list.md>), [state](<https://devfeed.tech/tags/state.md>), [view](<https://devfeed.tech/tags/view.md>)

### AI overview

This tutorial introduces ButtonList and its CheckBoxList, RadioButtonList, and SwitchList subclasses. It explains how they apply list-model concepts with a layout/container hierarchy, including sharing one model between lists and synchronizing checkbox and switch changes.

### Source excerpt

I wrote in the past about the problems in the List class, so I won't rehash them here. However, the ideas behind list are still valuable. One such idea is the list model which allows us to separate the state from the view. Unfortunately the renderer architecture makes this hard to implement for most developers and limits the flexibility of the API. To leverage this idea with the easier to use layout/container hierarchy we introduced ButtonList and its subclasses: CheckBoxList, RadioButtonList & SwitchList.

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