通过 Gmail 使用 Outlook

前因

因为咕咕噜将会取消 Educational 用户的无限制(?)存储空间改为1T,坑爹学校为了5T的空间上限投了软(净找事啊1T咋用不够5T又能咋还我 gsuite)。看了半天方案顿悟为什么要去想换 outlook 之后怎么用 gmailbot 或者其他替代品(目前就是没找到),为什么要去想 gmail filter 怎么导入 outlook(目前也没看到太好的方案)何不换个思路:我为什么不继续用 gmail 收 outlook?

阅读全文→

通过 Nginx 转发 Google Analytics

比选

站点统计服务中 Google Analytics(下记作 ga)相对常用,部署时有多种方案可选。直接引入咕咕噜提供的 gtag.js 显然不佳,大 & 不可控 & 存在地区性访问问题 & 被各种拦截器橄榄 114514 次,代理请求似为更优。通过自有服务器转发大体又可分作两类,一为在前端插入 js 收集信息配合后端服务完成转发,代表方案有 cfgaga-proxy,使用体验尚可但出来没几天就进了 EasyList 虽可藉随机化 bypass 然被盯上了的东西总觉多一事不如少一事。余下:不在浏览器端进行配置,以 nginx 收集部分用户信息直接转发 ga.

阅读全文→

Firefox 右键菜单简化

前因

Firefox 实装新UI后右键菜单变得很肥,导致常向下方显示不下因而会向上显示(期望p2的效果,向下而非向上展开),造成常用功能“新建标签页打开链接”(后台标签页打开)鼠标移动距离明显延长(本来近似不用动,现在需要向上跨越半屏(虽然后来发现可以中键)),与习惯不符略难受。可以想到的 workaround 就是清理右键菜单中用不上的条目使它变短。

阅读全文→

为什么 Cell 取出数据一定需要 T: Copy

学好 Rust 是不可能的


本文转写自一条推文串,可能造成阅读体验不佳,见谅

问:为什么 Cell<T> 没有给 T: Clone + !Copy 实现一个方法把里面的数据 clone() 一份拿出来用((*self.value.get()).clone()),而只能用 replace() 这种在取出数据的同时整没了 Cell 里原有的数据的方法?这对一些类型来说非常不方便因为你没法在不动 Cell 里原有数据的同时把数据拿出来用,而用 RefCell 的话又有运行时借用检查开销(Cell<T>.get() 要求 T: Copy 应该是常识罢).

阅读全文→