我不想管理你的數據

在我的整個職業生涯中,我一直害怕管理數據。 當我想要開發一個應用程式時,我總是默默地想「我不想管理任何數據」。 幾個月前,我正在製作一個小型概念的專案管理應用程式,有一刻我想到「這應該可以成為一個真正的應用程式」。 於是我花了幾天的時間,試圖找到一種在不需要管理使用者數據的情況下開發專案管理應用程式的方法。 但是我找不到辦法,至少對於網頁應用程式而言是這樣。 對於桌面應用程式?當然可以。行動應用程式?也沒問題。 但在網頁上,我們有這個不尋常的負擔。作為開發者,我們不能只開發軟體,還需要管理使用者透過我們軟體處理的所有數據。 因為網頁沒有存儲和數據層。 這真是一個遺憾。 我不想管理使用者數據。 當你管理數據時,有很多負擔。首先,數據被集中在一個位置,所以隨著使用者和應用程式使用量的增長,你需要擴展它。 然後還有安全和隱私方面的顧慮。如果有人入侵我的伺服器並刪除或竊取數據,我該怎麼辦?你需要擔心正確的備份和恢復程序、審計等。 如果你使用的是多個網頁應用程式,就要為其乘以這麼多倍。 瀏覽器在臨時數據方面提供了一個解決方案,例如本地儲存和IndexedDB,但實際上不太實用。 我曾經見過一些在網頁上嘗試這樣做的專案,但真正有效的做法是由瀏覽器管理的數據層。每個應用程式都可以連接到這個數據層,然後有第三方服務與它接軌。 你知道「使用 Apple 登錄」是怎麼運作的嗎?我只需要點擊那個按鈕,整個註冊過程就會自動完成。這真是神奇。 舉個例子,如果蘋果提供了一種從任何應用程式存取 iCloud 的方式,那該有多好。 我可以使用 Trello、Basecamp 等任何應用程式,而這些應用程式使用的數據就是我的數據。我不需要將它們發送到第三方伺服器,它們將存儲在我信任的雲端數據供應商那裡。 瀏覽器將成為應用程式和存儲之間的橋樑,它可以管理所有權限和應用程式介面。 我提到了蘋果,但它也可以是 Google、DigitalOcean,或者任何其他服務商。甚至可以是完全由我們自己「自助託管」的伺服器。 當然,這只適用於某些應用程式的子集。 Facebook 是無法以這種方式建立的。他們需要自己的集中式存儲,因為數據是他們的核心業務。沒有數據,Facebook 什麼都不是。 Google、Gmail 或任何需要協作和多使用者體驗的應用程式也一樣。 但對於那些單用戶應用程式,也就是應該佔到創業者和獨立開發者所建立應用程式的 90% 的應用程式,這會簡化很多問題。 我現在正在使用的 Bear 是一個筆記應用程式,我是在 iPad 上撰寫這些筆記。 它透過 iCloud 與 iPhone 和 Mac 同步。 但它沒有網頁版本,因為… 你無法通過一個網站同步。如果是這樣,網站需要在他們的伺服器上存儲我的筆記。 現在 Bear 並不在乎我寫了些什麼。他們只是不斷地提供軟體更新,但他們並不一定在意數據。 當然,如果他們想要,在意也是可以的。但他們不必要。 所以,關於我之前提到的那個小概念專案管理應用程式,幾天前我想到了「我可以將它做成一個應用程式」。 我必須承認,這個想法已經在我腦海中浮現,因為我最初將它作為一個 Electron 桌面應用程式開始開發,但我停止了工作,因為我相信僅限於桌面可能太過局限? 但這次不同,我正考慮使用 Swift,並通過單一的程式碼庫製作一個 iOS、iPadOS 和 Mac 應用程式。 這樣一來,「夢想」就已經實現了。蘋果提供了儲存數據的工具,你只需要關注開發一個優秀的應用程式。 但是,當然還有一系列問題。第一個問題是,這是一個封閉的園地。 我們可以使網頁更像應用程式。但是肯定蘋果不會在乎。實際上,他們可能會關心相反的情況,因為這將成為他們自己 App Store 業務的競爭對手。也許 Google 也是一樣?...

