椒盐豆豉

读《System Design Interview Volume 2》

July 23, 2024
喜欢就买 | 重启电脑
software engineer | career | reading | 导读 | code

上回说到我激情读完码农 system design 面试准备必备手册「优秀简笔画火箭教程 System Design Interview」,案例很经典也深入浅出比网上零散看视频准备系统很多,于是立刻激情买了 volume 2。今天草草翻完了。

为什么是草草翻完呢,因为看了几章发现远不如第一本有概括性,许多案例都非常需要 domain knowledge,这种东西你做过的话大概看一遍是很好的复习,但如果不是真的相关组的话也基本不可能问,如果没做过硬背书去面试也得跪,就比第一本满地高频的 niche 很多了。全书 13 章 400 多页基本只有 Proximity Service 和 Hotel Reservation 比较普适,稍微跟游戏沾点边的公司的话 Gaming Leaderboard 那章也可以看看。倒是 GeohashingSorted Set (skip list) 等几个知识点值得一学。但如果已经知道这几个关键字了直接去网上找相关资料即可没必要买全书。

面试的话还是建议精读第一本。第一本和第二本不是递进关系只是不同案例,第一本的案例高频多了还囊括了一些高频基础知识。本来想说有用的东西没第一本书多就不发读书笔记了,不过像第一本的读书笔记一样,反正写一遍笔记是我自己的复习过程,从 notion 里复制过来又不需要单独排版,索性直接发上来好了。只把我觉得有代表性的 Proximity Service 全章写了笔记,其它零散的知识点我单提出来了。

...


优秀简笔画火箭教程——读《System Design Interview: An Insider's Guide》

July 14, 2024
喜欢就买 | 重启电脑
software engineer | career | reading | 导读 | code

准备面试时候看了被同侪们多次提到的的 Alex Yu 的 System Design Interview: An Insider's Guide,比意料中实用。开始看头几章科普时候还会担心讲得太浅,到实际案例的时候就发现深度不错很适合一小时面试的 scope,而且意外还学到了些新东西,面试倾向的又不像 DDIA 挖那么深所以好读很多。选的案例也都很经典(除了最后两个个人觉得有点偏),而且有层层递进关系看得甚至有点小爽。书里给的 get buy in - estimate (这个环节我不喜欢) - dive deep - wrap up 的面试套路也挺有启发。总之全书看下来比零散地看没深度的 YouTube system design 讲解系统多了,立刻就去买了 volume 2。豆瓣短评里说简笔画火箭可太贴切了,但没办法就是要考,还是很实用的。

因为自己本来就要写一遍 bullet points 读书笔记作为给自己面试的复习材料,写都写了索性分享出来。

第二本的读书笔记我后来也写了在此

...


给 Hugo 博客的代码区块更换主题

June 17, 2024
重启电脑
tutorial | hugo | code | blog

前阵子写「博客装修小记之三」)的时候突然意识到 Hugo 默认的代码高亮区块主题 monokai 在我博客的浅色主题里下显得很突兀,遂想换成个浅色的。对 syntax highlighting 一无所知的我本来以为在模版里改几行 css 就好了,没想到稍微看了一下发现因为 hugo 和所用 highlighter 文档不怎么样,埋得还挺深,颇找了一番才改好,顺手写一下给大家省省时间吧。

...


静态博客一年啦!Hugo 装修小记之三

May 31, 2024
重启电脑
tutorial | hugo | code | blog | 复盘

不知不觉从 Wordpress 迁到 Hugo 竟然已经一年了,本非建站博主竟然装修笔记也已经写了第三篇([一], [二])了,果然静态博客前端代码好改就会忍不住开始折腾,想要的功能发现没有就会随时加上去,又积攒了写各种小修改,趁着静态博客一周年一起发了。会首先像半年时候一样总结下半年来的新内容,想看装修笔记的可以直接前往装修环节

...


如何给 Hugo 博客添加热力图

January 4, 2024
重启电脑
code | hugo | blog | project | tutorial

之前一直想给博客添加一个 GitHub/豆瓣风格的热力图。纯靠 GitHub commit history 的话因为有工作和 side project 的 commit,以及一篇文章可能会有多个 commit 改错字,并不能很好地体现博客实际的产量。但由于对用代码画图以及 hugo 语法不熟悉以及我太懒Hugo 文档写得太烂,外加搜了几分钟没找到现成好用的插件,就一直拖延掉了。这次终于着手改出来一个跟自己想要版本很接近的东西,希望对想加类似热力图的博主有帮助。(静态博客果然会不可避免地走上装修博主的道路吗……)

...


Add random post picker to Hugo without json index

September 20, 2023
重启电脑 | English
code | project | tutorial | hugo | blog

I want to add a random article picker to my blog as another way to discover past posts, aside from categories and tags on the right side and making it easier on mobile.

I couldn’t find a simple enough solution that suits my needs after brief Googling. The options I found were either to randomize at build time, which means the article doesn’t change with each click or refresh, or to generate a JSON index, which I had trouble with probably because my lack of understanding of Hugo.

I thought such a simple feature should be achievable with just JS + HTML, so I decided to write my own. Performance shouldn’t be an issue for a blog with a few tens to thousands of articles. Here’s a solution I came up with for reference.

...


给 Hugo 博客添加随机文章入口

September 20, 2023
重启电脑
code | project | tutorial | hugo | blog

我想给自己的博客加一个随机文章入口,作为页面右边的分类和 tag 之外的另一个发掘文章入口,移动端也更容易。在网上一搜,Google 第一页没有看到太显眼的简单适合我博客的答案:要么是最简单的 build time randomize,不能每次点击/刷新都出新文章;要么要生成 json 索引,对 hugo 语言和 config 不是很熟悉的我折腾了一下没搞出来,遂放弃。

想说这么简单个功能不至于不能纯拿 JS + html 写吧,博客少则几十多则几千的随机数性能应该也不成问题,随自己折腾出来个方案供大家参考。

...


什么是链接追踪,如何简单规避 UTM

September 17, 2023
重启电脑
code | project | tutorial

在大众对上网隐私问题逐渐关注和各种公司变本加厉收集用户隐私、隐私泄露事件层出不穷的今天,互联网甚至传统行业(如汽车)的隐私收集无处不在,普通用户很难躲避厂商花招频出的追踪手法。不过,作为最常用一种追踪方法,UTM(Urchin Tracking Module)链接追踪的规避还是相对容易的。本文就来介绍一下什么是 UTM、如何规避这种链接追踪,以及提供一款逻辑简单的 Chrome 小插件来方便地在网页端去除链接中的追踪参数。

写这篇文章的起因是,昨天和女朋友一起在手机上看 B 站视频,期间想到个段子,我想让女朋友发视频链接给我好做 reference,女朋友犹豫了一下说 app 分享会有追踪隐私问题不大想用。B 站账号几百年前注册的中国手机早已停用所以大概连月活都算不上的我突然来了兴趣想看看墙内 app 的追踪有多凶,就让她把链接发来然后从头到尾解释了一遍如何去掉里面的追踪参数。今早起来遂产生了这么简单的逻辑顺手写个插件吧的想法。那插件写都写了,只能在桌面端用够不到追踪更严重的手机端,干脆顺便写个全套科普好了。

...