《迷因》推薦序:基因的確切位置在染色體上,那麼迷因應該就存在於大腦裡

《迷因》推薦序:基因的確切位置在染色體上,那麼迷因應該就存在於大腦裡
Photo Credit: Shutterstock / 達志影像

我們想讓你知道的是

迷因概念之所以具有力量,就是因為當我們以迷因觀點看世界時,我們會發現,我們的想法不再是我們所造,也不是用來服務我們,我們反而是迷因的宿主,被迷因附體。這本全面建構迷因理論的專書,讓我們腦洞大開,擁有不同洞見。

何以如此?這兩種實驗的關鍵差異在哪?差異在於,畫圖接力實驗的傳承/遺傳是拉馬克式的(布拉克莫稱之為「產品複製」),而摺紙接力實驗的則是魏斯曼式的(布拉克莫稱之為「指令複製」)。在畫圖實驗中,每一代的表現型也是基因型的,這是傳遞到下一代的東西。在摺紙接力實驗中, 傳遞到下一代的不是紙張的外型,而是創造出這般外型的整組指令。執行指令時若出現缺陷,會導致有缺陷的帆船(表現型),但這樣的外型缺陷卻不會傳遞到下一代,這是非迷因的。魏斯曼迷因品系對於製作中式平底帆船的前五項指令如下:

  1. 拿一張正方形紙,把四個角向內摺到正中央。
  2. 把摺出的小正方形的一邊,向內摺到中央線。
  3. 另一邊也摺到中央線,兩邊呈對稱。
  4. 把摺出的長方形兩短邊,分別向內摺到中央線。
  5. 把摺出的小小正方形,沿著上一步驟摺出的直線向後摺。

……諸如此類的指令,再做二十到三十個步驟。我不會把這類指令稱為數位化的,但這些指令的保真度確實非常高,這是因為它們都會參照「把四個角向內摺到正中央」這項標準任務。如果紙張不是正方形,或是如果有孩子無法達成指令所要求的地步,好比說把第一個角摺到超過中心點,第四個角卻摺不到中心點,最後摺出來的船就不會整齊優美。但是序列中下一個孩子不會複製這個錯誤,因為她會認為前一個指導她的孩子是希望把四個角都摺到正中央。指令會自我標準化,密碼是錯誤校正。這是柏拉圖會喜歡的: 品系中傳遞的是帆船的理想本質,而摺出的每個真實帆船則是有缺陷的近似罷了。

這些指令在口語的強化下,能更有效傳遞,但是光靠摺紙示範就足以傳遞。日本孩子能傳授給英國孩子,即便語言不通。同樣地,日本的木匠師傅也能把技藝傳授給英國學徒,而學徒也不會複製明顯的錯誤。如果師傅不小心把鎚子砸到自己的大拇指,即便學徒聽不懂師傅用日語咒罵,也能正確猜到師傅的手指被砸到了。他不會拉馬克式地精確複製每次鎚子揮動的細節,而是魏斯曼式地複製指令:盡情揮動鎚子,把釘子釘入木頭,就像師傅所做的那樣。

我相信這些推論,能大幅降低(甚至一舉移除)人們對迷因抱持的反對態度,放棄迷因的保真度遠不如基因的主張。對我而言,語言、宗教和傳統習俗這些類基因遺傳,也能帶來同樣教導。根據蘇珊.布拉克莫在〈迷因的三大問題〉這章的討論,另一項反對的說法跟第一種說法一樣,就是我們不知道迷因是由什麼組成,也不知道迷因在哪裡。能找到迷因結構的華生和克里克尚未出現,[1] 甚至連發現迷因遺傳方式的孟德爾都還沒出現。

基因的確切位置在染色體上,那麼迷因應該就存在於大腦裡,而且我們能親眼見到迷因的機率遠不及基因(雖然在布拉克莫所提及的文章中,神經生物學家璜. 狄里厄斯有描繪出他猜想中迷因的模樣)。迷因就跟基因一樣,是透過表現型來追蹤數量。中式平底帆船迷因的「表現型」是用紙做的,除了「延伸的表現型」(如海狸水壩和石蛾幼蟲的居所),基因的表現型通常是活體的一部分,但迷因的表現型很少是活體。

不過,這是有可能發生的。再回到我學校的例子。假設有一位來自火星的遺傳學家,在學童清晨用冷水淋浴時來到我的母校,此時他一定會毫不猶豫地判定這些男孩在基因上有「顯著」的多態性。因為約有50%的男孩割了包皮,另外50%沒有。而這些男孩也剛好對於彼此的多態性有高度意識, 針對同樣部位的相關特徵把自己分為「圓顱」與「騎士」兩隊(我近來讀到關於另一個學校的文章,提到該校橄欖球隊員甚至依照同樣標準把自己分為兩隊)[2]。然而,這當然不是基因遺傳上而是迷因上的多態性,不過這位火星遺傳學家的錯誤是完全可以理解的。形態上的不連續,正是一般認為基因會造成的現象。