我用來運行這個博客的技術棧

在本文中,我描述了我運行博客的方式 網站平台 網站托管地點 文章 發佈文章的工作流程 圖片 電子報 書籍 就是這樣! 網站平台 這個網站是使用Astro搭建的靜態網站。 以前我使用Hugo來構建,我喜歡它。不過現在我更喜歡使用JSX創建UI。 像Hugo一樣,Astro非常快速,可以生成快速響應的頁面,可以部署在Netlify或Cloudflare Pages等平台上。這就是我所需的一切。 網站托管地點 我以前使用Netlify來托管,現在改用Cloudflare Pages,因為他們提供免費的無限流量。 文章 我使用Markdown來撰寫文章。有時候我使用Notion、Bear或VS Code直接撰寫。Markdown是一種非常便攜的格式。 發佈文章的工作流程 我儘量多發佈文章。 以前我每天都會發佈,雖然現在我並不是每天都發佈,但我仍然儘量多發佈。 我只是享受這個過程。 有時候我在一個項目上工作,一天內就有三個發文的點子,這些都是我在Google上搜索並找到答案的東西。 我曾經提前一周或更長時間準備好內容,隨時可以發佈,但現在只有在有內容要發佈時才會發佈。 我將所有內容都推送到一個私有的GitHub存儲庫中,通過Git集成與Cloudflare Pages / Netlify同步。 每次向GitHub推送時,網站都會更新。 圖片 我確保所有文章圖片都使用ImageOptim進行了優化,以避免不必要的帶寬使用和提升頁面速度。 電子報 我有一個電子報。有時候我會發送一封郵件,列出我撰寫的文章以及我創建的任何新資源,這些資源可能很有趣。 我使用一個自托管的解決方案叫做Sendy和AWS SES。 了解一下為什麼你應該創建電子郵件列表。 書籍 我撰寫並發布了一系列電子書,可以在我的網站上閱讀或購買PDF或epub格式的書籍。我使用一個名為Honkit的工具生成這些書籍格式。詳細的流程在這裡: https://flaviocopes.com/how-to-create-ebooks-markdown/。 到目前為止,我已經寫了15本書,未來還計劃寫更多。 就是這樣! 我的工具和工作流程總是在不斷發展。 我會儘量保持這篇文章的更新。

我在2017年成為Go開發者的計劃

我知道,現在已經是2020年了。但我在整理電腦時,偶然發現了一張2017年的思維導圖。 根據那些記錄,早在2016/2017年我就有一個目標:成為一名員工。獲得一份穩定、待遇優厚的工作,而不是當一名承包商,從事無數個副業,卻從未發展成盈利的企業。 我希望能夠以Go開發者的身份被一家公司雇用。雖然我精通PHP和JavaScript開發,但對於除了個人項目外的Go經驗一無所知。但是,我對於使用相同技術堆棧開發感到有些厭倦,想要嘗試一些新的東西。 對我來說,現在這個想法聽起來有些瘋狂,因為: 我從未做過員工 那個時候,我已經擔任自由職業者/承包商將近10年了(現在已經超過13年) 讓我不再從事自己的項目的想法對我來說很難相信 但是,對你來說,看到我是如何計劃從對Go一無所知到在幾個月內成為一家公司的Go開發者,可能會很有趣。 我買了一本關於Go的權威書籍:《The Go Programming Language》作者是Donovan和Kernighan。是的,就是那個《C語言程序設計》(K&R)的Kernighan。 這本書非常棒,強烈推薦。 我花了一個月的時間認真閱讀了每一章。每天都學到一些新知識,並將我的筆記整理成博客文章。 我每天發布博客文章,有時甚至一天發布多篇。 我在算法和算法平台上進行了一些小項目的開發。 我開始了自己的項目,它是一個很好的主意,我現在仍然這麼認為。這是一個與GitHub互動的Web應用程序,旨在幫助可視化項目隨時間的進展情況。 我使用Go來構建它,這是一個很好的學習過程。 當你在一個你對之充滿興趣的項目上工作時,學習起來比在學校裡因為獲得詢問而學習要容易得多。 我讀其他人在GitHub上的代碼。我花了幾天的時間在Go論壇上,試圖理解人們寫的內容。 我看了一些使用Go開發的熱門項目(如Docker、Kubernetes等)。 我追蹤了Go領域的每一位主要的「影響力者」,每一位在這個主題上有影響力的Twitter帳號。 我訂閱了我能找到的所有Go郵件列表。 我訂閱了所有關於Go的播客和YouTube頻道。 總之,我整天都在全身心地投入到Go中。 從早上到晚上。 這是一個很好的計劃。 在一些面試過程的後期,它算是有點成功。 但它沒有成功,也就是說我沒有被雇主聘用,因為有1個原因:我並不真正想成為一個員工。 對於自由和獨立以及建立自己的事業的渴望太強烈了,所以由自由職業者/承包商/獨立人轉變為員工的轉變失敗了。 回顧起來,我對此感到滿意。 而且,我可能無法長期成為一個員工。 我仍然了解Go,並且我真的很高興我花了那麼多時間和精力去學習。 這使我成為一個更好的開發者,無疑的。

