WaferJay

《Java遗传算法编程》笔记

之前读完了《Java遗传算法编程》。感觉上这本书并不是很注重程序的设计及效率问题,但确实将遗传算法讲解清晰了。这里就记录一些不是很熟悉的概念。

一、选择

1.1 竞标赛

从种群中随机选取一定量的个体,选择其中适应度较高的个体。锦标赛作用在于,个体适应度越高,被选中进行杂交的几率越大。

锦标赛规模过大影响效率,且更容易抽中适应度较高的个体,导致多样性下降。而过小的规模会减小选择压力,减慢算法进展。

二、交叉

2.1 均匀交叉

每个基因都均有50%的概率来自双亲的其中一方。

2.2 单点交叉

在基因组中随机选取一个位置,这个位置之前所有基因和之后的所有基因分别来自两个亲代对应位置的基因。

常用[……]

继续阅读

TCP真的可以打洞?

今天又尝试了使用TCP协议打洞实现P2P。结论是:办不到!!!

网上搜索到的文章转载来转载去,都不知道这些文章是什么时候发布的。而且大多数没有给源代码,却说了一堆有的没得。有代码的也不好使,还有让服务器做中转的代码。

按照文章里说的给socket设置SO_REUSEPORT确实可以多个socket绑定相同端口。但最后一步,两个客户端相互连接,客户端A发送的SYN的时候,我家移动的线路上最外层的路由会给你一个RST,电信的线路上发出去后杳无音信,多次重发之后连接失败。。。同时,客户端B发起连接的时候情况同样。最后两边都连接失败。

说好的比UDP打洞复杂一点的呢。。。

网上[……]

继续阅读

验证条失效的问题

今天才发现文章底部评论时要拖拽的验证条拖到最右侧居然没反应。。。

看了下开发者工具,发送了一个请求得到了403。。。

又查了查网站.htaccess,果然是我以前配置了禁止wp-content下php脚本。。。

稍微改了下规则,现在没问题了。。。

肯定是因为这个才至今没有评论的(严肃脸)[……]

继续阅读

为博客添加了SSL证书

三四年前就听说了可以获得Let’s Encrypt签发的免费的SSL证书。但以前不怎么需要,也就没怎么折腾。不过现在博客开这么久了,也该上HTTPS了。这里就简单记述一下过程。

 

获得SSL证书

到Github上克隆了certbot项目。运行一下tools/venv.py创建一个虚拟的Python环境。(virtualenv)

git clone https://github.com/certbot/certbot.git
python tools/venv.py

运行完后,产生的venv目录就是包含certbot依赖的包的Python环境。运行venv/bin/a[……]

继续阅读

为crayon代码高亮插件添加Kotlin支持

2021-01-31

crayon语法高亮插件实在太久没更新了,升级WordPress后有兼容性问题,已经卸载。因此,文中的一段使用crayon插件样式的代码将不会正常显示。

虽然换了 Enlighter 插件,但目前还没找到令人完全满意的代码高亮插件。

crayon插件(aramk/crayon-syntax-highlighter)算是比较老的一个wordpress插件了。其第一个版本发布于2012年,最后一次release在2016年,直到2018年有人开了个issue告诉作者wordpress把这个插件标记为弃用才改了几行、提交了一次,而且没有发布release。也就是说差不[……]

继续阅读