暴力拒絕白嫖,著名開源項目作者刪庫跑路,數千個應用程序無限輸出亂碼

編輯:蛋醬、小舟

「我刪我自己的開源項目程式碼,需要經過別人允許嗎?」

幾天前,開源庫「faker.js」和「colors.js」的使用者打開電腦,發現自己的應用程序正在輸出亂碼資料,那一刻,他們驚呆了。

更令人震驚的是,開發者們發現,造成這一混亂局面的就是「faker.js」和「colors.js」的作者 Marak Squires 本人。

一夜之間,Marak Squires 主動刪除了「faker.js」和「colors.js」項目倉庫的所有程式碼,讓正在使用這兩個開源項目的數千位開發者直接崩潰。

「faker.js」和「colors.js」

faker.js 在 npm 上的每週下載量接近 250 萬,color.js 每週的下載量約為 2240 萬,本次刪庫的影響是極其嚴重的,使用這兩個項目開發的工具包括 AWS CDK 等。

如果在構建和測試應用時,真實的資料量遠遠不夠,那麼 Faker 類工具將幫助開發者生成偽資料。faker.js 就是可為多個領域生成偽資料的 Node.js 庫,包括地址、商業、公司、日期、財務、圖像、隨機數、名稱等。

faker.js 支持生成英文、中文等多語種資訊,包含豐富的 API,此前版本通常一個月迭代更新一次。faker.js 不僅可以使用在伺服器端的 JavaScript,還可以應用在瀏覽器端的 JavaScript。

現在,faker.js 項目的所有 commit 資訊都被改為「endgame」,在 README 中,作者寫下這樣一句話:「What really happened with Aaron Swartz?」

Swartz 是一位傑出的開發人員,幫助建立了 Creative Commons、RSS 和 Reddit。2011 年,Swartz 被指控從學術資料庫 JSTOR 中竊取檔案,目的是免費訪問這些檔案。Swartz 在 2013 年自殺,Squires 提到 Swartz 可能意指圍繞這一死亡疑雲。

Marak Squires 向 colors.js 提交了惡意程式碼,添加了一個「a new American flag module」,然後將其發佈到了 GitHub 和 npm。

隨後他在 GitHub 和 npm 發佈了 faker.js 6.6.6,這兩個動作引發了同樣的破壞性事件。破壞後的版本導致應用程序無限輸出奇怪的字母和符號,從三行寫著「LIBERTY LIBERTY LIBERTY」的文字開始,後面跟著一系列非 ASCII 字符:

目前,color.js 已經更新了一個可以使用的版本。faker.js 項目尚未恢復,開發者只能通過降級到此前的 5.5.3 版本來解決問題。

為了解決問題,Squires 在 GitHub 上還發布了更新以解決「zalgo 問題」,該問題是指損壞檔案產生的故障文字。

「我們注意到在 v1.4.44-liberty-2 版本的 colors 中有一個 zalgo 錯誤,」Squires 以一種諷刺的語氣寫道。「我們現在正在努力解決這個問題,很快就會有解決方案。」

在將更新推送到 faker.js 兩天後,Squires 發了一條推文,表示自己儲存了數百個項目的 GitHub 賬戶已經被封。Squires 在 1 月 4 日發佈了 faker.js 的最新 commit,在 1 月 6 日被封,直到 1 月 7 日推送了 colors.js 的「liberty」版本。然而,從 faker.js 和 colors.js 的更新日誌來看,他的賬戶似乎被解封過。目前尚不清楚 Squires 的帳戶是否再次被封。

至此,故事並沒有就此結束。Squires 2020 年 11 月發在 GitHub 上的一篇帖子被挖出來,在帖子中他寫道自己不再想做免費的工作了。「恕我直言,我不想再用我的免費工作來支持財富 500 強(和其他小型公司),以此為契機,向我發送一份六位數的年度合同,或者 fork 項目並讓其他人參與其中。」

Squires 的大膽舉動引起了人們對開源開發者的道德和財務困境的關注,這可能是 Marak Squires 行動的目標。大量網站、軟體和應用程序依賴開源開發人員來創建基本工具和元件,而所有這些都是免費的,無償開發人員經常不知疲倦地工作,努力修復其開源軟體中的安全問題。

開發者們怎麼看

軟體工程師 Sergio Gómez 表示:「從 GitHub 刪除自己的程式碼違反了他們的服務條款?WTF?這是綁架。我們需要開始分散託管免費軟體源程式碼。」

「不知道發生了什麼,但我將我所有的項目都託管在 GitLab 私有 instance 上,永遠不要相信任何網際網路服務提供商。」

有網友認為 faker.js 團隊的反應有些誇張了,並說道:「沒有人會用一個只生成一些虛假資料的包賺大錢。faker.js 的確為開發者生成偽資料節省了一些時間,但我們也可以讓實習生編寫類似程序來生成資料。這對企業來說並沒有那麼重要。」

甚至有人認為 Marak 這麼做是一種衝動行為,不夠理性,並和他之前「賣掉房子購買 NFT」的傳聞聯繫起來,認為 Marak 需要學會控制自己的情緒:

這種說法很快帶偏部分網友的看法,有人原本同情開源項目被「白嫖」,但現在已轉向認為 Marak 是惡意刪庫,並指出:「停止維護他的項目或完全刪除都是他的權利,但故意提交有害程式碼是不對的。」

當然,也有人為開源軟體(FOSS)開發者的待遇鳴不平:「希望有相關的基金會位 FOSS 開發人員提供資金支持」,而軟體的可靠性和穩定性也是至關重要的

有人表示:一些大公司確實不尊重開源項目的版權,濫用開源項目對於 FOSS 開發者來說是絕對不公平的。但 Marak 對 faker.js 的做法並不可取,不是正面例子,存在 Marak 的個人負面原因。

對此,你有什麼看法?

對此,你有什麼看法?

參考連結:

https://www.kancloud.cn/apachecn/zetcode-zh/1950573

https://zhuanlan.zhihu.com/p/326301266

https://www.reddit.com/r/programming/comments/rz5rul/marak_creator_of_fakerjs_who_recently_deleted_the/

使用NVIDIA Riva快速構建企業級TTS語音合成助手

NVIDIA Riva 是一個使用 GPU 加速,能用於快速部署高性能會話式 AI 服務的 SDK,可用於快速開發語音 AI 的應用程序。Riva 的設計旨在幫助您輕鬆、快速地訪問會話 AI 功能,開箱即用,通過一些簡單的命令和 API 操作就可以快速構建高級別的 TTS 語音合成服務。

2022年1月12日19:30-21:00,本次線上分享主要介紹:

  • 語音合成簡介

  • NVIDIA Riva 特性介紹

  • 啟動 NVIDIA Riva 客戶端快速實現文字轉語音功能

  • 使用 Python 快速搭建基於 Riva 的 TTS 語音合成服務應用

點選閱讀原文,報名直播吧。

相關文章

為什麼喜歡藍色的人最多?

為什麼喜歡藍色的人最多?

藍色,光的三原色之一,是冷色調中最冷的色彩。藍色是永恆的象徵,既代表著憂鬱,又代表著溫暖、溫柔。藍色非常純淨,通常讓人聯想到海洋、天空、湖水...