我如何停止擔心並喜歡上 JavaScript 生態系統

解決 JavaScript 疲勞的旅程 直到幾個月前,我一看到 JavaScript 就會感到焦慮不安。 我完全受困於所謂的 JavaScript 疲勞中,無法擺脫它。 這種情況持續了好幾年。 今天,我喜歡 JavaScript 及其生態系統。 這是怎麼發生的呢? 我從九十年代就開始以某種形式使用 JavaScript,而現在我架上有一些書,看起來在今天顯得非常有趣,書中滿滿的 document.write 陳述。 大概是在 2012-2013 年間,關於 ES6 將會帶來的巨大變化的消息在各處都跳著。 起初,我無法掌握所有事情的進展。我無法一次接受這麼多變化。JavaScript 改變了,但我表示抗拒。學好它已經費了我很多時間,而它卻在我腳下改變。 我在一篇博文的評論中看到一個真實的 點子,它表示“如果你從一開始就一直在這裡的話(對,我就是那個老人),學習現代 JavaScript 會更加困難”: 我會認為,以前(對,我就是那麼老)在那裡是更加困難的 - Tim Tate 我在 2012 年正式開始深入研究 JavaScript 和 Node.js,之前從未經歷過像 ES6 這樣的語言變革。此前一個重大變化發生在 2009 年的 ES5。ES6 徹底改變了一切。它是 JavaScript 的一次巨大改進,每天你都會遇到很多可能出現在 ES6 規範中的新功能,但你真的不知道它們是否真的會包含進去,需要每天跟上進度,其他人在推特上都在談論這些也許會成為下一個大事的東西。 var 被抛棄了。 function 不再存在。 花了很長時間才學會的原型繼承,被類(class)的奧妙所覆蓋。 這只是冰山一角。整個 JavaScript 生態系統在過去幾年中發生了巨大變化。 建置一切事物 正在發生的一個重大轉變是"建置"。 我們從一個非常簡單的東西(使用 script 標籤引入 JavaScript)發展到需要構建步驟將我們的語言編譯到某個難以理解的巨大文件中。起初我強烈抵抗,我站在我的塔樓上,拿著大砲抵抗建置的部隊。 但當 Babel 軍力出現時,我起初更加抵抗,但最終我舉起了白旗,並加入了敵人。 我意識到 Babel 不僅僅是一個引入未來、邊緣功能的時髦庫,而是在未來可以使用作為 ES2017 的工具,同樣地適用於 ES2018、ES2019 等。無路可逃。擁抱未來,Babel 是你的朋友。...

我如何運行小的JavaScript片段