在當時的英格蘭,為嬰孩施行割包皮手術還算是醫療上的少見作為,而圓顱/騎士兩種多態性,比較不會是來自縱向傳遞,而是橫向的迷因傳遞, 也就是看每個人出生在哪家醫院而導致各自在外觀上的差異。但在大多數的歷史中,割包皮一直是經由宗教之刃來執行的縱向傳遞(我得趕緊補充,這指的是父母的宗教信仰,畢竟孩子被割的時候通常還太年幼無法確認自己的宗教意向)。基於宗教或是傳統(如女性割禮這類野蠻風俗)而施行的割禮, 就會遵循遺傳的縱向模式,與真正的基因傳遞模式十分類似,而且通常會持續好幾代。我們的火星遺傳學家得倍加努力,才會發現到圓顱表現型的起源跟基因無關。

火星遺傳學家在推敲這兩派人馬在衣著、髮型及遺傳模式時,下巴更有可能會掉下來(假設他們的下巴原本是闔上的)。頭戴黑色瓜皮帽的表現型, 展現出特有的父傳子縱向傳遞傾向(也可能是母系的祖父傳給孫子),而罕見的雙邊辮子頭表現型也會有清楚的連鎖。[3] 行為上的表現型如在十字架前屈膝、[4] 每日朝東方跪拜五次,[5] 也都是縱向傳遞,而這些表現型彼此之間以及與上述表現型之間,有著強烈的負連鎖不平衡。額上紅點,和袈裟/剃度也是一樣的關係。

基因能在身體和身體之間正確地複製並傳遞,但其中有些基因傳遞的頻率更高,因此理論上成功率也較大。這是天擇,也能解釋於生命中大多數有趣且驚奇之事。但是否有類似迷因為主的天擇?也許我們可以再次使用網際網路來調查迷因中的天擇。就在「迷因」一詞被造出來期間(其實是稍晚一點),有另一個同義詞也出現了,就是「文化基因」(culturgen)。在今天,[6] 文化基因在全球資訊網上出現的次數是20次,迷因則是5042次。此外,在這20次當中,有17次仍提及這個詞的來源,不符合《牛津英語詞典》收錄新詞的判準。


猜你喜歡


挖掘雲端開放架構優勢!Amazon EKS高可用性叢集快速部署容器

挖掘雲端開放架構優勢!Amazon EKS高可用性叢集快速部署容器

我們想讓你知道的是

企業如何在 Amazon EKS(Elastic Kubernetes Services)上使用 GitLab 創建自動化部署,減輕人力負擔,提升專案服務運作效率?

所謂現代化智慧 IT,所有工程師最希望的境界,莫過於只要輕鬆點幾下設定,系統就會自動跑起來,管理者再也不用隨時待命在機台旁邊,從此工作悠哉又快樂!儘管這樣情境還沒到來,但隨著敏捷式開發的流行,除了 DevOps 人員,有越來越多開發者將 CI/CD 概念融入到工作流程當中,例如從 build code、執行 unit test、到部署應用程式。

透過 AWS 增加雲端技能 在組織發揮影響力

上述種種反覆步驟自動化執行,也就能提昇服務品質、主動通知開發人員以減輕人力負擔,讓專案服務能持續運作。

其中,GitLab 是執行 CI/CD 常用的工具之一,也是開發者使用程式碼儲存庫的地方。為了讓 GitLab Runner 在雲端快速實踐 CI/CD,《AWS 開發者系列》透過影片分享,如何在 Amazon EKS(Elastic Kubernetes Services)上使用 GitLab 創建自動化部署。

以下節錄工作坊影音內容,幫助開發者快速理解如何運用 Amazon EKS 的高可用性且安全的叢集,將修補、部署節點、更新等關鍵任務,全部做到自動化設定。同時影片也會示範 Amazon EKS 搭配 GitLab 如何展開自動部署,幫助工程團隊實踐 CI/CD 價值。

Amazon EKS 對容器管理輕鬆簡單、維運省時省力

容器化服務越來越興盛,當容器(Container)越來越多,在複雜的微服務(Microservice)系統環境之下,運維團隊的管理成本可能相對會增加不少,為了有效調度容器部署, 導入Kubernetes 無疑是近年企業熱門的話題之一。

建構 Kubernetes Cluster 流主要可區分兩大塊,一是安排容器調度的Control Plane、另一則是容器運行時需要用到的 Worker Node。

Control Plane 裡面涵蓋有儲存狀態的 ETCD、CoController manager 、Scheduler 的調度管理、甚至是操作時進行互動的 APIServer,若是自己創建 的 Kubernetes Cluster ,需要自己安裝這些元件,後續仍需要對 Control Plane 進行相關管理、維護、升級工作。為了減少上述 Components 的繁複維護,在透過 AWS EKS 代管的 Kubernete Control Plane 部可以獲得以下三大好處。

Amazon EKS 一鍵式部署,展現三大優勢

第一,Amazon EKS代管的 Control Plane實踐了跨AZ的高可用部署,使用者不需要擔心單一節點故障的風險。

第二,Amazon EKS 支持至少四個 Kubernetes版本,持續跟進每季 CNCF 的發佈,同時 EKS 也完全符合上游 CNCF 規範。

