# Variable

Published articles for Variable.

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

## Chess invariants

DevFeed: [Chess invariants](<https://devfeed.tech/articles/chess-invariants-41839.md>)

Original publisher: [Read original article](<https://muratbuffalo.blogspot.com/2026/05/chess-invariants.html>)

Author: Murat (noreply@blogger.com)

Published: 2026-05-21T12:26:52Z

Content type: article

Language: en

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

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [systems](<https://devfeed.tech/topics/systems.md>), [math](<https://devfeed.tech/topics/math.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [deadlock](<https://devfeed.tech/tags/deadlock.md>), [execution](<https://devfeed.tech/tags/execution.md>), [rules](<https://devfeed.tech/tags/rules.md>), [safety](<https://devfeed.tech/tags/safety.md>), [state](<https://devfeed.tech/tags/state.md>), [tla](<https://devfeed.tech/tags/tla.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

The article models chess as a concurrent system with interleaved execution and derives safety and transition invariants. It discusses state constraints such as valid variable domains, turn parity, king placement, and check status, along with transition constraints governing move counts, turn alternation, captures, and square changes.

### Source excerpt

Chess is a lot trickier than it looks. It has so many rules: castling, en passant, pawn promotion, pinning, the discovered check, and the deadlock case of stalemate. It is a concurrent system, but with a very specific kind of concurrency: interleaved execution. More specifically, taking turns: white, then black, then white. You know what we do with concurrent systems here? Here we model them, and we distill their invariants. Here is some setup definitions first. In a CS or math paper, if you write "Section 2: Model and Problem" well enough, the rest of the paper writes itself. With this setup you can sort of see what the actions will be. In fact, forget about the actions. Let's look at some invariants. Invariants When deriving invariants we ask: what must always be true? I find it useful to split the safety invariants into two camps: state invariants (which are predicates over a single state) and transition invariants (which are predicates over a step). The transition invariants are not as commonly used as state invariants, but they can be very helpful, especially when you are reasoning about transitions of a system. In the case of a system like chess, I think the transition invariants come in very handy as you may see below. State invariants TypeOK says every variable lives in the right space. It is boring, but it has caught more bugs than I would like to admit. OneKingPerColor and BothKingsOnBoard are also sanity checks. TurnParity is the first interesting one. It ties two state variables together: WHITE moves on even moves, BLACK on odd. The MakeMove action satisfies this TurnParity. PreviousPlayerNotInCheck restates the rule that "you must end your turn not in check" as "look back: the player who just moved is not in check". NotBothInCheck is a corollary. Transition invariants These are predicates over a <<state, next-state>> pair, written with the bracketed form: [][P]_vars. They express how things change with constraints. The notation is simple: x is the value

## AI SaaS Monetization in 2026: What Actually Works

DevFeed: [AI SaaS Monetization in 2026: What Actually Works](<https://devfeed.tech/articles/ai-saas-monetization-in-2026-what-actually-works-9619.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/ai-saas-monetization-2026/>)

Author: Ayush Agarwal

Published: 2026-05-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dodo Payments Blog](<https://devfeed.tech/sources/dodo-payments-blog.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [ai](<https://devfeed.tech/tags/ai.md>), [article](<https://devfeed.tech/tags/article.md>), [billing](<https://devfeed.tech/tags/billing.md>), [churn](<https://devfeed.tech/tags/churn.md>), [cost](<https://devfeed.tech/tags/cost.md>), [margin](<https://devfeed.tech/tags/margin.md>), [monetization](<https://devfeed.tech/tags/monetization.md>), [packaging](<https://devfeed.tech/tags/packaging.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [pricing](<https://devfeed.tech/tags/pricing.md>), [revenue](<https://devfeed.tech/tags/revenue.md>), [saas](<https://devfeed.tech/tags/saas.md>), [subscription](<https://devfeed.tech/tags/subscription.md>), [unit-economics](<https://devfeed.tech/tags/unit-economics.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

The article explains three pricing eras for AI SaaS: flat subscriptions, raw consumption pricing, and a hybrid model combining subscriptions, included usage, overage pricing, and optional larger commitments. It argues that the hybrid approach offers buyers predictability while protecting seller margins.

### Source excerpt

How AI SaaS companies are pricing, billing, and packaging in 2026. Learn the real monetization patterns for AI products and what to avoid.

## Pricing AI Chat Apps for Sustainable Margins

DevFeed: [Pricing AI Chat Apps for Sustainable Margins](<https://devfeed.tech/articles/how-to-price-an-ai-chat-app-so-you-actually-make-money-10287.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/profitable-ai-chat-app-pricing/>)

Author: Ayush Agarwal

Published: 2026-05-14T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dodo Payments Blog](<https://devfeed.tech/sources/dodo-payments-blog.md>)

Topics: [AI Chat](<https://devfeed.tech/topics/ai-chat.md>), [App](<https://devfeed.tech/topics/app.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Software as a service](<https://devfeed.tech/topics/saas.md>), [Retrieval-Augmented Generation](<https://devfeed.tech/topics/retrieval-augmented-generation.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [app](<https://devfeed.tech/tags/app.md>), [chat](<https://devfeed.tech/tags/chat.md>), [cost](<https://devfeed.tech/tags/cost.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [llm](<https://devfeed.tech/tags/llm.md>), [pricing](<https://devfeed.tech/tags/pricing.md>), [rag](<https://devfeed.tech/tags/rag.md>), [retrieval](<https://devfeed.tech/tags/retrieval.md>), [saas](<https://devfeed.tech/tags/saas.md>), [subscription](<https://devfeed.tech/tags/subscription.md>), [token](<https://devfeed.tech/tags/token.md>), [unit-economics](<https://devfeed.tech/tags/unit-economics.md>), [usage-based-billing](<https://devfeed.tech/tags/usage-based-billing.md>), [variable](<https://devfeed.tech/tags/variable.md>), [volume](<https://devfeed.tech/tags/volume.md>)

### AI overview

This practical guide explains how to price AI chat applications when model costs vary with token usage. It covers unit economics, hidden infrastructure and retrieval costs, and usage-based billing approaches intended to align customer charges with consumption.

### Source excerpt

A practical guide to pricing AI chat apps for positive margins. Cover token costs, hidden infrastructure spend, and a step by step framework for usage based billing.

## Hybrid Billing Models: 7 Patterns Every SaaS Should Consider in 2026

DevFeed: [Hybrid Billing Models: 7 Patterns Every SaaS Should Consider in 2026](<https://devfeed.tech/articles/hybrid-billing-models-7-patterns-every-saas-should-consider-in-2026-9918.md>)

Original publisher: [Read original article](<https://dodopayments.com/blogs/hybrid-billing-models-saas/>)

Author: Ayush Agarwal

Published: 2026-04-29T00:00:00Z

Content type: tutorial

Language: en

Sources: [Dodo Payments Blog](<https://devfeed.tech/sources/dodo-payments-blog.md>)

Topics: [Software as a service](<https://devfeed.tech/topics/saas.md>), [Software](<https://devfeed.tech/topics/software.md>), [Binance](<https://devfeed.tech/topics/binance.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [billing](<https://devfeed.tech/tags/billing.md>), [examples](<https://devfeed.tech/tags/examples.md>), [guide](<https://devfeed.tech/tags/guide.md>), [patterns](<https://devfeed.tech/tags/patterns.md>), [pricing](<https://devfeed.tech/tags/pricing.md>), [saas](<https://devfeed.tech/tags/saas.md>), [subscriptions](<https://devfeed.tech/tags/subscriptions.md>), [usage-based-billing](<https://devfeed.tech/tags/usage-based-billing.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

A guide to seven hybrid billing models for SaaS businesses, combining subscriptions with usage, seats, allowances, optional features, or one-off charges. It also covers the math behind the models and how to choose one based on a company's stage.

### Source excerpt

Explore 7 hybrid billing models that combine subscriptions, usage, and seats. Real-world examples, proration math, and when each pattern fits your SaaS stage.

## Docker Bake and Chainguard Images

DevFeed: [Docker Bake and Chainguard Images](<https://devfeed.tech/articles/docker-bake-and-chainguard-images-13022.md>)

Original publisher: [Read original article](<https://www.chainguard.dev/unchained/docker-bake-and-chainguard-images>)

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

Content type: article

Language: en

Sources: [Chainguard: Unchained](<https://devfeed.tech/sources/chainguard-unchained.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [chainguard images](<https://devfeed.tech/topics/chainguard-images.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Development](<https://devfeed.tech/topics/development.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [JSON](<https://devfeed.tech/topics/json.md>)

Tags: [bake](<https://devfeed.tech/tags/bake.md>), [build](<https://devfeed.tech/tags/build.md>), [chainguard](<https://devfeed.tech/tags/chainguard.md>), [chainguard-images](<https://devfeed.tech/tags/chainguard-images.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cli](<https://devfeed.tech/tags/cli.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [docker](<https://devfeed.tech/tags/docker.md>), [make](<https://devfeed.tech/tags/make.md>), [multiplatform](<https://devfeed.tech/tags/multiplatform.md>), [registry](<https://devfeed.tech/tags/registry.md>), [variable](<https://devfeed.tech/tags/variable.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

This article introduces Docker Bake, a Docker CLI capability for defining, simplifying, and automating Docker build workflows with declarative files. It explains basic build definitions and shows how Bake can support multistage workflows with Chainguard Images, separate development and production targets, inheritance, multiplatform builds, registry pushes, and variables. Bake files can use HCL, YAML, or JSON, with HCL providing basic string-interpolation functions.

### Source excerpt

Docker Bake is a great resource to define build configuration using a declarative file that integrates well with Chainguard Images. See how.

## Scrollbar width custom event

DevFeed: [Scrollbar width custom event](<https://devfeed.tech/articles/scrollbar-width-custom-event-37346.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/scrollbar-size-observer/>)

Author: Stanko

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

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [browser](<https://devfeed.tech/topics/browser.md>), [CSS](<https://devfeed.tech/topics/css.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [code](<https://devfeed.tech/tags/code.md>), [css](<https://devfeed.tech/tags/css.md>), [demo](<https://devfeed.tech/tags/demo.md>), [developers](<https://devfeed.tech/tags/developers.md>), [example](<https://devfeed.tech/tags/example.md>), [examples](<https://devfeed.tech/tags/examples.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [layout](<https://devfeed.tech/tags/layout.md>), [live](<https://devfeed.tech/tags/live.md>), [load](<https://devfeed.tech/tags/load.md>), [prevent](<https://devfeed.tech/tags/prevent.md>), [stack-overflow](<https://devfeed.tech/tags/stack-overflow.md>), [value](<https://devfeed.tech/tags/value.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

This tutorial explains scrollbar-related layout issues and shows how to create a custom JavaScript event that detects changes in scrollbar width using ResizeObserver. It also covers initializing a CSS variable early to reduce layout shift and briefly mentions a CSS alternative.

### Source excerpt

Some operating systems and browsers are not showing scrollbars by default. That often results in developers forgetting about these pesky gray bars and the issues they can cause. I'll give you two quick examples: When setting overflow: hidden on the body element, if there was a scrollbar visible, content will jump a little as it now has more space. If you ever implemented scroll locking for modals, you've probably encountered this issue. Another thing is that width: 100vw and width: 100% on the body element don't match if there is a scrollbar visible: 100vw is the width of the viewport including the scrollbar. 100% is the width of the viewport excluding the scrollbar. This becomes obvious if you have a fixed element like a header. It will be a little bit wider than the rest of the content when scrollbar is visible. I'm sure there are more issues, but these are the two I remembered on top of my head. Anyhow, let's see how to solve this. JavaScript solution # Ideally we would like to have a scrollbar-width event. It doesn't exist, so we'll have to create a custom event ourselves, and trigger it when scrollbar width changes. To catch the width changing, we can't use the resize event because viewport size don't change when scrollbar is toggled. However, if we set the ResizeObserver on the html element, it will trigger when the scrollbar is toggled. Code # After setting the observer we need to fire our custom event when width has changed. Code looks something like this: const initScrollbarWidthEvent = () => { // Custom event const scrollbarEvent = new Event("scrollbar-width"); // Initial state let currentWidth = window.innerWidth - document.documentElement.clientWidth; const observer = new ResizeObserver(() => { const newWidth = window.innerWidth - document.documentElement.clientWidth; // Check if the scrollbar width has changed and trigger the custom event if (newWidth !== currentWidth) { // Update event data // We are passing both previous and current width, // because

## Scopes and Scope Functions

DevFeed: [Scopes and Scope Functions](<https://devfeed.tech/articles/scopes-and-scope-functions-25063.md>)

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

Author: author@typealias.com (Dave Leeds)

Published: 2022-08-22T00: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>), [Library](<https://devfeed.tech/topics/library.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [apply](<https://devfeed.tech/tags/apply.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [learn](<https://devfeed.tech/tags/learn.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [let](<https://devfeed.tech/tags/let.md>), [library](<https://devfeed.tech/tags/library.md>), [programming](<https://devfeed.tech/tags/programming.md>), [run](<https://devfeed.tech/tags/run.md>), [scope](<https://devfeed.tech/tags/scope.md>), [scope-function](<https://devfeed.tech/tags/scope-function.md>), [scope-functions](<https://devfeed.tech/tags/scope-functions.md>), [shadowing](<https://devfeed.tech/tags/shadowing.md>), [standard](<https://devfeed.tech/tags/standard.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [variable](<https://devfeed.tech/tags/variable.md>), [visibility](<https://devfeed.tech/tags/visibility.md>), [with](<https://devfeed.tech/tags/with.md>)

### AI overview

A Kotlin tutorial chapter introduces scopes as regions of code where variables, functions, and classes can be declared, then begins explaining Kotlin's five scope functions from the standard library.

### Source excerpt

In the last chapter, we learned how to create extension functions, which can be called using dot notation. In this chapter, we'll learn about scope functions, which are five particular functions that Kotlin gives us in its standard library. Before we can understand scope functions, though, it helps to first understand scopes. Introduction to Scopes In Kotlin, a scope is a section of code where we can declare new variables, functions, classes, and more.

## Introducing Material Symbols

DevFeed: [Introducing Material Symbols](<https://devfeed.tech/articles/introducing-material-symbols-29269.md>)

Original publisher: [Read original article](<https://material.io/blog/introducing-symbols>)

Published: 2022-04-19T10:00:00Z

Content type: article

Language: en

Sources: [Material.io - Material Design](<https://devfeed.tech/sources/material-io-material-design.md>)

Topics: [Icon font](<https://devfeed.tech/topics/icon-font.md>), [Font](<https://devfeed.tech/topics/font.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [fonts](<https://devfeed.tech/tags/fonts.md>), [google](<https://devfeed.tech/tags/google.md>), [symbols](<https://devfeed.tech/tags/symbols.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

Material Symbols is a variable icon font available on Google Fonts. It supports adjusting weight, fill, optical size, and grade.

### Source excerpt

Fine-tune weight, fill, optical size, and grade with the variable icon font, available on Google Fonts

## Variables point to objects

DevFeed: [Variables point to objects](<https://devfeed.tech/articles/variables-point-to-objects-39392.md>)

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

Published: 2021-11-17T00:00:00Z

Content type: tutorial

Language: en

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

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

Tags: [code](<https://devfeed.tech/tags/code.md>), [exception](<https://devfeed.tech/tags/exception.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [object](<https://devfeed.tech/tags/object.md>), [variable](<https://devfeed.tech/tags/variable.md>), [variables](<https://devfeed.tech/tags/variables.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A tutorial explaining how variables reference objects, how reassignment differs from mutating an object, and how these distinctions apply to mutable and read-only Kotlin lists and delegated properties backed by maps.

### Source excerpt

A basic feature, that is commonly misunderstood.

## How to run JMX monitoring in Docker image?

DevFeed: [How to run JMX monitoring in Docker image?](<https://devfeed.tech/articles/how-to-run-jmx-monitoring-in-docker-image-27662.md>)

Original publisher: [Read original article](<https://gagor.pro/2021/02/how-to-run-jmx-monitoring-in-docker-image/>)

Author: Tom

Published: 2021-02-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Docker](<https://devfeed.tech/topics/docker.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [Java](<https://devfeed.tech/topics/java.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [container](<https://devfeed.tech/topics/container.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [container](<https://devfeed.tech/tags/container.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-java-monitoring](<https://devfeed.tech/tags/docker-java-monitoring.md>), [docker-jmx-configuration](<https://devfeed.tech/tags/docker-jmx-configuration.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [java](<https://devfeed.tech/tags/java.md>), [java-jmx-docker](<https://devfeed.tech/tags/java-jmx-docker.md>), [jconsole-docker](<https://devfeed.tech/tags/jconsole-docker.md>), [jmx-monitoring-docker](<https://devfeed.tech/tags/jmx-monitoring-docker.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [port](<https://devfeed.tech/tags/port.md>), [server](<https://devfeed.tech/tags/server.md>), [variable](<https://devfeed.tech/tags/variable.md>), [visualvm-docker](<https://devfeed.tech/tags/visualvm-docker.md>)

### AI overview

A tutorial on configuring JMX monitoring for an application running in a Docker container. It explains setting the RMI and JMX ports, configuring the hostname used for connections, mapping the ports, and connecting with VisualVM or Jconsole.

### Source excerpt

Learn how to run JMX monitoring in a Docker image, including the necessary Java parameters and configuration for connecting to JMX consoles like VisualVM or Jconsole.

## Contextual Symbols in Math

DevFeed: [Contextual Symbols in Math](<https://devfeed.tech/articles/contextual-symbols-in-math-40435.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2020/05/22/contextual-symbols-in-math/>)

Published: 2020-05-22T12:36:07Z

Content type: opinion

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [context](<https://devfeed.tech/topics/context.md>), [syntax](<https://devfeed.tech/topics/syntax.md>), [math](<https://devfeed.tech/topics/math.md>)

Tags: [context](<https://devfeed.tech/tags/context.md>), [function](<https://devfeed.tech/tags/function.md>), [graph](<https://devfeed.tech/tags/graph.md>), [math](<https://devfeed.tech/tags/math.md>), [meaning](<https://devfeed.tech/tags/meaning.md>), [semantic](<https://devfeed.tech/tags/semantic.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

The article explains how context helps readers interpret mathematical notation, including symbols, variable names, capitalization, adjacent letters, and associations between Latin and Greek letters.

### Source excerpt

In my book I discuss the importance of context in reading and writing mathematics. An early step in becoming comfortable with math is deciphering the syntax of mathematical expressions. Another is in connecting the symbols to their semantic meanings. Embedded in these is the subproblem of knowing what to call the commonly used symbols. The more abstract you go, the more exotic the symbols tend to get. Wikipedia has an excellent list for deciphering those symbols that have a typically well-understood meaning, like $ \otimes$ and $ \mathbb{Q}$.

## Let's Build A Simple Interpreter. Part 19: Nested Procedure Calls

DevFeed: [Let's Build A Simple Interpreter. Part 19: Nested Procedure Calls](<https://devfeed.tech/articles/let-s-build-a-simple-interpreter-part-19-nested-procedure-calls-33322.md>)

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

Author: Ruslan Spivak

Published: 2020-03-19T12:45:00Z

Content type: tutorial

Language: en

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

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

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [code](<https://devfeed.tech/tags/code.md>), [github](<https://devfeed.tech/tags/github.md>), [parameter](<https://devfeed.tech/tags/parameter.md>), [program](<https://devfeed.tech/tags/program.md>), [scope](<https://devfeed.tech/tags/scope.md>), [scopes](<https://devfeed.tech/tags/scopes.md>), [variable](<https://devfeed.tech/tags/variable.md>), [variables](<https://devfeed.tech/tags/variables.md>)

### AI overview

This tutorial explains how to execute nested procedure calls in a simple interpreter. It demonstrates nested procedures Alpha and Beta, examines their activation records, and fixes the nesting level for Beta by using the scope level stored in the scoped symbol table.

### Source excerpt

What I cannot create, I do not understand. --- Richard Feynman

## Variables, Expressions, and Types

DevFeed: [Variables, Expressions, and Types](<https://devfeed.tech/articles/variables-expressions-and-types-25065.md>)

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

Author: author@typealias.com (Dave Leeds)

Published: 2020-03-05T00: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>), [Programming](<https://devfeed.tech/topics/programming.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [developer](<https://devfeed.tech/tags/developer.md>), [expression](<https://devfeed.tech/tags/expression.md>), [fundamentals](<https://devfeed.tech/tags/fundamentals.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [language](<https://devfeed.tech/tags/language.md>), [learn-to-program](<https://devfeed.tech/tags/learn-to-program.md>), [programming](<https://devfeed.tech/tags/programming.md>), [statement](<https://devfeed.tech/tags/statement.md>), [types](<https://devfeed.tech/tags/types.md>), [val](<https://devfeed.tech/tags/val.md>), [var](<https://devfeed.tech/tags/var.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

An introductory Kotlin chapter explains variables, expressions, and types. It uses the example of a circle's radius to show how variables represent values and introduces variables as containers for numbers and other data in programming.

### Source excerpt

So you want to be a Kotlin developer? You've come to the right place! This book will take you through the fundamentals of Kotlin, gently introducing you to the most important concepts of the language in order to help you become a proficient Kotlin developer. Even if you're a seasoned professional, it's important to know the fundamentals in order to establish a solid foundation of understanding so that you can be as effective as possible.

## Descriptive variable names

DevFeed: [Descriptive variable names](<https://devfeed.tech/articles/descriptive-variable-names-37454.md>)

Original publisher: [Read original article](<https://iridakos.com/programming/2019/12/12/descriptive-variable-names>)

Author: Lazarus Lazaridis

Published: 2019-12-12T07:00:00Z

Content type: tutorial

Language: en

Sources: [Lazarus Lazaridis](<https://devfeed.tech/sources/lazarus-lazaridis.md>)

Topics: [Tool](<https://devfeed.tech/topics/tool.md>), [API](<https://devfeed.tech/topics/api.md>), [Development](<https://devfeed.tech/topics/development.md>), [Variable](<https://devfeed.tech/topics/variable.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [development](<https://devfeed.tech/tags/development.md>), [devhumor](<https://devfeed.tech/tags/devhumor.md>), [easily](<https://devfeed.tech/tags/easily.md>), [guide](<https://devfeed.tech/tags/guide.md>), [humor](<https://devfeed.tech/tags/humor.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [programming](<https://devfeed.tech/tags/programming.md>), [tool](<https://devfeed.tech/tags/tool.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

The supplied text describes an introduction and guide for installing and using DuckRails, a development tool for mocking API endpoints dynamically. It also states that a Docker image is available.

### Source excerpt

[others]: Variable names must be descriptive. [me]: $help-help-help: #F1F1F1;

## Calculating Color: Dynamic Color Theming with Pure CSS

DevFeed: [Calculating Color: Dynamic Color Theming with Pure CSS](<https://devfeed.tech/articles/calculating-color-dynamic-color-theming-with-pure-css-28789.md>)

Original publisher: [Read original article](<https://una.im/css-color-theming/>)

Published: 2019-12-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Una Kravets](<https://devfeed.tech/sources/una-kravets.md>)

Topics: [CSS](<https://devfeed.tech/topics/css.md>), [color](<https://devfeed.tech/topics/color.md>), [modern web development](<https://devfeed.tech/topics/modern-web-development.md>), [Vanilla JavaScript](<https://devfeed.tech/topics/vanilla-js.md>)

Tags: [color](<https://devfeed.tech/tags/color.md>), [css](<https://devfeed.tech/tags/css.md>), [internet-explorer](<https://devfeed.tech/tags/internet-explorer.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [properties](<https://devfeed.tech/tags/properties.md>), [property](<https://devfeed.tech/tags/property.md>), [themes](<https://devfeed.tech/tags/themes.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

This tutorial explains how to build dynamic color themes using pure CSS, custom properties, HSL values, and calc(). It demonstrates recreating common color transformations, including lightening, darkening, analogous, complementary, and triadic colors, without JavaScript or a CSS preprocessor for modern browsers.

### Source excerpt

Did you know that you can build custom dynamic color themes without the use of JavaScript or a CSS preprocessor!? Read on!

## Let's Build A Simple Interpreter. Part 17: Call Stack and Activation Records

DevFeed: [Let's Build A Simple Interpreter. Part 17: Call Stack and Activation Records](<https://devfeed.tech/articles/let-s-build-a-simple-interpreter-part-17-call-stack-and-activation-records-33320.md>)

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

Author: Ruslan Spivak

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

Content type: tutorial

Language: en

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

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

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [build](<https://devfeed.tech/tags/build.md>), [function](<https://devfeed.tech/tags/function.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [implement](<https://devfeed.tech/tags/implement.md>), [memory](<https://devfeed.tech/tags/memory.md>), [series](<https://devfeed.tech/tags/series.md>), [simple](<https://devfeed.tech/tags/simple.md>), [values](<https://devfeed.tech/tags/values.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

Part 17 of a series on building an interpreter explains plans to implement a new memory system for programs, procedure calls, and function calls, replacing the GLOBAL_MEMORY dictionary. It introduces memory as a way to store and access data and distinguishes physical memory from interpreter-level storage by variable names.

### Source excerpt

You may have to fight a battle more than once to win it. - Margaret Thatcher

## Serverless Framework v.1.35: Local Invoke Ruby, CloudFormation variable syntax

DevFeed: [Serverless Framework v.1.35: Local Invoke Ruby, CloudFormation variable syntax](<https://devfeed.tech/articles/serverless-framework-v-1-35-local-invoke-ruby-cloudformation-variable-syntax-14064.md>)

Original publisher: [Read original article](<https://www.serverless.com/blog/announcing-framework-v135>)

Author: Jared Short

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

Content type: release

Language: en

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

Topics: [Serverless](<https://devfeed.tech/topics/serverless.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [AWS CloudFormation](<https://devfeed.tech/topics/aws-cloudformation.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [aws-lambda](<https://devfeed.tech/tags/aws-lambda.md>), [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [cloudformation](<https://devfeed.tech/tags/cloudformation.md>), [config](<https://devfeed.tech/tags/config.md>), [faas](<https://devfeed.tech/tags/faas.md>), [function-as-a-service](<https://devfeed.tech/tags/function-as-a-service.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [local](<https://devfeed.tech/tags/local.md>), [news](<https://devfeed.tech/tags/news.md>), [release](<https://devfeed.tech/tags/release.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [serverless-architecture](<https://devfeed.tech/tags/serverless-architecture.md>), [serverless-framework](<https://devfeed.tech/tags/serverless-framework.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [v1](<https://devfeed.tech/tags/v1.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

This release announcement covers Serverless Framework v1.35, including local Ruby invocation support and CloudFormation configuration features.

### Source excerpt

Check out the latest Serverless Framework v1.35 release, featuring Ruby invoke local support, CloudFormation config, and more.

## Configuring Shell Prompts to Warn About Privileged and Production Environments

DevFeed: [Configuring Shell Prompts to Warn About Privileged and Production Environments](<https://devfeed.tech/articles/loud-subshells-29166.md>)

Original publisher: [Read original article](<https://www.latacora.com/blog/2018/06/21/loud-subshells/>)

Published: 2018-06-21T16:21:00Z

Content type: tutorial

Language: en

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

Topics: [Shell](<https://devfeed.tech/topics/shell.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Zsh](<https://devfeed.tech/topics/zsh.md>), [systems](<https://devfeed.tech/topics/systems.md>), [POSIX](<https://devfeed.tech/topics/posix.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [bash](<https://devfeed.tech/tags/bash.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [posix](<https://devfeed.tech/tags/posix.md>), [shell](<https://devfeed.tech/tags/shell.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [systems](<https://devfeed.tech/tags/systems.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [variable](<https://devfeed.tech/tags/variable.md>), [zsh](<https://devfeed.tech/tags/zsh.md>)

### AI overview

This article explains how to make shell prompts more noticeable when users have elevated privileges or access to sensitive environments. It discusses shell differences, prompt configuration, and approaches such as rc-less shells, dedicated environment variables, and sourced scripts.

### Source excerpt

Default shells usually end in $. Unless you're root and it's #. That tradition has been around forever: people recognized the need to highlight you're not just some random shmoe. These days we have lots of snazzy shell magic. You might still su, but you're more likely to sudo. We still temporarily assume extra privileges. If you have access to more than one set of systems, like production and staging, you probably have ways of putting on a particular hat. Some combination of setting an environment variable, adding a key to ssh-agent, or assuming an AWS role with aws-vault. You know, so you don't accidentally blow away prod.

## Why Descriptive Variable Names Improve Code Readability

DevFeed: [Why Descriptive Variable Names Improve Code Readability](<https://devfeed.tech/articles/variable-looked-at-me-and-said-say-my-name-39030.md>)

Original publisher: [Read original article](<https://vladimirj.dev/say-my-name/>)

Author: Vladimir Jovanović

Published: 2017-10-17T09:44:00Z

Content type: tutorial

Language: en

Sources: [Vladimir Jovanović](<https://devfeed.tech/sources/vladimir-jovanovic.md>)

Topics: [Variable](<https://devfeed.tech/topics/variable.md>), [Code](<https://devfeed.tech/topics/code.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Computer science](<https://devfeed.tech/topics/computer-science.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [code](<https://devfeed.tech/tags/code.md>), [computer-science](<https://devfeed.tech/tags/computer-science.md>), [developer](<https://devfeed.tech/tags/developer.md>), [programming](<https://devfeed.tech/tags/programming.md>), [understand](<https://devfeed.tech/tags/understand.md>), [variable](<https://devfeed.tech/tags/variable.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

This article explains why descriptive variable names make code easier for humans to read and maintain. It contrasts short, cryptic names with clearer names and notes that naming requires judgment rather than automatically improving code.

### Source excerpt

While you are writing your code, the most important thing to have in mind is that you are writing your code first and foremost for humans to understand, and secondly for a machine to interpret.

## apply() (scope function)

DevFeed: [apply() (scope function)](<https://devfeed.tech/articles/apply-scope-function-25008.md>)

Original publisher: [Read original article](<https://typealias.com/concepts/apply/>)

Author: author@typealias.com (Dave Leeds)

Published: 2017-09-04T20:06:46Z

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>), [Library](<https://devfeed.tech/topics/library.md>), [Code](<https://devfeed.tech/topics/code.md>), [Android](<https://devfeed.tech/topics/android.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [apply](<https://devfeed.tech/tags/apply.md>), [code](<https://devfeed.tech/tags/code.md>), [extension-function](<https://devfeed.tech/tags/extension-function.md>), [function](<https://devfeed.tech/tags/function.md>), [guide](<https://devfeed.tech/tags/guide.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-standard-library](<https://devfeed.tech/tags/kotlin-standard-library.md>), [let](<https://devfeed.tech/tags/let.md>), [library](<https://devfeed.tech/tags/library.md>), [object](<https://devfeed.tech/tags/object.md>), [overview](<https://devfeed.tech/tags/overview.md>), [programming](<https://devfeed.tech/tags/programming.md>), [receiver](<https://devfeed.tech/tags/receiver.md>), [scope-function](<https://devfeed.tech/tags/scope-function.md>), [scope-functions](<https://devfeed.tech/tags/scope-functions.md>), [standard](<https://devfeed.tech/tags/standard.md>), [standard-library](<https://devfeed.tech/tags/standard-library.md>), [val](<https://devfeed.tech/tags/val.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

An overview of Kotlin's apply() scope function, including its receiver and return value, with examples of using it to initialize objects and configure Android code.

### Source excerpt

Overview The apply() function is a commonly-used scope function defined in the Kotlin standard library. It's frequently used for initializing an object after instantiation. Example val size = "Hello".apply { println(this) }.length In this example, the string "Hello" is printed, and then its length is assigned to the size variable. Characteristics When the apply() extension function executes: the receiver object that .apply() is called upon is available as this the result will be the receiver object Initializing an Object It's common to use apply() to initialize an object after it's been created.

## Right way to set env variable while exec or execFile in nodejs

DevFeed: [Right way to set env variable while exec or execFile in nodejs](<https://devfeed.tech/articles/right-way-to-set-env-variable-while-exec-or-execfile-in-nodejs-21526.md>)

Original publisher: [Read original article](<http://lifepluslinux.blogspot.com/2016/09/right-way-to-set-env-variable-while.html>)

Author: Suresh Alse (noreply@blogger.com)

Published: 2016-09-15T22:02:00Z

Content type: tutorial

Language: en

Sources: [Life Plus Linux](<https://devfeed.tech/sources/life-plus-linux.md>)

Topics: [Environment Variables](<https://devfeed.tech/topics/environment-variables.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [nodejs](<https://devfeed.tech/tags/nodejs.md>), [process](<https://devfeed.tech/tags/process.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

This tutorial explains that Node.js exec and execFile replace the existing environment when an env option is supplied, rather than adding variables to it. It recommends copying process.env and modifying the copy.

### Source excerpt

According to the official documentation, exec allows you to pass additional environment variables as part of options like this: This looks fine right? except that it totally isn't! By passing "env" as an option, you are not adding on to existing environment variables, but you are replacing it. This is not clear from the documentation and can leave you scratching your head for a while as it can seem to break the command for no particular reason at all! So, you need to essentially make a copy of process.env and modify it like follows. Thanks for stopping by!

## New Release: Serverless V1.0 rc.1

DevFeed: [New Release: Serverless V1.0 rc.1](<https://devfeed.tech/articles/new-release-serverless-v1-0-rc-1-14403.md>)

Original publisher: [Read original article](<https://www.serverless.com/blog/serverless-v1-0-rc-1>)

Author: Philipp Müns

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

Content type: release

Language: en

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

Topics: [serverless framework](<https://devfeed.tech/topics/serverless-framework.md>), [Framework](<https://devfeed.tech/topics/framework.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [aws-lambda](<https://devfeed.tech/tags/aws-lambda.md>), [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [faas](<https://devfeed.tech/tags/faas.md>), [function-as-a-service](<https://devfeed.tech/tags/function-as-a-service.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [news](<https://devfeed.tech/tags/news.md>), [release](<https://devfeed.tech/tags/release.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [serverless-architecture](<https://devfeed.tech/tags/serverless-architecture.md>), [serverless-framework](<https://devfeed.tech/tags/serverless-framework.md>), [v1](<https://devfeed.tech/tags/v1.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

Serverless V1.0 rc.1 adds a new variable system for serverless.yml in the Serverless framework.

### Source excerpt

New Serverless variable system for serverless.yml added to the serverless framework

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

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

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

Author: Ruslan Spivak

Published: 2016-08-04T13:15:00Z

Content type: tutorial

Language: en

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

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

Tags: [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [build](<https://devfeed.tech/tags/build.md>), [code](<https://devfeed.tech/tags/code.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [example](<https://devfeed.tech/tags/example.md>), [github](<https://devfeed.tech/tags/github.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [simple](<https://devfeed.tech/tags/simple.md>), [types](<https://devfeed.tech/tags/types.md>), [variable](<https://devfeed.tech/tags/variable.md>), [variables](<https://devfeed.tech/tags/variables.md>)

### AI overview

This tutorial continues a series on building a Pascal interpreter. It updates the interpreter to parse and interpret a complete Pascal program, covering program headers, variable declarations, integer and floating-point division, comments, and grammar changes.

### Source excerpt

Today we will continue closing the gap between where we are right now and where we want to be: a fully functional interpreter for a subset of Pascal programming language. In this article we will update our interpreter to parse and interpret our very first complete Pascal program. The program ...

## Highlight variables in Atom, Babel template strings

DevFeed: [Highlight variables in Atom, Babel template strings](<https://devfeed.tech/articles/highlight-variables-in-atom-babel-template-strings-37281.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/highlight-vars-in-atom-babel-javascript/>)

Author: Stanko

Published: 2016-05-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [Atom](<https://devfeed.tech/topics/atom.md>), [Babel](<https://devfeed.tech/topics/babel.md>), [es6](<https://devfeed.tech/topics/es6.md>), [Snippet](<https://devfeed.tech/topics/snippet.md>), [Less](<https://devfeed.tech/topics/less.md>)

Tags: [atom](<https://devfeed.tech/tags/atom.md>), [babel](<https://devfeed.tech/tags/babel.md>), [css](<https://devfeed.tech/tags/css.md>), [es2015](<https://devfeed.tech/tags/es2015.md>), [es6](<https://devfeed.tech/tags/es6.md>), [less](<https://devfeed.tech/tags/less.md>), [snippet](<https://devfeed.tech/tags/snippet.md>), [template-strings](<https://devfeed.tech/tags/template-strings.md>), [variable](<https://devfeed.tech/tags/variable.md>)

### AI overview

A guide to fixing an Atom Babel plugin issue where variables in ES6 template strings are not highlighted. It provides an Atom style.less snippet that styles JavaScript variables and explains how to inspect Atom's element classes for additional CSS or LESS customizations.

### Source excerpt

Atom Babel plugin doesn't highlight variables in ES6 (ES2015) template strings. You'll need to add this snippet to your Atom's style.less atom-text-editor::shadow .variable.js { color: #F8F8F2; } In general, you can just inspect stuff in Atom, find out what classes element are using, and then style it via CSS (LESS). Just don't forget to add atom-text-editor::shadow before your rules. If anyone is interested, I'm using Monokai Seti theme.

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