我在測試或嘗試新事物時運行JavaScript的工具 在學習和嘗試使用JavaScript時,我每天都會運行一些小的JavaScript片段。 有時候我只是打開Chrome或Firefox的開發者工具視窗並在那裡輸入代碼。這很適合嘗試一兩行代碼,但如果你需要花一些時間在代碼上,它很快就會變得有點棘手。例如,如果你聲明了一個const變量,你需要刷新視窗來重新運行它。 有一個很棒的VS Code擴展叫做Quokka.js。這是一種在編輯器中測試JS片段的好方法。 我使用的另一個工具是RunJS,一個小巧的Electron應用程序。 你可以在左邊輸入代碼,應用程序會在右邊顯示結果。 代碼在你輸入時即時評估,所以你不需要按下“運行”或在試驗時遇到阻礙。 它可以測試瀏覽器和Node.js代碼。 只需要設置一個工作目錄,讓它在node_modules文件夾中找到它們,就可以導入Node模塊。或者你可以在“Action -> Install NPM packages”菜單中安裝npm包。 它支持TypeScript和Babel。 目前僅支持macOS,但我相信在Linux和Windows上也有類似的工具。

我如何錄製我的影片

這是我對自己錄製影片過程的詳細描述,主要是作為自己的參考。 最近,我開始製作一些程式設計影片,一部分是螢幕錄製,另一部分是有我小小的圖示出現。 我真的不喜歡那些只有聽聲音而看不到人的程式設計影片,我認為那樣會更有人情味。 自從我開始錄製影片以來,我已經多次改變了設置,這篇文章試圖描述我是如何進行這些事情的。 我有一台 MacBook Air,我用 ScreenFlow 來錄製我的影片。起初,我使用 iPhone SE 來錄製我的面部和作為麥克風。 然後,我改用我的舊 Nikon J1 相機,畫質好得多,但問題是它沒有翻轉螢幕,有一次我講了 20 分鐘的話卻沒有錄到,我都沒有意識到。 為了獲得更好的音頻品質,我買了一個麥克風,Samson Meteor。絕對是個很棒的麥克風。 它有一個內置的監測器,我可以: 听到錄音是否正常; 更好地沉浸在影片中,它可以有效地阻隔外界聲音。 當我決定要「認真對待」這個事情時,我買了一台數位單眼相機,Nikon EOS 200D。入門級的數位單眼相機,但我需要的功能它都有:翻轉螢幕和自動對焦。 翻轉螢幕是我最感興趣的功能。 它還可以在影片中模糊背景,產生不錯的效果。 我還為它買了一個麥克風,TAKSTAR SGC-598,音質效果非常好。 通常我會將它放在螢幕前面,錄製我的程式碼: 然後我買了幾個燈光,用於晚上錄影或者當光線不佳的時候。我並不總是使用它們,這是其中一個: 我還買了一塊綠幕板,可以錄製很酷的影片,但我還没有使用過。為什麼呢?因為流程越簡單,我就能製作越多的影片。這就像撰寫部落格文章一樣。 所以,到今天早上為止,我的錄製工作流程是這樣的:開始 ScreenFlow 的錄製,獲得螢幕影像和來自監聽器的音頻,同時開始相機的錄製。 錄製完成後,我從相機中拿出 SD 卡,將其插入連接到 Mac 的 usb-c 集線器中,然後將影片導入 ScreenFlow。兩個影片的音軌幫助我同步這兩個錄製。 這種方法的問題在於相機的錄製時間只有 30 分鐘,所以我必須重新開始錄製(也許有某個設置,我沒有仔細看),而且 SD 卡插拔也變得很麻煩(相機也可以通過 Wi-Fi 下載影片,但這也不是很方便)。 前一天,我隨機搜尋了一下「如何將 Canon EOS 用作網絡攝像頭」,然後我找到了 這篇非常棒的 Swizec 文章。 你可以在那篇文章中找到所有的細節,但簡而言之,我保持這兩個應用程式開啟: Camera Live CamTwist 我的相機通過 USB 連接到 Mac,作為視訊輸入的選項出現。 有了這個系統,我可以將數位單眼相機用作網絡攝像頭,這很酷,因為這是我能找到的最好的攝像頭!

我成為內容創作者的故事

