







Supercharge your variable workflows Copy Variable CollectionsPaste Variable CollectionsDuplicate Variable CollectionCopy VariablesPaste VariablesRename VariablesSwap Variable CollectionsSwap Variable ModesUnset Variable ModesDetach VariablesDetach Text VariablesReplace VariablesBulk Edit Local T...
Varv: Reprogrammable Interactive Software as a Declarative Data Structure
This summary was generated using automated tools and was not authored or reviewed by the article's author(s). It is provided to support discovery, help readers assess relevance, and assist readers from adjacent research areas in understanding the work. It is intended to complement the author-supplied abstract, which remains the primary summary of the paper. The full article remains the authoritative version of record. Click here to learn more.

color variables creator
a plugin for those who handcraft their color scales ✨ how it works select layers with fills that you want to turn into color variablesrun the pluginselect collection and mode variable names will match the layer names. (If you'd like to learn how to batch rename layers, I have a video for that) ...
Abstract syntax and variable binding
We develop a theory of abstract syntax with variable binding. To every binding signature we associate a category of models consisting of variable sets endowed with compatible algebra and substitution structures. The syntax generated by the signature is the initial model. This gives a notion of initial algebra semantics encompassing the traditional one; besides compositionality, it automatically verifies the semantic substitution lemma.
References are like jumps
In a high-level language, the programmer is deprived of the dangerous power to update his own program while it is running. Even more valuable, he has the power to split his machine into a number of separate variables, arrays, files, etc.; when he wishes to update any of these he must quote its name explicitly on the left of the assignment, so that the identity of the part of the machine subject to change is immediately apparent; and, finally, a high-level language can guarantee that all variables are disjoint, and that updating any one of them cannot possibly have any effect on any other.
My Writing Productivity Pipeline
Write a lot, and often, we are told. But no one shows us how to keep track of all that work.

Coeffects: a calculus of context-dependent computation
The notion of context in functional languages no longer refers just to variables in scope. Context can capture additional properties of variables (usage patterns in linear logics; caching requirements in dataflow languages) as well as additional resources or properties of the execution environment (rebindable resources; platform version in a cross-platform application). The recently introduced notion of coeffects captures the latter, whole-context properties, but it failed to capture fine-grained per-variable properties.We remedy this by developing a generalized coeffect system with annotations indexed by a coeffect shape. By instantiating a concrete shape, our system captures previously studied flat (whole-context) coeffects, but also structural (per-variable) coeffects, making coeffect analyses more useful. We show that the structural system enjoys desirable syntactic properties and we give a categorical semantics using extended notions of indexed comonad.The examples presented in this paper are based on analysis of established language features (liveness, linear logics, dataflow, dynamic scoping) and we argue that such context-aware properties will also be useful for future development of languages for increasingly heterogeneous and distributed platforms.

Ink & Switch malleable software essay
When I program, I personally prefer to be controlled by the tools I use. They were build for a reason, for a specific workflow. I want my program to typecheck. I dont want to have the freedom to write untyped programs. I don’t want git to also have the ability to crop images. At this specific moment, I want to perform a specific task and I want the tools to help me do it, nothing more complex , or annoying , that could allow me to shoot myself to the foot. Control is bliss. Control is bliss as ...

variables2css
Convert Figma design variables, including colors and numbers, into CSS, Sass, Tailwind, Stylus, Json, Less or Javascript (Styled-Components) variables to save time and ensure accuracy. Use it in Figma: Design and Development mode. How to use it: Select your collection and now also choose specifi...
An Algorithm for Layout Preservation in Refactoring Transformations
Transformations and semantic analysis for source-to-source transformations such as refactorings are most effectively implemented using an abstract representation of the source code. An intrinsic limitation of transformation techniques based on abstract syntax trees is the loss of layout, i.e. comments and whitespace. This is especially relevant in the context of refactorings, which produce source code for human consumption. In this paper, we present an algorithm for fully automatic source code reconstruction for source-to-source transformations. The algorithm preserves the layout and comments of the unaffected parts and reconstructs the indentation of the affected parts, using a set of clearly defined heuristic rules to handle comments.


Optimizing Agentic Workflows using Meta-tools
Agentic AI enables LLM to dynamically reason, plan, and interact with tools to solve complex tasks. However, agentic workflows often require many iterative reasoning steps and tool invocations,...

Dev tools, env vars, and tasks in one CLI | mise-en-place
Install a project's tools, set its environment variables, and run its tasks from one mise.toml that works in your shell, editor, and CI.

crawshaw - 2025-01-06
This document is a summary of my personal experiences using generative models while programming over the past year. It has not been a passive process. I have intentionally sought ways to use LLMs while programming to learn about them. The result has been that I now regularly use LLMs while working and I consider their benefits net-positive on my productivity. (My attempts to go back to programming without them are unpleasant.)
Find Variables
Find Variables helps you find what variables are being used in your file and easily select the layers using them. Features: Displays all the variables being used in a given page.Shows all the layer types using a variable (frame, text, etc.)Select all layers by type or all the layers using a give...
A Core Calculus for Documents
Document languages like Markdown, LaTeX, PHP, and Liquid are widely used to generate digital documents like PDFs and web pages. Document languages often come with programming features like variables and macros to help authors write complex documents. However, these document programming features are often designed or implemented in problematic ways, especially by the standards of a modern programming language. For example: