05.01
Wed

上一次發部落格居然已經是去年一月的事情了,仔細看部落格的文章列表,從開始有正職工作之後寫部落格的次數就開始減少了。

今天 5/1 放假不太想寫程式,所以來寫一些東西,算是雜談吧,不過是非常不正經的那種雜談,雖然也不知道這篇寫了會不會發出來。(晚上 11:38 分這篇居然成功發出了)

在開始之前要先寫,這篇完全是想到什麼就寫什麼,真。雜談,因此閱讀起來可能不是很舒適。



如果對閒聊有興趣的話,請點擊『閱讀更多』



小艾從一兩年前就有考慮要寫一篇專門描寫小艾這個人本身,不過一直都沒實際動手,中間寫過一些關於小艾版補丁為什麼而開始的文章也沒有發出來,實際上我覺得這樣的文章內容其實和我做補丁初期的想法是不相符的。
我並不希望使用者太過於關注小艾版補丁的作者,也不需要太過於關注小艾版補丁本身,我希望這是一個裝完即忘的補丁。
因此基於這個理由,當小艾版補丁的使用者人數開始上升之後,小艾將小艾的完整ID拿掉,在補丁的所有文檔中都只有保留了『小艾』兩個字。

即使當我已經在打這篇文章,我依舊沒決定我要用『小艾』還是『我』來自稱,雖然我覺得用『我』自稱應該比較適合一點。
小艾或者艾OOO這個名稱已經從我使用的一個網路名稱變成是一個我的自稱,我在 Line 上用,在 WhatsApp 也用,FB 除了本名以外也有用這名稱,當然如果遇到已經被註冊的話,我會改用英文的名稱,簡單的說我的本名除了在正式場合和工作上以外已經比較少用了。

像是我在自我介紹的時候會說『你好,我叫艾OOO(或是 艾O、OO)英文是 Rooo,姓名是 OOO』這樣,本名放在最後面,雖然我目前工作的地方還是叫我本名,不過之前有待過一家外資是慣用英文,這導致我習慣用暱稱稱呼別人,在小艾身邊的朋友7成以上叫我小艾......某程度上體現我的朋友不少是瑪奇和網路上來的,我很少實際從現實中認識到能稱得上朋友的人。

寫到這邊突然想到,這文章會不會導致小艾的人設崩壞之類的......不過再仔細想想『小艾』好像原本就沒有人設可言,不存在的東西好像也就沒崩壞可言了?

『滿腔熱血決定開始做補丁造福人群』之類的事情是不存在的,哪來那麼多心靈雞湯,小艾版補丁最初就是小艾做給自己的三台電腦能同時更新補丁的一個小程式,一直到當時一位大咖作者不做了,小艾才把自己的補丁給朋友用,作為一個在下一個大咖作者出現前給親友的過渡補丁,因此小艾版補丁最早是為我自己做的(此處應有羅永浩的圖)。

至於到底是造福人群還是禍害人群,其實我也沒什麼想法,我覺得禍害或許多一點吧。

那麼說說小艾這個人本身吧,其實我自己聽說過很多版本,甚至在安服聽過我不認識的人描述他認識的小艾......(此處應有黑人問號圖),當然有描述的很美好也有描述的很差勁的,不過有趣的事情是這些幾乎都是從我不認識的人口中聽到的。

至於我本身的行為、性格、為人是好是壞,我自己沒法給一個統一的評價,因為我不是一個二分法的人,某些情況下做出某些選擇是當下合適的,不代表永久合適,也不好在之後用已知的結果重新去審視。

小艾的工作

工作的話其實從還在學校的時候就有在做一些小外包的工作,現在想想當時技術能力不行的情況下真的禍害了不少公司。畢業之後和小桐合作接過一些案子。

如果是說正職工作的話,是從 2016年開始的,是在人力資源公司做HR的管理系統,這是到目前的唯一一份正職工作,我覺得這工作對我的心裡變化影響很大,這是一份被擠在管理層、管理部、資訊課、員工之間的屎缺,先不說由於位置的關係必須被迫跟各種惡鬥、背鍋相關聯,還得被迫知道很多作為普通員工不用知道的事情,不是主管職卻得管理之類的,總是有很多無形的精神壓力,絕對不推薦任何普通人去做跟HR有關的職缺,尤其是你的職位還不是當HR。

這也是我之前有時有提過的修羅場,之後加上一些我自己錯誤的決定之類的(心軟?)導致給自己更多其實可以避免掉的壓力,算是多浪費了不少時間,雖然說是在這段期間學到很多跟內幕黑幕有關的東西,但是這段期間內的事情也讓我了解了『不要為了不是自己的公司掏心掏肺』這事情。

