我如何在 GitHub 上拿到四千顆星

兩個月前我在 GitHub 發表了一個開源專案,發表後一夕爆紅,在一開始的 24 小時內就得到 1200+ 顆星,目前已累積 4000+ 顆星,這個專案名叫 HTTP Prompt。我想在這裡分享一下它的開發故事⋯⋯
評論
評論

作者 eliang,是個尊重但不怕老婆的 Python 工程師。原文登於 批踢踢實業坊 ,Inside 獲授權刊登。

兩個月前我在 GitHub 發表了一個開源專案,發表後一夕爆紅,在一開始的 24 小時內就得到 1200+ 顆星,目前已累積 4000+ 顆星,這個專案名叫 HTTP Prompt

我想在這裡分享一下它的開發故事。

這一切要先從 Vertica 講起。沒多久前我的工作幾乎每天都會使用 Vertica,Vertica 是一個強大的資料庫,但它官方的客戶端程式(vsql)一點都不強大。另一個 GUI 的選擇 DbVisualizer 也是難用到爆。

我就想起 PostgreSQL 那邊有一個叫 pgcli 的好物,我想如果 fork 它,應該不需要太大功夫就能把它改成 Vertica 版本。最後也如我所想,沒花幾天就寫出了 vcli

我還聯絡了 pgcli 的原作者,告訴他「我用你的東西寫了另一個專案」,他很高興的幫我在他網站上宣傳。但 Vertica 實在是小眾,所以 vcli 並沒有得到很多注意。但至少有了 vcli,我終於能每天快快樂樂的使用 Vertica 了。

vcli、pgcli、mycli(for MySQL)其實都是建於一個叫 prompt-toolkit 的 Python 套件之上。有了 prompt-toolkit 的加持,任何命令列程式因為有了自動完成和語法高亮,都會變得超酷炫,去 它的首頁 看看有多少專案使用它就知道了。

當時有一陣子工作常會需要連接 HTTP/REST API,這應該也是很多人工作的一部分,我相信大部分人應該都是用 Postman 這類 GUI 工具,但身為一個什麼都要盡量用命令列介面的 hacker,用 GUI 實在有點 low,而且跟 terminal 切換起來也不方便。所以我就選擇使用類似 curl 的 HTTPie。使用 HTTPie 的缺點是常需要打很多重複的字,不像 Postman 會幫你記住之前的狀態,我想如果 HTTPie 或 curl 有互動模式就好了。我調查了一下, 原來早在一年前就有人這麼想了 ,甚至 在五年前就有人寫出我心目中理想的工具 了。

但 HTTPie 實在設計得太完美讓我不想放棄它,而且 HttpShell 似乎也沒在更新,所以我也就不考慮使用 HttpShell。

「任何命令列程式受了 prompt-toolkit 加持,都會變得超酷炫」,那我何不站在巨人肩膀上,結合 HTTPie 和 prompt-toolkit,寫出一個有自動完成和語法高亮的 HTTP client,不要求使用者放棄完美的 HTTPie,肯定有賣點。

於是我開始著手開發 HTTP Prompt,我還告訴我老婆,我這寫完至少會在 GitHub 拿一千顆星星。我當時不是隨便推算的。因為 pgcli 都有四千多顆星了,用 HTTP 的人一定多過 PostgreSQL,所以如果我執行得好,吸引一千顆星星應該不是問題。

一開始卡最久是我想找出一個完美的寫法,使得自動完成、語法高亮、指令解析三大模組能用一個統一的 context-free grammar(CFG)解決,但 prompt-toolkit 的作者告訴我這個想法不切實際

所以最終只有指令解析是以 CFG 實做,另兩個模組則分別土法煉鋼。CFG parser 一開始也讓我有點頭痛,幸虧有人寫了一個 現成的 parser

讀過 parsimonious 的程式碼,我只能說這套件的作者功力深厚,沒有編譯器或正規語言的基礎還真寫不出這樣的東西。

