







A vision for empowered computing that reaches back forty years. Our research lab examines why it has been so hard to achieve.
A small matter of programming: perspectives on end user computing
A Small Matter of Programming asks why it has been so d…

Amy J. Ko : Searching for Justice in Programming Language Design
Alexander Obenauer
Exploring new and renewed ideas for how personal computing and the interfaces we think with can better serve people’s lives – expanding opportunity, agency, curiosity, and creativity.
Coding After Coders: The End of Computer Programming as We Know It
In the era of A.I. agents, many Silicon Valley programmers are now barely programming. Instead, what they’re doing is deeply, deeply weird.

Coding After Coders: The End of Computer Programming as We Know It
In the era of A.I. agents, many Silicon Valley programmers are now barely programming. Instead, what they’re doing is deeply, deeply weird.


Denicek: Computational Substrate for Document-Oriented End-User Programming
As part of the Digital Library's transition to Open Access, new features for researchers are available in the Premium Edition. Click here to learn more.

The Green Side of the Lua
The United Nations' 2030 Agenda for Sustainable Development highlights the importance of energy-efficient software to reduce the global carbon footprint. Programming languages and execution models...

Desktop, Touch, Browser, Now AI? The Next OS in Computing
Explore how AI is reshaping human-computer interaction, from command lines to modern SaaS. Key insights on the next computing paradigm for startups and tech leaders.
Human-Computer Insurrection: Notes on an Anarchist HCI
As part of the Digital Library's transition to Open Access, new features for researchers are available in the Premium Edition. Click here to learn more.

Basic | The Personal Computing Platform
We build products, tools, and standards to make computers more personal.

Retrocomputing as a Model for Sustainable and Cognitive Computing: Lessons from Low-Resource Systems
This paper argues that retrocomputing constitutes a conceptually productive model for rethinking sustainability in contemporary computing. Early computing systems operated under strict hardware constraints, necessitating efficiency, clarity, and minimalism in both software and interaction design. In contrast, contemporary systems are frequently characterised by computational excess, software bloat, and attention-fragmenting interfaces. Drawing on examples from early home computing and command-line environments, this paper analyses how low-resource systems make visible forms of computational minimalism with relevance to present-day design challenges. A central theoretical contribution is the distinction between interface-level and system-structure-level design analysis, which demonstrates that cognitive effects arise not only from visual and interactional surface features but from deeper computational organisation. The discussion integrates perspectives from human-computer interaction and cognitive science, particularly in relation to attention, cognitive load, and user experience. The paper adopts a conceptual and exploratory approach grounded in systematic literature review, aiming to identify design-relevant patterns rather than to provide empirical validation. It introduces the concepts of computational minimalism and cognitive sustainability as complementary analytical frameworks, and derives five principles for sustainable system design. Crucially, the paper also address

Liberatory Computing
We live under a capitalist mode of computing. The tools, languages, techniques, and assumptions of digital systems are structured by economic forces that shape not just what we can do, but what we can imagine doing. By separating production from use, producing inflexible software, and slicing up computing into siloed apps, your agency is held back by a tech industry that profits from a population rendered computationally passive.
Liberatory Computing
We live under a capitalist mode of computing. The tools, languages, techniques, and assumptions of digital systems are structured by economic forces that shape not just what we can do, but what we can imagine doing. By separating production from use, producing inflexible software, and slicing up computing into siloed apps, your agency is held back by a tech industry that profits from a population rendered computationally passive.
”The distinction between programmer and user is reinforced and maintained by a tech industry that benefits from a population rendered computationally passive. If we accept and adopt the role of less agency, we then make it harder for ourselves to come into more agency.”
always-already-programming.md
gist.github.com