/images/avatar-home.jpeg

为知笔记 Docker版本 私有部署

目前已经使用docker私有部署的为知快2年了,之前用过 onenote、印象笔记、有道笔记、notion、蚂蚁笔记等等,全部用过一段时间后还是选择了为知笔记,一是服务的在自己手里,数据配合脚本实时同步到OneDrive,二是目前重构版的客户端确实好用很多,不像之前要卡半天~

2021黑五 杜甫收获

SYS独服 24.99欧元

标准配置

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网络https://cdn.jsdelivr.net/gh/hishis/forum-master/public/images/patch.gif

gson java.lang.NumberFormatException: empty String

问题:

反序列化时实体类型为 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。

pfSense HTTP_REFERER 登录校验问题

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不让过,无法了……

国内WordPress启用谷歌验证码(noCaptcha )

众所周知,noCaptcha 的验证接口和css是被屏蔽的,所以可以使用 recaptcha.net 这个google在国内的域名。想着有轮子绝不撸代码的想法,试了几款插件,找到一款对代码修改最小的插件(或者直接不用修改,我目前使用的这款主题需要手动修改)。