标签 知识 下的文章

粗体的玄学:谈谈 b 与 strong

之前遇到了在一段提示中需要加粗的问题,我们都知道,加粗有几种写法:

  • font-weight
  • <b>
  • <strong>

但是,这三者到底有什么区别——

在大多数场景下,我都会选择使用 font-weight,众所周知的是,HTML 应该与语义结合,如果是一般的加粗,那么使用 font-weight 刚刚好。

- 阅读剩余部分 -

npm shrinkwrap 与 package-lock

从开搞到文章结束过了一个月……所以……看看就行

前两天在一个群里看到一个问题,有人问「yarn 能不能人工锁版本号」,刚开始我们都没有理解,觉得明明直接用 yarn 或者 yarn install 就能生成 lock 文件,为什么要人工生成。

于是被介绍了一个 npm shrinkwrap,这是在 package-lock 出现之前就有的项目依赖锁定工具,实际上效果和 package-lock 差不多,唯一的不同是:npm shrinkwrap 是手动生成的。同样的,在更新包、删除包时也需要在完成后手动使用 npm shrinkwrap

在现代的版本中,如果两者同时存在,那么会优先取 shrinkwrap:

This command installs a package, and any packages that it depends on. If the package has a package-lock or shrinkwrap file, the installation of dependencies will be driven by that, with an npm-shrinkwrap.json taking precedence if both files exist. See package-lock.json and npm-shrinkwrap.

- 阅读剩余部分 -

NAS 入门篇

由于 Time Machine 先后救我于水火之中两次,但是我的路由器实在不方便做,仗着有一点微小的闲钱(2000 块……),我就开始研究 NAS 了。

货比三家

在购买之前,首先先查了一波 NAS 的户口:群晖、威联通、玩客云——玩客云首先由于功能薄弱先 Pass,与其说玩客,不如说是视频+,具体是在什么值得买看到的……Emmmm,一点都不 Server。

威联通的价格比群晖低好多,不过相对的软件生态也不太一样,刚开始苏老师跟我疯狂案例威联通,看了一下价格还算可以,同样的价格群晖的配置比威联通低一点,而且还只有两个盘位,隔壁威联通能买到四个盘位,配置可扩展性也更高一点——但是在 DIY 的黑群的对比下,完全是碾压级别的……便宜。

- 阅读剩余部分 -

[翻译]小心你复制的内容:使用零宽字符将用户名不可见的插入文本中

翻译源:Be careful what you copy: Invisibly inserting usernames into text with Zero-Width Characters

不想读?试试这个 demo

零宽字符都是不可见的「非打印」字符,大多数应用程序中都不会显示这些字符。比如,我在这句话中添加了十个零宽字符​​​​​​​​​​,你能分辨出来吗?(提示:将句子粘贴到 Diff Checker 来查看这些字符的位置。这些字符可以被用于做某些用户的「指纹」字符。)

- 阅读剩余部分 -

别闹!自签名证书!

程序员英语这本书虽然事实证明确实写的不怎么样,但是开头的一些内容还是值得参考的,比如其中的一道思考题:自签名证书会带来哪些危害。

既然说起这个,当然要从最简单的 HTTPS 说起。

为什么我们需要 HTTPS

理论上而言,HTTPS 即通信加密,可以预防窃听和中间人攻击,当然,对于大多数用户和网站而言,最重要的是避免了各层的劫持。

- 阅读剩余部分 -

JavaScript Note.我想插入一个动态的脚本

发现各位观众老爷们要求太高吓得我都不敢更新了……喵喵喵,我明明只是一个笔记本顺便分享一下……的说。

还是安静的当个笔记本吧……

最近两次跌到在同一个坑里,问题其实非常简单,也非常基础,就是——我需要动态加载并执行脚本。

一般来说,我喜欢用 innerHTML 这种简单明快的方式添加内容,但是却发现,innerHTML 竟然无法执行我添加的 <script> 脚本,很明显,这不符合我的预期——

- 阅读剩余部分 -

闲话 CDN

开头

这篇文章通过 FCC 上海线下和成都微信的分享,整理成文字稿顺便凑一下更新,考虑到吃瓜读者们不知道都了解到啥程度,以及我科普作者的身份(自己定的),我决定从入门到放弃的介绍一下,大致涉及:

  • 什么是 CDN
  • 为什么我们要用 CDN
  • 访问原理
  • 架构
  • 应用与踩坑
  • 现实世界的 CDN

由于每个地方都事无巨细讲起来非常费劲,费劲就容易跳票,而且会导致篇幅过长,所以其实都是科普向的,如果想要深入,在每个地方都会给出链接,可以进行针对性的深入阅读。

- 阅读剩余部分 -

使用 Docker 来进行测试

上一篇 egg 的介绍中我们说到测试的问题,测试一直是个让人很头大的问题,不过有了 Docker 以后就解决了很多问题,本文用数据库来抛砖引玉,举个🌰,更重要的是一种思路。

要进行 mock,其实本质思路是一样的,我们需要一个用完就可以卸载的数据库,以便下一次测试使用,他必须对外暴露一个端口,可以读写数据。

为了避免被打,补充一则,本文是基于 app 安装到运行的过程需要 ssh key 或者其他身份认证系统的情况所写,之后会补充常规情况。

- 阅读剩余部分 -

Eggjs 从放弃到开始使用

咦,这篇文章标题为什么反了?

实际上这是个人走过的心路历程,最初看到 eggjs 的时候,我就觉得 Egg 很明显不符合我的审美——我选择 koa 的理由就是小巧精致,all in middleware. 而 eggjs 不是画蛇添足吗?

这次新项目用到了公司自改版 egg,不过其实也就是 egg 多封装了几个 service。

——一开始我是拒绝的。

- 阅读剩余部分 -