一開始,其實是為了證明自己。
如果要說 Norelyn 是怎麼開始的,可能得先從一個與軟體公司沒有直接關係的地方說起。
國立陽明交通大學,百川學士學位學程。
當時的我想申請百川。除了學業成績與個人特質,我還希望能拿出一些實際的東西,證明自己具有企業經營、專案管理、組織協調與領導能力。
我不想只在備審資料裡寫自己有這些能力。
我想真的做一次。
而且,我也想知道自己到底能不能做到。
我對電腦、軟體與人工智慧本來就有興趣。那段時間,我也接觸了玻爾 AI(Bohrium)這類研究型工具,開始思考文獻搜尋、研究分析、報告生成等功能究竟是怎麼被設計和實現的。
使用別人的工具很方便,但有時候我會開始想:如果這些東西由我自己來做,會變成什麼樣子?
這些想法不一定都能實現,也不是每一個都有明確的商業用途。
不過,我開始動手了。
Mingmist
最早的品牌叫做 Mingmist。
我開始嘗試把不同的軟體專案放進同一個架構裡,而不是每想到一個功能,就建立一個毫無關聯的新作品。
這件事比我原本想像的麻煩。
因為一個產品不只有功能。
它還需要名稱、定位、介面、文件、版本、測試、部署,以及後續的維護。當產品增加,這些事情也會跟著增加。
有時候,我花在修正舊問題的時間,比開發新功能還多。
有時候,一個原本以為很簡單的功能,實際做下去才發現牽涉到整個系統架構。
我也開始碰到自己以前不太需要思考的事情:不同專案的優先順序、產品之間的相容性、開發資源要怎麼分配,以及究竟什麼時候該停止繼續增加功能。
Mingmist 就在這些嘗試裡逐漸形成。
它不是一開始就有完整組織與產品架構的公司,而是一個由我主導,持續加入新作品、修改舊作品的軟體品牌。
那些留在 GitHub 裡的東西
現在回頭看 GitHub,可以找到不少 Mingmist 時期的專案。
Mingmist Cast 是一個本地螢幕投放原型。我嘗試處理裝置之間的連線、畫面傳輸、工作階段驗證與安全控制。它有實際完成的部分,也有尚未通過驗收的功能。
Mingmist Image Batch 則是另一個方向。
它是一套 Windows 本機圖片批次處理工具,可以調整圖片尺寸、格式、壓縮品質、浮水印與輸出條件。比起建立一整套大型平台,這個專案更接近一個具體的工具:有一件事情需要大量重複處理,因此我想辦法把它做成軟體。
還有 Mingmist Tools。
這個專案集合了 PDF、圖片、文字、資料及字幕處理功能。我希望讓使用者不必為了處理自己的文件,就一定得把檔案上傳到陌生的伺服器。
不同的專案帶來不同的問題。
Cast 涉及網路環境與連線驗證。Image Batch 必須考慮原始圖片不能被意外覆蓋。Tools 則需要處理不同文件格式、瀏覽器限制以及工具輸出的可靠性。
它們並不是同一款產品的不同版本。
後來,我也做了其他東西。
例如 LINE Cleaner,一個在 Windows 上協助整理 LINE 官方帳號的實驗工具。它需要辨識實際畫面,處理清單重新排列的狀況,還必須避免誤操作。
有些作品與我當時的生活需求有關,有些純粹是想探索一種技術能做到什麼程度。
它們的完成度並不相同。
有的只是原型,有的經過多個版本,有的仍有程式碼和文件,但已不屬於現在的主要產品方向。
我沒有打算把這些全部重新包裝成正式產品。
不過,它們確實存在過。
ARCHIVE / REPOSITORIES查看過往作品檔案從一個專案,到很多個專案
隨著製作的東西增加,我開始面對另一類問題。
原本獨立的功能,如果想要放進同一個工作環境,應該怎麼整合?
如果每個產品都有自己的使用者資料、登入方式、設定與權限,未來要怎麼維護?
如果使用者在一個產品裡建立的內容,想要在另一個產品繼續使用,又應該由哪個系統負責保存?
這些問題沒有因為我是一個人開發就變得比較簡單。
Norelyn Workspace、Writer、Sheets、Slides、PDF Reader,以及後來的 Norelyn ID,都涉及不同程度的整合與架構設計。
我也嘗試建立面向學習與教育的產品。
Trace 用來整理學習歷程。Learn 則朝著可以瀏覽、投稿與審核學習內容的平台發展。
另一方面,我還曾規劃 Norelyn Score 與 Class/Organization 相關系統,研究班級成績、組織權限、課程與行政管理等流程。
這些產品並沒有全部按照最初的計畫發展。
有些方向被保留,有些被拆分,有些從正式產品名單移除,但原始專案仍然留下來。
我也逐漸發現,建立一套產品體系,和單純完成很多款軟體,是兩件不同的事。
前者需要處理產品之間的關係,也需要決定哪些東西不應該被整合。
到現在,這件事仍然沒有完成。
Norelyn
後來,Mingmist 改名為 Norelyn。
隨著名稱更換,品牌的視覺、產品分類與網站也陸續調整。
我不會說這次更名讓所有問題都獲得解決。
事實上,有些問題是在產品數量增加之後才出現的。
不同專案使用不同的技術架構。部分功能已經實作,部分仍停留在設計階段。某些看似完成的功能,真正放到不同裝置或瀏覽器測試時,仍然可能出現問題。
我必須決定哪些專案要優先處理,哪些功能值得重寫,又有哪些東西現在根本不應該開發。
有時候我還是會同時做太多事情。
Norelyn 也不是只有一個方向。
我研究過本地 AI Agent、媒體管理、認知系統,也接過實際的網站製作案件。
例如 Norelyn World 是一項與認知、經驗累積及預測機制有關的研究實驗。Norelyn Entertainment 則探索個人媒體資料的整理、匯入與播放。
這些項目未必會成為正式服務。
我也沒有辦法保證目前規劃的每一款產品,最後都會按照現在的樣子推出。
有些設計可能被推翻,有些程式碼可能重寫,也有些專案可能只會留在 GitHub 裡。
關於我
Norelyn 背後沒有龐大的開發團隊。
目前主要由我負責規劃、設計、開發與維護。
我同時也是一名高中生。
學校、考試、作業與其他活動,並不會因為我有自己的專案就消失。
有時候我會在上課以外的時間處理程式問題,有時候則因為其他事情,必須暫時放下正在進行的開發。
我對很多領域都有興趣。
除了軟體與人工智慧,也包括音樂、設計、科學研究,以及一些和程式開發沒有直接關係的事情。
我不太希望自己只能做某一種類型的作品。
但興趣太多也有代價。
時間不會因為想做的事情增加而變多。不同專案之間有時候還會爭奪同一份注意力。
至於管理能力,我現在也不認為只要同時開發很多專案,就足以證明自己擅長管理。
哪些事情應該先做?哪些事情應該交給別人?如何判斷產品是否真的能投入使用?如何在有限資源下維護已有的服務?
這些問題比建立一份漂亮的產品清單困難得多。
我還在處理它們。
現在
最初,我確實想過把這些作品用於百川的申請。
那是當時很重要的目標。
不過,即使不再考慮百川,我仍然想繼續經營 Norelyn。
現在的 Norelyn 已經有自己的產品、網站、開發紀錄和待處理的工作。
我希望未來能以相對精簡的組織,持續開發與維護不同領域的軟體。必要時,也可以讓更多人參與。
但目前還有很多事情沒有做到。
有些產品尚未上線,有些功能需要修復,有些設計仍然不滿意。
GitHub 裡也還留著那些沒有繼續發展的作品。
它們和現在的 Norelyn 都是同一段歷史的一部分。
我會繼續開發。
至於下一個完成的東西會是什麼,現在還不一定。