程式中時間是如何計算與存儲的?
我一直對程式中日期存在個模糊不可靠的概念,通常依靠方便的庫像是:dayjs 去處理日期轉換,但底層的原理至今仍不是很清楚,只知道時間是相對的,且存儲方式可能是某種標準格式,這篇文章將盡可能補全程式處理時間所需要的知識。關於時區的規則與電腦運算存儲時間的概念。
我一直對程式中日期存在個模糊不可靠的概念,通常依靠方便的庫像是:dayjs 去處理日期轉換,但底層的原理至今仍不是很清楚,只知道時間是相對的,且存儲方式可能是某種標準格式,這篇文章將盡可能補全程式處理時間所需要的知識。關於時區的規則與電腦運算存儲時間的概念。
雖然之前製作過一個筆記網站有建構用戶註冊的部份:my-note,但沒有筆記下來發現忘了很多概念,碰巧看到我看過最簡單好懂的解說影片:You're Storing Passwords Wrong. Here's The Fix - LearnThatStack,把密碼保存相關的知識都紀錄一下。
I realized that I don't fully understand how strings work in Go. Explored documentation to understand the history and evolution of text encoding.
近期在 Go 處理字串時發現對於電腦處理文字的原理不是很透徹,所以翻了更多教學文件了解電腦是如何處理文字的。歷史上電腦如何處理文字?以及後續 ASCII、Unicode、UTF-8、UTF-16 相關演進特點與背後取捨,了解為什麼現代文字編碼都使用 UTF-8。
近期在 Go 处理字串时发现对于电脑处理文字的原理不是很透彻,所以翻了更多教学文件了解电脑是如何处理文字的。历史上电脑如何处理文字?以及后续 ASCII、Unicode、UTF-8、UTF-16 相关演进特点与背后取舍,了解为什么现代文字编码都使用 UTF-8。
When indexing position `n` in a Go string, why isn't the `n`th character returned? In Go, you get a "Rune"; direct indexing gets you a byte.
當在 Go 字串中索引位置 `n` 時,為什麼沒有得到第 `n` 個字元?相較於其他程式語言一串文字在遍歷時會預期拿到單一個字符,在 Go 會拿到「Rune」;如果直接透過索引取得 string 內容會拿到 byte。透過實際解 Codewars 題目了解處理字串要留意的東西
当在 Go 字串中索引位置 `n` 时,为什么没有得到第 `n` 个字元?相较于其他程式语言一串文字在遍历时会预期拿到单一个字符,在 Go 会拿到「Rune」;如果直接透过索引取得 string 内容会拿到 byte。透过实际解 Codewars 题目了解处理字串要留意的东西
When interacting with MongoDB, I encountered unfamiliar syntax in Struct fields. This article explores why Go Struct Tags exist and the problems they solve.
最近在與 MongoDB 互動時發現 Struct 欄位結尾有一段語法不是很熟悉,這篇文章探討 Struct Tag 存在的原因以及解決什麼問題。與其命令式的操縱資料,透過宣告式的方式來描述資料格式是 Struct Tag 的主要用途。
最近在与 MongoDB 互动时发现 Struct 栏位结尾有一段语法不是很熟悉,这篇文章探讨 Struct Tag 存在的原因以及解决什么问题。与其命令式的操纵资料,透过宣告式的方式来描述资料格式是 Struct Tag 的主要用途。
Goroutine 是由 Go 語言本身管理的輕量級執行緒(User-space Thread),而不是由作業系統管理的執行緒(OS Thread)。背後使用 M:N 排程模型。這意味著,M 個 Goroutine 會被分配到 N 個作業系統執行緒(OS Threads)上執行。
Symmetric encryption uses the same key for encryption and decryption by both parties, posing risks such as key sharing and interception
「對稱加密」就是通訊雙方進行加密與解密使用相同的金耀,但除了雙方都要保守金鑰外,怎麼讓雙方都持有相同的金鑰本身就是個問題,存在被劫持的風險(中間人攻擊)。「非對稱加密」透過一對金鑰(Key Pair),也就是公鑰與私鑰來解決對稱加密會遇到的問題。
「对称加密」就是通讯双方进行加密与解密使用相同的金耀,但除了双方都要保守金钥外,怎么让双方都持有相同的金钥本身就是个问题,存在被劫持的风险(中间人攻击)。 「非对称加密」透过一对金钥(Key Pair),也就是公钥与私钥来解决对称加密会遇到的问题。