# identifier

An identifier is a symbol, string, or number used to uniquely distinguish an entity within a defined scope or namespace, including names for variables, types, functions, and labels in C programs.

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

## Efficient Distributed Unique Timestamp Identifier Generation

DevFeed: [Efficient Distributed Unique Timestamp Identifier Generation](<https://devfeed.tech/articles/efficient-distributed-unique-timestamp-identifier-generation-30742.md>)

Original publisher: [Read original article](<http://blog.vanillajava.blog/2024/12/efficient-distributed-unique-timestamp.html>)

Author: Peter Lawrey (noreply@blogger.com)

Published: 2024-12-08T19:51:00Z

Content type: tutorial

Language: en

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

Topics: [identifier](<https://devfeed.tech/topics/identifier.md>), [systems](<https://devfeed.tech/topics/systems.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [ordering](<https://devfeed.tech/topics/ordering.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [latency](<https://devfeed.tech/tags/latency.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [ordering](<https://devfeed.tech/tags/ordering.md>), [performance](<https://devfeed.tech/tags/performance.md>), [precision](<https://devfeed.tech/tags/precision.md>), [unique](<https://devfeed.tech/tags/unique.md>)

### AI overview

The article presents a distributed identifier scheme that embeds a host identifier into a nanosecond-resolution timestamp. It describes the resulting 64-bit identifiers as globally unique, human-readable, chronologically sortable, and suitable for high-concurrency, latency-sensitive systems.

### Source excerpt

Distributed unique timestamp identifiers provide a powerful means of generating globally unique, human-readable 64-bit values at sub-microsecond speeds. By embedding a host identifier directly into a nanosecond-resolution timestamp, you gain a simple, chronologically sortable, and intuitive scheme for correlating events across multiple hosts. This approach offers significant benefits in latency-sensitive systems where even small delays can become expensive at scale. Introduction In a world of horizontally scaled microservices, ensuring that each event or message receives a unique identifier across multiple machines can be challenging. Traditional approaches often rely on UUIDs, which--while easy to use--lack intuitive readability and can be relatively expensive to generate in ultra-low-latency scenarios. Our solution builds upon nanosecond-resolution timestamps combined with a host identifier embedded directly into the lower-order digits of the timestamp. This technique, inspired by previous work on system-wide unique nanosecond timestamps, creates identifiers that are compact, human-interpretable, and extremely fast to produce. In essence, we treat time itself as the source of uniqueness. By carefully structuring the timestamp and assigning a unique hostId per machine (or per logical partition), we can scale to produce up to one billion unique 64-bit identifiers per second. These identifiers repeat only after centuries, making them suitable for long-running systems and distributed architectures that demand both precision and high performance. Concurrent identifier generation in a distributed system In distributed environments, colliding identifiers can lead to data corruption, misrouted requests, or difficulty in debugging. Although UUIDs solve uniqueness issues, they do not inherently convey temporal ordering or machine origin. More subtle forms of identifiers, such as database sequence numbers or custom counters, often need to be more convenient when synchronising

## Encoding and decoding references to other types with Codable

DevFeed: [Encoding and decoding references to other types with Codable](<https://devfeed.tech/articles/encoding-and-decoding-references-to-other-types-with-codable-39523.md>)

Original publisher: [Read original article](<https://rambo.codes/posts/2022-01-04-encoding-and-decoding-references-to-other-types-with-codable>)

Published: 2022-01-04T18:00:00Z

Content type: tutorial

Language: en

Sources: [Rambo Codes](<https://devfeed.tech/sources/rambo-codes.md>)

Topics: [Swift](<https://devfeed.tech/topics/swift.md>), [JSON](<https://devfeed.tech/topics/json.md>), [coding](<https://devfeed.tech/topics/coding.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [identifier](<https://devfeed.tech/topics/identifier.md>)

Tags: [coding](<https://devfeed.tech/tags/coding.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [json](<https://devfeed.tech/tags/json.md>), [swift](<https://devfeed.tech/tags/swift.md>), [version-control](<https://devfeed.tech/tags/version-control.md>)

### AI overview

This article discusses modeling references between user-configurable objects in a Swift app's document-based JSON model. It explains storing identifiers instead of duplicated nested data and considers customizing Codable encoding and decoding so the rest of the codebase remains unaware of the lookup implementation.

### Source excerpt

Gui Rambo writes about his coding and reverse engineering adventures.

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

## Let's Build A Simple Interpreter. Part 12.

DevFeed: [Let's Build A Simple Interpreter. Part 12.](<https://devfeed.tech/articles/let-s-build-a-simple-interpreter-part-12-33315.md>)

Original publisher: [Read original article](<https://ruslanspivak.com/lsbasi-part12/>)

Author: Ruslan Spivak

Published: 2016-12-01T21:20:00Z

Content type: tutorial

Language: en

Sources: [Ruslan Spivak](<https://devfeed.tech/sources/ruslan-spivak.md>)

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

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [lexer](<https://devfeed.tech/tags/lexer.md>), [syntax](<https://devfeed.tech/tags/syntax.md>)

### AI overview

Part 12 of a tutorial series explains how to extend a simple interpreter to parse Pascal procedure declarations. It covers procedure syntax, nested declarations, grammar updates, syntax diagrams, and lexer changes for a PROCEDURE token.

### Source excerpt

"Be not afraid of going slowly; be afraid only of standing still." - Chinese proverb. Hello, and welcome back! Today we are going to take a few more baby steps and learn how to parse Pascal procedure declarations. What is a procedure declaration? A procedure declaration is a language construct that ...

## Marking whole word

DevFeed: [Marking whole word](<https://devfeed.tech/articles/marking-whole-word-34494.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/02/marking-whole-word/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-02-08T16:15:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [identifier](<https://devfeed.tech/topics/identifier.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [command](<https://devfeed.tech/tags/command.md>), [emacs](<https://devfeed.tech/tags/emacs.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

A practical Emacs tutorial about selecting an entire word or identifier with a key chord, expanding the selection to the next expression, and using expand-region for broader selections. It also discusses selecting the word under the point when the point is in the middle of it.

### Source excerpt

I've discovered recently another Emacs facility that I since then use several times a day, and I wonder how I did without it before: C-M-SPC runs the command mark-sexp. *Well, `mark-sexp` apparently is related to the Sex Pistols* It's pretty simple actually, when you have the point at the beginning of a word or an identifier (containing numbers, dashes, underscores and other punctuation signs), you can select the whole of it in a single key chord!