用 chsh -s 配错了 shell 该如何挽救?

配错了默认环境并不可怕,大不了再配回来就好了嘛。

显然,说这样话的人是没有故事的。

总之,如果你发现你的 vps 有一天突然无法登录了,没有报错内容是没有权限,但证书确定是正确的——那你就可能是在上次退出前配错了 shell。这时候即使你用 console 去登录,也会发现登录后一闪而过立即回到了登录界面——完蛋了,你心想,刚配好的环境又得重来一遍。

使用 chsh 切换 默[……]

点击跳转以继续阅读

Fail2Ban 高级配置 保护 Nginx 服务

购买了VPS之后你应该做足的安全措施中我们提到过用 fail2ban 来保护 ssh ,这样即使不改变ssh端口(默认为22),也可以做到避免被暴力破解密码,当然,我们已经开启了证书登录并关闭了 ssh 的密码登录选项,但用 fail2ban 干掉那些不停尝试的 bot 也是一件令人心情愉悦的事情。

其实,除了 使用 fail2ban 防止 Bind9 被用于 DNS 放大攻击外,我们也可[……]

点击跳转以继续阅读

UserNotifications 使用用户创建的声音作为提示音

使用自定义声音作为通知提示音

在 iOS 10 以后,iOS 使用了全新的 UserNotifications  作为通知 API,这允许开发者使用 图片、视频、声音 等富媒体作为通知内容,同时进一步地,你还可以使用 Notification Content Extension 来自定义通知的大小和内容布局。
如果要自定义通知的提示音,那么你可以给 [cray[……]

点击跳转以继续阅读

Item “xxx” is used by macOS and cannot be opened.

在恢复数据的时候,你可能需要用 U 盘拷贝数据,但是 macOS 默认挂载 ntfs 是只读的,当然,我们有办法使用命令行重新挂载它来变成可读写。不过这容易造成 ntfs 权限错误,结果就是插到另一台电脑上的时候,这个文件可能变成灰色

图中压缩包无法正常解压[/ca[……]

点击跳转以继续阅读

谈谈 Shadowrocket 和 Quantumult

自从我更换了美区 Apple ID 后,原先购买的 Surge 就不能再用了—— 当然,现在 Surge 也更新了新的版本,对我来说,花大价钱购买一款高级网络调试工具然后单纯用来翻墙,想想就觉得挺蠢的。

好在,macOS 版本的 Surge 2 授权还在,毕竟这个不跟随 Apple ID,我还可以继续使用。将来 Surge 2 停止更新维护了,我会考虑继续坚持几年再买新的。

总之,在 iOS[……]

点击跳转以继续阅读

落格输入法 macOS 是如何处理 ascii 0x01 的兼容问题的-macOS 输入法如何正确设置 buffer

早在去年,落格输入法的用户就有报告说落格输入法 macOS 在 有道云笔记 的 MarkDown 模式下无法正常键入中文,经过测试证明确实如此,体现为打中文字的时候,buffer的刷新会奇怪的删除掉光标前的一个字符——对,不多不少,就删一个。

捣鼓了很久未果,最后我没招了打印出了所有内容,发现了谜团:

当我把输入法获取到的光标左边的文字打印出来后,我发现文字的后边被追加了一个奇怪的字符[……]

点击跳转以继续阅读

落格输入法是如何在 iOS 上反账号共享盗版的

对于 iOS 开发者来说,面对 app 盗版,最大的问题不是技术破解,反而是越来越多的 Apple ID 共享盗版,有的人可能会说这样的盗版就相当于是“试用”了,喜欢的人自然会去入正……但实际上,由于一分钱共享账号盗版的存在,导致无数独立开发者最终走向了投简历。

总之,去年,Surge 的作者发布了这么一篇文章 Surge 2.0 是如何实现在 iOS 上反盗版的 他的理论是从 app 购买[……]

点击跳转以继续阅读

NSView 在 10.12 不显示 shadow 问题详解

在 iOS 上,如果我们要一个 View 显示阴影,那么基本上是这么做的:

不过,到了 macOS 上,这样就不灵了——没有任何效果。

答案在于 macOS 上如果你想要给一个 View 使用 layer ,你必须手动标记,比如说这样:
[crayon-5ad3f[……]

点击跳转以继续阅读

少有人走的路:独立开发者该如何寻找资源

这一篇其实两个月前就应该写了,不过有一些事情拖延于是就到了现在。前几天和朋友讨论到独立开发的“小众”的概念,我觉得有必要再细致的定义一下。究竟独立开发者要做的这个小众是什么,所谓的细分市场,究竟又该怎么细分。

心灵小众

一说到小众和细分,可能很多人的第一印象是那些无人问津的东西比如学校里一小撮学生的小需求,或者是律师在工作上的一些需求……这里我们回顾一下细分市场:独立开发者该如何确定开发项目中[……]

点击跳转以继续阅读