prompt-toolkit 已解決大部分的難題,所以除了 CFG 之外就沒什麼特別困難的地方了。我前後大概花了三個禮拜完成基本功能,即發佈到 Reddit/programming,沒多久就登上熱門第一名

Reddit 廣告效益真的很強,HTTP Prompt 初期的流量都是靠 Reddit 吸引進來的。之後星星數愈增愈快,幾乎是每一分鐘都就多一顆星,也成功登上 GitHub Trending 第一名,老婆還幫我拍了一張照片做紀念(上圖)。

Issue 和 pull request 也跟著星星一起來,其中有不少不錯的功能建議,我也陸續加入,在後面幾個版本釋出。

開發開源專案是很好玩的,當你知道很多人正在使用你寫的軟體、給你回饋,你會覺得你在做一件有意義的事。希望這篇文章能鼓勵更多人使用 HTTP Prompt,也能幫助到一些想參與開源專案的人,當然最好是可以貢獻到 HTTP Prompt :P。


ESG 可以怎麼做?導入「點點簽」電子簽名服務,展開企業永續經營第一步

體現企業敏捷效率、展現品牌創新精神,讓點點簽為團隊夥伴創造效率、為客戶帶來友善體驗、為企業創造良好印象。企業實踐永續 ESG 的第一步,不妨就從導入點點簽開始。
評論
Photo Credit:DottedSign
評論

近年來,隨著疫情時代的時局變化、雲端科技的日新月異,「數位轉型」成為當代企業必備的思維與能力;此外,因應全球環境問題與聯合國永續發展指標(SDGs)的討論趨勢,ESG(Environment 環境、Society 社會、Governance 公司治理)也成了企業不可迴避的經營課題。

無論從何種角度來執行,例如建立線上敏捷的工作系統、減少地端成本(無紙化)等,都能讓企業在持續強化市場競爭力與環境永續兩者間獲得雙贏。回顧疫情期間遠距辦公的經驗,不少企業積極導入線上協作平台、電子簽名等服務,縮短團隊遠距辦公的距離;不過可惜的是,也有部分企業在疫情暫緩後又回到過往傳統的工作模式,其中又以「恢復紙本簽署」為最常見現象。

其實,企業若能善用電子簽名服務,不只能加速簽署流程和提高營運效率外,更能解決紙本、時間、郵寄等成本,邁向企業永續經營。本文以國內知名電子簽名品牌點點簽(Dottedsign)為例,細數電子簽名能為企業帶來的三項永續好處。

Photo Credit:DottedSign/知名電子簽名品牌「點點簽」是企業邁向無紙化、實踐永續的好幫手

更友善的簽名體驗:比傳統紙本流程快 80% 的時間

不少企業會有「紙本合約」的迷思,認為紙本簽名才正式、安全,且有實體文件可歸檔留存,較為安心;事實上,企業使用電子簽名服務不只能加速簽署流程,甚至相比於傳統合約寄送往返的方式,更加安全有保障,也更易於歸檔管理。去年國內受疫情影響,導入電子簽名服務「點點簽」的企業便大幅提升200%,顯見國內企業對電子簽名的認知度及接受度逐漸提高。

而能讓企業從長期培養的紙本習慣轉換成線上簽署的原因,除了疫情促成外,莫過於電子簽名能提供比傳統紙本更友善、更便捷的簽署體驗。只要有一台電子裝置(電腦、平板、或手機),就能藉由點點簽完成無論是遠端、當面或臨櫃的簽名工作,且從創建文件到指派簽署者只需不到一分鐘,簽署者更可依照簽署欄位直覺的完成簽署,大幅降低簽署錯誤率之餘,也省去傳統紙本列印合約、親簽完成後寄回,或親簽後掃描回傳的繁縟流程,有效節省人力和時間等隱性成本,將時間專注在關鍵的任務上。