我們正處於內容創作者的時代,這是一個用來識別獨立在互聯網上工作的幾乎所有人的“行銷術語”,從事與信息和內容有關的工作,不是作為自由職業者,也不是作為一個幫助其他企業的業務,如SaaS產品、出售主題、插件或服務的業務,而是以任何形式創造“內容”。 我不認為自己是一個創造“內容”的人,更像是一個教育產品的創作者,但這就是現在的情況。 現在是2021年,我是一個博客作者和課程創作者。 這是我的全職工作。 我是如何到達這個地步的呢? 故事始於2007年。我創建了一個用意大利語寫的博客,並在其中記錄了我在內容管理系統和博客軟件領域的學習之旅,這個領域當時正變得流行起來。 我還開始與一個網站合作創建指南和教程,這幫助我樹立了專家的形象,找到客戶,並啟動了我作為自由職業者的事業。 我創建了一個關於如何使用內容管理系統的視頻課程,但銷售量不夠,不能立即讓我成為一個內容創作者。 那時候時機不對。 於是我決定專注於建立我自己的軟件業務,不管是基於移動應用、SaaS還是簡單的承包。目標是建立一個能夠產生循環收入的獨立業務。 但這一切都沒有發生。 快轉到10年後的2017年,我再次開始博客工作,這次是在學習一門我非常喜歡的編程語言的同時。我發現通過教學和寫博客來學習是我最好的方式,這可以幫助我在腦海中鞏固知識。 另一個目標是在這個領域中樹立自己的專家形象。 2018年初,我把話題轉向JavaScript和Web開發,博客開始增長。 2018年中期,我創建了我的第一本電子書,不久之後又創建了我的第一門課程。 那是我多年來創建的第一門課程。到目前為止,我已經創建了9門課程。每一次,我都試圖比前一次做得更好。在過去的3年裡,我學到了很多東西。我學會了如何創建和設計課程,如何在市場中樹立自己的位置,如何推廣課程,以及如何發布課程。 最重要的是,我學會了如何幫助人們在他們的專業領域取得更好的成就。 對於任何想做我現在做的事情的人,我有什麼建議? 這是一場長期遊戲。你不能重複在互聯網上讀到的成功故事。那些只是例外。準備好長時間免費工作。 保持一致是關鍵。我經常會遇到這個問題。我開始新的事情,做了幾個星期,然後失去了熱情。 熱情是關鍵。你不能強迫自己長時間做一些你對之沒有熱情的事情。如果你只關心錢,而不是因為這是你喜歡的事情,即使不給你錢你也會做,那麼你會放棄這份工作的。 祝你好運!

我把我的課程平台搬到 Notion 上

我花了 2 個多月開發了一個用來提供 JavaScript 課程的 web 應用程式。它是使用 Next.js、NextAuth.js、Prisma、SQLite 等優秀技術構建的。 然後我意識到我失去了對重要事物的關注,那就是內容。 於是我將它轉換為 Notion 網站。 這就是它的外觀: 我在過去幾年中有時使用 Notion,但今年夏天的一天,我決定全力以赴。 我將我生活中的一切都添加到了 Notion 中,並且擺脫了多個重疊的應用程式。 然後我發現你可以將任何頁面共享為網站。 在 Web 上共享一個頁面可以讓 Notion 成為我見過的最好的內容管理系統。我見過很多系統,但它是如此容易更新頁面,幾乎是即時的,非常新鮮。 而且還有一些工具在此基礎上提供了一些功能增強,比如 Super 或 Potion。這些工具讓你可以創建快速、靜態的網站。 在我的自定義解決方案中創建網站和內容之後,我開始將所有東西都搬到 Notion 上,並且非常開心。 這是我第一個使用這種技術棧的課程。 對於之前的課程,我使用了使用 Hugo 構建的靜態網站,但是升級到更高的層次很好。 我是一位開發人員,但我並不總是需要編碼。 在製作東西時,無代碼或低代碼是一個很好的幫助。 我還在考慮使用 Notion 和 Super 來製作落地頁面。它們非常容易通過預製的塊(如價格、推薦評語等)來創建落地頁面,這類似於 Webflow,只是你可以在 Notion 中管理所有內容。 即將推出的 JavaScript 課程將成為第一個測試並使用該系統的課程。和其他一切一樣,這都是一次測試。 我不知道它是否會取得成功。可能會成功,也可能不會。我們拭目以待。問題可能會出現,我會尋找解決方案。然後我會決定是否值得,以及將來是否會再次使用。

