假設今天我們要算一個 2 的對數,如
$$ x = \log_2 16 $$
$$ \rightarrow 2^x = 16 $$
我們定義
$$ 10^y=2 $$
把第二式帶入第一式
$$ (10^y)^x = 16 $$
$$ 10^{xy} = 16 $$
根據 log 定義,可以得到
$$ xy = \log_{10} 16 $$
$$ x = \frac{\log_{10} 16}{y} $$
又
$$ y = \log_{10} 2 $$
則
$$ x = \frac{\log_{10} 16}{\log_{10} 2} $$
我們就得到了換底公式:
$$ \log_a b = \frac{\log_c b}{\log_c a} $$
...
自己架站有時候需要了解伺服器的網速實際上有多快,這時可以在伺服器上安裝 LibreSpeed 這套軟體,打開網頁就能測連線到伺服器的速度。LibreSpeed 有 PHP 和 Go 實作,身為 Gopher 當然要用 Go 實作!本篇將以 Go 實作為範例。
Go 安裝 首先要安裝 Go,到 Golang 官網 下載你平台的壓縮檔,Raspberry Pi 選 armv6l,一般電腦要選 amd64,然後將其解壓縮:
...
用兩顆外接硬碟組 RAID 1,設定 DDNS、Nginx,並安裝 Nextcloud,以及後續的 PHP 調校與 Redis 快取。
有次我要開發一個規劃時間的演算法,需要將時間切割成一個一個單位做計算,這時普通的作法會是用布林陣列來儲存每個時間點,然而我需要對時間做一些 AND、OR、NOT 的布林運算,我當時突發奇想,假如用 BigInt 來儲存效能和記憶體都會省下不少,意思是將一個整數視作一個布林陣列,每一個位元就代表一個時間單位,這樣相比用布林陣列,足足省下至少 8 倍的記憶體。我心裡覺得這真是太酷了,於是就一股腦開發基於 BigInt 的演算法。
...
當你在開發一個聊天機器人,有時候為了使用者體驗,你不能要使用者用像指令的方式,將所有資訊一次傳過來。舉例來說,若我們要開發一個猜數字遊戲運作如以下:
user: guess
bot: From what number?
user:: 25
bot: To what number?
user: 100
bot: Guess a number between 25 to 100
user: 64
bot: too small
user: 91
bot: too large
……
user: 83
bot: Correct! You spent 6 times to guess this number.
...
當我們用「翻轉」一詞,其實就已經隱含了單一的價值觀:有錢就是高社會階級
有時候後端要執行一個時間比較長的任務,而任務內容極為複雜,又容易出錯,因此希望讓使用者看到即時的 console log,讓我們函式中的 print 輸出能即時傳到使用者的瀏覽器。
以下將會以 Django, Thread, Queue 進行實做
StreamingHttpResponse 一般的網頁請求都是一次打包好所有資料,全部傳給使用者,有些情況我們不能等到所有資料準備好才一次傳,而要拿到一些就傳一些,這個時候我們就要使用串流輸出,在 Django 裡,就是使用 StreamingHttpResponse,以下簡稱 SHR。SHR 接收一個 Iterator 作為輸入,因此我們只要實做一個迭代器函式,其中每次 yield 就會由 SHR 傳送到瀏覽器
...
這時我才終於體會了老師口中的「有捨才有得」,若無狠心除去那些無關的枝葉,最可貴的美就會被埋沒。園藝是如此,創作又何嘗不是呢?
這些方法也許的確有效,但並不是所有人都能做到我們認為輕而易舉或理所當然的事,當帶著這樣的「母語者心態」看別人,就容易將他人的不成功歸因到不夠努力的結果,卻沒想到也許對方根本做不到。
若是每個現在都會對應到唯一的未來,那每個過去也都會導向唯一的現在,因此回推到宇宙的開端,就可以得到一個結論:現在發生的一切都是在大霹靂時就註定了。那我們所謂的自主意識,也全都只是空談。