From its early days as a mechanism used to perform data processing, the digital is becoming the de facto medium for transmitting information, communicating and for sharing social life.
Through these important functions the digital becomes a privileged site for social and political engagement and therefore it is increasingly important that we understand the digital and offer the possibility of a critical theory of the digital.
This allows us to think about the digital, and contest the many forms of control and regulation that are currently being implemented around the world using digital technology. Most importantly, it allows social movements that are increasingly turning to the digital to help with social critique and mobilization to critically understanding the medium within which they are working. Indeed, questions of resistance, or possibilities for ‘lines of flight', need also to be explored in and through the contestation of the digital as a site of politics through an immanent critique of the digital.In this chapter I want to look specifically at how computational agencies act to transform social relations and labour into computational or code objects. Indeed, ‘such is its pervasiveness that... it is impossible to now live outside of its orbit (even if one does not directly interact with software, much code is engaged, at a distance, in the provision of contemporary living)' (Kitchin and Dodge 2011: 260). We are therefore surrounded by code objects and a world that is transformed into code objects for processing or re-presentation to us. This is a process of reification, both ideologically and materially. Reification is understood as drawn from Marx's analysis of the structure of commodities, Simmel's notion of the commodification of culture and Weber's account of rationalization. For the critical theorists, reification permeated all levels of society and spheres of life. Lukacs argued that,
Reification involves a process whereby social phenomena take on the appearance of things, it is not... simply a subjective phenomenon; rather it arises from the productive process which reduces social relations themselves to thing-like relations - reduces, that is, the worker and his or her products to commodities.
Reification is a socially necessary illusion - both reflecting the reality of the capitalist exchange process and hindering its cognitive penetration (Held 1997: 22)New computational technologies increasingly make up an important part of our urban environment, and indeed also stretch from very remote areas of the world to outside the world into space. Code and software thus have become the conditions of possibility for human living, creating computational ecologies, which we inhabit with non-human actors (see Fuller 2005). This ecology of code objects, code infrastructure and coded spaces, ‘divulges and affords new kinds of automated agency, opening up new possibilities in the world' (Kitchin and Dodge 2011: 248). This computational world and how we live today in a highly mediated code-based world make up an everyday life that is deeply inscribed by the results of computational processes and also by the frameworks that are associated with such computal structures. These structures and processes enable a reification of the world and the re-presentation of the world as discrete objects subject to control and management. Indeed, Lash and Lury are correct in their assertion that ‘culture, once in the base, takes on a certain materiality itself. Media become things. Images and other cultural forms from the superstructure collapse into the materiality of the infrastructure. The image, previously separated in the superstructure, is thingified, it becomes matter-image' (Lash and Lury 2007). However, the reification is not just literally into matter, but also into code, as a second-order form of materiality, that is, while the digital is material in form, encoded onto magnetic hard disks, computer flash memory or distributed in the network of cables that are weaved around the world, it is also true that what we used to call media is suspended within a digital medium, software, and enveloped by algorithms and code.
The critical theorists sought to critically analyse and describe processes of reification, as it was understood as ‘the central structural problem in capitalist society in all its aspects' (Lukacs 1971: 83).
This process leads to alienation, a key theme in Horkheimer and Adorno's Dialectic of Enlightenment, where,Something does not fit; human beings are doing violence to nature, and ultimately themselves.Workers spend theirlives trappedin occupations they hate, creating products nobody needs and which destroy the environment they live in, engaged in futile and enervating conflicts with their families, their neighbours, other social groups, and nations. (Robert 2004: 60)
They argued that unchecked alienation eventually leads towards a catastrophe and ‘terminal explosion of the entire system' (Roberts 2004: 60). This is the end result of a system of rationalization that creates a societal struggle to keep ahead of a system that enforces the need to earn a wage and which, due to the pressures of capitalism, generates a more inhospitable environment in which to work. In contrast to alienation, Horkheimer and Adorno offer the ‘sanctity of the hic et nunc' (Horkheimer and Adorno 2002: 6). The ‘here and now' is what alienation disconnects us from, alienation causes the state whereby human beings have an ‘inability to see or feel what is here, now, in front of us [and] that characterizes our ability to think about our future and to incorporate the present and the past into schemes of life' (Robert 2004: 60). Thus, under capitalism, consciousness is shaped and moulded within the frame of identity thinking, that is, ‘the subsumption of all particular objects under general definitions and/or unitary systems of concepts' (Held 1997: 202). As a result, the particular is usually dissolved into the universal. Today the unitary system of concepts is supplied by computation, and more specifically by the computational categories and total system of computationality, which is increasingly manifested in a mediated ‘now' supplied by real-time streams.
Computer code and software are not merely mechanisms, they represent an extremely rich form of media (e.g. see Servin 2010). They differ from previous instantiations of media forms in that they are highly processual.
They can also have agency delegated to them, which they can then prescribe back onto other actors, but which also remain within the purview of humans to seek to understand. As Kitchin argues:The phenomenal growth in software creation and use is due to its emergent and executable properties: how it codifies the world into rules, routines, algorithms, and databases, and then uses these to do work in the world to render aspects of everyday life programmable. Whilst it is not fully sentient and conscious, software can exhibit some of the characteristics of “being alive”... This property is significant because code enables technologies to do work in the world in an autonomous fashion - that is, it can process data, evaluate situations, and make decisions without human oversight or authorization. (Kitchin 2011: 945)
This autonomy of code and software makes it highly plastic for use in everyday life, and as such it has inevitably penetrated more and more into the lifeworld. This has created, and continues to create, specific tensions in relation to old media forms, as well as problems for managing and spectacularizing the relations of the public to the entertainment industry and politics. This is something that carries over the interests of previous century's critical theorists, particularly concern with the liquidation of individuality and the homogenization of culture. Nonetheless, there is also considered to be a radical, if not revolutionary kernel within the softwarization project (see Berry 2008; Antonelli 2011). This is due to the relative affordance code/software appears to give for individual autonomy within networks of association to share information and communicate. Indeed, as Deuze et al. have argued:
Considering the current opportunity a media life gives people to create multiple versions of themselves and others, and to endlessly redact themselves (as someone does with his/her profile on an online dating site in order to produce better matches), we now have a entered a time where...
we can in fact see ourselves live, become cognizant about how our lifeworld is “a world of artifice, of bending, adapting, of fiction, vanity, a world that has meaning and value only for the man who is its deviser”... But this is not an atomized, fragmented, and depressing world, or it does not have to be such a world. (Deuze et al. 2012)This new data ecology is an environmental habitus of both human and nonhuman actors. It is a world deeply informed by the machinery of computing which is under constant ferment and innovation but which is not always apparent to a user used to interacting with computational devices at the level of the screen interface. Another way of putting this, as N. Katherine Hayles (2004) has argued, is that print is flat and code is deep. This depth enables a machinery that is able to function rapidly and invisibly to collect and analyse data about its user. Of course, we should also be attentive to the over-sharing or excessive collection of data too within these device ecologies that are outside of the control of the user to ‘redact themselves'. But this is not just historical data and information, such as is found in Big Data, for example, as Borthwick (2013) argued:
As autonomous human beings, we hate the idea that our lives and choices are predictable, but it turns out they mostly are. A few years ago the Chief Marketing Officer at American Express asked me how long I had had my Amex card... he wagered he could tell me where I was going to have dinner that night. His ability to predict was based on analyzing a time-series of transaction information, and is therefore limited to actions and activities that I've done before. That kind of predictive analysis is interesting, but it's yesterday's news.
Indeed, computation of data is entering a new phase, and in many ways due to the growth in computing power that we have witnessed over the past decade, new computationally intensive calculations can be done on the fly. In some instances on the mobile device, which change the conditions and contexts under which computation takes place, Borthwick explains,
The new world we're entering is different.
I'm talking about a layer of data that exists over reality, one that is real-time and whose signals are highly diverse and redundant. One that has history, one that learns, one that can ascertain intent. Combining the data layer with simple promptbased navigation, it becomes possible to tell a person exactly what (or even whom) she is going to want to know in a particular place at a particular time, before she even forms the thought. (Borthwick 2013)It is important that in order to undertake a critique of everyday life in terms of computationality there will need to be attention paid to how conversions and integrations are achieved ‘without resorting to conspiracy theories or notions of structural determination and other flawed accounts of history and society' (Schecter 2007: 152). Indeed, the aim is to further develop a notion of computational systems and the computational categories that lie behind them in order to develop an understanding of power, knowledge and how reason and thinking are understood in a computational context. It is striking to note the extent to which technocratic thinking continues to be prevalent today and therefore there is often a deficit of democracy, particularly in a computational context. In other words, computationality has important implications for thinking about instrumental reason and how the instrumental is legitimized.
To understand computation better, it is important to appreciate the importance of patterns that provide a particular capacity for computation systems to provide recognition in some form of another, whether in data, visual material, texts or some other form of computable material. Patterns are crucial because they enable us to map the relationship between what Adorno called identity thinking and the computational. Identity thinking attempts to know an object by classification, through the application of a set of classifications that correctly identify it.
For this kind of thinking we would know an object once all possible correct classifications of it have been completed. But for Adorno, there is an element of untruth in the very form of classificatory judgement itself. When truth is conceived according to the model of such judgements the concepts become purely classificatory, merely the common denominator of what is gathered under them. The objects become merely illustrative, of interest only as examples of the concept. (Jarvis 1998: 166)
Thus, by aggregating or combining these classifications one may only state ‘what [an entity] comes under, of what it is a representative or an example, and what therefore it is not itself' (Jarvis 1998: 166). Indeed, here Adorno is pointing towards the insufficiency of correspondence models of truth, and raising the importance of mediation as a process and the production of truth through a method that does violence to the object. Indeed, ‘in the exchange of commodities Adorno finds the epitome of an identificatory judgement. That which is not merely quantitatively unequal but qualitatively incommensurable is misidentified as though it were equal and commensurable' (Jarvis 1998: 167). In a similar vein, we can see that computation in its need to classify identifies all things as code objects, raw data, which it is able to conceptualize as distinct objects, with properties that are all amenable to processing through their flattening via a computational ontology. Hence, dialectical thinking crucially enables the recognition of the insufficiency of any given classification or identification.
One of the striking features of computation is the extent to which forms of pattern matching are required in computer processing. Pattern recognition can be described as a means of identifying repeated shapes or structures which are features of a system under investigation. While we tend to think of patterns as visual, of course they can also be conceptual, iterative, representational, logical, mathematical, etc. in form provided the underlying computational system can be programmed to recognize the distinctive shape of the pattern from the data. They can also consist of meta-patterns, as described by Gregory Bateson as patterns that can be detected across different spheres, such as culture, humanities, science and the social or ‘the pattern that connects' (see Bateson 1979; Dixon 2012). The recognition of patterns and uncovering their relationships in sets of data was called ‘abductive reasoning' by Charles Peirce, who contrasted it with inductive and deductive reasoning. Indeed, Peirce described abduction as a kind of logical inference akin to guessing. This he called the leap of abduction, whereby one could abduce A from B if A is sufficient (or nearly sufficient) but not necessary for B. The possible uses of this within a computational context should be fairly obvious, especially when software is handling partial, fuzzy or incomplete data and needs to generate future probabilistic decision points, or recognize important features or contours in a data set.
Computers classify according to the patterns which have already been programmed within them. Thus patterns serve to create a language, a pattern language, which is a set of classificatory means for the identification of the type of thing an object presented to the computer is. Not the particular object, but the abstract class of the object and therefore the abstract properties and understandings that are pre-coded into the computer and provide its basis of comprehension.
Computational thinking formats things into objects as an automated process and prescribes it back onto reality, both in terms of the cognitive preformatting that is presented to the user of the computer, and in terms of the fetish of computational capitalism to remake the world in its computational image. This classificatory flattening eases market exchange, in addition to computer processing, and hence it is of no surprise that computation is widely seen as a saviour of capitalism and the capitalist. Indeed, computationalism calls for everyday objects and life to be radically reshaped under the terms of a computational classificatory process (Golumbia 2009), whether materially, that all things become objects in physical form, or informatically, such that they are encoded, inscribed or implanted with identification tags, RFID (Radio Frequency Identification), bluetooth beacons, or some other form of encoding device that enables them to be read.
Peirce argued that pattern matching, which he called abduction or retroduction (he also used the terms presumption or hypothesis), was a type of hypothesis formation. The crucial function of ‘a pattern of abduction... consists in its function as a search strategy which leads us, for a given kind of scenario, in a reasonable time to a most promising explanatory conjecture which is then subject to further test' (Schurz 2008: 205). Peirce argued,
Abduction is the process of forming an explanatory hypothesis. It is the only logical operation which introduces any new idea; for induction does nothing but determine a value, and deduction merely evolves the necessary consequences of a pure hypothesis. Deduction proves that something must be; Induction shows that something actually is operative; Abduction merely suggests that something may be. (Peirce 1958: 5.171)
Or perhaps better:
The abductive suggestion comes to us like a flash. It is an act of insight, although extremely fallible insight. It is true that the different elements of the hypothesis were in our minds before; but it is the idea of putting together what we had never before dreamed of putting together which flashes the new suggestion before our contemplation. (Peirce 1988: 227)
In effect, abduction is the process of arriving at an explanatory hypothesis or a process of generating a hypothesis. As Eldridge explains,
For Peirce, abduction works from these surprising facts to determine a possible, plausible explanation. Furthermore, Peirce stresses the fact that the logic of abduction is fallible - abductive inferences, like induction, can, and do, lead us to the wrong result. However, as a part of the triad, abduction is able to correct itself, once it is investigated by deduction and tested by induction. Because of this, we should never take the conclusion of an abductive inference to be a fact in and of itself until it is tested. (Eldridge n.d.)
Patterns were made popular as a heuristic for thinking about the new problematics introduced by software systems through the work of the architect Christopher Alexander (1936-), particularly Notes on the Synthesis of Form (Alexander 1964), The Timeless Way of Building (Alexander 1979) and A Pattern Language (Alexander et al. 1977) which influenced computer scientists, who found useful parallels between building design and the practice of software design (Rybczynski 2009). Alexander's central premise in his books, ‘is that there is something fundamentally wrong with twentieth century architectural design methods and practices' (Lea 1997). Indeed, A Pattern Language was originally written to enable any citizen to design and construct their own home, although he has arguably had more influence on computer scientists than architects. As Appleton explains, patterns ‘are a literary form of software engineering problem-solving [approach] that has its roots in a design movement of the same name in contemporary architecture... [they enable a] common vocabulary for expressing its concepts, and a language for relating them together. The goal of patterns within the software community is to create a body of literature to help software developers resolve recurring problems encountered throughout all of software development' (Appleton 2000). As Lea explains, Alexander's The Timeless Way of Building and A Pattern Language were written together,
with the former presenting rationale and method, and the latter concrete details. They present a fresh alternative to the use of standardized models and components, and accentuate the philosophical, technical and socialimpact differences between analytic methods and the adaptive, open, and reflective (all in several senses) approach to design. The term pattern is a preformal construct (Alexander does not ever provide a formal definition) describing sets of forces in the world and relations among them. In Timeless, Alexander describes common, sometimes even universal patterns of space, of events, of human existence, ranging across all levels of granularity. A Pattern Language contains 253 pattern entries.... Each entry links a set of forces, a configuration or family of artifacts, and a process for constructing a particular realization. (Lea 1997)
Patterns are therefore reusable, structured or formalized ways of doing things or processing information and data. Alexander himself defined each pattern as:
a three-part rule, which expresses a relation between a certain context, a problem, and a solution. As an element in the world, each pattern is a relationship between a certain context, a certain system of forces which occurs repeatedly in that context, and a certain spatial configuration which allows these forces to resolve themselves. As an element of language, a pattern is an instruction, which shows how this spatial configuration can be used, over and over again, to resolve the given system of forces, wherever the context makes it relevant. The pattern is, in short, at the same time a thing, which happens in the world, and the rule which tells us how to create that thing, and when we must create it. It is both a process and a thing; both a description of a thing which is alive, and a description of the process which will generate that thing. (Alexander 1979: 247)
The antithesis to a pattern is called an anti-pattern, that is, patterns that describe (i) a bad solution to a problem which resulted in a bad situation, or (ii) how to get out of a bad situation and how to proceed from there to a good solution (Appleton 2000; Brown et al. 1998). Patterns and pattern languages provide a broader framework to think about questions of paradigmatic means of designing and implementing computational systems. In many cases, patterns are used in this way to indicate a set of means for the development of software at a macro-level. It should also be noted that patterns can be combined with other patterns to produce new patterns at a higher level of complexity, indeed, this is the idea behind Alexander's (1977) notion of a ‘pattern language'. Within software design, it is quite common to see three levels noted, namely from most abstract to more concrete: Architectural Patterns, Design Patterns and Implementation Patterns, the last being detailed, programming-language- specific patterns as idioms (Microsoft 2012).
Within computer science, and particularly related to the more micro-level problem of recognizing patterns themselves within data sets automatically using computation, this is an important and challenging area of research. The main forms of pattern recognition (we can think of these as patterns to find patterns) used in computation are usually enumerated as template matching, prototype matching, feature analysis, recognition by components, Fourier analysis, and lastly bottom-up and top-down processing. The six main approaches are: Template Matching: This is where a computational device uses a set of images (or templates) against which it can compare a data set, which itself might be an image, for instance (for examples of an image set, see Cole et al. 2004). Prototype Matching: This form of pattern matching uses a set of prototypes, which are understood as an average characteristic of a particular object or form. The key is that there does not need to be a perfect match, merely a high probability of likelihood that the object and prototype are similar (for an example, see Antonina et al. 2003). Feature Analysis: In this approach a variety of approaches are combined including detection, pattern dissection, feature comparison and recognition. Essentially, the source data is broken into key features or patterns to be compared with a library of partial objects to be matched with (e.g. see Morgan n.d.). Recognition by Components: In this approach objects are understood to be made up of what are called ‘geons' or geometric primitives. A sample of data or images is then processed through feature detectors which are programmed to look for curves, edges, etc., or through a geodetector which looks for simple 2D or 3D forms such as cylinders, bricks, wedges, cones, circles and rectangles (see Biederman 1987). Fourier Analysis: This form of pattern matching uses algorithms to decompose something into smaller pieces which can then be selectively analysed.This decomposition process is called the Fourier transform. For example, an image might be broken down into a set of twenty squares across the image field, each of which being smaller is made faster to process. As Moler (2004) argues, ‘we all use Fourier analysis every day without even knowing it. Cell phones, disc drives, DVDs, and JPEGs all involve fast finite Fourier transforms.' Fourier transformation is also used to generate a compact representation of a signal. For example, JPEG compression uses a variant of the Fourier transformation (discrete cosine transform) of small square pieces of the digital image. The Fourier components of each square are then rounded to lower arithmetic precision, and weak components are discarded, so that the remaining components can be stored in much less computer memory or storage space. To reconstruct the image, each image square is reassembled from the preserved approximate Fourier-transformed components, which are then inverse-transformed to produce an approximation of the original image, this is why the image can produce ‘blocky' or the distinctive digital artefacts in the rendered image, see JPEG (2012). And lastly, Bottom-up and Topdown Processing: in the Bottom-up and Top-down methods an interpretation emerges from the data. This is called data-driven or bottom-up processing. Here, the interpretation of a data set is determined mostly by information collected, not by prior models or structures being fitted to the data, hence this approach looks for repeated patterns emerging from the data. The idea is that starting with no prior knowledge, the software is able to learn to draw generalizations from particular examples. Alternatively, in an approach where prior knowledge or structures are applied, data is fitted into these models to see if there is a ‘fit'. This approach is sometimes called schema-driven or top-down processing. A schema is a pattern formed earlier in a data set or drawn from previous information (Dewey 2011).
What should be apparent from this brief discussion of the principles of abduction and pattern matching in computer science is their creative possibilities for generating results from data sets. The ability to generate hypotheses on the basis of data, which is fallible and probabilistic, allows for computational devices to generate forecasts and predictions based on current and past behaviours, data collection, models and images. It is this principle of abductive reason which makes computational reasoning different from instrumental reason, and particularly from the iron cage of logical implication or programmatic outcome that instrumental reason suggests. Nonetheless, it shares the classificatory impulse to sort things into specific types, classes or sets, within which their identity is ascertained.
Within computation, patterns are a useful concept because they discretize the process of creating software and therefore are connected in some ways to a Taylorist notion of modularity and the division of labour. Patterns serve as computational classificatory templates that are crucial for understanding computation itself. This computational system of classification results in an abstract machine for classifying and organizing and as such reifies everyday life. The site of computation can thus become a site of conflict between forces that attempt to capture and process such patterns, and others who seek to escape from these classificatory processes.
For Adorno, the struggle for emancipation relied upon particular historical and material conditions to be in place.Thus the use of concepts as mechanisms for classification should be rigorously critiqued, particularly its tendency not to say what something is, but rather what can it be classified under. This is undertaken through a notion of a constellation of concepts, Adorno explains,1
The unifying moment survives without a negation of negation, but also without delivering itself to abstraction as a supreme principle. It survives because there is no step-by-step progression from the concepts to a more general cover concept. Instead, the concepts enter into a constellation. The constellation illuminates the specific side of the object, the side which to a classifiying procedure is either a matter of indifference or a burden. (Adorno 2004a: 162)
Thus at this historical juncture we should not be surprised to see the emergence of spaces where these conflicts are currently playing out in a number of interesting and sometimes surprising ways. One of these is the increasing collection of data about everyday life through the use of overt and covert monitoring technologies. As they collect, these systems classify and store information in various aggregated and raw forms which are themselves subject to pattern-matching and filtering activities. This practice of monitoring, aggregating and sorting data is called dataveillance, due to the way it relies on cross-referencing of users identified through tags, codes and cookies (Raley 2013). It is a practice that is growing in intensity as the cost of computation and storage is correspondingly shrinking creating the conditions for a new collection of reification technologies that record our lives through time and place them into code objects.