# object

Published articles for object.

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

## Object-Oriented Design Lessons from Trello, Notion, Tinder, and Amazon

DevFeed: [Object-Oriented Design Lessons from Trello, Notion, Tinder, and Amazon](<https://devfeed.tech/articles/copy-these-3-industry-leading-apps-and-turn-object-oriented-design-into-your-secret-career-advantage-31383.md>)

Original publisher: [Read original article](<https://ixdf.org/literature/article/copy-these-3-industry-leading-apps-and-turn-object-oriented-design-into-your-secret-career-advantage>)

Author: William Hudson

Published: 2026-09-16T08:30:06Z

Content type: tutorial

Language: en

Sources: [UX Daily - User Experience Daily](<https://devfeed.tech/sources/ux-daily-user-experience-daily.md>)

Topics: [ui](<https://devfeed.tech/topics/ui.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [Design system](<https://devfeed.tech/topics/design-system.md>), [Notion](<https://devfeed.tech/topics/notion.md>)

Tags: [design](<https://devfeed.tech/tags/design.md>), [interface](<https://devfeed.tech/tags/interface.md>), [object](<https://devfeed.tech/tags/object.md>), [properties](<https://devfeed.tech/tags/properties.md>), [structure](<https://devfeed.tech/tags/structure.md>), [ui-components](<https://devfeed.tech/tags/ui-components.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

This tutorial explains object-oriented design through examples from Trello, Notion, Tinder, and Amazon. It argues that organizing interfaces around meaningful, stable objects and their operations can improve clarity and support scalable product structures.

### Source excerpt

Which apps do you use throughout your day? Maybe you manage your projects on Trello, use Notion as an internal docs site, and maybe, just maybe, you do some swiping on Tinder during your lunch break. Despite looking nothing alike, these three highly successful apps are organized around the same idea: Give users a small number of meaningful objects, let them act on those objects directly, and the interface will feel intuitive without explanation.Cards. Blocks. Profiles: These UI components are the central concepts around which Trello, Notion, and Tinder organize everything else. We can call them objects. Users recognize them immediately, know what they can do with them, and build their entire...

## Object-Oriented UI Design and Its Role in User-Centered Interfaces

DevFeed: [Object-Oriented UI Design and Its Role in User-Centered Interfaces](<https://devfeed.tech/articles/7-reasons-object-oriented-ui-design-will-grow-your-career-31382.md>)

Original publisher: [Read original article](<https://ixdf.org/literature/article/7-reasons-object-oriented-ui-design-will-grow-your-career>)

Author: William Hudson

Published: 2026-09-16T07:42:01Z

Content type: tutorial

Language: en

Sources: [UX Daily - User Experience Daily](<https://devfeed.tech/sources/ux-daily-user-experience-daily.md>)

Topics: [User interface design](<https://devfeed.tech/topics/ui-design.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [ui](<https://devfeed.tech/topics/ui.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [design](<https://devfeed.tech/tags/design.md>), [object](<https://devfeed.tech/tags/object.md>), [ui](<https://devfeed.tech/tags/ui.md>), [ui-design](<https://devfeed.tech/tags/ui-design.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

The video explains object-oriented UI design through an airline reservation example. It argues that users think in terms of meaningful objects, such as reservations, rather than isolated features and screens, and introduces conceptual models as a way to structure interfaces around those objects.

### Source excerpt

Vacation time! You book your flight. You have a reservation. It's real. You paid for it. And yet, when you open the airline's app to look at it, it's surprisingly elusive. You don't want to check in, you don't want to change it, you just want to find it and check the details. It's not on the home screen. The home screen wants to sell you another flight. You try your profile. Only personal details. You try "My Trips." There it is! Except "My Trips" only shows the flight. Your seat is somewhere else. Your meal preference is somewhere else. Your upgrade option is somewhere else. The one thing that should hold all of this together, your reservation, has been chopped into pieces and scattered acr...

## How we shipped 15 Tbps for OpenAI in 90 days (Session 2 of 3)

DevFeed: [How we shipped 15 Tbps for OpenAI in 90 days (Session 2 of 3)](<https://devfeed.tech/articles/how-we-shipped-15-tbps-for-openai-in-90-days-session-2-of-3-34018.md>)

Original publisher: [Read original article](<https://sridharrajarao.com/blog/openai-15-tbps-session-2/>)

Author: Sridhar Rajarao

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

Content type: article

Language: en

Sources: [Sridhar Rajarao](<https://devfeed.tech/sources/sridhar-rajarao.md>)

Topics: [OpenAI](<https://devfeed.tech/topics/openai.md>), [Network](<https://devfeed.tech/topics/network.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Server](<https://devfeed.tech/topics/server.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [API](<https://devfeed.tech/topics/api.md>), [Oracle Database](<https://devfeed.tech/topics/oracle-database.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [build](<https://devfeed.tech/tags/build.md>), [cache](<https://devfeed.tech/tags/cache.md>), [capacity](<https://devfeed.tech/tags/capacity.md>), [database](<https://devfeed.tech/tags/database.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [execution](<https://devfeed.tech/tags/execution.md>), [gateway](<https://devfeed.tech/tags/gateway.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [network](<https://devfeed.tech/tags/network.md>), [object](<https://devfeed.tech/tags/object.md>), [openai](<https://devfeed.tech/tags/openai.md>), [performance](<https://devfeed.tech/tags/performance.md>), [platform-engineering](<https://devfeed.tech/tags/platform-engineering.md>), [server](<https://devfeed.tech/tags/server.md>), [servers](<https://devfeed.tech/tags/servers.md>), [sre](<https://devfeed.tech/tags/sre.md>), [storage](<https://devfeed.tech/tags/storage.md>), [testing](<https://devfeed.tech/tags/testing.md>), [warp](<https://devfeed.tech/tags/warp.md>)

### AI overview

The second session describes turning an architecture for OpenAI's 15 Tbps system into a delivery plan. It covers coordinated capacity planning across network, gateway, server, storage, and database teams; caching object names through the Inventory API; delivery tracking; and performance validation. Early WARP testing found packet drops caused by an unsuitable MTU of 1500, which was changed to 9100.

### Source excerpt

Architecture was only the first week. Session 2 is about the build: capacity, execution discipline, and the first signs that performance would be the real test.

## \[remote\] CVE-2026-80428 Unauthenticated PHP Object Injection via Shibboleth - ILIAS \< 9.22, 10.0 \< 10.10, 11.0 \< 11.3 - RCE

DevFeed: [\[remote\] CVE-2026-80428 Unauthenticated PHP Object Injection via Shibboleth - ILIAS \< 9.22, 10.0 \< 10.10, 11.0 \< 11.3 - RCE](<https://devfeed.tech/articles/remote-cve-2026-80428-unauthenticated-php-object-injection-via-shibboleth-ilias-9-22-10-0-10-10-11-0-11-3-rce-34775.md>)

Original publisher: [Read original article](<https://www.exploit-db.com/exploits/52682>)

Author: DigiProSec

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

Content type: news

Language: en

Sources: [Exploit-DB.com RSS Feed](<https://devfeed.tech/sources/exploit-db-com-rss-feed.md>)

Topics: [Exploit](<https://devfeed.tech/topics/exploit.md>), [PHP](<https://devfeed.tech/topics/php.md>)

Tags: [cve](<https://devfeed.tech/tags/cve.md>), [cve-2026-80428](<https://devfeed.tech/tags/cve-2026-80428.md>), [exploit](<https://devfeed.tech/tags/exploit.md>), [multiple](<https://devfeed.tech/tags/multiple.md>), [object](<https://devfeed.tech/tags/object.md>), [php](<https://devfeed.tech/tags/php.md>), [rce](<https://devfeed.tech/tags/rce.md>), [remote](<https://devfeed.tech/tags/remote.md>)

### AI overview

CVE-2026-80428 is an unauthenticated PHP object injection vulnerability via Shibboleth in ILIAS versions earlier than 9.22, 10.10, and 11.3, with remote code execution indicated.

### Source excerpt

CVE-2026-80428 Unauthenticated PHP Object Injection via Shibboleth - ILIAS < 9.22, 10.0 < 10.10, 11.0 < 11.3 - RCE

## How to Stop or Skip Cypress Test Commands

DevFeed: [How to Stop or Skip Cypress Test Commands](<https://devfeed.tech/articles/can-t-stop-won-t-stop-28877.md>)

Original publisher: [Read original article](<https://glebbahmutov.com/blog/cant-stop-wont-stop/>)

Author: Gleb Bahmutov

Published: 2026-08-07T04:00:00Z

Content type: tutorial

Language: en

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

Topics: [Cypress](<https://devfeed.tech/topics/cypress.md>), [Mocha](<https://devfeed.tech/topics/mocha.md>), [test](<https://devfeed.tech/topics/test.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [callback](<https://devfeed.tech/tags/callback.md>), [command](<https://devfeed.tech/tags/command.md>), [commands](<https://devfeed.tech/tags/commands.md>), [condition](<https://devfeed.tech/tags/condition.md>), [cypress](<https://devfeed.tech/tags/cypress.md>), [object](<https://devfeed.tech/tags/object.md>), [products](<https://devfeed.tech/tags/products.md>), [skip](<https://devfeed.tech/tags/skip.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [test](<https://devfeed.tech/tags/test.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This tutorial explains three ways to stop or skip Cypress test execution: using Cypress.stop, skipping the current Mocha test, and skipping the remaining commands in the Cypress command queue. It describes the trade-offs of each approach, including whether later tests run and whether completed commands remain visible.

### Source excerpt

Let's say you have a long-ish Cypress test and you know a place where it might fail. You want to stop / skip the test commands.

## Tabulation Tribulations

DevFeed: [Tabulation Tribulations](<https://devfeed.tech/articles/tabulation-tribulations-28858.md>)

Original publisher: [Read original article](<https://bartoszmilewski.com/2026/05/23/tabulation-tribulations/>)

Author: Bartosz Milewski

Published: 2026-05-23T16:05:49Z

Content type: article

Language: en

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

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

Tags: [category-theory](<https://devfeed.tech/tags/category-theory.md>), [double-categories](<https://devfeed.tech/tags/double-categories.md>), [graph](<https://devfeed.tech/tags/graph.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [object](<https://devfeed.tech/tags/object.md>), [pairs](<https://devfeed.tech/tags/pairs.md>), [profunctor-equipment](<https://devfeed.tech/tags/profunctor-equipment.md>), [profunctors](<https://devfeed.tech/tags/profunctors.md>)

### AI overview

This article explains tabulations in double categories by relating them to graphs of functions, relations, and profunctors. It describes the category of elements of a profunctor and introduces tabulation through projections and a universal property, including conditions for morphisms and 2-cells.

### Source excerpt

Previously: Bending, Yanking, and Cartesian Squares in Double Categories. We all know what a graph of a function is: it's a set of pairs , where . Similarly, a graph of a relation is a set of pairs where is related to . A profunctor can be viewed as a proof-relevant relation. So a graph [...]

## Using Dot Notation to Query Nested Fields in MongoDB

DevFeed: [Using Dot Notation to Query Nested Fields in MongoDB](<https://devfeed.tech/articles/using-dot-notation-to-query-nested-fields-in-mongodb-21840.md>)

Original publisher: [Read original article](<https://www.thepolyglotdeveloper.com/blog/2026/04/using-dot-notation-to-query-nested-fields-in-mongodb/>)

Author: Nic Raboy

Published: 2026-04-28T20:29:24Z

Content type: tutorial

Language: en

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

Topics: [MongoDB](<https://devfeed.tech/topics/mongodb.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Query (disambiguation)](<https://devfeed.tech/topics/query.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [arrays](<https://devfeed.tech/tags/arrays.md>), [collection](<https://devfeed.tech/tags/collection.md>), [database](<https://devfeed.tech/tags/database.md>), [filter](<https://devfeed.tech/tags/filter.md>), [mongodb](<https://devfeed.tech/tags/mongodb.md>), [object](<https://devfeed.tech/tags/object.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains how to use MongoDB dot notation to query and filter nested fields in documents, including fields within nested objects and arrays.

### Source excerpt

If you're just starting to dabble with MongoDB, you've probably come to a point where your documents are looking a little complex. These documents might have gone from flat, relational-looking pieces ... The post Using Dot Notation to Query Nested Fields in MongoDB appeared first on DataCamp.

## ESP-IDF tutorial series: Object oriented programming in C

DevFeed: [ESP-IDF tutorial series: Object oriented programming in C](<https://devfeed.tech/articles/esp-idf-tutorial-series-object-oriented-programming-in-c-13731.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/10/oop_with_c/>)

Author: John Lee

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

Content type: tutorial

Language: en

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

Topics: [C](<https://devfeed.tech/topics/c.md>), [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Object-oriented programming (OOP)](<https://devfeed.tech/topics/oop.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp32c3](<https://devfeed.tech/tags/esp32c3.md>), [object](<https://devfeed.tech/tags/object.md>), [oop](<https://devfeed.tech/tags/oop.md>), [programming](<https://devfeed.tech/tags/programming.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains how ESP-IDF applies object-oriented programming principles in C using structs, opaque pointers, handles, function pointers, and modular design. It also discusses encapsulation, reusable components, and examples involving HTTP servers and I²C buses.

### Source excerpt

This article explains how ESP-IDF brings object-oriented programming principles into C by using structs, opaque pointers, and handles to enforce encapsulation and modularity. It shows how components like HTTP servers and I²C buses are managed through handles that represent distinct objects for configuration and operation, and compares this approach to Python and C++.

## Designing a hierarchical Authorisation system

DevFeed: [Designing a hierarchical Authorisation system](<https://devfeed.tech/articles/designing-a-hierarchical-authorisation-system-39640.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2025-09-20_designing-a-hiearchical-authorisation-system>)

Author: Authorisation

Published: 2025-09-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Actor](<https://devfeed.tech/topics/actor.md>), [object](<https://devfeed.tech/topics/object.md>), [structure](<https://devfeed.tech/topics/structure.md>), [service](<https://devfeed.tech/topics/service.md>), [properties](<https://devfeed.tech/topics/properties.md>)

Tags: [actor](<https://devfeed.tech/tags/actor.md>), [apis](<https://devfeed.tech/tags/apis.md>), [billing](<https://devfeed.tech/tags/billing.md>), [finance](<https://devfeed.tech/tags/finance.md>), [object](<https://devfeed.tech/tags/object.md>), [recursion](<https://devfeed.tech/tags/recursion.md>), [service](<https://devfeed.tech/tags/service.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

This article explains how to design a hierarchical authorization system for Goiter. It contrasts a flat mapping of users, objects, and actions with a hierarchical model in which groups can have multiple parents and inherit rules. The article notes that recursive parent lookup can reduce rule bloat, while assuming a maximum recursion depth of 10.

### Source excerpt

. [Designing a Hierarchical Authorisation System](designing-a-hierarchical-authorisation-system-cover...

## Exploding Words: An Interactive Canvas Demo

DevFeed: [Exploding Words: An Interactive Canvas Demo](<https://devfeed.tech/articles/exploding-words-28089.md>)

Original publisher: [Read original article](<https://jlongster.com/exploding-words>)

Author: James Long

Published: 2025-04-12T12:00:00Z

Content type: article

Language: en

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

Topics: [Canvas](<https://devfeed.tech/topics/canvas.md>), [function](<https://devfeed.tech/topics/function.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [array](<https://devfeed.tech/tags/array.md>), [canvas](<https://devfeed.tech/tags/canvas.md>), [copy](<https://devfeed.tech/tags/copy.md>), [equals](<https://devfeed.tech/tags/equals.md>), [experiment](<https://devfeed.tech/tags/experiment.md>), [function](<https://devfeed.tech/tags/function.md>), [object](<https://devfeed.tech/tags/object.md>), [return](<https://devfeed.tech/tags/return.md>), [svg](<https://devfeed.tech/tags/svg.md>)

### AI overview

An interactive canvas demo titled "Exploding words," accompanied by JavaScript code defining vector creation, comparison, copying, subtraction, multiplication, and addition operations.

### Source excerpt

body { background-image: url(https://static.jlongster.com/20251008/purple-grain.svg); background-size: 500px 500px; background-color: #2E264E; } ^67fd6e <div class="demo-full-screen"> <div class="relative" style="width: 100%; height: 100%; max-width: 800px; max-height: 700px;"> <canvas style="width: 100%; height: 100%; object-fit: contain"></canvas> <div class="demo-touch-area absolute" style="top: 25%; left: 25%; right: 25%; bottom: 25%; user-select: no-repeat"></div> </div> </div> ^043ea2 (function () { 'use strict'; var X = 0; var Y = 1; var Z = 2; var W = 3; function vec(x, y, z, w) { var arr; var len = w != undefined ? 4 : z != undefined ? 3 : y != undefined ? 2 : 1; if (typeof ArrayBuffer !== 'undefined') { var buffer = new ArrayBuffer(4 * len); arr = new Float32Array(buffer); } else { arr = []; } arr[X] = x; len >= 2 && (arr[Y] = y); len >= 3 && (arr[Z] = z); len == 4 && (arr[W] = w); return arr; } function vec_equals(v1, v2) { function fleq(x, y) { if (isNaN(x) && isNaN(y)) return true; return Math.abs(x - y) < 0.0000000001; } return ( fleq(v1[X], v2[X]) && fleq(v1[Y], v2[Y]) && fleq(v1[Z], v2[Z]) && fleq(v1[W], v2[W]) ); } function vec_copy(v1) { if (typeof Float32Array !== 'undefined' && v1 instanceof Float32Array) { var buffer = new ArrayBuffer(4 * v1.length); var arr = new Float32Array(buffer); arr[X] = v1[X]; arr[Y] = v1[Y]; arr[Z] = v1[Z]; arr[W] = v1[W]; return arr; } return Array.prototype.slice.call(v1); } function vec_pure_operation(op) { return function(v1, v2) { v1 = vec_copy(v1); op(v1, v2); return v1; }; } function _vec_subtract(v1, v2) { v1[X] = v1[X] - v2[X]; v1.length >= 2 && (v1[Y] = v1[Y] - v2[Y]); v1.length >= 3 && (v1[Z] = v1[Z] - v2[Z]); v1.length == 4 && (v1[W] = v1[W] - v2[W]); } var vec_subtract = vec_pure_operation(_vec_subtract); function _vec_multiply(v1, v2) { v1[X] = v1[X] * v2[X]; v1.length >= 2 && (v1[Y] = v1[Y] * v2[Y]); v1.length >= 3 && (v1[Z] = v1[Z] * v2[Z]); v1.length == 4 && (v1[W] = v1[W] * v2[W]); } function _vec_add(

## Integrating Snapshotter with a memory datastore in Golang

DevFeed: [Integrating Snapshotter with a memory datastore in Golang](<https://devfeed.tech/articles/integrating-snapshotter-with-a-memory-datastore-in-golang-39634.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2025-02-16_Integrating-Snapshotter-with-a-memory-datastore-in-Golang>)

Published: 2025-02-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [copy](<https://devfeed.tech/topics/copy.md>), [data](<https://devfeed.tech/topics/data.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [copy](<https://devfeed.tech/tags/copy.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [go](<https://devfeed.tech/tags/go.md>), [golang](<https://devfeed.tech/tags/golang.md>), [interface](<https://devfeed.tech/tags/interface.md>), [iteration](<https://devfeed.tech/tags/iteration.md>), [object](<https://devfeed.tech/tags/object.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

A practical guide to integrating copy-on-write snapshotting with an in-memory datastore in Go. It describes goals for concurrent snapshots and restore operations, outlines how snapshot state is tracked across stores and shards, and discusses possible latency and memory impacts for reads and writes.

### Source excerpt

. [Integrating a Snapshotter with a Go Memory Datastore](integrating-snapshotter-with-a-memory-datastore-in-golang-cover...

## Demystifying Java Object Sizes: Compact Headers, Compressed Oops, and Beyond

DevFeed: [Demystifying Java Object Sizes: Compact Headers, Compressed Oops, and Beyond](<https://devfeed.tech/articles/demystifying-java-object-sizes-compact-headers-compressed-oops-and-beyond-30741.md>)

Original publisher: [Read original article](<http://blog.vanillajava.blog/2024/12/demystifying-java-object-sizes-compact.html>)

Author: Peter Lawrey (noreply@blogger.com)

Published: 2024-12-10T16:51:00Z

Content type: article

Language: en

Sources: [Vanilla Java](<https://devfeed.tech/sources/vanilla-java.md>)

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

Tags: [code](<https://devfeed.tech/tags/code.md>), [gc](<https://devfeed.tech/tags/gc.md>), [info](<https://devfeed.tech/tags/info.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [low-latency](<https://devfeed.tech/tags/low-latency.md>), [memory](<https://devfeed.tech/tags/memory.md>), [object](<https://devfeed.tech/tags/object.md>), [opinion](<https://devfeed.tech/tags/opinion.md>), [performance](<https://devfeed.tech/tags/performance.md>), [threads](<https://devfeed.tech/tags/threads.md>)

### AI overview

An article explaining how Java object sizes are affected by Compressed Oops and Compact Object Headers. It describes estimating object sizes with JVM memory measurements, while accounting for TLAB allocation, garbage collection, and concurrent allocations. It also summarizes JEP 450's proposed reduction of object headers to 64 bits on supported 64-bit platforms.

### Source excerpt

Introduction Measuring an object's size in Java is not straightforward. The platform encourages you to consider references and abstractions rather than raw memory usage. Still, understanding how objects fit into memory can yield significant benefits, especially for high-performance, low-latency systems. Over time, the JVM has introduced optimisations like Compressed Ordinary Object Pointers (Compressed Oops) and, more recently, Compact Object Headers. Each of these can influence how large or small your objects appear. Understanding these factors helps you reason about memory usage more concretely. Measuring Object Sizes In principle, you can estimate an object's size by creating instances and observing changes in the JVM's free memory. However, you must neutralise certain factors to get consistent results. For example, turning off TLAB allocation (-XX:-UseTLAB) makes memory usage more directly observable. Repeated measurements and median calculations can reduce the impact of GC and concurrent allocations. A GC can occur while you are creating your object. This will result in more free memory at the end than when you started. I ignore any negative sizes in this test ;) Other threads in the system could use memory at the same time. I perform multiple test and take the median, which removes any outliers. Below is a rough approach: long before = usedMemory(); Object obj = createYourObject(); long after = usedMemory(); long approximateSize = after - before; This test SizeofTest.java is a simple test which creates a number of objects and measures the memory used to create each object. This is usually the same as the amount of memory the object retains for simple objects. Approximate layout of an object Memory Region Description Size (Bytes) Mark Word Header information including identity hash code, lock state, and GC metadata 8 bytes (on 64-bit JVMs) Class Pointer (Klass Pointer) Reference to the object's class metadata, used internally by the JVM Typically 4 bytes with C

## Comparing Objects in Swift Using the Equatable Protocol

DevFeed: [Comparing Objects in Swift Using the Equatable Protocol](<https://devfeed.tech/articles/comparing-objects-in-swift-using-the-equatable-protocol-25519.md>)

Original publisher: [Read original article](<https://patrykkosieradzki.com/comparing-objects-in-swift-using-the-equatable-protocol>)

Published: 2024-04-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Patryk Kosieradzki](<https://devfeed.tech/sources/patryk-kosieradzki.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [enums](<https://devfeed.tech/tags/enums.md>), [examples](<https://devfeed.tech/tags/examples.md>), [extensions](<https://devfeed.tech/tags/extensions.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [ios](<https://devfeed.tech/tags/ios.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [object](<https://devfeed.tech/tags/object.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [swift](<https://devfeed.tech/tags/swift.md>), [types](<https://devfeed.tech/tags/types.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

This tutorial explains how to compare objects in Swift with the Equatable protocol. It covers compiler-synthesized conformance, requirements for stored properties and enum values, extensions for external types, and custom comparison logic.

### Source excerpt

How to improve object comparison in Swift using the Equatable protocol? See it in concrete examples.

## Effective Kotlin Item 48: Consider using object declarations

DevFeed: [Effective Kotlin Item 48: Consider using object declarations](<https://devfeed.tech/articles/effective-kotlin-item-48-consider-using-object-declarations-39286.md>)

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

Published: 2023-11-06T00: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>), [object](<https://devfeed.tech/topics/object.md>), [classes](<https://devfeed.tech/topics/classes.md>), [Kotlin programming](<https://devfeed.tech/topics/kotlin-programming.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [consider](<https://devfeed.tech/tags/consider.md>), [effective](<https://devfeed.tech/tags/effective.md>), [instead](<https://devfeed.tech/tags/instead.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [regular](<https://devfeed.tech/tags/regular.md>), [using](<https://devfeed.tech/tags/using.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains when to use Kotlin object declarations instead of regular classes, including the covariant Nothing object pattern for generic types.

### Source excerpt

Why we should use object declarations instead of regular classes.

## Kotlin Reflection: Class references

DevFeed: [Kotlin Reflection: Class references](<https://devfeed.tech/articles/kotlin-reflection-class-references-39215.md>)

Original publisher: [Read original article](<https://kt.academy/article/ak-reflection-class>)

Published: 2023-10-23T00:15:00Z

Content type: tutorial

Language: en

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

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

Tags: [class](<https://devfeed.tech/tags/class.md>), [example](<https://devfeed.tech/tags/example.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [practical](<https://devfeed.tech/tags/practical.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A tutorial on Kotlin class references, covering class names, type characteristics, visibility, members, and declared members, with a practical object serialization example.

### Source excerpt

All the essential aspects of class references, and a practical object serialization example.

## Data Classes and Destructuring

DevFeed: [Data Classes and Destructuring](<https://devfeed.tech/articles/data-classes-and-destructuring-25052.md>)

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

Author: author@typealias.com (Dave Leeds)

Published: 2023-10-09T00: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>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [classes](<https://devfeed.tech/tags/classes.md>), [copy](<https://devfeed.tech/tags/copy.md>), [data-class](<https://devfeed.tech/tags/data-class.md>), [destructuring](<https://devfeed.tech/tags/destructuring.md>), [destructuring-assignment](<https://devfeed.tech/tags/destructuring-assignment.md>), [equals](<https://devfeed.tech/tags/equals.md>), [hashcode](<https://devfeed.tech/tags/hashcode.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>), [object](<https://devfeed.tech/tags/object.md>), [open](<https://devfeed.tech/tags/open.md>), [operator](<https://devfeed.tech/tags/operator.md>), [override](<https://devfeed.tech/tags/override.md>), [programming](<https://devfeed.tech/tags/programming.md>), [properties](<https://devfeed.tech/tags/properties.md>), [tostring](<https://devfeed.tech/tags/tostring.md>)

### AI overview

A Kotlin tutorial introducing data classes and destructuring. It explains how data classes relate to equals(), hashCode(), and toString(), beginning with reference equality and overriding inherited functions.

### Source excerpt

At the end of the last chapter, we saw how all objects in Kotlin inherit three functions from an open class called Any. Those functions are equals(), hashCode(), and toString(). In this chapter, we're going to learn about data classes, which are super-powered classes that are especially helpful when we've got an immutable class that mainly just holds properties. To better understand data classes, let's first explore each of the three functions above, and see what's involved when we override them!

## Objects in Kotlin

DevFeed: [Objects in Kotlin](<https://devfeed.tech/articles/objects-in-kotlin-39337.md>)

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

Published: 2023-07-17T00:01:00Z

Content type: tutorial

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [object](<https://devfeed.tech/topics/object.md>), [class](<https://devfeed.tech/topics/class.md>), [constructor](<https://devfeed.tech/topics/constructor.md>), [interfaces](<https://devfeed.tech/topics/interfaces.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [constructor](<https://devfeed.tech/tags/constructor.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [synchronization](<https://devfeed.tech/tags/synchronization.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This Kotlin tutorial explains how to create objects with object expressions and object declarations. It covers anonymous objects, inheritance and interface implementation, object scope, singleton behavior, and practical uses such as listeners and synchronization locks.

### Source excerpt

What is object expression, object declaration and companion objects, and how we use them.

## Using Python AST to resolve dependencies

DevFeed: [Using Python AST to resolve dependencies](<https://devfeed.tech/articles/using-python-ast-to-resolve-dependencies-39624.md>)

Original publisher: [Read original article](<https://www.gauravsarma.com/posts/2023-06-30_Using-Python-AST-to-resolve-dependencies-c849bd184020>)

Published: 2023-06-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Gaurav Sarma's Blog](<https://devfeed.tech/sources/gaurav-sarma-s-blog.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Parsing](<https://devfeed.tech/topics/parsing.md>), [syntax](<https://devfeed.tech/topics/syntax.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [ast](<https://devfeed.tech/tags/ast.md>), [code](<https://devfeed.tech/tags/code.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [import](<https://devfeed.tech/tags/import.md>), [modules](<https://devfeed.tech/tags/modules.md>), [object](<https://devfeed.tech/tags/object.md>), [python](<https://devfeed.tech/tags/python.md>), [python-dependencies](<https://devfeed.tech/tags/python-dependencies.md>), [repository](<https://devfeed.tech/tags/repository.md>), [resolver](<https://devfeed.tech/tags/resolver.md>), [startup](<https://devfeed.tech/tags/startup.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [tokens](<https://devfeed.tech/tags/tokens.md>), [trees](<https://devfeed.tech/tags/trees.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

This tutorial explains how to use Python's Abstract Syntax Trees to resolve dependencies among objects imported across modules in a complex repository. It proposes recursively analyzing imports and copying required object code and dependencies into a destination folder.

### Source excerpt

This article covers how to resolve python dependencies using Python's Abstract Syntax Trees (AST). There are different and maybe better ways to understand the scope of your python dependencies...

## Avoid Java double brace initialization

DevFeed: [Avoid Java double brace initialization](<https://devfeed.tech/articles/avoid-java-double-brace-initialization-25619.md>)

Original publisher: [Read original article](<https://blog.p-y.wtf/avoid-java-double-brace-initialization>)

Author: Pierre-Yves Ricau

Published: 2023-06-27T20:58:00Z

Content type: tutorial

Language: en

Sources: [Py's blog](<https://devfeed.tech/sources/py-s-blog.md>)

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

Tags: [android](<https://devfeed.tech/tags/android.md>), [class](<https://devfeed.tech/tags/class.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [constructor](<https://devfeed.tech/tags/constructor.md>), [crash-reporting](<https://devfeed.tech/tags/crash-reporting.md>), [gc](<https://devfeed.tech/tags/gc.md>), [global](<https://devfeed.tech/tags/global.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [java](<https://devfeed.tech/tags/java.md>), [leak](<https://devfeed.tech/tags/leak.md>), [leakcanary](<https://devfeed.tech/tags/leakcanary.md>), [lifecycle](<https://devfeed.tech/tags/lifecycle.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [object](<https://devfeed.tech/tags/object.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [subclass](<https://devfeed.tech/tags/subclass.md>)

### AI overview

This tutorial explains how Java double brace initialization can cause memory leaks. An anonymous HashMap subclass implicitly retains its outer Activity, so a breadcrumb stored by a singleton BugSnag client can keep a destroyed Android Activity in memory. The article recommends avoiding the pattern and using explicit initialization or Kotlin.

### Source excerpt

TL;DR Avoid doing this: new HashMap() {{ put("key", value); }}; Leak Trace I was recently looking at the following leak trace from LeakCanary: ┬─── │ GC Root: Global variable in native code │ ├─ com.bugsnag.android.AnrPlugin instan...

## Understanding Neon's object hierarchy

DevFeed: [Understanding Neon's object hierarchy](<https://devfeed.tech/articles/understanding-neon-s-object-hierarchy-5671.md>)

Original publisher: [Read original article](<https://neon.com/blog/neon-object-hierarchy>)

Author: Mahmoud Abdelwahab

Published: 2023-06-07T12:02:36Z

Content type: tutorial

Language: en

Sources: [Blog -- Neon Docs](<https://devfeed.tech/sources/blog-neon-docs.md>)

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>)

Tags: [cloud-infrastructure](<https://devfeed.tech/tags/cloud-infrastructure.md>), [community](<https://devfeed.tech/tags/community.md>), [object](<https://devfeed.tech/tags/object.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [serverless](<https://devfeed.tech/tags/serverless.md>)

### AI overview

This tutorial introduces Neon's console object hierarchy and explains the cloud-native Postgres architecture behind Neon. It describes separating storage from compute to support independent scaling, fast compute startup and shutdown, and storage-layer operations such as backups and archiving.

### Source excerpt

To use Neon to its full potential, it is important to understand its object hierarchy. Before diving in, we will first go over the experience of provisioning a managed Postgres instance and why it was necessary to introduce a new architecture to make Postgres cloud-native. Tradit...

## Understanding Flow

DevFeed: [Understanding Flow](<https://devfeed.tech/articles/understanding-flow-39242.md>)

Original publisher: [Read original article](<https://kt.academy/article/cc-understanding-flow>)

Published: 2023-05-29T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [interface](<https://devfeed.tech/topics/interface.md>), [function](<https://devfeed.tech/topics/function.md>), [object](<https://devfeed.tech/topics/object.md>), [Parameter](<https://devfeed.tech/topics/parameter.md>), [Type Parameter](<https://devfeed.tech/topics/type-parameter.md>)

Tags: [coroutines](<https://devfeed.tech/tags/coroutines.md>), [function](<https://devfeed.tech/tags/function.md>), [interface](<https://devfeed.tech/tags/interface.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [object](<https://devfeed.tech/tags/object.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [type-parameter](<https://devfeed.tech/tags/type-parameter.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains Kotlin Coroutines Flow by deriving its implementation from a suspending lambda, then introducing a functional interface, receiver, object expression, builder function, and generic type parameter. It concludes that the basic builder closely models how flow, emit, and collect are implemented.

### Source excerpt

We will explore how flow and its processing really works.

## Adopt a Customer 360 approach to prevent fraud with GraphQL

DevFeed: [Adopt a Customer 360 approach to prevent fraud with GraphQL](<https://devfeed.tech/articles/adopt-a-customer-360-approach-to-prevent-fraud-with-graphql-23127.md>)

Original publisher: [Read original article](<https://www.apollographql.com/blog/adopt-a-customer-360-approach-to-prevent-fraud-with-graphql>)

Author: Val Polouchkine

Published: 2023-03-27T16:10:33Z

Content type: tutorial

Language: en

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

Topics: [GraphQL](<https://devfeed.tech/topics/graphql.md>), [data-architecture](<https://devfeed.tech/topics/data-architecture.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [apollo](<https://devfeed.tech/tags/apollo.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [extend](<https://devfeed.tech/tags/extend.md>), [financial-services](<https://devfeed.tech/tags/financial-services.md>), [fraud](<https://devfeed.tech/tags/fraud.md>), [graphos](<https://devfeed.tech/tags/graphos.md>), [graphql](<https://devfeed.tech/tags/graphql.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [identity](<https://devfeed.tech/tags/identity.md>), [integration](<https://devfeed.tech/tags/integration.md>), [object](<https://devfeed.tech/tags/object.md>), [prevent-fraud](<https://devfeed.tech/tags/prevent-fraud.md>), [series](<https://devfeed.tech/tags/series.md>)

### AI overview

This tutorial explains how financial institutions can use GraphQL and Apollo GraphOS to build a single customer view for KYC and anti-money-laundering work. It describes combining customer metadata and risk assessments from separate teams and subgraphs in a federated graph, while allowing teams to evolve their areas independently.

### Source excerpt

This post is a part of our "How to power modern financial services apps with Apollo GraphOS" series. Also in this series: - Deliver a personalized customer experience with GraphQL - Securing APIs declaratively with GraphQL - Ensure compliant and secure third-party access using GraphOS Customers are the cornerstone of any business, but many companies don't truly know who their customers are.

## Bean Machine Retrospective, part 9

DevFeed: [Bean Machine Retrospective, part 9](<https://devfeed.tech/articles/bean-machine-retrospective-part-9-38667.md>)

Original publisher: [Read original article](<https://ericlippert.com/2023/03/21/bean-machine-retrospective-part-9/>)

Author: ericlippert

Published: 2023-03-21T18:34:38Z

Content type: opinion

Language: en

Sources: [Eric Lippert](<https://devfeed.tech/sources/eric-lippert.md>)

Topics: [pattern matching](<https://devfeed.tech/topics/pattern-matching.md>), [Python](<https://devfeed.tech/topics/python.md>), [function](<https://devfeed.tech/topics/function.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [class](<https://devfeed.tech/topics/class.md>), [C#](<https://devfeed.tech/topics/csharp.md>), [F#](<https://devfeed.tech/topics/fsharp.md>), [Scala](<https://devfeed.tech/topics/scala.md>)

Tags: [debugging](<https://devfeed.tech/tags/debugging.md>), [function](<https://devfeed.tech/tags/function.md>), [object](<https://devfeed.tech/tags/object.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [python](<https://devfeed.tech/tags/python.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

### AI overview

This retrospective describes implementing concise pattern matching in Python, where patterns are represented as predicates and can return structured failure information for debugging. It also develops a type discipline and combinators for matching values, types, lists, and object attributes.

### Source excerpt

I wanted to implement concise "pattern matching" in Python, a language which unlike C#, F#, Scala, and so on, does not have any pattern matching built in. Logically a pattern is just a predicate: a function which takes a value ... Continue reading ->

## Covariant Nothing Object

DevFeed: [Covariant Nothing Object](<https://devfeed.tech/articles/covariant-nothing-object-39199.md>)

Original publisher: [Read original article](<https://kt.academy/article/ak-covariant-nothing-object>)

Published: 2023-02-13T00:15:00Z

Content type: tutorial

Language: en

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

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [sealed class](<https://devfeed.tech/topics/sealed-class.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Library](<https://devfeed.tech/topics/library.md>)

Tags: [data-structure](<https://devfeed.tech/tags/data-structure.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [sealed-class](<https://devfeed.tech/tags/sealed-class.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [type-parameter](<https://devfeed.tech/tags/type-parameter.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This Kotlin developer article describes the "Covariant Nothing Object" pattern: using a covariant generic type with Nothing so a singleton object can represent an empty value across compatible types. It relates the pattern to immutable linked lists, Kotlin's standard library, generic messages, and scheduled tasks.

### Source excerpt

The pattern we are all using, but no-one talks about it.

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