現在小艾在一家科技業內當 Vendor,我覺得環境不錯,不用為了公司想太多,雖然很多人認為 Vendor 很操,而且我目前待的也是被稱為很操的公司,不過我沒感受到很操就是了,反正來啥需求我做啥的這種工作還挺好的,下班時間還有做些外包,有空寫寫 Ver7 的程式,算是輕鬆寫意吧。

技術線的話,我是從 VB6.0 到 VB.net 到 C# 目前是 C# 主、Java 副、Python 副,在開始工作之前曾經問過 Cedric 關於如何入門 C++ 的問題,不過開始工作之後技術線發展越來越和 C++ 沒關聯,至今也沒學起來。

如果以我自己看到的方面來說的話,我蠻推薦學 JAVA 這個在很多新欣工程師眼中過時的產物,我見過不少園區內待遇不錯的工作都是要求 JAVA,我曾經待過的一家外資廠商也是用 JAVA,如果會 Oracle DB 或是 Oracle ERP 的話,幾乎是人在家中坐 Offer 天上來的程度。

既然說了 ERP 就不得不提一下,因為有朋友的學校課程教授推薦學 鼎O 的 ERP,我是不知道是被充值還是怎樣,如果有理想有目標的話,考 Oracle ERP 和 SAP ERP 的證照比較實際。

小艾的性格

我自己評論自己的性格的話還蠻難說的,有人說我心機重,其實我自己也承認,我會下意識為了某些自己的喜好而去針對一個人或是一件事情。

情緒勒索是一個一兩年前我還蠻容易對別人做的事情,我總是先假想好一個環境一個對話,然後帶入現實中,期望任何事情都按照我認為的那樣進行,當事情發展不如預期的時候,我會使用言語、行為去干涉,搭配上面說的心機重,這讓很多人受不了我。

對喜歡的人有可怕的控制欲,甚至說對身邊的物品有很可怕的控制欲,和現在的男友交往的一開始那幾年很常因為控制欲而吵架,和情緒勒索屬於同一類型吧?自認這兩個部分為了男友改了蠻多,他也是少數願意包容我那些可怕性格缺陷的人,不過我對物品的控制欲還是蠻嚴重的。

在很多狀態下過於理性,令人感到無趣,即使遇到應該很驚訝、很需要情緒化的事情,也會出現『喔,因為是什麼什麼導致的阿,其實在某某某某的時候也有這樣的例子,巴拉巴拉之類的』這種純分析的反應。

不常使用二分法,我一直都是多向式選擇和支持,我不會因為單一事件徹底否定一家公司或是某個人或是組織,我的描述方式比較像是『某某廠商(組織、人物)的某某產品(觀念、事件)在某某區間(情況、狀態)是不錯的』但是這不代表我徹底支持或是反對。

這個也導致很多時候我給人一種『你到底是不是來幫我的』的感覺,因為知道我這種行為並不討人喜歡,因此我很少對於某些事情某些事件去做評論,這不論在現實生活還是網路中都一樣。

在熟識度最高級別的團體內不論言論還是言語尺度都會豪不羞恥的放大到極限,什麼 龍O 還是 OO 以及 OO 之類的東西都能在公開場合大肆談論,但是到了熟識度只降低一級而已的團體就會立刻嚴謹到一定程度,公司或是不熟的人認識得更是另外一個我了。

小艾版補丁贊助到底有沒有賺錢

講真的小艾曾經天真的覺得可以透過收贊助來製造一點收入,雖然小桐在 2013 的時候就阻止過我,我還是在 2016 那時在發布網頁上放了贊助,但是實際收到的總金額是非常低。

這時要先說一個之前很少講的事情,到底小艾版補丁每月需要花費多少錢,這裡先不計算小艾本身花費的時間,也不計算在小艾自己家裡的主伺服器,單純以需要流量計費的下載計算的話,每月需要 400GB~800GB 的流量,這大小視更新檔大小,重裝補丁的使用者多不多來決定。

這種付費流量是從 Ver 6 開始使用的,在 Ver 6 剛發布的時候使用 AWS S3 作為下載空間提供,容器地區在日本,更新速度飛快隨便都是滿速度跑,每月以 400GB 算要 61USD,以 600GB 算要 92USD,如果那個月比較倒楣更新兩次然後一堆使用者給我重裝補丁以 800GB 算要 123USD。

其實一開始的時候有一小部分贊助者有贊助到 1000,印象深刻的是有一位贊助到 5000 (唯一一位),所以我一開始還覺得如果每一季都有這數字的話,全用 AWS S3 做檔案下載的流量是可以靠贊助的錢 Cover 掉,這也是有些使用者問我為什麼那個時期補丁下載速度很快的原因。

不過這美好情況只有維持不到半年,隨後的贊助降到整個月 1000 不到,甚至掛 0,從 2018 年之後基本處於一個有 100 就偷笑的狀態,有時整月沒有,有時冒出一個捐贈者捐 1000 ,因此現在下載的流量不用 AWS 而是改用每月固定 600GB 的虛擬主機。

