使用 ddclient 动态更新 Cloudflare DNS Record 实现 DDNS

作者最近在使用一些动态 IP 的 VPS,而这些 VPS 服务商大都因为害怕被攻击而不直接提供 DDNS,而是提供教程让我们自建 DDNS。Cloudflare 动态更新 DNS Record 的方式会稍微麻烦一些,因此大部分 VPS 服务商都不介绍这种方式,这里简单记录一下。确认 libdata-validate-ip-perl 和 socket-ssl-perl 是否已经安装,如果没有安装可以通过以下命令安装。 [...]

阅读全文 »

使用 Electron 破解 115 网盘的登录限制

作者前段时间趁 115 网盘买一送二的活动入了 3 年的年费 VIP,目前使用感觉良好,离线下载几乎是秒秒钟的事情,从网盘下载到本地也可以跑满本地的 100M 带宽。唯一一点不足的就是不能多个电脑端同时登录,于是作者尝试使用 Electron 来破解这个限制,发现效果还不错。115 网盘在电脑端的登录限制规则,跟 QQ 类似,也就是电脑端只能同时登录一台设备,电脑端包括 Windows 版,macOS 版和网页版,Windows 版或 macOS 版客户端其实就是一个浏览器,只是内部针对网页版集成了一些功能(例如批量下载)。类似这样的登录限制规则,绕过的方式也很简单,我们只要先通过账号密码登录的方式先获取到 Session ID 的相关数据,再通过某个工具将 Session ID 的数据直接用于登录即可。 [...]

阅读全文 »

2020 年 7 月月度总结

从 2020 年 7 月 1 日开始作者便是离职状态了,计划在七月份和八月份做一些面试前的准备,八月份下旬开始找新的工作。这两个月虽然没有正式工作但是也不能没有收入,作者因为对朋友的一个项目感兴趣,所以作为 Side Work 接了下来。整个项目将由我一个人负责开发,可以接触到平时一些我很难接触到的东西。 [...]

阅读全文 »

Windows/Linux/macOS 下 Git 设置代理的正确方式(针对 GitHub)

自从 GitHub 对个人提供无限制的私有 repo 之后,作者陆续把之前所有 side project 的 repo 从自建的 Gogs 都迁移到 GitHub 上。日常使用最大的问题就是 clone/push/pull 操作缓慢,我们可以通过设置代理来解决。Git 支持 ssh,http,https 三种协议,这三种协议设置代理的方式并不一致,同时不同系统环境的配置方式也有区别。 [...]

阅读全文 »

设置代理解决 npm 下载安装 Electron 慢的问题

最近作者准备用 Electron 做一些开发,一上来就卡在 npm install electron 这步,明明已经为 npm 配置了代理但还是慢。通过查阅资料发现可以单独设置环境变量来配置下载 Electron 的代理。无论是 npm 还是其他工具,作者都尽量选择设置代理的方式来解决下载 package 慢的问题,原因有两个,一个是作者已经有一套很稳定的代理方案,想尽可能物尽其用;另外一个原因是之前用淘宝的 npm 镜像源时就遇到过源服务器不能访问,以及镜像源与官方源某个 package 默认版本没同步的问题。 [...]

阅读全文 »

iTerm2 使用 Shell Integration 拖拽上传和右键下载单个文件

维护服务器时虽然上传/下载单个文件的需求不是特别频繁,但偶尔总会有,这时候再打开其他工具登录再目录定位再上传/下载,一波操作下来虽然不是特别耗时但很繁琐。iTerm2 的 Shell Integration 可以让以上操作直接在 iTerm2 上完成,简单、快速、优雅。Shell Integration 需要在服务器和本机都安装了才能正常使用。 [...]

阅读全文 »

了解浏览器渲染的过程和原理

作为一名 Web Developer,有时候一天中大部分的工作都是围绕浏览器展开,了解浏览器渲染的过程和原理,对于提高部分代码质量和改善页面性能有很大的帮助,也因此成为面试中经常被问及的一个点。当然,浏览器渲染涉及的知识点其实也不少,本文将着重介绍浏览器渲染的过程和原理,其他一些重要的概念,例如布局/绘制、渲染阻塞、Chrome 浏览器开发者工具的使用等,本文点到即止,但会拆成单独的文章来说明。 [...]

阅读全文 »

跨域相关解决方案整理

前段时间一直在面试求职,因为自己没有做足面试前的准备,所以导致面试过程中的表现不是特别理想。虽然现在找到工作了,但是既然知道自己存在 bug,还是要把它修了为下一次面试做准备!之前一直认为自己对跨域这块知识点的掌握足以应付面试,但面试之后才发现高估了自己。跨域这块的知识点自己掌握得相当模糊,虽然自己心里可能知道是跨域相关解决方案的原理,但是要我用语言表达出来就说得模棱两可,而且 10 家公司的前端面试基本上就有 6 家会问你关于跨域的问题,所以如果你也正在准备前端职位的面试,那这块你必须得攻下,至少要能够回答得上面试官经常会问的几个点。 [...]

阅读全文 »

MongoDB 模糊查询慢的问题以及相关解决方案的探索

最近公司有一个项目,数据库用的是 MongoDB,其中一个 Collection 的有 1300 万条数据,需求中需要对这个 Collection 支持指定 field 和 keyword 的搜索功能。一开始的实现就是简单的 and 查询的追加,但是发现查询速度很慢,需要优化。MongoDB 的查询慢不是一直都能体现出来,只有在查询的语句比较复杂或者查询出来的结果比较少比较靠后的情况下才会出现。 [...]

阅读全文 »

迟来的2016年终总结

这是我毕业出来之后工作的第三年,相对于前两年来说,今年的收获是最大的。完成了自己去一趟美国硅谷的目标,同时也收获了自己的爱情。虽然一切并不如自己想象中的那么美好,也了解到自己跟身边的人有些不小的差距,有些许感慨,但无论如何,既然知道现阶段的自己存在问题和改进的空间,我就应该努力一点,做好自己! [...]

阅读全文 »