# identifier

Published articles for identifier.

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

## The best way to replace the deprecated GenericGenerator

DevFeed: [The best way to replace the deprecated GenericGenerator](<https://devfeed.tech/articles/the-best-way-to-replace-the-deprecated-genericgenerator-21988.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/replace-deprecated-genericgenerator/>)

Author: vladmihalcea

Published: 2025-12-02T08:23:12Z

Content type: tutorial

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Development](<https://devfeed.tech/topics/development.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Code](<https://devfeed.tech/topics/code.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [database-identifier](<https://devfeed.tech/tags/database-identifier.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [genericgenerator](<https://devfeed.tech/tags/genericgenerator.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [tsid](<https://devfeed.tech/tags/tsid.md>)

### AI overview

This tutorial explains how to replace the deprecated Hibernate @GenericGenerator annotation when upgrading an application to Hibernate 7. It covers custom entity identifier generators and sequence optimizers using the @IdGeneratorType meta-annotation.

### Source excerpt

Introduction In this article, I'm going to show you the best way to replace the deprecated @GenericGenerator when upgrading your application to Hibernate 7. Hibernate @GenericGenerator annotation The @GenericGenerator annotation has been available since Hibernate 3.5, as an alternative to the <generator> XML element from HBM mappings. As illustrated by the Hibernate 6.5 @GenericGenerator Javadoc, this annotation was deprecated in favor of the @IdGeneratorType meta-annotation, which we've been using before for the TSID identifier. Traditionally, there were two main use cases where you'd use the @GenericGenerator annotation: to provide a custom identifier... Read More The post The best way to replace the deprecated GenericGenerator appeared first on Vlad Mihalcea.

## EM/PM Relationships Aren't About Luck: 5 Tips for Product/Tech

DevFeed: [EM/PM Relationships Aren't About Luck: 5 Tips for Product/Tech](<https://devfeed.tech/articles/em-pm-relationships-aren-t-about-luck-5-tips-for-product-tech-26531.md>)

Original publisher: [Read original article](<https://annajmcdougall.medium.com/em-pm-relationships-arent-about-luck-5-tips-for-product-tech-617c9a257135?source=rss-51f15275ef3a------2>)

Author: Anna J McDougall

Published: 2025-05-13T14:53:24Z

Content type: opinion

Language: en

Sources: [Anna J McDougall](<https://devfeed.tech/sources/anna-j-mcdougall.md>)

Topics: [Code quality](<https://devfeed.tech/topics/code-quality.md>)

Tags: [code-quality](<https://devfeed.tech/tags/code-quality.md>), [compliance](<https://devfeed.tech/tags/compliance.md>), [engineering-management](<https://devfeed.tech/tags/engineering-management.md>), [engineering-manager](<https://devfeed.tech/tags/engineering-manager.md>), [engineering-mangement](<https://devfeed.tech/tags/engineering-mangement.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [iso](<https://devfeed.tech/tags/iso.md>), [management](<https://devfeed.tech/tags/management.md>), [product-engineering](<https://devfeed.tech/tags/product-engineering.md>), [product-management](<https://devfeed.tech/tags/product-management.md>), [quality](<https://devfeed.tech/tags/quality.md>), [relationships](<https://devfeed.tech/tags/relationships.md>), [team-lead](<https://devfeed.tech/tags/team-lead.md>), [teams](<https://devfeed.tech/tags/teams.md>), [tech-leadership](<https://devfeed.tech/tags/tech-leadership.md>)

### AI overview

An opinion article presents practices for building effective engineering manager and product manager relationships. It emphasizes shared ownership across business, team, and product goals, with quality improvements--including compliance work--as part of an engineering manager's contribution.

### Source excerpt

EM/PM Relationships Aren't About Luck: 5 Tips for Product/Tech TeamsHeader image: purple background with the text "EM/PM Relationships Aren't About Luck. 5 Tips for Product/Tech Teams :)" and a photo of Anna and Tanja together.Introduction As my probation period at HelloBetter was coming to an end, my team's Senior Product Manager Tanja Lembcke remarked, "It's great working with an EM who cares so much about product." I could easily have said the same back to her, because it's just as valuable working with a PM who cares deeply about technology, something at which she truly excels. Together, we've become a strong team. Much of that relationship has developed naturally, but I've also noticed a few intentional practices that have helped us along the way. I want to share them here for all the product managers, engineering managers, and whoever else happens to like reading my sporadic blog posts. In the end, Tanja and I didn't just "luck out" working together. There are some tried-and-true strategies we both employ to make the most out of our work and get the results we need. If you prefer LinkedIn, you can view the short-form version of this post as a summary and carousel here. Tip 1: Purposefully be the intersection of business, team, and product As a Team Lead or Engineering Manager, it's important to operate at the intersection of business goals, the engineering team, and product. This means not only using the product but also critiquing it, asking thoughtful questions, and continually returning to the core "Why." It is all too easy to sit back and just wait for features to drop in your lap, estimate them, deliver them, and then dust off your hands with a "job well done" attitude that allows you to add a nice dot-point to your CV about value creation. What is much harder, is to actually focus on quality: that hard-to-measure, hard-to-prove value that is constantly competing with your time. For EMs, we tend to see the word "quality" and jump to the concept of code qu

## Introduction to ESP FOURCC

DevFeed: [Introduction to ESP FOURCC](<https://devfeed.tech/articles/introduction-to-esp-fourcc-13692.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/04/esp-fourcc-introduction/>)

Author: John Lee

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

Content type: article

Language: en

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

Topics: [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [Espressif](<https://devfeed.tech/topics/espressif.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [esp-gmf](<https://devfeed.tech/tags/esp-gmf.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [format](<https://devfeed.tech/tags/format.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [multimedia](<https://devfeed.tech/tags/multimedia.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [standard](<https://devfeed.tech/tags/standard.md>)

### AI overview

This article explains ESP FOURCC, Espressif's standardized 32-bit identifier for multimedia formats. It describes the standard's implementation in ESP-GMF and its use for audio, video, image, container, and pixel formats, with the stated benefits of consistent format identification, lower conversion overhead, and easier debugging in embedded systems.

### Source excerpt

This article explores ESP FOURCC standard based on FOURCC (Four Character Code), a standardized 32-bit identifier used in multimedia for format consistency, reducing conversion overhead and debugging complexity. It highlights Espressif implementation in ESP-GMF, where esp_fourcc.h defines FOURCC values for video, audio, container, image, and pixel formats, optimizing efficiency in embedded systems.

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

## Naming Code Clearly: Practical Tips for More Readable Identifiers and APIs

DevFeed: [Naming Code Clearly: Practical Tips for More Readable Identifiers and APIs](<https://devfeed.tech/articles/what-s-in-a-name-23851.md>)

Original publisher: [Read original article](<http://testing.googleblog.com/2024/03/whats-in-name.html>)

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

Published: 2024-03-26T12:34: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>), [Computer science](<https://devfeed.tech/topics/computer-science.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [adam-raider](<https://devfeed.tech/tags/adam-raider.md>), [code](<https://devfeed.tech/tags/code.md>), [code-health](<https://devfeed.tech/tags/code-health.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [interface](<https://devfeed.tech/tags/interface.md>), [tips](<https://devfeed.tech/tags/tips.md>), [tott](<https://devfeed.tech/tags/tott.md>)

### AI overview

This Code Health post explains why unclear identifiers and interfaces increase cognitive load and make code harder to read. It offers naming guidance, including describing behavior, considering the cost of renaming, revealing intent, and preferring precise names.

### 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 Adam Raider "There are only two hard things in computer science: cache invalidation and naming things." --Phil Karlton Have you ever read an identifier only to realize later it doesn't do what you expected? Or had to read the implementation in order to understand an interface? These indirections eat up our cognitive bandwidth and make our work more difficult. We spend far more time reading code than we do writing it; thoughtful names can save the reader (and writer) a lot of time and frustration. Here are some naming tips: Spend time considering names--it's worth it. Don't default to the first name that comes to mind. The more public the name, the more expensive it is to change. Past a certain scale, names become infeasible to change, especially for APIs. Pay attention to a name in proportion to the cost of renaming it later. If you're feeling stuck, consider running a new name by a teammate. Describe behavior. Encourage naming based on what functions do rather than when the functions are called. Avoid prefixes like "handle" or "on" as they describe when and provide no added meaning: button.listen('click', handleClick) button.listen('click', addItemToCart) Reveal intent with a contextually appropriate level of abstraction: High-abstraction functions describe the what and operate on high-level types. Lower-abstraction functions describe the how and operate on lower-level types. For example, logout might call into clearUserToken, and recordWithCamera might call into parseStreamBytes. Prefer unique, precise names. Are you frequently asking for the UserManager? Manager, Util, and similar suffixes are a common but imprecise naming convention. What does it do? It manages! If you're struggling to come up with a more precise name, consider sp

## Choosing a Postgres Primary Key

DevFeed: [Choosing a Postgres Primary Key](<https://devfeed.tech/articles/choosing-a-postgres-primary-key-339.md>)

Original publisher: [Read original article](<https://supabase.com/blog/choosing-a-postgres-primary-key>)

Author: Victor

Published: 2022-09-08T07:00:00Z

Content type: article

Language: en

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

Topics: [Databases](<https://devfeed.tech/topics/databases.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [complexity](<https://devfeed.tech/tags/complexity.md>), [database](<https://devfeed.tech/tags/database.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [ids](<https://devfeed.tech/tags/ids.md>), [postgres](<https://devfeed.tech/tags/postgres.md>)

### AI overview

This article examines how to choose a Postgres primary key, comparing natural and surrogate keys, numeric identifiers, random values, and UUIDs. It discusses identifier trade-offs and using Postgres sequences for auto-incrementing integer keys.

### Source excerpt

Turns out the question of which identifier to use as a Primary Key is complicated -- we're going to dive into some of the complexity and inherent trade-offs, and figure things out

## Cookie for a Thought - How to Manage HTTP Sessions

DevFeed: [Cookie for a Thought - How to Manage HTTP Sessions](<https://devfeed.tech/articles/cookie-for-a-thought-how-to-manage-http-sessions-29701.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/http-session-best-practices/>)

Author: sakshyam.shah@goteleport.com (Sakshyam Shah)

Published: 2022-09-08T00:00:00Z

Content type: tutorial

Language: en

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

Topics: [HTTP](<https://devfeed.tech/topics/http.md>), [Cookies](<https://devfeed.tech/topics/cookies.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Access Control](<https://devfeed.tech/topics/access-control.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Security](<https://devfeed.tech/topics/security.md>), [TLS (Transport Layer Security)](<https://devfeed.tech/topics/tls.md>), [Persistence](<https://devfeed.tech/topics/persistence.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [browser](<https://devfeed.tech/tags/browser.md>), [cookies](<https://devfeed.tech/tags/cookies.md>), [cryptographic](<https://devfeed.tech/tags/cryptographic.md>), [generate](<https://devfeed.tech/tags/generate.md>), [hashing](<https://devfeed.tech/tags/hashing.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [http](<https://devfeed.tech/tags/http.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [protection](<https://devfeed.tech/tags/protection.md>), [random](<https://devfeed.tech/tags/random.md>), [security](<https://devfeed.tech/tags/security.md>), [tls](<https://devfeed.tech/tags/tls.md>), [token](<https://devfeed.tech/tags/token.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>)

### AI overview

This article explains how HTTP sessions use cookies to persist session state and support identity-based access control. It recommends protecting session IDs against guessing, replay, and theft, including the use of cryptographically secure random values and TLS.

### Source excerpt

Exploring techniques and best practices to manage HTTP sessions.

## Learning Twitter in 2022

DevFeed: [Learning Twitter in 2022](<https://devfeed.tech/articles/learning-twitter-in-2022-28354.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/twitter/2022/06/11/learning-twitter-in-2022.html>)

Author: Fuzzygroup

Published: 2022-06-11T01:57:00Z

Content type: tutorial

Language: en

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

Topics: [X (Twitter)](<https://devfeed.tech/topics/twitter.md>), [Learning](<https://devfeed.tech/topics/learning.md>), [hash](<https://devfeed.tech/topics/hash.md>), [identifier](<https://devfeed.tech/topics/identifier.md>), [Messaging](<https://devfeed.tech/topics/messaging.md>)

Tags: [experiment](<https://devfeed.tech/tags/experiment.md>), [hash](<https://devfeed.tech/tags/hash.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [learning](<https://devfeed.tech/tags/learning.md>), [marketing](<https://devfeed.tech/tags/marketing.md>), [messaging](<https://devfeed.tech/tags/messaging.md>), [twitter](<https://devfeed.tech/tags/twitter.md>), [updated](<https://devfeed.tech/tags/updated.md>)

### AI overview

A work-in-progress guide to learning Twitter in 2022. It shares practical observations about gaining visibility, using hashtags, engaging with relevant people, tracking one metric, experimenting, and mixing original posts with other users' content.

### Source excerpt

Note: This is a work in progress. Rather than finish it in one go, I'm updating it live as a draft document as I learn new things about Twitter. Last update: 2022-06-15 I am, at heart, a long form blogger. Still - the cool kids, as they say - these days are all on twitter (and, yes, I know by saying it that way, I'm dating myself even further; so be it; it amuses me). I find myself, here in 2022, wanting to get a better handle on Twitter. This will be a regularly updated blog post summarizing what I've learned. Rule 0: You Are Screaming Into the Void The first thing to understand is that Twitter as a whole is enormous and no one is going to notice, or even care, that you are there. There is very much an aspect of screaming into the void. Rule 1: You Are Going to Have to Work to Get Noticed When a social media is new then can be easy to get established. When a social media already exists though, it is a lot of work to establish yourself. You need to throw away any expectations that you are going to be successful on Twitter quickly and get ready for a long grind of creating content. Rule 2: Hash Tags A hash tag is an identifier that describes your content. What I have noticed is that without hash tags, my content may as well not exist. Add hash tags to your tweet just by adding a hash mark or # to the end of your tweets. Rule 3: @ sign Someone if It is Relevant Rule 4: Direct Messaging People on Twitter is Quite Real Rule 5: Check Your Mentions Rule 6: Keep At It Rule 7: Decide On Your One Metric Twitter has a number of metrics: Followers Retweets Likes Mentions Trying to pay attention to all of these at once is, for someone who isn't metric oriented and isn't a marketer, a kind of sucky experience. My choice was that I was going to use my Followers count as the metric. When I started this experiment, I had 207 followers. Now I have 209 followers. Progress??? Rule 8: Experiment and Learn from It Rule 9: Don't Just Tweet Your Own Stuff Imagine Twitter as if it was a pa

## How we used Go 1.18 when designing our Identifiers

DevFeed: [How we used Go 1.18 when designing our Identifiers](<https://devfeed.tech/articles/how-we-used-go-1-18-when-designing-our-identifiers-17804.md>)

Original publisher: [Read original article](<https://encore.dev/blog/go-1.18-generic-identifiers>)

Author: Dominic Black

Published: 2022-03-25T00:00:00Z

Content type: article

Language: en

Sources: [Encore Updates](<https://devfeed.tech/sources/encore-updates.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [data](<https://devfeed.tech/topics/data.md>), [Traces](<https://devfeed.tech/topics/traces.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [aws](<https://devfeed.tech/tags/aws.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [database](<https://devfeed.tech/tags/database.md>), [debug](<https://devfeed.tech/tags/debug.md>), [distributed-system](<https://devfeed.tech/tags/distributed-system.md>), [go](<https://devfeed.tech/tags/go.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [security](<https://devfeed.tech/tags/security.md>), [traces](<https://devfeed.tech/tags/traces.md>)

### AI overview

This article explains how Encore considered identifier design in distributed systems while using Go 1.18. It discusses the limitations of auto-incrementing identifiers and outlines requirements including sortability, scalability, collision avoidance, zero configuration, and type safety.

### Source excerpt

It turns out identifiers were generic the whole time

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

## Reproducible codesigning on Apple Silicon

DevFeed: [Reproducible codesigning on Apple Silicon](<https://devfeed.tech/articles/reproducible-codesigning-on-apple-silicon-25405.md>)

Original publisher: [Read original article](<https://smileykeith.com/2021/10/05/codesign-m1/>)

Author: Keith Smiley

Published: 2021-10-06T03:00:00Z

Content type: article

Language: en

Sources: [Keith Smiley](<https://devfeed.tech/sources/keith-smiley.md>)

Topics: [Arm](<https://devfeed.tech/topics/arm.md>), [x86](<https://devfeed.tech/topics/x86.md>), [C](<https://devfeed.tech/topics/c.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [apple](<https://devfeed.tech/tags/apple.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [arm](<https://devfeed.tech/tags/arm.md>), [binaries](<https://devfeed.tech/tags/binaries.md>), [c](<https://devfeed.tech/tags/c.md>), [clang](<https://devfeed.tech/tags/clang.md>), [code](<https://devfeed.tech/tags/code.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [reproducible-builds](<https://devfeed.tech/tags/reproducible-builds.md>), [signing](<https://devfeed.tech/tags/signing.md>), [source](<https://devfeed.tech/tags/source.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

The article explains why codesigning universal macOS binaries can produce different results on Apple Silicon and Intel Macs, despite the binaries being identical before signing. It traces the issue through Apple's open-source code and identifies architecture-dependent UUID handling as the cause of non-reproducible codesigning.

### Source excerpt

For people who expect reproducible builds, Apple Silicon machines provide an interesting challenge. Apple Silicon requires arm64 binaries, including command line tools you build yourself, be codesigned. This change is mostly transparent to developers, because Apple updated their linker to automatically ad-hoc sign binaries1. Unfortunately, if you're interested in producing binaries that support both Intel Macs and Apple Silicon Macs, you likely want to produce a fat binary. When codesigning this binary you hit some behavior that depends on your current machine's architecture. Example You can consistently produce the same result across multiple machines when compiling a binary without signing it. Here's an example with a simple C program: $ echo "int main() { return 0; }" > main.c $ clang main.c -Wl,-no_adhoc_codesign -arch arm64 -arch x86_64 -o main $ shasum main 113033b3d9a247210b49a476bbfadb2e347846fe main The shasum of main should always be the same regardless of your host machine2. On Apple Silicon machines you can see this binary has the same sha1 even if you run clang under Rosetta 23: $ arch -x86_64 clang main.c -Wl,-no_adhoc_codesign -arch arm64 -arch x86_64 -o main $ shasum main 113033b3d9a247210b49a476bbfadb2e347846fe main The issue is introduced when you codesign the binary on Apple Silicon machines versus Intel machines. You can immediately see the difference3: $ codesign --force --sign - main $ shasum main 84631e812bd480c306766ba03a728dd2565dd672 main % arch -x86_64 codesign --force --sign - main % shasum main f631b6c0daf3ffd0bb5f65d19fa045acf447a72d main We get closer to identifying the problem when you compare the details of these differences: $ codesign --force --sign - main $ codesign -dvvv main > arm.txt 2>&1 $ arch -x86_64 codesign --force --sign - main $ codesign -dvvv main > intel.txt 2>&1 $ diff -Nur intel.txt arm.txt --- intel.txt 2021-10-05 21:26:32.731918710 -0700 +++ arm.txt 2021-10-05 21:26:29.473702845 -0700 @@ -1,14 +1,14 @@ Executable=/

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

## GTK, fast lexer, money, deep testing, and our first commercial product

DevFeed: [GTK, fast lexer, money, deep testing, and our first commercial product](<https://devfeed.tech/articles/gtk-fast-lexer-money-deep-testing-and-our-first-commercial-product-22376.md>)

Original publisher: [Read original article](<https://www.red-lang.org/2020/03/gtk-fast-lexer-money-deep-testing-and.html>)

Author: Unknown (noreply@blogger.com)

Published: 2020-03-20T19:00:00Z

Content type: article

Language: en

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

Topics: [Red](<https://devfeed.tech/topics/red.md>), [GTK](<https://devfeed.tech/topics/gtk.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [reactive](<https://devfeed.tech/topics/reactive.md>)

Tags: [automated](<https://devfeed.tech/tags/automated.md>), [bug](<https://devfeed.tech/tags/bug.md>), [code](<https://devfeed.tech/tags/code.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [floating-point](<https://devfeed.tech/tags/floating-point.md>), [gui](<https://devfeed.tech/tags/gui.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [money](<https://devfeed.tech/tags/money.md>), [operating-systems](<https://devfeed.tech/tags/operating-systems.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [testing](<https://devfeed.tech/tags/testing.md>)

### AI overview

A Red team update covering progress on GTK support and a fast lexer, automated view testing for GUI bugs, and new datatypes including the planned money! type for accurate financial calculations.

### Source excerpt

It's been a busy start to the year for the team. Work has continued on many fronts, and we have some new team members helping us to keep the momentum going. We announced in January that GTK and the Fast Lexer were close, and they are even closer now. The hard part about making announcements is that some of this work is unpredictable and changes in scope after we do. Or the world steps in and a pandemic throws a wrench into your plans. @bitbegin has done an enormous amount of work on the GTK branch. You can check out the GTK branch to see some of what goes into supporting a new GUI system. The more features we include in Red, the more that have to be ported and maintained. Unfortunately, most operating systems and UI systems have large, complicated sets of APIs and interactions. Because GUI systems are so complex, and Red not only has to handle them, but also adds its own reactive framework, there are more places for bugs to hide. And users are involved, which is the worst part. They do nothing but cause problems. To that end, in addition to his normal deep diving and bug hunting, @hiiamboris has been working on an automated view test system, which is no small feat. @9214 has joined him on the hunt, and we will squash a good number of bugs for our next release. The fast lexer was in near-final testing when we decided that it was worth delaying its merge in order to incorporate some new lexical forms that we had planned to include. Then we looked at some old tickets related to modulo and division operators, and a couple lexing questions came up related to tag!. Suddenly the fast lexer work was back in code mode. New lexical forms usually means new datatypes, and that's the case here. New Datatypes One we've expected for some time, and thanks to @9214 it's now a reality. Money! is coming. There is a branch for it, but no need to comment at this time. There are a few features, like round still to be completed, but the bulk of the work is done. @BeardPower did some great

## Restart ID sequences in Postgres on Truncation

DevFeed: [Restart ID sequences in Postgres on Truncation](<https://devfeed.tech/articles/restart-id-sequences-in-postgres-on-truncation-28329.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/sql/2020/03/13/restart-id-sequences-in-postgres-on-truncation.html>)

Author: Fuzzygroup

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

Content type: tutorial

Language: en

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

Topics: [Database](<https://devfeed.tech/topics/database.md>), [Rails](<https://devfeed.tech/topics/rails.md>)

Tags: [activerecord](<https://devfeed.tech/tags/activerecord.md>), [csv](<https://devfeed.tech/tags/csv.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [id](<https://devfeed.tech/tags/id.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [postgres](<https://devfeed.tech/tags/postgres.md>), [rails](<https://devfeed.tech/tags/rails.md>), [sequences](<https://devfeed.tech/tags/sequences.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

A tutorial on resetting PostgreSQL ID sequences when truncating tables, including a Rails implementation using ActiveRecord. Resetting sequences keeps identifiers consistent when rebuilding data from the same CSV files in development and production.

### Source excerpt

Note: This is from a real world thing that I'm about to release. Like a lot of database apps in the world, mine generally tend to use auto incrementing ids for object identifiers. An object identifier is a value in a system which uniquely identifies something. Let's say you have a url like this: http://localhost:3169/locations?country_id=91 What that is saying, under the hood, is "Get the data from the locations store and give me the object with id value 91". The thing that I'm currently building is populated with a bunch of data which is coming from CSV files that I'm loading from the Internet and I need to wipe the data in the system every time it rebuilds. Now when I say location store, I mean, in this case, a locations table in a Postgres database. When you wipe the contents of a table in Postgres you end up with the next object in the table getting the last ID value plus 1. The secret is to add this snippet to your truncation routine: RESTART IDENTITY or in full: TRUNCATE states RESTART IDENTITY And in Rails I have this implemented on all my core classes as: def self.truncate ActiveRecord::Base.connection.execute("TRUNCATE states RESTART IDENTITY") end Since this is a def self., think of it as a C style static thing. By defining it this way, I can simply call it as State.truncate to eliminate all data in my states store (ok its is a table but it could be more complex) and restart my ID sequences. And in cases it wasn't clear exactly why you want this, since I'm processing the same data files in Production as in Development, my bookmarks become consistent allowing easier debugging.

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

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

## Bullet Proofing Django Models

DevFeed: [Bullet Proofing Django Models](<https://devfeed.tech/articles/bullet-proofing-django-models-33891.md>)

Original publisher: [Read original article](<https://hakibenita.com/bullet-proofing-django-models>)

Author: Haki Benita

Published: 2016-10-25T21:00:00Z

Content type: tutorial

Language: en

Sources: [Haki Benita](<https://devfeed.tech/sources/haki-benita.md>)

Topics: [Django](<https://devfeed.tech/topics/django.md>), [Development](<https://devfeed.tech/topics/development.md>), [Requirements](<https://devfeed.tech/topics/requirements.md>)

Tags: [account](<https://devfeed.tech/tags/account.md>), [articles](<https://devfeed.tech/tags/articles.md>), [code](<https://devfeed.tech/tags/code.md>), [development](<https://devfeed.tech/tags/development.md>), [django](<https://devfeed.tech/tags/django.md>), [id](<https://devfeed.tech/tags/id.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [models](<https://devfeed.tech/tags/models.md>), [orm](<https://devfeed.tech/tags/orm.md>), [web-interface](<https://devfeed.tech/tags/web-interface.md>)

### AI overview

This tutorial explains patterns for designing Django models for a bank-account-like feature. It starts with business requirements, then covers account uniqueness, public and private identifiers, deletion protection, balance limits, and action logging through balance deltas.

### Source excerpt

We recently added a bank account like functionality into one of our products. During the development we encountered some textbook problems and I thought it can be a good opportunity to go over some of the patterns we use in our Django models.

## Go Ethereum's JIT-EVM

DevFeed: [Go Ethereum's JIT-EVM](<https://devfeed.tech/articles/go-ethereum-s-jit-evm-16760.md>)

Original publisher: [Read original article](<https://blog.ethereum.org/en/2016/06/02/go-ethereums-jit-evm>)

Author: Jeffrey Wilcke

Published: 2016-06-02T16:21:36Z

Content type: article

Language: en

Sources: [Ethereum Foundation Blog](<https://devfeed.tech/sources/ethereum-foundation-blog.md>)

Topics: [Ethereum](<https://devfeed.tech/topics/ethereum.md>), [JIT](<https://devfeed.tech/topics/jit.md>), [virtual machines](<https://devfeed.tech/topics/virtual-machines.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>)

Tags: [compilation](<https://devfeed.tech/tags/compilation.md>), [ethereum](<https://devfeed.tech/tags/ethereum.md>), [go](<https://devfeed.tech/tags/go.md>), [hash](<https://devfeed.tech/tags/hash.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [jit](<https://devfeed.tech/tags/jit.md>), [research-development](<https://devfeed.tech/tags/research-development.md>), [virtual-machines](<https://devfeed.tech/tags/virtual-machines.md>)

### AI overview

The article explains how the Ethereum Virtual Machine executes bytecode and how a JIT-EVM approach changes that process. The JIT-EVM looks up compiled programs by a code hash, runs a cached program when available, and otherwise executes the bytecode while compiling a JIT program in the background.

### Source excerpt

The Ethereum Virtual machine is kind of different than most other Virtual Machines out there. In my previous post I already explained how it's used and described some of its characteristics. The Ethereum Virtual Machine (EVM) is a simple but powe...

## Exported/Unexported Identifiers In Go

DevFeed: [Exported/Unexported Identifiers In Go](<https://devfeed.tech/articles/exported-unexported-identifiers-in-go-22097.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2014/03/exportedunexported-identifiers-in-go.html>)

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

Content type: tutorial

Language: en

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

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [programming](<https://devfeed.tech/tags/programming.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

This tutorial explains how Go determines whether types, variables, and functions are exported or unexported based on the capitalization of their names. It shows that unexported identifiers cannot be accessed directly from another package, but can still be used through an exported function such as NewAlertCounter.

### Source excerpt

Introduction One of the first things I learned about in Go was using an uppercase or lowercase letter as the first letter when naming a type, variable or function. It was explained that when the first letter was capitalized, the identifier was public to any piece of code that wanted to use it. When the first letter was lowercase, the identifier was private and could only be accessed within the package it was declared.

## Smooth image loading by upscaling

DevFeed: [Smooth image loading by upscaling](<https://devfeed.tech/articles/smooth-image-loading-by-upscaling-2141.md>)

Original publisher: [Read original article](<https://developers.soundcloud.com/blog//smooth-image-loading-by-upscaling>)

Published: 2014-02-20T00:00:00Z

Content type: article

Language: en

Sources: [SoundCloud Backstage Blog](<https://devfeed.tech/sources/soundcloud-backstage-blog.md>)

Topics: [Caching](<https://devfeed.tech/topics/caching.md>), [Single-page application (SPA)](<https://devfeed.tech/topics/spa.md>), [Image](<https://devfeed.tech/topics/image.md>), [browser](<https://devfeed.tech/topics/browser.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [CSS](<https://devfeed.tech/topics/css.md>), [HTML](<https://devfeed.tech/topics/html.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [cache](<https://devfeed.tech/tags/cache.md>), [code](<https://devfeed.tech/tags/code.md>), [css](<https://devfeed.tech/tags/css.md>), [display](<https://devfeed.tech/tags/display.md>), [effect](<https://devfeed.tech/tags/effect.md>), [fetch](<https://devfeed.tech/tags/fetch.md>), [http](<https://devfeed.tech/tags/http.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [image](<https://devfeed.tech/tags/image.md>), [index](<https://devfeed.tech/tags/index.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [map](<https://devfeed.tech/tags/map.md>), [memory](<https://devfeed.tech/tags/memory.md>), [object](<https://devfeed.tech/tags/object.md>), [request](<https://devfeed.tech/tags/request.md>)

### AI overview

The article presents a smooth image-loading technique for a single-page application. It displays a previously cached, smaller image enlarged to the target size, then fades in the larger image after it loads. A memory-efficient bitmask tracks which image sizes are already cached, avoiding unnecessary requests for small images.

### Source excerpt

The site is a single-page application that displays a multitude of users' images. At SoundCloud, we use a technique to make the loading of...

## Creating an Android Project

DevFeed: [Creating an Android Project](<https://devfeed.tech/articles/creating-an-android-project-30566.md>)

Original publisher: [Read original article](<https://ryanharter.com/blog/2014/02/creating-an-android-project/>)

Published: 2014-02-07T07:00:00Z

Content type: tutorial

Language: en

Sources: [Blogs on Ryan Harter](<https://devfeed.tech/sources/blogs-on-ryan-harter.md>)

Topics: [Android Studio](<https://devfeed.tech/topics/android-studio.md>), [android-development](<https://devfeed.tech/topics/android-development.md>), [Android](<https://devfeed.tech/topics/android.md>), [App](<https://devfeed.tech/topics/app.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [android-studio](<https://devfeed.tech/tags/android-studio.md>), [app](<https://devfeed.tech/tags/app.md>), [development](<https://devfeed.tech/tags/development.md>), [ide](<https://devfeed.tech/tags/ide.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [module](<https://devfeed.tech/tags/module.md>), [play-store](<https://devfeed.tech/tags/play-store.md>), [sdk](<https://devfeed.tech/tags/sdk.md>)

### AI overview

A tutorial in a Start to Finish series explains how to create a new Android project using Android Studio. It covers the project setup screen, including the application name, module name, package name, project location, and minimum required SDK.

### Source excerpt

This is the third post in my Start to Finish series. Last time I talked about source control with Git. We've talked about basic tools, and about source control, so now we're ready to get into actually creating an Android app. In this part of the series, we're going to create a new project using Android Studio. Android Studio is Google's Integrated Development Environment (IDE) that we will use to create our Android app. While it's still in early preview release status, it will be replacing Eclipse as the main Android development IDE, so we'll go ahead and just start there.

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