我是如何決定創建一個新的專案管理應用程式的

在過去的幾年中,我建立了許多應用程式。其中大部分是為iOS開發的,一些是為Mac,還有一些是為Web開發的。回顧過去,其中大部分都只有一些小型的目標,但有些很有前途,比我想像的還要大。但它們最終都未能成就。隨著時間的推移,我把所有這些項目都放棄了。 其中有一些應用程式可能只是能夠“存活”,但軟體最終會像水果一樣過期。如果你不不斷更新以符合作業系統的使用者介面並持續維護它,軟體就會消亡。 在過去的幾年裡,我專注於教導開發者創建Web應用程式,這是我找到巨大個人滿足感的地方。 這也是我未來計劃將所有注意力放在的地方:成為一位計算機編程教師,並每年組織我的JavaScript全棧訓練營。無論是在不久的將來還是長遠的未來,我都計劃如此。 但最近我又開始了一個新的應用程式開發。 有人說“不要從一個想法開始,而要從一個問題開始”。 事情是這樣的:我當時同時在進行許多不同的專案,而我希望有一種很好的方式來管理它們。 我接下來要在我的電子元件探索之旅中做什麼?我上一次做了什麼? 為什麼我停止了那個木桌專案?哦對了,我需要開車1小時去商店。 我要買什麼東西來完成車上新電池升級的計畫?哦對了,我已經放在亞馬遜購物車裡了。 我正在對JavaScript訓練營的課程進行重構,進展如何? 我找不到一個好的專案管理應用程式來幫助我,所以我使用了一堆不同的工具,如白板、紙張、電腦上的筆記、Things、WorkFlowy和MindNode。 這些應用程式都很不錯,但它們並不能完全解決我的問題。我可以用它們來解決我的問題,但是…不行。 於是,我開始研究人們通常用於專案管理的工具。噢,對了,我指的是專案們的管理。同時管理我所有的專案。 我在網絡上到處搜尋,但我找到的要麼都是待辦事項應用程式,要麼是團隊專案管理。是的,我也可以自己用這些工具,但這些工具都假設你與團隊一起工作。 為什麼呢?為什麼我不能有一個一流的使用體驗,而不需要那些專為團隊使用的功能,這些功能只會增加我的認知負荷? 我也在Twitter上詢問了,但沒有什麼結果。之後我又放棄了這個概念幾週。 然後幾天前的一個晚上,我重新開始思考這個問題,因為我意識到自己又在同時進行太多的專案了。我總是如此。我不能一個項目從頭到尾完工,我總是同時推進多個項目。這就是我的方式。 一個晚上的晚上11點,我開始在紙上畫一些東西。我畫畫很差,所以我不會向你展示結果。 然後幾天後,傍晚時分(我最有創造力的時間),我打開了Balsamiq Wireframes,開始畫一些畫面。 這個應用程式非常棒,因為它讓你能夠在不被細節困擾的情況下工作在概念上。我喜歡它。 過了一段時間,我準備好了兩個畫面。專案列表和專案詳情頁面。 沒什麼花哨的,沒有突破性的東西。 沒有商業計劃。沒有商業模式畫布。 說到這個,我必須說自己是一個獨立開發者,我喜歡閱讀工作在應用程式上取得成功的故事,不管是在使用者、產品市場適應或者獲利方面都成功了。 其中一些故事很令人驚奇,我尤其欣賞那些一個人獨立開發出了一些有意義的東西,這些東西現在為他們提供全職收入。 我很幸運,因為我通過我的線上編程培訓課程賺取了全職收入,所以我對這個應用程式沒有任何金錢上的期望。 我過去創建應用程式的所有嘗試都是嘗試創建一個可以成為我的全職收入的業務。 我認為這是一個關鍵的區別。金錢創造了某種期望,而99%的應用程式無法滿足這些期望。 去除了金錢因素之後,還剩下什麼? 那就是手藝。 我想創建這個應用程式不是為了出售它,也不是為了從中致富,而是要創建一個有用的軟體。一個美麗的軟體。 首先,我會每天使用它。 然後也許我也可以將這個應用程式發佈給公眾,看看是否有人喜歡它,但主要目標是為了自己建立它。 這就是我將基於的所有需求。我不在乎其他人是否需要額外的功能,因為我只想建立一個根據我對應用程式應有特性的概念而打造的應用程式。 如果這使應用程式足夠吸引人,讓其他人也找到它有用,那就太好了。 但首先,它必須成為我夢寐以求的應用程式。 我建立和維護的每一個應用程式都必須是我每天都在使用的應用程式。 對我來說,這是唯一的方法。我無法想像,基於我過去的經歷,我會去開發一個對我來說沒有用處的應用程式。不只是有用,而是必不可少。 我認為這種應用程式是必不可少的,就像對我來說,思維導圖、簡單的待辦事項清單和日曆一樣必不可少。 我想要使用Notes來記錄快速筆記,MindNode和WorkFlowy來整理思緒,但是當要管理一個專案時,我希望使用我的工具。 我會每天使用它,以俯瞰整個專案,看看我正在主動工作的專案,我暫停的專案,我完成或取消的專案。 我會用它來決定我當天要工作在哪個專案上。除非有一些期限緊迫,我可以自由決定該做什麼工作。 我會用它來查看專案的當前狀態,它的下一個里程碑和到目前為止的時間軸,還有其他詳細信息。 我會用它來回顧我的進展,當我問自己“過去幾週我完成了什麼?”時。這對我來說很有說服力,因為我記性不好,往往會忘記我完成的工作。 看,我會用它做很多事情。 這使得它值得探索,儘管這樣: 我真的想要這麼做,這不是幾天之後就消失的一時興趣 我真的願意為它的創建和維護付出多年的時間 讓我們看看。 更新 2023:放棄的專案 😄