第三,部署 Amazon EKS 之後,可直接使用 AWS 平台上現成的服務工具,在安全性管理、網路設定方面,可以做到無縫整合。

最後 AWS 台灣解決方案架構師也提到,若想在容器環境進行 CI/CD 及應用程式的管理,可以進一步透過 IaC 整合部署 Amazon EKS 叢集,透過使用 Console、把 EKS 變成 Cloudformation 的模板、使用 AWS 所開發出來的 eksctl.io、或指令是採用 AWS CDK 可以讓開發者用自身熟悉的語言,在 AWS 平台整合 CI/CD 工具進行維運及部署 EKS。

打造第一個在 AWS 上的應用程式

了解 Amazon EKS 整合 GitLab ,獲得三面向價值

對開發者而言,想把 Amazon EKS 整合到 CI/CD 工具之一的 GitLab 平台上,可以看到那些實際的優勢?

在 DevOps 開發者示範工作坊當中,GitLab 資深解決方案架構師指出,GitLab 使用到 Kubernetes 技術,主要有三種搭配方法,包含 GitLab Server、GitLab Runner、以及創建 Deployment Environment。

本次示範教學會主要聚焦在 GitLab Runner 如何採取 Auto-scaled 方式進行 Build、Test、Package Apps;以及在 Deployment Environment 運用 Kubernetes 技術,做到 Auto Deploy、Review App。

正因為 Amazon EKS 能夠在 DevOps 過程提供所需要的彈性計算資源,幫助開發者在 GitLab 平台上面獲得以下三個層次的優勢:

  • 在 GitLab 內建的部署工作流程當中,自動生成整套 CI/CD 最佳實踐腳本。
  • Review App 過程,從 Merge Request 中可直接訪問應用程式 /App 的 UI 介面,並且根據 Git branch 名稱、專案名稱,自動生成 Review App 的 URL,以及在 Merge 前的最後防線進行 Approval 檢查。
  • 加速 CI/CD 流水線,GitLab Runner 運行時候還可藉由 Amazon EKS Cluster 進行 Auto-scaled 的支援。

Amazon EKS 整合 GitLab ,需要兩大流程

影片最後,GitLab 資深解決方案架構師示範如何把 Amazon EKS 整合至 GitLab 執行 Auto Deploy,主要可分為兩大區塊流程,第一部分聚焦在 Amazon EKS cluster 的設置,第二部分則執行 Auto Deploy 設置。

第一塊可拆分為四個階段,首先教學怎麼創建 EC2 節點的 EKS cluster,第二階段示範把 EKS Cluster 連接到開發者的 GitLab Instance、Group 或 Project,下一步則使用 Cluster Management Project Template 創建一個 Cluster Management Project,以及最後一階段透過 Cluster Management Project 自帶的 Helm Chart,安裝在 Cluster 所需要的內建 App。

第二塊執行 Auto Deploy 設置,針對需要部署的 App 創建一個 GitLab Project,接著再把 gitlab-ci.yml 添加到 Project,並從 Web IDE 選擇及導入 Auto Deploy 的 CI 模版,讓 GitLab 自動生成最佳實踐的整套流水線。

幫助開發者更了解 Amazon EKS 整合 GitLab 的 QA 系列

Q:使用 Amazon EKS 之後,如何更有效率或優化資源去配置 Worker Node 的機器數量,以及如何有效空管開發維運的成本?

A:Kubernetes 除了本身有 HPA(Horizontal Pod Autoscaling)可根據使用程度自動調整資源流量,另外也能延伸使用 AWS Auto Scaling 方案,針對可擴展資源去設定自動擴展管理。另外在成本管控,雖然 Amazon EKS 會收取額外管理費用,但可透過 AWS 平台的 Calculato r計算每個 EKS 的價格,你會發現自動化部署及管理的費用,相對工程師人力的成本更加便宜。

Q:越來越多客戶考慮把現有 Application 變成容器部署,大多是爲了加快部署的效率,那麼變成容器模式之後,對 CI/CD 的工作流程有什麽影響嗎?

A:運用容器技術最直接的效果,可以讓應用程式的環境更一致化,例如 testing 環節、stage production,讓容器避開一些差異問題。至於 CD 部分要 delivery 一些 usage 不太一樣的時候,容器會幫忙做配置,所以 CI/CD 對容器的效益是相輔相成的。

Q: 客戶在開發流程漸漸會把 Infrastructure 變成代碼或文檔,是不是可以把程式碼跟現有的應用程式的 CI/CD 流水線整合在一起,達到一套完整的 CI/CD 部署流程?

A:觀察目前市場作法,主要分成兩個階段去做整體部署。如果規模比較小的團隊,會把 Infrastructure 代碼跟 App 代碼分開,在管理上會比較靈活;如果企業規模比較大,會有另外一個 Infrastructure 團隊來控制部署事情,這種情况之下,APP 的項目會生成一個 APP package,主要做到 delivery 這個階段爲止。而 Infrastructure 的項目會指定把需要版本的文檔,部署到他們的 Kubernetes Cluster。

填寫表單 找到適合的快速上雲服務與工具!


猜你喜歡