--- tags: Old Version --- :::info Ch.9: Algorithmic procedures (https://gitlab.com/aesthetic-programming/book/-/tree/master/source/9-AlgorithmicProcedures) ::: # Ch.9: 演算法(Algorithmic procedures) ![](https://gitlab.com/aesthetic-programming/book/-/raw/master/source/9-AlgorithmicProcedures/ch9_0.svg) ## setup() 設置() 計算機科學家和程式設計師先驅格蕾絲·默里·霍珀 (Grace Murray Hopper) 將程式設計中的計劃技能描述為“就像計劃晚餐一樣”。1 程式設計類似於烹飪,因為它需要耐心以及管理細節和成分的能力。 2 算法或食譜可以寫在食譜或程式碼簿中,以便可以遵循、共享和重複操作,這是程式設計師唐納德·克努斯 (Donald Knuth) 在他的計算機程式設計藝術 (1968) 中也指出的,通過類比來強調程式設計的美學維度3 確實,編碼和烹飪具有共同的屬性,包括如何選擇源、應用操作以及如何進行轉換。這些評論以及 Knuth 的寫作風格為本章的主題奠定了基調,但也為讀者提供了算法說明:“閱讀程式”4,正如他所說。以下是一些片段: The pioneer computer scientist and programmer Grace Murray Hopper famously described planning skills in programming as “just like planning a dinner.”1 Programming is similar to cooking inasmuch as it requires patience and the ability to manage details and ingredients.2 That an algorithm or recipe can be written down in a cookbook or codebook so the actions can be followed, shared and repeated, is something that the programmer Donald Knuth also identified in his The Art of Computer Programming (1968), to stress the aesthetic dimension of programming by analogy to recipes in a cookbook.3 Indeed both coding and cooking share common attributes including how sources are selected, actions applied, and how transformations take place. These comments, and Knuth’s writing style, set the tone for this chapter in terms of subject matter, but also as far it lays out algorithmic instructions for the reader: the “procedures for reading,”4 as he puts it. Here are some snippets: >“1。開始閱讀此過程,除非您已經開始閱讀。繼續忠實地遵循步驟; […] 5. 你對本章的主題感興趣嗎?如果是,則轉到步驟 7;如果沒有,請轉到步驟 6。 14. 你累了嗎?如果不是,則返回第 7 步; 15.去睡覺。然後,醒來,回到第 7 步。”5 “1. Begin reading this procedure, unless you have already begun to read it. Continue to follow the steps faithfully; […] 5. Is the subject of the chapter interesting you? If so, go to step 7; if not, go to step 6. 14. Are you tired? If not, go back to step 7; 15. Go to sleep. Then, wake up, and go back to step 7.”5 這個例子用來強調我們傾向於忠實地遵循指示。然而,我們也可能會觀察到算法不僅僅是步驟和程式操作,因為它具有更廣泛的文化和政治含義,尤其是在我們是否決定以我們自己的方式解釋它們方面。從這個意義上說,就像烹飪一樣,算法表達了文化差異、品味問題,甚至美學。將類比擴展到其他文化實踐,Knuth 引用 Ada Lovelace 的話:“為數字計算機準備計算機程式的過程特別有吸引力,不僅因為它可以在經濟和科學上獲得回報,還因為它可以是一種審美體驗,就像創作詩歌或音樂。”6 The example serves to emphasize that we tend to follow instructions faithfully. However, we might also observe that algorithms are more than simply steps and procedural operations as there are wider cultural and political implications, not least in terms of whether we decide to interpret them on our own terms. In this sense, like cooking, algorithms express cultural differences, and matters of taste, even aesthetics. Extending the analogy to other cultural practices, Knuth quotes Ada Lovelace: “The process of preparing computer programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it can be an aesthetic experience much like composing poetry or music.”6 在本章中,我們將討論一些類似菜譜的算法過程,以及它們如何描述程式的步驟和操作,而不是關於程式碼的語法。算法不同於程式碼行,因為它不依賴於特定的軟體和庫。它只是在計算或其他問題解決操作中要遵循的一個過程或一組規則,尤其是計算機。7 算法是程式運行方式的骨架,並顯示了在理想情況下可以通過以下方式實現的操作步驟任何“圖靈完備”機器,因此在計算上具有通用性,並且能夠解決任何計算問題。8 換句話說,算法演示了過程操作的系統分解,以描述操作如何從一個步驟移動到下一個步驟。它只是一般意義上的配方,因為它是一組逐步說明,但類比僅到此為止,因為配方缺乏圖靈完備性的準確性和可重複性,無法通過識別和操作來解決計算問題根據給定的指令處理數據。 In this chapter we will discuss some of these recipe-like algorithmic procedures and how they describe the steps and operations of a program, and less about the syntax of code. An algorithm differs from lines of code in that it is not dependent on specific software and libraries. It is simply a process or set of rules to be followed in calculations, or other problem-solving operations especially by a computer.7 An algorithm is a skeleton of how a program operates and shows the operational steps which, ideally, can be implemented by any “Turing-complete” machine, thereby computationally universal, and able to solve any computation problem.8 In other words, an algorithm demonstrates the systematic breakdown of procedural operations to describe how an operation moves from one step to the next. It’s only like a recipe in a general sense in that it is a set of step-by-step instructions, but the analogy only goes so far, as recipes lack the exactness and reproducibility of Turing-completeness to operationally solve computational problems by recognizing and manipluating data according to given instructions. ## start() 開始() 在第 3 章“無限循環”中,我們簡要介紹了 Ada Lovelace 於 1842 年起草的計算圖,通常被稱為世界上第一個計算機程式。9(見圖 3.2)已發表的圖和 Lovelace 的大量筆記展示了複雜的步驟——解決數學問題所需的分步操作。這些指令被設計為由機器自動執行。正如她所說,“我想在我的一個筆記中加入一些關於伯努利數字的內容,做為引擎如何在沒有人頭和手的情況下計算隱式函式的例子。給我必要的公式。”10 公式在圖中被擴展為算法程式。 In Chapter 3, “Infinite loops,” we briefly introduced the computational diagram drafted by Ada Lovelace in 1842, often referred to as the world’s first computer program.9 (See Figure 3.2) The published diagram and Lovelace’s extensive notes demonstrate the sophisticated step-by-step operations required to solve mathematical problems. The instructions are designed to be automatically executed by a machine. As she put it, “I want to put something about Bernoulli’s numbers, in one of my Notes, as an example of how the implicit function may be worked out by the engine without human head & hands first. Give me the necessary formulae.”10 The formulae are expanded into algorithmic procedures in the diagram. 在本章中,我們將建立在“圖表”的基礎上,特別是使用流程圖來闡述算法程式的實踐和概念方面。流程圖,“圖表的流程 -> 流程的圖表”11,自計算機程式設計的早期就被認為是一種基本的解釋工具。它們的一個常見用途是通過“將數值方法轉換為一系列步驟”來說明程式設計的計算操作和數據處理。12 但流程圖也可以被認為是表示圖,也可以用來在程式設計師之間交流複雜的邏輯和其他參與軟體生產的人。這當然是一種很好的做法,尤其是對於學習環境中的初學者而言,並且對於以他人易於理解的方式交流想法至關重要。事實上,正如我們所討論的那樣,程式設計不一定是一項單獨的活動,13,它可以是一種社會和交流實踐,它揭示了以圖表為例的不同實體之間的關係。此外,大多數軟體應用程式不是由單個程式設計師開發的,而是被組織成由程式設計師協作處理的任務,例如在維護或調試其他人製作的程式時。協作工作流適用於流程圖。 In this chapter we will build on “diagramming,” particularly the use of flowcharts to elaborate the practical and conceptual aspects of algorithmic procedures. Flowcharts, “Flow of the chart -> chart of the flow”11, have been considered a fundamental explanatory tool since the early days of computer programming. One of their common uses is to illustrate computational operations and data processing for programming by “converting the numerical method into a series of steps.”12 But flowcharts can also be considered to be representational diagrams which can also be used to communicate complex logic between programmers and others involved in software production. This is good practice of course, especially for beginners in a learning context, and is essential for communicating ideas in ways that can be easily understood by others. Indeed programming is not necessarily a solitary activity,13 as we have discussed, and can be a social, and communicative practice that exposes relations between different entities exemplified by diagramming. Moreover most software applications are not developed by a single programmer but are organized into tasks that are tackled collaboratively by programmers, as for instance when maintaining or debugging a program made by someone else. Collaborative workflows lends themselves to flowcharts. ## Discussion in class 課堂討論 你能舉一個你使用過或經歷過的算法的日常例子(詳細說明計算邏輯)嗎?
Can you give an everyday example (detailing the computational logic) of an algorithm that you have used or experienced? 你能畫出一個算法程式嗎? 例如,您的社交媒體提要是如何組織的?
Can you sketch an algorithmic procedure? For example, how your social media feeds are organized? 根據 Taina Bucher 的指定閱讀,您能列出算法的一些屬性嗎? 他們在技術和社交方面的表現如何?
Based on the assigned reading from Taina Bucher, can you list some of the properties of algorithms? How are they both technical and social? 我們在第 6 章“自動生成器”中討論了基於規則的系統,這與我們現在在本章中討論的程式性有何不同?
We discussed rule-based systems in Chapter 6, “Auto-generator,” how does that differ from how we are now discussing procedurality in this chapter? ## Flowcharts 流程圖 傳統上,流程圖中的每個步驟都由一個符號和連接線表示,這些線表示邏輯流向某個輸出。這些符號都有不同的含義。下面我們概述繪製流程圖的基本組件: Conventionally, each step in a flowchart is represented by a symbol and connecting lines that indicate the flow of logic towards a certain output. The symbols all have different meanings. Below we outline the basic components for drawing a flowchart: 橢圓形:表示程式/系統的起點或終點。 (但這需要進一步反思是否所有程式都有結束。)
Oval: Indicates the start or end point of a program/system. (But this requires further refection on whether all programs have an end.) 矩形:代表過程中的步驟。
Rectangle: Represents the steps in the process. 菱形:表示有“是”和“否”分支的決策點。
Diamond: Indicates the decision points with “yes” and “no” branches. 箭頭:用作顯示關係和序列的連接器,但有時箭頭可能指向前一個過程,尤其是在涉及重複和循環時。
Arrow: Acts as a connector to show relationships and sequences, but sometimes an arrow may point back to a previous process, especially when repetition and loops are concerned. ![](https://gitlab.com/aesthetic-programming/book/-/raw/master/source/9-AlgorithmicProcedures/ch9_1.png) 圖 9.1 顯示了我們在第 7 章中檢查的程式 Vocable Code 的流程圖。流程圖顯示了高級邏輯和序列,並用通俗的英語詳細說明了它的細節。該流程圖使用符號、線條和文本與更廣泛的公眾以及本書的讀者進行交流。 Figure 9.1 shows the flowchart for the program Vocable Code we examined in Chapter 7. The flowchart shows the high-level logic and sequences, and elaborates its details in plain English. This flowchart uses symbols, lines, and text to communicate to a wider public as well as the readers of this book. 流程圖用於許多學科,包括技術和藝術。例如,它們在業務環境中相對常見,並提供對各種流程或工作流如何有效組織的洞察和交流。在哲學中,圖表被用來產生新的思維過程和關係,例如,吉爾·德勒茲和費利克斯·加塔利將它們稱為“抽像機器”。14 我們將在本章末尾更詳細地回到這些想法。同樣,在我們的教學中,我們使用流程圖做為解構寫作以及分解論文結構中的論點的一種手段,做為一種制定新思想和結構的方式。圖表是很好的工具,或者更確切地說是“機器”,可以幫助我們思考不同的程式和過程,這種方法顯然讓我們使用流程圖來介紹本書的每一章。 Flowcharts are used across many disciplines, both technical and artistic. For example, they are relatively common in business contexts and provide insight into, and communicate how various processes or workflows are efficiently organized. In philosophy, diagrams have been used to produce new kinds of thought processes and relations, for example Gilles Deleuze and Félix Guattari refer to them as “abstract machines.”14 We will return to these ideas in more detail at the end of the chapter. Similarly, in our teaching, we have used flowcharts as a means of deconstructing writing as well as to break down an argument in an essay structure, as a way to formulate new ideas and structure. Diagrams are good tools, or rather “machines,” that help us think through different procedures and processes, and this approach has evidently informed our use of flowcharts to introduce each chapter of this book. 在本章的 miniX 中,您將被要求為一個新的項目想法協作製作流程圖。到現在為止,您可能更有信心構建一個包含各種語法的更複雜的程式,因此組織將自己視為一項更具挑戰性和必要性的任務。我們發現人們面臨的困難之一是如何組合和鏈接各種功能,以及如何將任務分解為更小的、連續的步驟。我們認為流程圖是形成想法、引發討論、觀察關係、預測技術挑戰以及為項目合作提供手段的有效手段。例如,如果任務需要在一組中細分,流程圖可用於確定如何將較小的任務與其他任務聯繫起來,同時又不失大局的位置。 In this chapter’s miniX, you will be asked to collaboratively produce a flowchart for a new project idea. By now you are probably more confident building a more complex program that incorporates a variety of syntax, so organization presents itself as a more challenging and necessary task. We have found that one of the difficulties people face is how to combine and link various functions, and to break down a task into smaller, sequential steps. We think a flowchart is an effective means of formulating ideas, generating discussion, observing relations, predicting technical challenges, and providing a means for cooperation on a project. If tasks need to be sub-divided among a group, for instance, flowcharts can be used to identify how a smaller task can be linked to others without losing site of the bigger picture. 將現有程式轉換為流程圖的一些挑戰包括: Some of the challenges to turning an existing program into a flowchart include: 將程式設計語法和函式翻譯成易於理解的簡單語言。 Translating programming syntax and functions into understandable, plain language. 確定重要操作的詳細程度,以便其他人了解您的程式邏輯。 Deciding on the level of detail on important operations to allow other people to understand the logic of your program. 圖 9.1:Winnie Soon 的 Vocable Code 流程圖,Anders Visti 的平面設計。 Figure 9.1: The flowchart for Vocable Code by Winnie Soon, graphic design by Anders Visti. – Exercise in class 217 課堂練習 – Exercise 1 217 練習 1 讓我們從一些看起來相對簡單的事情開始,比如加入表情符號和注意變數名稱。 下面的程式程式碼引用 Multi 用於表情符號(來自第 2 章,“可變幾何”)和用於命名的 Vocable 程式碼(來自第 7 章,“Vocable 程式碼”)來打印各種多物種表情符號,在 網絡瀏覽器控制台。 任務是根據這個程式畫一個流程圖: Let’s start with something that appears relatively simple, such as incorporating emojis and paying attention to the variable names. The program code below references Multi for emoticons (from Chapter 2, “Variable geometry”) and Vocable Code for naming (from Chapter 7, “Vocable code”) to print various multispecies emoticons, one after another, using a for-loop in the web browser console. The task is to draw a flowchart based on this program: ``` function setup() { let multi = ['🐵','🐭','🐮','🐱']; for (let species = 0; species < multi.length; species++) { console.log(multi[species]); } } /*output 🐵 🐭 🐮 🐱 */ ``` 我們之前在課堂環境中使用此練習 15 導致產生了不同的圖畫,並且它們成為圍繞流程圖的多種目的和含義進行討論的資源。 16 Our previous use of this exercise in a classroom setting15 resulted in different drawings being produced and they became a resource for discussion around the multiple purposes and meanings of flowcharts.16 ## Exercise 2 練習 2 排序是數字文化中的常用算法,Spotify、Amazon、Netflix 上的推薦列表,大家都會比較熟悉。 想一想為解決下面的排序任務而程式設計所需的“算法程式”。 17 Sorting is a common algorithm in digital culture, and recommendation lists on Spotify, Amazon, and Netflix, will be familiar to you. Think about the “algorithmic procedures” required to program something to solve the sorting task set below.17 生成兩個數字範圍之間的 x(例如,x = 1,000)唯一的隨機整數列表。 然後實現一個排序算法並按升序顯示它們。 不允許在 p5.js 或 JavaScript 中使用現有的 sort() 函式。 你會如何處理這個問題? 將算法繪製為流程圖,重點是過程/步驟,而不是實際的語法。 Generate a list of x (for example, x = 1,000) unique, random integers between two number ranges. Then implement a sorting algorithm and display them in ascending order. You are not allowed to use the existing sort() function in p5.js or JavaScript. How would you approach this problem? Draw the algorithm as a flowchart with the focus on procedures/steps, but not the actual syntax. ## Flowcharts as an artistic medium 流程圖做為一種藝術媒介 除了實用的流程圖之外,它們本身也可以成為藝術品,做為“社會復雜性美學的元媒介”,正如 Paolo Cirio 所說。 18 2005 年的一個例子是 Google Will Eat Itself, 19 一種通過入侵 Google AdSense 自動產生收入的藝術品,由 Cirio 與 Alessandro Ludovico 和 UBERMORGEN 合作創建。20 該項目會自動觸發網站上的廣告點擊,以接收來自 Google 的小額付款,然後用於購買谷歌股份:“我們通過他們自己的廣告購買谷歌!谷歌自食其力——但最終‘我們’擁有它!” Beyond the pragmatic use of flowcharts, they can also be artistic objects in their own right, as a “meta-medium for an aesthetics of social complexity,” as Paolo Cirio puts it.18 An example from 2005, is Google Will Eat Itself,19 an artwork that auto-generates revenue by hacking the Google AdSense, and was created by Cirio in collaboration with Alessandro Ludovico and UBERMORGEN.20 The project automatically triggers advertising clicks on websites in order to receive micropayments from Google which are in turn used to buy shares in Google: “We buy Google via their own advertisement! Google eats itself — but in the end ‘we’ own it!” ![](https://gitlab.com/aesthetic-programming/book/-/raw/master/source/9-AlgorithmicProcedures/ch9_2.gif) 圖 9.2:Paolo Cirio、Alessandro Ludovico 和 UBERMORGEN,Google Will Eat Itself / THE ATTACK (2005)。感謝藝術家們。 Figure 9.2: Paolo Cirio, Alessandro Ludovico, and UBERMORGEN, Google Will Eat Itself / THE ATTACK (2005). Courtesy of the artists. 在圖中可以清楚地看到迭代(或同類相食)循環,它與“奇怪循環”的原理相呼應:用巴貝奇的話來說,強迫“吃掉自己的尾巴”,改變自己存儲的程式,從而提供產生新程式的潛力。技術和美學形式,如前所述,參考分析引擎的操作。極端地說,這種類型的循環被稱為“forkbomb”,它採用“拒絕服務”攻擊的形式,其中計算機進程不斷自我複制以耗盡所有可用的系統資源,減慢速度,或由於資源匱乏導致系統崩潰。反映在另一個項目的標題中,UBERMORGEN 的項目以前稱為 Kindle Forkbomb (2012),使用了從 YouTube 視頻中刪除評論的機器過程。然後,算法編譯評論並添加標題,生成一本電子書,隨後將其上傳到亞馬遜 Kindle 電子商務書店。 21 此過程在圖表中使用傳統印刷機的圖像進行了概述(見圖 9.3) ,並在安裝版本中進一步利用,它結合了畫廊地板上的圖表和實物(見圖 9.4)。22 在這兩種情況下,算法程式都在運行,模仿和模擬亞馬遜後古騰堡商業模式的操作邏輯,Kindle 網站上概述了其關鍵原則:“快速進入市場。賺更多的錢。保持控制。”23 The iterative (or cannibalistic) loop can clearly be seen in the diagram and echoes the principle of the “strange loop:” forced “to eat its own tail” in Babbage’s words, altering its own stored program and thereby offering the potential to generate new technical and aesthetic forms, as previously mentioned with reference to the operations of the Analytical Engine. Taken to its extreme, this type of loop is called a “forkbomb” and takes the shape of a “denial-of-service” attack in which a computer process continuously replicates itself in order to use up all available system resources, slowing down, or crashing the system due to resource starvation. Reflected in the title of another project, UBERMORGEN’s The Project Formerly Known as Kindle Forkbomb (2012), used a machine process that stripped comments from YouTube videos. An algorithm then compiled the comments and added titles, producing an e-book which was subsequently uploaded to the Amazon Kindle e-commerce bookstore.21 This process is sketched in the diagram, using an image of a traditional printing press (see Figure 9.3), and further exploited in the installation version, which combined the diagram on the gallery floor and physical objects (see Figure 9.4).22 In both cases, algorithmic procedures are in operation which mimic and mock the operational logic of Amazon’s post-Gutenberg business model, the key principles of which are outlined on the Kindle website: “Get to market fast. Make more money. Keep control.”23 ![](https://gitlab.com/aesthetic-programming/book/-/raw/master/source/9-AlgorithmicProcedures/ch9_3.gif) 圖 9.3:UBERMORGEN,以前稱為 Kindle Forkbomb 的項目(2013 年)。 藝術家們的禮貌 Figure 9.3: UBERMORGEN, The Project Formerly Known As Kindle Forkbomb (2013). Courtesy of the artists ![](https://gitlab.com/aesthetic-programming/book/-/raw/master/source/9-AlgorithmicProcedures/ch9_4.jpg) 圖 9.4:UBERMORGEN,原名為 Kindle Forkbomb 的項目(2013 年),混合媒體裝置,群展“系統學 #2:正如我們可能認為的(或下一個世界圖書館)”的一部分,由昆斯塔爾的 Joasia Krysa 策展 奧胡斯(2013 年 9 月 21 日至 12 月 31 日)。 由藝術家和 Kunsthal Aarhus 提供 Figure 9.4: UBERMORGEN, The Project Formerly Known As Kindle Forkbomb (2013), mixed media installation, part of the group exhibition “Systemics #2: As we may think (or, the next world library),” curated by Joasia Krysa, Kunsthal Aarhus (September 21–December 31 2013). Courtesy of the artists and Kunsthal Aarhus ## While() 當() 軟體研究中的批判性注意力從原始碼轉移到算法操作,例如上面的排序練習,反映了大數據和機器學習(我們將在下一章中討論)的興起。從這個意義上說,算法可以轉換、構建和塑造數據,以便對事物進行分類、排序、聚類、推薦、標記甚至預測。關注的不是如何構建高效或優化的算法,而是更好地理解這些操作維度。在 If... Then: Algorithmic Power and Politics 中,Taina Bucher 強調算法“從根本上產生了對世界進行排序的新方式”。 24 因此,儘管算法的概念與數學和計算機科學學科相關聯,但更廣泛的文化領域已經對算法感興趣,以探索程式操作的政治後果。 The shift of critical attention in software studies from source code to the operations of algorithms, such as the sorting exercise above, reflects the rise of big data, and machine learning (which we will discuss in the next chapter). Algorithms in this sense are there to transform, construct, and shape data, in order to then classify, rank, cluster, recommend, label, or even predict things. The concern is not how to build an efficient or optimized algorithm, but to understand these operative dimensions better. In If… Then: Algorithmic Power and Politics, Taina Bucher stresses that algorithms are “fundamentally productive of new ways of ordering the world”.24 So although the concept of algorithm is associated with the disciplines of mathematics and computer science, the wider cultural field has taken an interest in algorithms to explore the political consequences of procedural operations. 在 What Algorithms Want 中,Ed Finn 將算法做為“文化機器”的概念進行了探索,並認為算法“在有效可計算性(圖靈完備性)的反射性障礙內外運行,在宏觀社會層面產生文化25 很明顯,算法程式在組織文化和主體性方面發揮著重要作用,要看透或描述它們並不容易,因為它們的作用超出了我們直接體驗到的東西。它們對生活秩序產生更廣泛的影響。算法在世界上做事,並對機器和人類產生真正的影響。在軟體研究中,Andrew Goffey 闡明了這個表演方面: In What Algorithms Want, Ed Finn explores the concept of the algorithm as a “culture machine” and argues that an algorithm “operates both within and beyond the reflexive barrier of effective computability (Turing-completeness), producing culture at a macro-social level at the same time as it produces cultural objects, processes, and experiences.”25 It is clear that algorithmic procedures play an important role in organizing culture, and subjectivities, and it is not very easy to see through or describe them because they operate beyond what we experience directly. They produce wider effects in the ordering of life. Algorithms do things in the world and have real effects on machines and humans. In Software Studies, Andrew Goffey clarifies this performative aspect: >“算法會起作用,但它們是做為不明確的行動網絡的一部分,是複雜的權力-知識關係的一部分,在這種情況下,意想不到的後果,如程式行為的副作用,可能變得至關重要。當然,做為邏輯一致構造的算法的形式質量具有巨大的力量——尤其是在技術科學領域——但是對於這種構造的純形式性質有足夠的模棱兩可,使我們能夠理解還有更多算法比邏輯一致的形式。”26 “Algorithms act, but they do so as part of an ill-defined network of actions upon actions, part of a complex of power-knowledge relations, in which unintended consequences, like the side effects of a program’s behavior, can become critically important. Certainly the formal quality of the algorithm as a logically consistent construction bears with it an enormous power — particularly in a techno-scientific universe — but there is sufficient equivocation about the purely formal nature of this construct to allow us to understand that there is more to the algorithm than logically consistent form.”26 舉個例子,在“批判性思考和研究算法”中,Rob Kitchin 解釋了 Facebook 的 EdgeRank 如何與每個用戶的輸入協同工作,以個性化的方式對結果進行排序。這些操作不是固定的,而是上下文和流動的,27 是更大的社會技術組合的一部分,基礎設施也在不斷發展並受可變條件的影響。因此,儘管它們似乎有些自主地行動,但需要將算法理解為關係實體、偶然實體和上下文實體。 28 上面的圖表可用於幫助理解算法如何做為更廣泛生態的一部分發揮作用,以突出其代理能力. To take an example, in “Thinking Critically About and Researching Algorithms,” Rob Kitchin explains how Facebook’s EdgeRank works in tandem with each users’ inputs, ordering the results in personalized ways. These operations are not fixed, but are contextual and fluid,27 part of larger, socio-technical assemblages, and infrastructures that are also constantly evolving and subject to variable conditions. As such, although they appear to act somewhat autonomously, algorithms need to be understood as relational, contingent and contextual entities.28 Diagrams such as the ones above can be used to help understand how algorithms act as part of broader ecologies to highlight their agential power. 我們在本章中介紹的圖表揭示了這一點,以及搜索或提要(例如 Facebook 的 EdgeRank 或 Google 的 PageRank)等看似簡單的操作如何對數據進行排序,並以由特定權力實例確定的方式具體化信息。 Matteo Pasquinelli 的文章“Google 的 PageRank 算法:認知資本主義和普通智力的食利者圖”通過仔細研究 PageRank 背後的政治提供了更多細節,PageRank 是一種計算給定網頁重要性及其層次位置的超文本算法在搜索引擎結果中。29 他的關鍵點是該算法顛倒了監視和控制的集中式全景模型,取而代之的是提供一種“生物政治機器”,通過數據監視來捕獲時間和活勞動。 PageRank 廣泛基於引文索引進一步強調了它與本書或任何學術書籍的相關性,以及如何通過評估鏈接質量來產生價值(很像社交媒體“喜歡”和“朋友”產生的注意力價值,或通過學術研究成果的計量化),從而產生新的剩餘價值形式。算法,或者用 Pasquinelli 的話來說是“價值機器”,而且是一個“抽像機器”和圖表。 The diagrams we introduced in this chapter reveal this, and how apparently simple operations such as searches or feeds (e.g. Facebook’s EdgeRank or Google’s PageRank) order data, and reify information in ways that are determined by particular instances of power. Matteo Pasquinelli’s essay “Google’s PageRank Algorithm: A Diagram of the Cognitive Capitalism and the Rentier of the Common Intellect,” provides more detail by closely examining the politics behind PageRank, the hypertextual algorithm that calculates the importance of a given web page and its hierarchical position within search engine results.29 His key point is that the algorithm reverses the centralized panopticon model of surveillance and control, and instead offers a “bio-political machine” that captures time and living labor through dataveillance. That PageRank is broadly based on citation indexes further emphasizes its relevance for this book or any academic book, and how value is produced by assessing the quality of links (much like the attention value produced by social media “likes” and “friends,” or by the metrification of academic research outputs), resulting in new forms of surplus value. The algorithm, or “value machine” in Pasquinelli’s words, and moreover is an “abstract machine,” and diagram. diagram5 ![](https://gitlab.com/aesthetic-programming/book/-/raw/master/source/9-AlgorithmicProcedures/ch9_5.jpg) 圖 9.5:Dean Kenning,Jackson 5 流程圖(2017 年)。 A4,紙上記號筆。由藝術家提供31 Figure 9.5: Dean Kenning, Jackson 5 Flowchart (2017). A4, marker pen on paper. Courtesy of the artist31 但什麼是圖表?撇開圖表做為功能工具的使用,或用於傾向於簡化信息的教學目的(信息圖表就是一個例子),它們還具有擴展的美學實踐形式,正如我們希望上面的例子所展示的那樣。在本章中,我們試圖通過使用流程圖做為一種實驗美學形式來反映這些實踐。我們已經在介紹中提到了圖表做為“抽像機器”的想法,這是德勒茲和加塔利用來反映物質和形式能夠自我轉化的短語:抽像機器表現出“形態發生”(一個術語我們也從圖靈知道,如第 5 章“自動生成器”中所述)。通過這種方式,圖表實例化了未來的可能性,這些可能性不是預先確定的,而是開放式的、推測性的虛構。 30 這樣的描述可能聽起來很深奧,但總體觀點是清晰的,甚至是科學的(從熱力學來看),因為有些事物具有形態發生學可能性,並且系統不斷地被能量流(矢量)和不會抵消但保持差異的物質穿過。我們最終得到的是推測性幾何、自組織形式和反映動態力量的圖解過程。圖表是“思想的形象”,其中思考不包括解決問題,而是——相反——提出問題。我們想在本章中強調這些獨特的品質,這與算法過程的傳統描述有些不同。 But what is a diagram? Leaving aside the use of diagrams as functional tools, or for didactic purposes that tend to simplify information (infographics are a case in point), they also feature as a form of expanded aesthetic practice, as we hope our examples above have demonstrated. In this chapter we have tried to reflect these practices in our use of flowcharts as an experimental aesthetic form. We already mentioned the idea of the diagram as an “abstract machine” in the introduction, and this is the phrase that Deleuze and Guattari use to reflect that matter and form are able to transform themselves: abstract machines exhibit “morphogenesis” (a term we also know from Turing, as mentioned in Chapter 5, “Auto-generator”). In this way, diagrams instantiate future possibilities that are not predetermined, but are open-ended, speculative fictions.30 Such descriptions might sound esoteric, but the overall point is clear and even scientific (from thermodynamics) in that there are things that have morphogenetic possibilities, and systems are continuously traversed by flows (vectors) of energy, and matter that do not cancel but maintain differences. What we end up with are speculative geometries, self-organizing forms, and diagrammatic processes that reflect dynamic forces. The diagram is an “image of thought,” in which thinking does not consist of problem-solving but — on the contrary — problem-posing. We want to highlight these distinctive qualities in this chapter which is somewhat at odds with the conventional descriptions of algorithmic procedures. 但是我們真的可以將流程圖視為德勒茲術語中的圖表,做為抽像機器嗎?我們會聲稱,它們的一般相似之處在於它們能夠將問題形象化並幫助我們在非常形象化的過程中思考它們,就像德勒茲所說的“思想的圖畫”。在他的“關於圖表(和圖表學實踐)”中,Simon O’Sullivan 對這種推測性方法進行了總結: But can we really think about flowcharts as diagrams in Deleuzian terms, as abstract machines? Their general similarity, we would claim, is their ability to visualize problems and helps us think them through in the process of that very visualization, a “picturing of thought” as Deleuze would have it. In his “On the Diagram (and a Practice of Diagrammatics),” Simon O’Sullivan provides a summary of this speculative approach: >“這裡的圖表是一種實驗策略,它打亂了敘述、形象——給定——並最終允許其他東西向前推進。這是從已知中產生未知,從可見中產生不可見。我們可以說,圖表是一種從意圖中迴避意圖的策略;它涉及生產某種東西,然後對其祖先‘回話’。”32 “The diagram here is a strategy of experimentation that scrambles narrative, figuration - the givens - and allows something else, at last, to step forward. This is the production of the unknown from within the known, the unseen from within the seen. The diagram, we might say, is a strategy for sidestepping intention from within intention; it involves the production of something that then ‘speaks back’ to its progenitor.”32 雖然指的是繪圖而不是程式設計的實踐,但我們可能希望在調用抽象的方式以及在流程圖中“描繪”以前隱藏的程式設計方面的方式方面有類似的東西——儘管公認更實用。與圖表繪製一樣,程式設計是一種抽像機器,其功能不僅僅是表示,而是構建一個尚未到來的現實。正如我們在前幾章中所討論的,程式設計是一種抽象形式,需要選擇重要的細節,在這些細節的實現中體現了程式設計師的思考和決策過程。此外,算法本身是充滿緊急甚至預測潛力的決策機器。 33 Although referring to the practice of drawing rather than programming, we might hope for something similar — although admittedly more pragmatic — in the way that abstraction is invoked and the way that previously hidden aspects of programming might be “pictured” in flowcharts. Like diagramming, programming is an abstract machine that does not function to merely represent, but rather constructs a reality that is yet to come. As we discussed in previous chapters, programming is a form of abstraction that requires the selection of important details in which the implementation embodies the programmers’ thinking and decision-making processes. In addition, algorithms themselves are decision-making machines that are full of emergent, even predictive, potential.33 特別是關於機器學習的預測實踐,我們可能會注意到 Adrian Mackenzie 在他的機器學習者:數據實踐考古學中,也使用圖表做為批判性思維的實驗來解決機器學習的操作。 Mackenzie 解釋說,當談到機器學習時,“編碼從我們所謂的符號邏輯圖變為統計算法圖。”34 在此他依賴(並引用)德勒茲的建議,即圖“做為力之間關係的顯示構成權力 [而且] 圖表或抽像機器是力量之間的關係圖、命運圖或強度圖。”35 這一主題將在下一章繼續,但現在我們想強調的是,分析算法或與此相關的原始碼本身並不是特別具有啟發性,除非暴露更廣泛的關係組合。流程圖是實現此目的的一種方法,用於映射這些關係,做為促進對程式設計操作進行批判性思考的一種手段。 In relation to the predictive practices of machine learning in particular, we might note that Adrian Mackenzie, in his Machine Learners: Archaeology of a Data Practice, also uses diagrams as an experiment in critical thinking to address the operations of machine learning. Mackenzie explains that when it comes to machine learning, “coding changes from what we might call symbolic logical diagrams to statistical algorithmic diagrams.”34 Here he relies on (and quotes) Deleuze’s suggestion that diagrams act “as a display of the relation between forces that constitute power [and moreover] the diagram or abstract machine is the map of relations between forces, a map of destiny, or intensity.”35 This topic will be continued in the next chapter, but for now we would like to stress that analyzing algorithms, or source code for that matter, is not particularly illuminating in and of itself, unless the wider assemblage of relations is exposed. Flowcharts are one way to do this, to map these relations, as a means to facilitate critical thinking on the operations of programming. ## MiniX: Flowcharts 迷你練習:流程圖 **目標 Objective:** 獲得將計算機程式分解為其可定義部分和關係的能力。
To acquire the ability to break down a computer program into its definable parts and relations. 使用流程圖組織和構建計算機程式。
To organize and structure a computer program using a flowchart. 將流程圖理解為溝通和規劃的手段,以及批判性思維的“機器”。
To understand a flowchart as a means for communication and planning, and a “machine” for critical thinking. 從計算機科學和文化的角度理解算法的概念。
To understand the concept of algorithms from both the computer science and cultural perspectives. 任務(RunMe): Tasks (RunMe): 個人: Individual: 重溫之前的小練習並選擇技術上最複雜的練習。
Revisit your previous mini exercises and select the most technically complex one. 畫一個流程圖來表示程式(注意你選擇展示哪些項目)。
Draw a flowchart to represent the program (pay attention to which items you select to present). 團體: Group: 為你的最終項目集思廣益兩個想法(參見下一章的 MiniX)。
Brainstorm two ideas for your final project (see next chapter’s MiniX). 繪製兩個流程圖來可視化項目的算法過程。
Draw two flowcharts to visualize the project’s algorithmic processes. 要考慮的問題(自述文件): Questions to think about (ReadMe): 試圖在通信級別保持簡單,同時在算法程式級別保持複雜性有哪些困難?
What are the difficulties involved in trying to keep things simple at the communications level whilst maintaining complexity at the algorithmic procedural level? 這兩種想法面臨的技術挑戰是什麼,您將如何解決這些挑戰?
What are the technical challenges facing the two ideas and how are you going to address these? 你製作的個人和團體流程圖在哪些方面有用?
In which ways are the individual and the group flowcharts you produced useful? ## Required reading Taina Bucher,“算法的多樣性”,如果……那麼:算法權力與政治(牛津:牛津大學出版社,2018 年),19-40。 Taina Bucher, “The Multiplicity of Algorithims,” If…Then: Algorithmic Power and Politics (Oxford: Oxford University Press, 2018), 19–40. Christian Sandvig,“看到排序:‘算法’的美學和工業防禦。”新媒體核心小組雜誌(2015 年)。 <http://median.newmediacaucus.org/art-infrastructures-information/seeing-the-sort-the-aesthetic-and-industrial-defense-of-the-algorithm/
Christian Sandvig, “Seeing the Sort: The Aesthetic and Industrial Defense of ‘The Algorithm.’” Journal of the New Media Caucus (2015). <http://median.newmediacaucus.org/art-infrastructures-information/seeing-the-sort-the-aesthetic-and-industrial-defense-of-the-algorithm/ Nathan Ensmenger,“流程圖的多重含義”,信息與文化:歷史雜誌 51,第 3 期(2016 年):321-351,MUSE 項目,doi:10.1353/lac.2016.0013。
Nathan Ensmenger, “The Multiple Meanings of a Flowchart,” Information & Culture: A Journal of History 51, no.3 (2016): 321-351, Project MUSE, doi:10.1353/lac.2016.0013. ## Further reading 進一步閱讀 Ed Finn,“什麼是算法”,在什麼算法想要(劍橋,馬薩諸塞州:麻省理工學院出版社,2017 年),15-56。
Ed Finn, “What is an Algorithm,” in What Algorithms Want (Cambridge, MA: MIT Press, 2017), 15-56. Andrew Goffey,“算法”,富勒編輯,軟體研究,15-20。
Andrew Goffey, “Algorithm,” in Fuller, ed., Software Studies, 15-20. Marcus du Sautoy,“現代生活的秘密規則:算法”,英國廣播公司第四期(2015 年),https://www.bbc.co.uk/programmes/p030s6b3/clips。
Marcus du Sautoy, “The Secret Rules of Modern Living: Algorithms,” BBC Four (2015), https://www.bbc.co.uk/programmes/p030s6b3/clips. Daniel Shiffman,“多個 js 文件 - p5.js 教程”,編碼列車,https://www.youtube.com/watch?v=Yk18ZKvXBj4。
Daniel Shiffman, “Multiple js Files - p5.js Tutorial,” The Coding Train, https://www.youtube.com/watch?v=Yk18ZKvXBj4. ## Notes 筆記 Grace Murray Hopper 的話在 Lois Mandel,“計算機女孩”,Cosmopolitan(1967 年 4 月):52-56 中被引用。 ↩
The words of Grace Murray Hopper are cited in Lois Mandel, “The Computer Girls,” Cosmopolitan (April 1967): 52-56. ↩ Hopper 的 FLOW-MATIC 是第一種使用簡單的英語描述來表達操作的程式設計語言,它是為 Remington Rand 的 UNIVAC 開發的。 FLOW-MATIC 旨在使用分步方法做為“易於理解的文檔”,無需事先接受數學和公式、計算機編碼和語法方面的培訓,並促進“計算機程式設計組和運營管理人員之間”的溝通。參見 Remington-Rand Univac, FLOW-MATIC Programming System (Philadelphia, PA: Remington Rand Univac, Division of Sperry and Corporation, 1958)。 ↩
Hopper’s FLOW-MATIC was the first programming language to express operations using plain English description, developed for UNIVAC at Remington Rand. FLOW-MATIC was designed to use a step-by-step approach as “easily understood documentation” without requiring prior training in mathematics and formulars, computer coding and syntaxes, and to facilite communication “between the computer proramming group and operating management.” See Remington-Rand Univac, FLOW-MATIC Programming System (Philadelphia, PA: Remington Rand Univac, Division of Sperry and Corporation, 1958). ↩ 算法的配方類比是在 Joasia Krysa 和 Grzesiek Sedek 的“原始碼”條目中開發的軟體研究:詞典,236-243。類比也可以在我們已包含在本章基本/進一步閱讀清單中的近期文本中找到:Ed Finn, What Algorithms Want: Imagination in the Age of Computing (Cambridge, MA: MIT Press, 2017), 17;和 Taina Bucher,如果……那麼:算法權力和政治(牛津:牛津大學出版社,2018 年),21。↩
The recipe analogy of algorithms was developed in Joasia Krysa and Grzesiek Sedek’s “Source Code” entry to Software Studies: A Lexicon, 236-243. The analogy can also be found in recent texts that we have included in our essential/further reading lists for this chapter: Ed Finn, What Algorithms Want: Imagination in the Age of Computing (Cambridge, MA: MIT Press, 2017), 17; and Taina Bucher, If…Then: Algorithmic Power and Politics (Oxford: Oxford University Press, 2018), 21. ↩ Knuth,計算機程式設計藝術,xv。除了列出的步驟外,本書還從閱讀本書的流程圖開始,其重要性將在本章後面變得明顯,我們也曾在本書的各個章節和目錄頁中使用過。 ↩
Knuth, The Art of Computer Programming, xv. Alongside the listed procedures, the book begins with a flowchart for reading the book, the significance of which will become obvious later in this chapter, and something we have also used for the individual chapters and contents page of this book. ↩ Knuth,計算機程式設計藝術,xv-xvi。 ↩
Knuth, The Art of Computer Programming, xv-xvi. ↩ Knuth,計算機程式設計的藝術,訴 ↩
Knuth, The Art of Computer Programming, v. ↩ “算法”一詞與“算法”有歷史關係,即使用阿拉伯數字進行算術的過程(源自波斯作家阿布(Abu Ja'far Mohammed ibn Musa al-Khowarizmi(約 825 年)。↩
The term “algorithm” has a historical relation to “algorism” as the process of doing arithmetic using Arabic numerals (originating from the title of the book Kitab al jabr w’al-muqabala (Rules of restoration and reduction) written by Persian author Abu Ja’far Mohammed ibn Musa al-Khowarizmi (ca. 825). ↩ 大多數現代程式設計語言都是“圖靈完備”,這個術語用於描述可以模擬圖靈機的抽像機器。有關圖靈機的更多信息,請參見第 5 章“自動生成器”。 ↩
Most modern programming languages are “Turing-complete,” a term used to describe abstract machines, that can emulate a Turing machine. See Chapter 5, “Auto-generator,” for more on Turing machines. ↩ 特別是計算伯努利數的圖表的複雜性,包括操作分組、循環概念的發明(洛夫萊斯術語中的重複和循環)、根據規則對符號和變數的操作。這種算法被設計用於機械計算機器。當時,巴貝奇分析引擎在概念上接近現代計算機,因為它被設想的不僅僅是計算能力。參見 Luigi Federico Menabrea 和 Ada Lovelace,Charles Babbage 發明的分析引擎草圖(1842 年),694。↩
In particular to the complexity of the diagram for calculating Bernoulli numbers that includes the grouping of operations, the invention of the loop concept (repetition and cycle in Lovelace’s term), the manipulation of symbols and variables in accordance with rules. Such algorithm were designed to be used in mechanical caluclating machines. At the time, the Babbage Analytical Engine was conceptually close to modern computers as it was envisioned as capable of more than just computation. See Luigi Federico Menabrea and Ada Lovelace, Sketch of the analytical engine invented by Charles Babbage (1842), 694. ↩ Lovelace 論文,牛津大學 Bodleian 圖書館,42,第 12 對開頁(1841 年 2 月 6 日),如引用,並在 Dorothy Stein 編輯的“我的第一個孩子”中引用,Ada: A Life and a Legacy (1985) ), 106–107。 ↩
Lovelace Papers, Bodleian Library, Oxford University, 42, folio 12 (February 6, 1841), as quoted, and cited in Dorothy Stein, ed., “This First Child of Mine,” in Ada: A Life and a Legacy (1985), 106–107. ↩ Peggy Pierrot、Martino Morandi、Anita Burato、Christoph Haag、Michael Murtaugh、Femke Snelting 和 Seda Gürses,技術銀河軟體觀察指南(布魯塞爾:Constant,2018 年),175-186。 ↩
Peggy Pierrot, Martino Morandi, Anita Burato, Christoph Haag, Michael Murtaugh, Femke Snelting, and Seda Gürses, The Techno-galactic guide to software observation (Brussels: Constant, 2018), 175-186. ↩ Ferranti Limited,Ferranti Pegasus 計算機,程式設計手冊,第 1 期,列表 CS 50,1955 年 9 月。↩ 
Ferranti Limited, Ferranti Pegasus Computer, programming manual, Issue 1, List CS 50,September 1955. ↩ 將程式設計視為一種社交活動會破壞一些與活動相關的主要刻板印象,例如反社會黑客的刻板印象(男性書呆子、大鬍子、未洗臉)。參見 Nathan Ensmenger,“使程式設計變得男性化”,《性別程式碼:為什麼女性離開計算機》,Thomas J. Misa,編輯。 (新澤西州霍博肯:John Wiley & Sons, Inc.,2010 年),137。有關協作工作的好處的更多信息,請參閱 Chih Wei Ho 等人,“檢查結對程式設計對女學生的影響”,北卡羅來納州州立大學。計算機科學系(2004 年)。 ↩
Viewing programming as a social activity undermines some of the predominant stereotypes associated with activity such as the stereotypical image of the antisocial hacker (male nerds, bearded, unwashed). See Nathan Ensmenger, “Making Programming Masculine,” in Gender Codes: Why Women are Leaving Computing, Thomas J. Misa, ed. (Hoboken, New Jersey: John Wiley & Sons, Inc., 2010), 137. For more on the benefits of collaborative working, see Chih Wei Ho, et al, “Examining the impact of pair programming on female students,” North Carolina State University. Dept. of Computer Science (2004). ↩ 用 Guattari 的話來說,“圖表被設想為一個自詩機器,它不僅賦予它功能和材料的一致性,而且要求它部署其不同的他異性記錄,將其從鎖定在簡單結構關係中的身份中解放出來。” Félix Guattari,“機械異源”,混沌:倫理美學範式(布盧明頓,印第安納大學出版社,1995 年),44。這裡的“釋放”適用於逃避強加在機器上的預先確定的“圖解順序”——算法上可能。 ↩
In Guattari’s terms, “the diagram is conceived as an autopoetic machine which not only gives it a functional and material consistency, but requires it to deploy its diverse registers of alterity, freeing it from an identity locked into simple structural relations.” Félix Guattari, “Machinic Heterogenesis,” Chaosmosis: An Ethico-Aesthetic Paradigm (Bloomington, IN: Indiana University Press, 1995), 44. “Freeing” here applies to escaping a pre-determined “diagrammatic order” imposed on the machine — algorithmically perhaps. ↩ 您可以在 https://gitlab.com/aesthetic-programming/book/-/blob/master/source/9-AlgorithmicProcedures/emoji_flowchart.svg 找到簡單程式的說明性流程圖。 ↩
You can find an illustrative flowchart of the simple program at https://gitlab.com/aesthetic-programming/book/-/blob/master/source/9-AlgorithmicProcedures/emoji_flowchart.svg. ↩ Ensmenger,“流程圖的多重含義”,324 和 346。↩
Ensmenger, “The Multiple Meanings of a Flowchart,” 324 & 346. ↩ 在教學環境中,我們有一個小組準備提出這個問題,以及他們如何從技術和概念上解決這個問題,讓他們思考在更廣泛的文化背景下分類的重要性。然後,其他學生以這種排序練習開始上課,並專注於算法程式。這是實現排序問題的眾多方法之一,https://editor.p5js.org/siusoon/sketches/7g1F594D5。 ↩
In a teaching setting, we have a group prepare to present this problem and how they approach this both technically and conceptually to make them think about the significance of sorting in a wider cultural context. The other students then start the class with this sorting exercise and focus on algorithmic procedures. Here is one of the many ways of implementing the sorting problem, https://editor.p5js.org/siusoon/sketches/7g1F594D5. ↩ 參見 Paolo Cirio,流程圖:關於系統的系統,藝術家專著(Lulu,2019 年);可在 https://www.paocirio.net/press/archive/?/id/268/t/FLOWCHARTS/ 獲得。 Open Society Structures - Algorithms Triptych (2009) 將為我們的目的提供一個很好的例子。 ↩
See Paolo Cirio, Flowcharts: On Systems of Systems, Artist Monograph (Lulu, 2019); available at https://www.paolocirio.net/press/archive/?/id/268/t/FLOWCHARTS/. Open Society Structures - Algorithms Triptych (2009) would make a good example for our purpose here. ↩ GWEI (2005) 是黑客壟斷三部曲的一部分,其中還包括 Amazon Noir (2006) 和 Face to Facebook (2011)。有關 GWEI 的更多信息,請參閱 http://www.gwei.org/index.php。 ↩
GWEI (2005) was part of the Hacking Monopolism Trilogy which also included Amazon Noir (2006) and Face to Facebook (2011). For more on GWEI, see http://www.gwei.org/index.php. ↩ 有關 GWEI 的分析,請參閱 Søren Bro Pold,“界面感知:控制論心態及其批評者:Ubermorgen.com”,Andersen & Pold 編輯。 Interface Criticism: Aesthetics Beyond Button (Aarhus: Aarhus University Press, 2011), 91-113。 ↩
For an analysis of GWEI, see Søren Bro Pold, “Interface Perception: The Cybernetic Mentality and Its Critics: Ubermorgen.com,” in Andersen & Pold, eds. Interface Criticism: Aesthetics Beyond Button (Aarhus: Aarhus University Press, 2011), 91-113. ↩ 要詳細閱讀該項目,請參閱 Christian Ulrik Andersen 和 Søren Bro Pold,The Metainterface:The Art of Platforms, Cities, and Clouds(劍橋,馬薩諸塞州:麻省理工學院出版社,2018 年),57-60。 ↩
For a close reading of this project, see Christian Ulrik Andersen and Søren Bro Pold, The Metainterface: The Art of Platforms, Cities, and Clouds (Cambridge, MA: MIT Press, 2018), 57-60. ↩ 有關 UBERMORGEN 的 The Project 以前稱為 Kindle Forkbomb 的更多信息,請參閱 https://en.wikipedia.org/wiki/The_Project_Formerly_Known_As_Kindle_Forkbomb;有關 Kunsthal Aarhus 展覽的背景,請參見 https://www.e-flux.com/announcements/31936/systemics-2-as-we-may-think-or-the-next-world-library/。 ↩
For more on UBERMORGEN’s The Project Formerly Known as Kindle Forkbomb, see https://en.wikipedia.org/wiki/The_Project_Formerly_Known_As_Kindle_Forkbomb; and for the context of Kunsthal Aarhus exhibition, see https://www.e-flux.com/announcements/31936/systemics-2-as-we-may-think-or-the-next-world-library/. ↩ 有關 Kindle 平台的更完整說明,請訪問 https://kdp.amazon.com/en_US/。 ↩
A fuller description of the Kindle platform can be found at https://kdp.amazon.com/en_US/. ↩ Taina Bucher, If…Then: Algorithmic Power and Politics (Oxford: )Oxford University Press, 2018), 20. ↩ Finn,什麼算法想要:計算時代的想像力,34。↩
Finn, What Algorithms Want: Imagination in the Age of Computing, 34. ↩ Andrew Goffey,“算法”,富勒編輯。軟體研究,19。↩
Andrew Goffey, “Algorithm,” in Fuller, ed. Software Studies, 19. ↩ Rob Kitchin,“批判性地思考和研究算法”,在信息、通信和社會(2016 年),16。↩
Rob Kitchin, “Thinking Critically About and Researching Algorithms”, in Information, Communication & Society (2016), 16. ↩ Kitchin,“批判性地思考和研究算法”,10。↩
Kitchin, “Thinking Critically About and Researching Algorithms,” 10. ↩ Matteo Pasquinelli,“Google 的 PageRank 算法:認知資本主義和普通智力的食利者圖”,Konrad Becker 和 Felix Stalder 編輯,Deep Search:The Politics of Search Beyond Google(倫敦:交易出版商:2009 年) . PageRank 算法由 Sergey Brin 和 Lawrence Page 於 1990 年編寫,似乎體現了 Google 的壟斷力量。 ↩
Matteo Pasquinelli, “Google’s PageRank Algorithm: A Diagram of the Cognitive Capitalism and the Rentier of the Common Intellect,” in Konrad Becker and Felix Stalder, eds., Deep Search: The Politics of Search Beyond Google (London: Transaction Publishers: 2009). The PageRank algorithm was written by Sergey Brin and Lawrence Page in 1990, and seems to exemplify Google’s monopolistic power. ↩ Deleuze 和 Guattari 對圖表的具體解釋過於復雜,無法在此詳細介紹。簡而言之,他們使用圖表的概念來模擬意義的動態,以及逃避意義的東西:“圖表或抽像機器的功能不是表示,甚至是真實的東西,而是構建一個尚未到來的真實,一種新型的現實。” http://frequencies.ssrc.org/2011/12/19/diagrammic-thinking/。有關這些想法的更多信息,請參見 Gilles Deleuze 和 Félix Guattari,《千高原》(1980)。 ↩
The specific interpretation of diagramming offered by Deleuze and Guattari is far too complex to go into in more detail here. In short, they use the idea of the diagram to model the dynamics of signification, and of what escapes signification: “The diagrammatic or abstract machine does not function to represent, even something real, but rather constructs a real that is yet to come, a new type of reality.” http://frequencies.ssrc.org/2011/12/19/diagrammic-thinking/. For more on these ideas, see Gilles Deleuze and Félix Guattari, A Thousand Plateaus (1980). ↩ 該流程圖基於 1978 年發行的 Jackson 5 的“Blame It On the Boogie”的開場歌詞。↩
The flowchart is based on the opening lyrics of Jackson 5’s “Blame It On the Boogie,” released in 1978. ↩ Simon O'Sullivan,“關於圖表(和圖表學實踐)”,Karin Schneider 和 Begum Yasar 編,情境圖(紐約:Dominique Lévy,2016 年),17。↩
Simon O’Sullivan, “On the Diagram (and a Practice of Diagrammatics),” in Karin Schneider and Begum Yasar, eds., Situational Diagram (New York: Dominique Lévy, 2016), 17. ↩ 這種描述也反映了圖表跨時間運作的方式:“這個圖表是否也涉及對過去、現在和未來之間關係的不同理解?這是不同時間之間的“畫線”、電路的構建和反饋迴路的跟隨;將時間理解為特定於任何給定係統(或實踐)的時間,而不是中性背景。這可能涉及繪製不同類型的未來可以重新回到現在的方式(並確定我們在此時此地的行為或製造方式)。或者,實際上,描繪現在本身如何涉及對過去的重新設計(理解為資源和生活檔案),然後將允許出現不同類型的未來。”奧沙利文,“關於圖表(和圖表的實踐)”,24。↩
This description also mirrors the way the diagrams operate across time: “Might this diagrammatics also involve a different take on relations among the past, present, and future? This is the ‘drawing’ of lines between different times, the building of circuits and the following of feedback loops; it is to understand time as specific to any given system (or practice) and not as neutral background. This might involve diagramming the way a different kind of future can work back on the present (and determine how we act or make in the here and now). Or, indeed, diagramming how the present itself can involve a re-engineering of the past (understood as resource and living archive) that will then allow a different kind of future to emerge.” O’Sullivan, “On the Diagram (and a Practice of Diagrammatics),” 24. ↩ Adrian Mackenzie,機器學習者:數據實踐的考古學(劍橋,馬薩諸塞州:麻省理工學院出版社,2017 年),23。↩
Adrian Mackenzie, Machine Learners: Archaeology of a Data Practice (Cambridge, MA: MIT Press, 2017), 23. ↩ Mackenzie,機器學習者:數據實踐的考古學,17。↩
Mackenzie, Machine Learners: Archaeology of a Data Practice, 17. ↩ 儘管算法的概念植根於計算機科學,但來自文化和媒體研究等其他領域的學者採用算法的技術概念,並探索其更廣泛的文化後果和政治含義。算法做為食譜的類比也可以在這裡看到:Ed Finn, What Algorithms Want: Imagination in the Age of Computing (Cambridge, MA: MIT Press, 2017), 17;和 ↩
Although the concept of algorithm is rooted in computer science, scholars from other fields like cultural and media studies take on the technical concept of algorithm and explore its wider cultural consequences and political implications. The analogy of algorithms as recipes can also be seen here: Ed Finn, What Algorithms Want: Imagination in the Age of Computing (Cambridge, MA: MIT Press, 2017), 17; and ↩ Adrian Mackenzie,“預測的產生:機器學習想要什麼?”,歐洲文化研究雜誌 18,第 4-5 期(2015 年):429-445。 ↩
Adrian Mackenzie, “The Production of Prediction: What Does Machine Learning Want?”, European Journal of Cultural Studies 18, no.4-5 (2015): 429–445. ↩ 參見 Stephen Morris 和 Orlena Gotel,“流程圖在應用數學早期自動化中的作用”,BSHM 公報:英國數學史學會雜誌 26,第 2 期。 1(2011 年 3 月):44-52,https://doi.org/10.1080/17498430903449207;和 Nathan Ensmenger,“流程圖的多重含義”,信息與文化:歷史雜誌 51,第 3 期(2016 年):321–51,https://doi.org/10.1353/lac.2016.0013。 ↩
See Stephen Morris and Orlena Gotel, “The Role of Flow Charts in the Early Automation of Applied Mathematics,” BSHM Bulletin: Journal of the British Society for the History of Mathematics 26, no. 1 (March 2011): 44–52, https://doi.org/10.1080/17498430903449207; and Nathan Ensmenger, “The Multiple Meanings of a Flowchart,” Information & Culture: A Journal of History 51, no.3 (2016): 321–51, https://doi.org/10.1353/lac.2016.0013. ↩