2018-12-16
0 comment

开发OJ之沙箱 — 设想和开始

学校现用的 OJ 是HUSTOJ的魔改版, 沙箱自然也是用的它的. 说为沙箱其实并不是很合理, 判题进程包含了构建沙箱这个东西, 他将所有的过程整合在一起, 使得二次开发不是很方便. 所以 专门 立了一个 SandBox 的项目, 新 OJ 将沙箱作为一个单独的项目独立出来, 以方便以后出现 bug 的修复. 我们并不打算考虑多平台, 开发过程中仅在Linux上进行测试, BSD 等 Unix 系统可能需要修改测试, 开发过程中 参考了 QingdaoU judger, EOJ judger, DMOJ j […]

继续阅读 >>
2018-12-09
1 comment

新 OJ 技术选型

这篇文章作为 开发 OnlineJudge 啊分类里 的第一篇文章, 将会阐述网站 数据库 Database, 网站后台 Master, 判题 Judger, 运行环境 Server 的技术选型过程. 构架 整个OJ可以分为 关系数据库, 内存数据库, 网站(后期前后端可以再分离), 判题任务队列管理, 判题机, 这五个部分, 每部分都可以部署在同一服务器或这多台服务器上, 必要时可以一个部分部署在多台服务器上 运行流程: 正常情况: 用户提交代码 -> 插入关系数据库 -> 网站通知队列管理 -> 队列管 […]

继续阅读 >>
2018-12-06
0 comment

Hello, New Online Judge

2018 年也快过完了,很快就 2019 年了;慢慢学习和参考别人的项目/网站一年后,也有了自己心里所想的OnlineJudge系统,这算是挖了个巨坑,重写学校的Online Judge系统,使得其不再依赖于 PHP5 这个即将被抛弃的PHP版本,同时修改一下数据库,和重写沙箱以及判题机(看起来就是重造啊)。 运行环境当然还是依赖于 Debian/Ubuntu ,也许可以考虑使用docker提供统一的运行环境。 很多东西还没选定使用哪种语言/技术进行开发,等思考后决定了,便会新增一篇文章,解释 自己所想的构 […]

继续阅读 >>
2018-11-22
0 comment

关于 Nginx 的一点坑 — HTTPS回源, add_header

前段时间在网站上部署了 Mathjax, 部署在 st.boxjan.com/MathJax 目录下, 我的 CDN 回源HOST也是这个. 但是, 我直接访问 st.boxjan.com/MathJax 是没有问题的, 一旦使用CDN域名回源访问就出现 博客的错误页, 最先猜想是因为目录问题, 后来发现好像是跟回源相关. 在st.boxjan.com的相关配置文件加入 add_header x-is-origin “true” always; P.S. add_header 也有个坑, 就是他的处理顺序, […]

继续阅读 >>
2018-11-20
0 comment

使用 acme.sh + nginx 使用 RSA 和 ECC 双证书

ECC证书 相比 RSA证书, 密钥短了很少,但安全性还是有保证,ECC 是Elliptic curve cryptography的简写, 是一种建立公开密钥加密的算法,基于椭圆曲线。由于其密钥较短,运算速度较快,所以渐渐开始在一些网站上使用。但是由于有些老旧 浏览器/系统 不支持ECC证书,为了使他们能够访问,所有我们还得提供一份 RSA证书。 申请 我的网站的证书是使用Let’s Encrypt,所以我使用 acme.sh 这个工具来申请证书。 这个工具强大的地方是能使用各种DNS的API自 […]

继续阅读 >>
2018-10-21
0 comment

为我的博客增加ipv6

作为一个什么都要支持 IPv6 访问的人, 但是国内的云厂商几乎都不支持IPv6, 就算支持也只是用个虚拟网关把 IPv6的流量转换成IPv4, 再交给服务器, 十分诡异; 腾讯云据说也是这种解决方案, 其他的云厂商则没有去了解.好像国内没有云厂商提供服务器直接支持IPv6的 最先开始的想法是想使用 he.net 的 IPv6 in IPv4 (6in4) 隧道, 这个隧道是基于 GRE 隧道, 但是云厂商们也不支持. 这里也要稍稍吐槽一下 广东电信, 广东电信什么都好, 就是 给公网IPv4, 不给公网I […]

继续阅读 >>
2018-10-20
0 comment

从 Ubuntu 18.04 升级到 Ubuntu 18.10

Canonical 于 Oct 18, 2018 发布了最新的 Ubuntu 18.10 代号 Cosmic Cuttlefish (宇宙乌贼) 数一下新特性 openssl 升级到了 1.1.1 正式默认支持TLSv1.3 默认使用Gnome 3.30,相比之前版本,提升了一定的性能,主题和图标也更换了 内核使用 4.18.0,gcc 默认使用gcc8.0 我看中的特性大概就这些,详细的内容可以看 Welcome Ubuntu Desktop 18.10 update 最先以为一行 do-release- […]

继续阅读 >>
2018-05-18
0 comment

github项目 — IPSection — 低精确度 IP段数据整理

最近写了个 python 程序,用来获取 IP 数据库,并简单按照 大洲 和 国家 写入不同文件 暂时只写了 inan 的数据处理模块, 后期会增加 geolite 的数据处理模块,也算是学习一下 python 项目在 github 上开源 地址为 (https://github.com/Boxjan/IpSection)[https://github.com/Boxjan/IpSection] 可以用来做低精度的定位和区域性的流量处理 后续想增加 ipip 数据库的处理模块,CZIP 暂时没有打算 没有什 […]

继续阅读 >>
2018-05-10
0 comment

搭建自己的邮件系统——杂碎

这一篇是这个系列的第五篇 关于 一些杂碎的东西 默认文件夹 修改/etc/dovecot/conf.d/15-mailboxes.conf, 增加以下内容 namespace inbox { type = private separator = . inbox = yes mailbox Drafts { special_use = \Drafts auto = subscribe } mailbox Draft { special_use = \Drafts auto = no } mailbox dra […]

继续阅读 >>
2018-05-10
0 comment

树莓派搭建PPTP并支持ipv6

自己需要通过vpn 连接到家庭网络进行管理,虽说有 ss 可以解决,但有些东西并不能通过 socket 协议传输,考虑到在国内使用,没必要进行过度的混淆,以及跨设备的方便,还是选择了 PPTP 来实现,pavanda 路由器系统自带了PPTP/L2TP(无IPsec)/OpenVpn 服务器,但本着不折腾不痛快,以及它不支持IPv6的原因,还是打算自己弄一个。 预备 路由器上设置 gre 协议转发(需要查阅相关文档, 且不一定支持), 设置TCP 1723 转发到树莓派上 (后期会写一篇openvpn的 树 […]

继续阅读 >>