为知笔记 Docker版本 私有部署
目前已经使用docker私有部署的为知快2年了,之前用过 onenote、印象笔记、有道笔记、notion、蚂蚁笔记等等,全部用过一段时间后还是选择了为知笔记,一是服务的在自己手里,数据配合脚本实时同步到OneDrive,二是目前重构版的客户端确实好用很多,不像之前要卡半天~
目前已经使用docker私有部署的为知快2年了,之前用过 onenote、印象笔记、有道笔记、notion、蚂蚁笔记等等,全部用过一段时间后还是选择了为知笔记,一是服务的在自己手里,数据配合脚本实时同步到OneDrive,二是目前重构版的客户端确实好用很多,不像之前要卡半天~
SYS-2-SAT-32 Server - Intel Xeon D1540 - 32GB DDR3 ECC 2133MHz - 4x 2To HDD Soft RAID 250Mbps
cpu升级为 Intel Xeon D1541
硬盘升级为 4x4T
开了3台结果如下:
12-01 21:23 GRA2 d1541 4x4T 250m 硬盘均 120小时
12-02 13:02 GRA1 d1541 4x4T G口 3个硬盘6k小时,1个110小时
12-02 13:30 GRA1 d1541 4x4T 250m 3个新盘,1个1k小时
准高配:D-1540+16T硬盘+250Mbps网络
高配:D-1541CPU+16T硬盘+250Mbps网络
顶配:D-1541CPU+16T硬盘+1Gbps网络
反序列化时实体类型为 int/Integer/Long 等等,而json字段为string,如下
#json
{"a":""}
#伪代码
class test {
private Integer a;
}
为gson注册一个适配器
import com.google.gson.JsonSyntaxException;
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;
import java.io.IOException;
public class IntTypeAdapter extends TypeAdapter<Integer> {
@Override
public void write(JsonWriter out, Integer value)
throws IOException {
out.value(value);
}
@Override
public Integer read(JsonReader in) throws IOException {
JsonToken peek = in.peek();
if (peek == JsonToken.NULL) {
in.nextNull();
return null;
}
try {
String result = in.nextString();
if ("".equals(result)) {
return null;
}
return Integer.parseInt(result);
} catch (NumberFormatException e) {
throw new JsonSyntaxException(e);
}
}
}
private Gson gson = new GsonBuilder()
.registerTypeHierarchyAdapter(Integer.class, new IntTypeAdapter())
//.registerTypeHierarchyAdapter(Long.class, new LongTypeAdapter())
.create();
需要注意的是, registerTypeHierarchyAdapter 里的类型一定要准确,一开始百度出来的是用 Number,会无法进入适配器,比如 https://www.jianshu.com/p/081ab69cf9a8 ,注册的是 int和integer,但TypeAdapter 是number。
在测试 javax.mail 中的 imap 协议 idle 时会有olderClosedException异常。
在Messaging对象上调用方法并且拥有该对象的Folder由于某种原因而死亡时,将引发此异常。
An HTTP_REFERER was detected other than what is defined in System -> Advanced (http://x.x.x.x/services_dhcp.php). If not needed, this check can be disabled in System -> Advanced -> Admin
由于服务器有多个ip,所以我就想装一个软路由来统一控制,刚装上pfSense 就无法在web登录,google搜索了半天才搜到,还是错的……
为啥要搞这个脚本呢,是真的被恶心到了,我记得我还是从高二开始就用的小米,MIUI从以前的真香,变成BUG一堆、负优化的UI。买了个小米11,到手3个月真心被这系统恶心到了,越更新越辣鸡,什么哈曼音效砍了(MIUI 12.0.22),4600ma的电池用着和老手机没什么区别,1月份首发到手,结果现在4月初所谓的MIUI12.5还没出来,以前可以随便刷开发版,现在也要个申请,关键是tmd不让过,无法了……
刚接触这个h2内存数据库,被这个问题折腾2天了,我使用的是mybatis-plus,而H2默认 表名、列名都是大写,和mybatis plus默认的策略有冲突(SQL大写变小写加下划线),虽然可以配置关闭掉,但全部大写还是看着不习惯……
第一次使用时序数据库,本来想用influxdb,搜了下说是国产的TDengine 性能更好,sql和原生差不多,所以就想尝试下,但学到现在一路的坑啊……
此篇文章仅作为个人笔记,由于初学难免有理解错误的地方,请大佬指正~
由于我这个部分没有使用SpringBoot,使用的是RabbitMq java Client API 所以在Springboot上的有些功能用不了,只能手动实现,故在思维上走了一个坑。
众所周知,noCaptcha 的验证接口和css是被屏蔽的,所以可以使用 recaptcha.net 这个google在国内的域名。想着有轮子绝不撸代码的想法,试了几款插件,找到一款对代码修改最小的插件(或者直接不用修改,我目前使用的这款主题需要手动修改)。