我從我的博客中移除了 Google Analytics

很長一段時間以來,我一直使用 Google Analytics 來追蹤分析我的博客。 這是一個還算可以的解決方案。 我從來都不是很喜歡 Google Analytics 作為一個產品。它過於臃腫,擁有大量的功能,而我從未使用過,或者可能應該被隱藏起來需要一個「進階」的旗標。 但嘿,它是免費的。 但是幾天前,我將其移除了。 主要原因是,今年 Google Analytics 在我到現在為止一直在使用的格式(Universal Analytics)將被停用,而新的「Google Analytics 4」將被強制採用。 而且…千呼萬喚始出來… 🥁…對於所有舊數據,並沒有一鍵或自動轉移的選項。 是不是很瘋狂? 這迫使我摒棄了慣性和懶散,重新尋找其他解決方案。 我試了幾種解決方案。 事實是,我從不想自托管任何服務。 我也不想為服務付費。 這個博客的瀏覽量太多了,所以任何托管解決方案都不實際。 我不能花費數百歐元每年僅僅為了查看我的網站有多少點擊。 我並不認為分析對我來說非常重要。 一開始看到有人瀏覽我的網站時,感覺很酷。有時候會有一些峰值,看看人們是從哪裡來的,等等。 我在乎的是網站是否運作良好,而不是有多少人訪問了我的網站。 這對於其他人可能是有價值的指標,但對我而言並不是很重要。 我可以假設有人訪問了網站,剩下的數量我不知道,但是5000和20000之間有什麼差別呢?還是很多人。 看到小型網站增長真的很有趣,但一旦一個網站達到了這個水平,每個月數十萬訪問者,那就…結束了。 無論如何。 我曾經考慮過完全刪除分析,但誰知道,也許將來這些數據可能會對回顧有用。 因此,我設置了一個自托管版本的 Plausible Analytics,這是一個很棒的工具,但我無法為這個博客所獲得的瀏覽量,以及我所有其他網站的瀏覽量,支付其價格。 不過作為報答,我還是支付了一年的托管計劃費用,感謝他們提供了開源且易於設置的版本。