要記得上面說的數字只有算流量。

我所知道得很多做免費項目的工程師都有這樣的想法『我有OOOO個使用者,一人捐1美元我就可以靠這項目全職過活了』,這是個美麗的幻想,這些使用者中有 1% 的人願意出錢就是燒了比唐僧還多輪迴的好香了。

而免費項目透過贊助收取營運經費失敗的案例從小到大筆筆皆是,除非像是 Adblock Plus 那樣每次安裝都跳希望你捐贈的介面,否則即使像是 OpenSSL 那樣有很多大型企業使用,甚至包含 Google 這樣的大型公司都在使用他家的東西,然而當 Heartbleed 漏洞出現的時候,大家才知道其實 OpenSSL 團隊收到的捐贈少的可憐。

當然這樣比喻並不是說小艾開發的項目花費多少,而是指連那些出名的開發項目都無法收到足夠的捐款,更別說像是遊戲補丁這樣受眾很小的項目,因此我想對那些才剛剛準備要踏入工程師行列的人說,別奢望能夠透過贊助取得足夠維持項目日常營運的經費。

恩,當年小桐也這樣講過,不過我還是沒聽,這大概就是『人們從歷史中學習到的教訓就是人們無法從歷史中學到任何教訓』的意思吧,當然收不到贊助補丁還是會繼續運作。

下面這是 2018 年整年收到的贊助紀錄。

2018.jpg

雖然不多,不過小艾很謝謝這些在沒有明確提示要叫大家贊助的情況下,只有依靠發布網頁的發布連結就願意進行贊助的人,雖然小艾自己還是補貼不少到這個項目上,但是這些贊助也足夠租用廉價的虛擬主機來分攤下載的流量了。

小桐是誰?男友嗎?

不,小桐從來就不是我的男友。

小桐是我從高中就認識的一個同學,認識的過程比較奇特一點,所以我們友情特別好,簡單的說就是兩個邊緣人湊在一起的概念(為了不爆他的料,大概就點到為止)。不過他一路從比我脆弱到比我堅強,從我照顧他變成他照顧我給我建議,我最早開始寫程式也是他給我的建議,對於以程式開發作為未來的工作或是出路等等的建議也是他給我的。

小桐參與補丁開發的時間大約是 Ver2~Ver5 前期的時間,然後小桐開始用『小桐』名稱回復應該是 Ver 3 之後,當時我和小桐都會使用 rkmabipatch@gmail.com 這個信箱回信,所以當時應該有一些使用者收到的是屬名小桐的回信。

除了程式以外在感情上也給了我不少建議,我在 2013年底到 2014 年初之間有一段很糟的感情(前任),瑪奇上認識的然後見面死,但是又死的不夠徹底......導致我當時被傷得很深,這一段感情也讓我的性格有了蠻大的變化,不過這邊就不展開了。

小桐在 2014年去大陸工作之後就幾乎沒再我聯絡了,雖然缺少一個對我了解得非常透徹的朋友,不過我自己認為每個人都只是其他人生命中的過客,大概就是緣分到了。
(而且他也說過並不想以一個對我過於了解的同性影響我的感情,因為我跟他當時了解對方的程度到了任何認識我們的人都會認為我們是交往的關係)

那麼小艾的男友是?

小艾的男友是從 2014年8月 開始交往,也是瑪奇內認識的,很可愛有點小腹黑難以捉摸的小男友(抱著蹭)。

關於新版本的補丁

這個比較難講,其實 Ver6 的設計原本是足夠使用的,可是小艾當時定了一個比較低的基礎版本,加上 Shadow 其實也不是完全為 Ver6 開發,所以現在出現 Shadow 先掛了,而 Ver6 要小艾手動處理檔案的狀態。

同時順便講一下在 Ver6 上小艾的補丁是怎麼更新的。
基本上當小艾在講 Ver6 的時候指的是 Project DreamCatcher,而在講 Project Shadow 的時候則是講補丁伺服器。

版本代號伺服器端自動更新工具
Ver 6Project DreamCatcherProject DreamCatcherProject Shadow
Ver 5Project GenesisProject Genesis
Ver 4Project Jurassicini + 免空
Ver 3Project Rebornini + 免空


基本上來說在 Ver5 之後小艾的補丁有個專用的伺服器端去進行檔案發布,效驗。
Project Shadow 開發的時間介於 Ver5 到 Ver6 之間,是一個為了讓小艾能方便對檔案進行更新的全自動更新工具。

原本只是要做成讓小艾能一鍵將檔案更新然後放到伺服器上的工具,但是在 Ver6 完工的時候這個工具已經做到能自動下載官方更新檔,解包,拆檔案,改好檔案,包回去,然後等小艾點發布,更新檔就出現了。

