Ask and Learn

Github Action Checkout 私有库时使用 token 的奇葩问题

Github actions checkout v2 在检出非本库的私有仓库时,token 参数的顺序问题的 bug 引起的检出失败。

rspec 根据命令行参数选择性的加载

在运行 rspec 是,如果希望在指定了特定的命令行参数是才加载某个文件,或者执行某段代码,可以在代码中用 ARGV 来进行检测。

快速杀掉失去响应 rails 进程

在 Ruby on Rails 的日常开发时,有时候不小心写出个坏代码(比如死循环),导致 rails dev server 进程失去响应,这时候如果想杀掉进程,按 Cmd+C 可能没有效果。 除了去 grep ps 或者查看 server.pid 外,还有一个快捷的方法快速结束进程。 按下 Cmd+Z,进程会自动转到后台运行,此时终端上会输出进程 PID

一个分享网页到 Twitter 的 Bookmarklet

Bookmarklet 是什么东西就不多作解释了,我之前用的一个分享页面到 twitter 的 bookmarklet 非常不好用,提取选中文本和解析网页标题时灵时不灵,Google 试用了一圈,也没有找到合适的,本来不是个什么复杂的东西,干脆自己写一个算了。

记一次排查 rails 项目 whenever 定时任务未运行问题

ruby gem whenever 部署后执行失败,通过查看日志,找到原因是环境变量缺失引起的。

使用 capistrano 实现本地编译部署 js 项目

最近一年多经历了两个前后端分离的产品,捷径社区 https://sharecuts.cn/ 和电鸭社区 https://eleduck.com/ 无一例外,都经历了 build 的烦恼,应用部署时需要 build,耗费很高的 CPU 和内存,但是应用跑起来后并不占用多少资源。这导致每次部署时因为资源占用过高,导致部署过程卡死,甚至影响线上服务的访问。为了解决这一情况,受了 ruby china 以前本地编译 assets 然后 rsync 到服务器的处理方法的启发,使用 capistrano 为实现简单的 js 应用部署。大致流程如下。

两则兼容老版本 Safari 的 JavaScript 问题记录

最近上线的远程工作者社区电鸭社区,是使用 nextjs 开发的,有的用户反馈在 safari 10 下面打开会报 500, 但其它浏览器却没有这个问题,有小伙伴给我报告了错误的控制台信息。TypeError: Attempted to assign to readonly property. 然而,没有更细致的错误堆栈,实在是不好定位,千辛万苦安装了 iOS 10.3.1 的 Simulator 后,终于复现了这个问题。

Eggjs 如何在测试中使用 redis mock

eggjs 这个框架对测试的支持还算不错,不过最近在使用 egg-redis 这个插件时,遇到了一些测试上面的问题。 为避免测试互相影响,我会在每个用例后清一次 redis

使用 python3 plistlib 修改 plist 文件时保持 key 的顺序不变

最近一段时间主要给公司维护一个 iOS 快捷指令(以下简称捷径)的社区,其中有个需求是给用户上传的捷径文件插入作者信息和更新步骤。 捷径的文件是一个二进制的 plist 文件,之前用了一个 nodejs 的库叫 simple-plist,不过因为 js 的局限性和这个库的 bug,导致读取捷径文件再修改保存后出现诸多问题,无奈切换到使用 python3 的标准库 plistlib 来修改捷径文件再进行转储,python2 的 plistlib 不支持读写二进制的 plist 文件,所以使用了 python3。

快速分享文件的服务 - Beam It

荐哥今天要给朋友分享一个临时文件时,本来想用坚果云,但是想着分享后,还得确认对方有没有收到,然后再取消共享并且删除文件,感觉好麻烦,于是搜索了下有没有什么临时分享文件的服务,发现了 Beamit 这个神器。

友情链接