Illichâs notion of conviviality centres on the balance between individual freedom to act and collective freedom from domination. This balance, or tension, is present in the design of most user-facing computer systems, and especially in the design of programming systems. Software lore has arisen with at best a skewed perspective on such issues, having developed from an industrial viewpoint. In this paper I survey some tentative design principles, extracted from examples of research work or (more often) systems used in practice, which (sometimes by accident) do show some regard for conviviality. Although preliminary, my hope is that these principles may yet develop into a collection of design hints at least equal, and largely countervailing, to the less conviviality-prone ideas circulating in todayâs software folklore. Relevant topics include language design, information hiding, language virtual machines, portability, classical logic, and layered system design. I also briefly consider the intertwined social and political constructs, such as copyleft, ownership and community responsibility, asking how to evolve or generalise these towards convivial ends.
See for example Françoisâ exercises on:
These are the first 50 issues of /This Weekâs Finds of Mathematical Physics/. This series has sometimes been called the worldâs first blog, though it was originally posted on a âusenet newsgroupâ called sci.physics.research â a form of communication that predated the world-wide web. I began writing this series as a way to talk about papers I was reading and writing, and in the first 50 issues I stuck closely to this format. These issues focus rather tightly on quantum gravity, topological quantum field theory, knot theory, and applications of /n/-categories to these subjects. There are, however, digressions into elliptic curves, Lie algebras, linear logic and various other topics.
Great lectures, fun to watch.
Interesting look into the world of spellcheckers and how they work. Mostly focused on the Hunspell library (which Iâd never heard of before, despite being used as the spell checker in Chrome, MacOS, Mozilla products, etc). [Lookup](Rebuilding the spellchecker, pt.2: Just look in the dictionary, they said!) is nontrivial and [this post](Rebuilding the spellchecker, pt.3: Lookupâcompounds and solutions) is a great example of just how complicated natural language can be.
To the extent that building software is about interpretation, we should study semiotics. To the extent itâs about naming, we should study analytic philosophy . To the extent that itâs reasoning about systems that are too large for any one person to understand, we should study sociology . We should learn whatever we can, and share it as widely as possible; even if computer science is a branch of mathematics, software design is not, and we should stop pretending otherwise. composition is interpretation
code history visualization engine Powered by Gource - a software version control visualization tool Also see Logstalgia - a website access log visualization tool
âStill Fileâ is a series of 4 photographs recreating computer renderings as physical scenes. The photosâ artifacts, surroundings, camera settings and lighting has been shaped intending to resemble 3d graphics of different types.
See replies (in particular @davidad)