然後這裡有個有趣的事情就是 Ver 4 稱為 Jurassic,是裡面唯一沒有未來感的代號,因為 Ver 4 是當時我和小桐一個嚴重的失誤的情況下才出現的,原本並不存在 Ver 4 那個 Jurassic 版本,我們想直接做出來的其實是 Genesis 那個版本,但是當時我的硬碟故障,我們共用的一顆外接硬碟備份檔沒有備份到當時已經製作到一半的 Genesis。

既然講到版本就順便提一下幾個大版本中的轉捩點。

Ver 1 其實指在 Ver 2 正式定調前的所有版本,當時瑪奇一更新版本號就 +1.0 我記得最高到 7.x 都是隸屬 Ver 1 系列,因為當時沒發現我居然已經變成補丁作者,所以做 Ver 1 的時候完全沒自覺,Ver 1 純粹 NSIS 製作,在後期的版本有嘗試用 VB6.0 寫了個能改一部分已經安裝的補丁的設定工具,還有一個很簡易的更新檢查程式。

Ver 2 是我正式意識到我好像不小心成為一個公開版補丁的維護者(作者?)時做的規劃,維持安裝程式使用 NSIS,加入一個 VB6.0 做的維護工具(帶改補丁設定的功能、檢查更新、半殘的更新功能),這個工具在 Ver 2.1 的時候更換成 .net Framework 2.0 (WinForm) 寫的。更新功能由於有 bug 在某個版本之後關閉了。

Ver 3 開始小桐也加入的開發的行列,我們當時做了些規劃,期望能在幾個大版本更新之後淡化補丁需要被重裝的印象,讓使用者習慣使用更新的方式更新補丁,這個版本以 .net 4.0 + WinForm 製作,同時也是第一個內建 HD Eden Theme 的版本,並且這版本也規劃要減少使用NSIS做基礎的這個事情(當時NSIS由於Winamp的問題而不再更新)。

Ver 4 原定計畫是個 WPF 的動態介面 + 去除 NSIS 的安裝程式,按照計畫從這版本開始 NSIS 只做最前面的自動解包,之後安裝程式、維護工具、更新程式完全用自己開發的程式,不過由於上面說的硬碟故障的問題,這個版本變成只有介面是 WPF,安裝和更新以及維護工具都還是維持 NSIS。

Ver 5 就是原定計畫中的 Ver 4,這個版本NSIS 只有作為安裝解包的程式,從安裝程式到維護工具、更新程式都是自製的程式,而且也首次有了個伺服器端用於發布更新,效驗安裝程式。

Ver 6 中做到了推送更新,伺服器端可變動更新結構的設計,這些設計讓 Ver 6 成為了至今壽命最長的版本。

在 Ver 5 和 Ver 6 開發之間寫了 Project Shadow,因此目前故障的 Project Shadow 是個壽命比 Ver 6 還長的程式。

為什麼 Ver 7 這麼難產?

這個問題有一部分跟小艾自己有關,首先是剛好 Ver 6 發布之後小艾隔年一月就開始正職的工作,由於上面說的公司的關係,我下班之後幾乎沒心情寫程式。

再來則是當初為了省事,我沒聽小桐的話將 VB.net 轉進 C# 中,否則其實早在 Genesis 的時候就應該要轉入 C# 進行開發,畢竟當時我們做外包的案件也幾乎都是 C# 開發。

這個錯誤的決定導致我在 Ver 6 開發的時候就遇到了困難,我在伺服器端半引用 VB.net 的組件,因為我不想重寫某些很基本的功能,在使用者端則是保持主體是 VB.net 套件是 C# 的情況,當時 Ver 6 的 C# 占比不到 20%,而 Project Shadow 更是整組都是 VB.net 寫的......。

因此如果小艾決定在 Ver 7 中全部用小艾現在熟悉的技術線製作,那麼我相當於要把從 Ver 2 累積下來的所有程式和 Function 都重寫一遍,加上小艾現在有以前所沒有的程式碼潔癖,使得這過程不是重寫,還是重構。

而現在來說 Ver 7 至少難產了四個版本,現在成功拿出來的樂豆啟動器本身就是一個 Ver 7 的組件。
目前 Ver 7 的技術線已經大致定案,如果順利的話應該能在 Ver 6 死透之前做完。

好啦,也到了 11點半了,以上是這次雜談,談的很雜,隨便寫寫,原本中間有一段關於慣用的物品以及3C冷感症候群,因為覺得不太適合就刪了,有機會再寫吧。
下次更新網誌應該是 Ver 7 發布吧,網誌應該也會搬家,想把 rkmabipatch.idv.tw 的網址統整一下。

back-to-top