椒盐豆豉剪报
2.63K subscribers
1.1K photos
32 videos
4 files
2.01K links
科技、阅读、书影游剪报、导读和吐槽
长文: https://blog.douchi.space?utm_source=t.me/mtfront
Discord 讨论区: https://discord.gg/cESS4JpsdG
Download Telegram
好了朋友们大瓣上架了,去 chrome store 安装
然后到桌面端网页版豆瓣短评页面点一下那个插件图标就可以把短评框变大。
我觉得我起名和 marketing banner 都是小天才(逃

(本来想着代码就一行写个油猴插件就完事了,结果被运行条件搞得有点烦,还是熟悉的 chrome 插件吧。但也确实每次屁大点代码都要水个插件有点烦,思考是不是搞个整合体,但现在写过的东西功能又没多少 UI 整一起也有点莫名其妙就先这样吧)

#project #douban #coding #tool
如何给 Hugo 博客添加热力图

在博友的教程基础上修改样式,添加了定制的鼠标悬停 tooltip 和点击小方格可以进入对应文章的功能。

(更新:很快就有博友在此基础之上做了 Wordpress 版的插件

#blog #coding
TIL:由于压缩算法,小写字母的句子比(首字母)大写省数据

via TLDR newsletter

文章里详细解释了算法细节。当然字符省得本来就很少,如果真的出于节省流量和能源的目的有太多可以先于大小写优化的了。still a fun fact though。

#funfact #coding #newsletter
今天给博客加新功能的时候顺手更新了篇 Hugo 装修小记之二

没想到东一榔头西一棒锤已经装修了这么多东西了!内容包括:

- 新功能:热力图、NeoDB 卡片、随机博文入口、博客前后篇导航、添加嘟嘟和视频 shortcode

- 样式和结构:评论迁移到 twikoo、添加了 Now 页面、添加足迹地图、localhost 排除在 Google Analytics 之外、博客题图说明、友情链接样式和修改文字选择高亮颜色

#blog #coding
为什么(写前端)最好大括号不要另起一行——Javascript 会自动给句末添加分号,导致难以察觉的错误。如:
return
{
key: value
};

// 相当于
return;
{
key: value
};

上面的代码的原意,是要返回一个对象,但实际上返回的是undefined,因为 JavaScript 自动在return语句后面添加了分号。为了避免这一类错误,需要写成下面这样。
return {
key : value
};

为了风格统一,还不如集体统一成句末大括号。

以前都是 copy & paste 风的草台班子 fullstack,最近想趁不上班系统学下前端。读之前收藏的阮一峰 javscript 教程的时候意外收获了新的 TIL(链接的这篇里还有很多有理有据的前端代码风格建议,推荐全文阅读)。以前虽然我也是句末大括号派的但一直没有正当理由,而且以为两种是可互换的。

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

Hugo 默认的深色代码块跟我的浅色博客主题不太搭,于是研究了一下给 syntax highlighter 换主题。拒绝所有事情无脑上 dark mode 保护视力从我做起!

论我为了拖延刷题都能干出什么无聊事儿,本来前两天随手改一下的事儿,现在变出了一整篇博客,都快要丧失非建站非折腾博主的荣誉称号了……

#blog #coding
科技爱好者周刊(第 305 期)里提到的怎么生成真随机数的问题很有意思。

我们都知道编程语言内置的软件随机数都是伪随机数,只要初始种子相同就会生成一样的结果。真随机数需要满足三个条件:1. 无法预测;2. 不能重复;3. 均匀分布

科学家们绞尽脑汁想出了各种方法通过硬件生成真随机数,如:

- random.org 在全世界不数了多个无线接收器,通过大气无线电波(大气噪音,可以理解为大气的布朗运动)来生成随机数

- Cloudflare 在三个办公室部署了不同的随机数生成装置:旧金山办公室放了几十盏不断变化的熔岩灯(图一),需要生成随机数就对着墙拍张照片作为种子;伦敦办公室放着很多单摆(图二),通过它们的摆动和影子生成;奥斯丁办公室则挂了很多彩色反光片(图三)

#fun #coding #visual #newsletter
象友那看到这期 WSJ 做的红极一时的能付房租信用卡 BILT 背后的经济播客就去听了一下。

除了开这卡的人薅羊毛群体高于平均付完就直接还掉导致 Wells Fargo 严重高估持卡人不按时还款能多赚的利息的比例每月亏损几百到上千万刀之外,还有个有意思点是它们去年闹挺大那个被集体盗刷事件(它们还给每个人发了新卡,我没有被盗刷也收到了)竟然是一道经典 security 问题引发的:

生成的付房租的 virtual checking account number 和 expiration date 显然不够随机,导致黑客可以暴力猜出有效的组合然后盗刷。有点好笑…你敢信这是一个美国第三大银行 back 的信用卡公司能犯的低级错误…世界是个草台班子又一次验证。

(都说到这儿了顺便甩个 referral 吧🤣

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

看了一个月的书被我一天半写出来八千多字的读书笔记了我可真棒棒! 本来就要整理笔记给自己当面试小抄,写都写了索性发出来博客(感谢复制出来直接是 markdown 的笔记软件们)。

因为是给自己的提示所以不会像以往的读书笔记一样加很多解释性语言和摘抄,会更简短一些。不过有些书在不同地方提到知识点我可能有移动和合并方便自己复习。有需求的朋友们还是建议先去看原书,本读书笔记只能作为看过原书之后的复习。

祝大家找到又喜欢钱又多的工作!

#blog #reading #career #coding
椒盐豆豉剪报
昨天声势浩大的蓝屏死机影响总结 世界市值第二高安全软件公司 CrowdStrike 昨天推送了一个有问题的安全更新导致全球范围内 Windows 电脑出现蓝屏死机。微软和 CrowdStrike 随后推送了修复。 - 上班族:意外获得了长周末,甚至上了微博热搜 - 旅行:美国三大航空公司 United,Delta 和 American 都有延误,截至下午 5 点有约 9200 个航班延误,有约 2650 个美国航和 4200 个世界范围内的航班取消。有些航司甚至得手写登机牌和更新。 - 银行:JPMorgan…
The Pragmatic Engineer recap 从史上最大 outage 里码农可以学到什么

Root cause:并不是之前网上盛传的 null bytes,是 configuration update 引发了逻辑错误造成 unhandled error

修复过程很慢因为 IT 得手动进入 windows 安全模式并删除肇事文件。随后个人开发者和微软都释出了自动修复工具可以加快修复过程,两天之后 CrowdStrike 表示也在测试新的快速修复手段。

谁该负责?

CrowdStrike,显而易见。但随之而来的问题是:
1. 更新被测试了吗,怎么测试的?
2. 有被员工 dogfood 吗?
3. 有 canary rollout 吗?因为更新本身被认为是“content”而不是“business logic”,它们可能真的 YOLO 了。(这事儿我工作这些年也碰到过不少了,包括 Amazon 的 Sev 0 和特别有名的 Facebook 全系 down 了一整天的 incident)
4. CrowdStrike 是否认为 binary(”content”)files 无法影响 kernel level?
5. 是否忽略过之前类似的 outage?

Microsoft/Windows?在 Mac 上,类似的安全软件只在用户层运行,为什么 windows 允许在 kernel 层?这就引发了第三个罪魁祸首:

政策法规:WSJ 从 Microsoft 得到答复,因为 2009 年微软同意欧盟给安全软件与 Windows 操作系统一样的 access。但这源于 2006 年微软试图使 Windows Vista 更安全。

最后,码农可以从此次事件学到的事:
- 量化所有地方软件 crash 可能造成的影响
- 重新审视代码是如何被部署到 production 的
- Canary/staged rollout
- 把 Configuration 也像代码一样对待(像前面说的一样,光亲眼目睹就看到过两次业界龙头全球范围内的 outage 是这个原因了)
- Dependency/vendors 能未经审核推出什么样的更新?
- Outage 不是一个人的错

#coding #newsletter #tech #Microsoft #导读 #career
椒盐豆豉剪报
优秀简笔画火箭教程——读《System Design Interview: An Insider's Guide》 看了一个月的书被我一天半写出来八千多字的读书笔记了我可真棒棒! 本来就要整理笔记给自己当面试小抄,写都写了索性发出来博客(感谢复制出来直接是 markdown 的笔记软件们)。 因为是给自己的提示所以不会像以往的读书笔记一样加很多解释性语言和摘抄,会更简短一些。不过有些书在不同地方提到知识点我可能有移动和合并方便自己复习。有需求的朋友们还是建议先去看原书,本读书笔记只能作为看过原书之后的复习。…
读《System Design Interview Volume 2》

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

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

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

#blog #reading #career #coding