大蛋撻
在肯德基食用「巨大的蛋撻」(頭圖)。蛋撻變大之後的視覺效果的確驚豔,平滑的金黃色的蛋液因焦斑的顏色在燈光的照射下顯得金波盪漾。
當然,對任何東西放大縮小並非只是簡單的線性變換,但肯德基在設計上顯然沒有考慮到這一點。這樣的缺陷有二,一是給了塑膠手套和勺子,但用手太燙,勺子又不是非常堅固;二是蛋液顯著比塔皮多,導致在吃了一半之後感覺很油,而塔皮既不脆也不厚,完全沒有解膩的作用——這時候便知為什麼套餐裡有可以加兩三文選的飲料了。
似乎別處的肯德基有售巨大的開心果蛋撻——快餐店是很少見那樣的綠色的,這也讓暗綠色的蛋撻顯得更加誘人了喵。
C++
在用 C++ 完成編譯器的詞法分析。按評測機的要求,只有 Clang 12 用,支援了 C++ 17。
列舉
enum 的 impl fmt::Display
之類的東西似乎要到 C++ 23 才有。C++ 17 要麼手寫要麼用宏,有 Magic Enum。隨手抄了個簡單的宏結果執行時出錯了。
你們念 enum 的時候,是念 i'nju / i'nʌm / a'nju / a'nʌm 哪個
伊曩,伊紐麼瑞特
伊曩,伊紐麼瑞特
我也是這樣的,但是我剛剛才意識到我念這兩個不一樣
迭代器
迭代器也不好用。沒有 slice.window()
,導致判斷兩字元的運算子需要形如 s[i] == '>' && s[i+1] == '='
的程式碼。
沒有 iter.peek()
。流有,見 std::basic_istream<CharT,Traits>::peek
。但是我覺得 getchar()
可能更加不方便。
這樣一來,我還是透過傳統的迴圈來實現了,結果就是指標經常跑飛…
切片
此外跟切片有關的還有 string_view
。然而,regex match 又用不了 string_view,還要再轉回 string。下面是嘗試用正則在 string_view 中匹配的報錯:
還有,unordered_map 建立的時候就要使用 string_view,否則 string 和 string_view 是不被視作同一個型別的。
閉包
C++ 的閉包語法看起來複雜,但是其實用起來很簡單,常用的就是 &
(可修改捕獲的值)和值捕獲。
這麼一想,Rust 折磨人的語法噪音幾乎只有所有權引入的部分。如果你不為多執行緒和記憶體安全所困,使用 Rust 其實可以做到很好的抽象。
本部落格
升級
Astro Astro 5.0 Beta 出來了,content layer 有大改,我覺得不錯。但文件裡說的是 Beta 的狀態要等到 Vite 6.0 結束之後結束,沒提根本沒做完——
怎麼好意思端上來的!
所以目前還是用的 legacy 的內容集合,不過感覺開發時首頁面載入速度已經有不小的提升了。
暗色模式
2024 Refresh 本站目前在部分頁面增加了暗色模式。閣下可以在頁面的右上角切換「亮色 / 暗色 / 跟隨系統」3 種狀態。由於是純 CSS 實現,所以較舊的瀏覽器不支援,這時會退回到預設的亮色模式;此外在頁面間切換,使用者的偏好也不會保留。
自 起,此功能適用於最新的裝置和瀏覽器版本。此功能可能無法在較舊的裝置或瀏覽器中使用。
由於效果還不是很好,所以預設的還是亮色模式。做好了之後會寫篇文章。
除了技術上,設計上也需要考慮很多東西,Tailscale 最近的一篇文章指出了一部分。簡而言之,取反後的顏色在人眼的感覺上並不相同;陰影、禁用按鈕變灰等顏色和樣式帶有隱喻,難以找到替代品……
另外,對 RSS 的生成方式做了些最佳化,現在的 RSS 應該不包含網站的導航條、樣式等無用部分了,令我驚訝的是構建時間居然也減少了很多。
反正你們的破爛閱讀器也不載入我精心寫的 CSS!
隔段時間再翻文件,能發現好多新東西。霍閃 CSS 似乎不支援 LESS、SCSS 等前處理器,並且我有大量的註釋是用 //
寫的,所以暫時先擱置。不過,其降級的思路倒是很有趣,有空我也會詳細寫寫。
評論