此外,雙重身分驗證的保護機制,能在傳遞過程中加密嚴防駭客竄改文件,且簽署完成即壓上數位憑證(Digital certificate),能證明文件乃經由當事人線上簽名且未被他人更動。點點簽具備完整的資安守護措施,不必擔心紙本合約遭中途攔截或人為毀損,或是有偽造簽名之虞,讓簽名這件事比過去更加快速、也更加安全。

Photo Credit:DottedSign/點點簽電子簽名有效節省時間人力與紙張成本,讓團隊能專注在重要任務上

更流暢的營運效率:團隊數據分析、文件標籤歸檔一秒完成

數位轉型、永續發展不只是口號,更是推動企業前進、產業進步的力量;如何藉由合適的線上工具落實數位轉型,同時確保其營運策略能夠結合環境永續,更是企業刻不容緩的議題。而電子簽名的多元性及便利性,正在企業營運層面扮演相當重要的一環,無論何種團隊規模及企業需求,皆可藉由導入電子簽名服務「點點簽」集中控管文件權限與資源共享,為管理階層提升效率,即時掌握重要合約的相關進程。

說到點點簽的強項,就不能不提「支援多人簽署任務」的功能特色。用戶在點點簽發起簽署任務後,可指定簽署人的順序,確保流程正確不漏簽或誤簽;也可即時追蹤簽署進度,系統將會自動提醒簽署人在期限內完成簽名。

為了協助組織管理者能更有策略地管理團隊 ,點點簽也提供視覺化的團隊數據分析,組織管理者可藉由團隊數據介面中的「完成文件總數、文件拒簽率、平均簽署完成時間」等數值掌握每位團隊成員手上負責的文件簽署狀況,進而提升團隊效率;其他包含控管成員權限、共享範本等功能,則能協助管理者邁向更高效的營運模式。

尤其針對企業內業務、法務、財會等時常需要處理繁雜文件,更可善用點點簽中的標籤功能,輕而易舉地為已簽署文件標籤歸檔,利於往後即時調閱資料,不必在紙本堆中翻找。總體來說,點點簽不只能確保簽署流程不出錯,更協助企業在營運上更順暢。

Photo Credit:DottedSign/點點簽,為企業提升簽署效率、創造營運價值和邁向永續經營

更美好的永續經營:節省紙張、時間、人力,專注創新成長

據國外知名期刊 FinancesOnline 指出:

長期來看,企業從紙本轉移到線上簽署的成本可節省高達 78%,其中包含可觀的紙張、時間、營運等成本。

關於這點,點點簽的客戶實務經驗可以證明。事實上,每使用點點簽完成一次線上簽署可替公司省下新台幣 36 元的時間與材料成本,且將簽署流程數位化能大量減少紙張及碳粉的使用;據統計,每省下 10,000 張紙可以拯救一顆樹。顯然,點點簽協助企業實踐低碳目標外,更是為地球環境盡一份心力。

另一方面,企業使用線上簽署服務不只能縮短傳統文件往返的等待時間,也能為企業帶來良好的品牌形象。舉例來說,在前線如業務、商務開發人員、諮詢顧問等單位,即可使用線上簽署與客戶打造遠端簽署的情境,維繫與客戶的關係外也利企業掌握關鍵商機。同時,團隊也因導入線上簽署而省下隱性成本,讓企業騰出人力資源,專注創新成長,培育人才達成永續經營的目的。

綜合以上所述,企業須將數位轉型和永續經營納入長期營運上的考量,而導入線上簽署可視為第一步。點點簽(DottedSign)為凱鈿行動科技旗下的電子簽名服務,提供 SaaS 和 API 等解決方案供企業彈性選擇。歡迎使用點點簽,為您的企業提升簽署效率、創造營運價值和邁向永續經營。落實環境永續 ESG 的第一步,不妨就從導入點點簽開始。