UOJ多评测机一键配置脚本

OI赛制比赛的终测,一个评测机显然是不够的。200人的比赛,要10台评测机,7分钟才能测完。(成本大概10块钱?)

但是这些评测机平时闲置着又很浪费,于是我参考uoj开源版文档,写了一个一键配置脚本。配合阿里云的机器hostname自动顺序命名来使用。

#!/bin/bash

echo STEP1
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common

echo STEP2
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get -y update
sudo apt-get -y install docker-ce

echo STEP3
sudo service docker start 
sudo docker --version 
sudo docker pull universaloj/uoj-system:judger



# https://universaloj.github.io/post/%E5%A4%9A%E8%AF%84%E6%B5%8B%E6%9C%BA%E9%85%8D%E7%BD%AE.html

echo STEP4
echo "172.31.41.20 host.name" >> /etc/hosts


echo "UOJ_PROTOCOL=http" > judger_env.list
echo "UOJ_HOST=host.name" >> judger_env.list
echo "JUDGER_NAME=$(hostname)" >> judger_env.list
echo "JUDGER_PASSWORD=JUDGER_PASSWORD_HERE" >> judger_env.list
echo "SOCKET_PORT=2333" >> judger_env.list
echo "SOCKET_PASSWORD=SOCKET_PASSWORD_HERE" >> judger_env.list

sudo docker run --name $(hostname) -p 2333:2333 -dit --env-file judger_env.list --cap-add SYS_PTRACE universaloj/uoj-system:judger

touch ~/init_done
cat /etc/hosts
cat /etc/hosts | grep $(hostname)

todo: 尝试使用pwntools等类似工具自动化ssh,做到批量添加&删除评测机0手动。

Arduino连接两个MPU6050

关于 MPU 6050

MPU 6050是一个陀螺仪+加速度仪传感器芯片,通过I2C总线的方式与Arduino通信。

传感器还包含一个DMP(Digital Motion Processor)模块,能够对传感器的数据进行一些处理。

连接一个 MPU 6050

这篇文章描述了怎么Arduino和一个MPU-6050连接,主要是macOS上的环境配置和这篇教程

连线的方式是这样的(原图):

连接两个 MPU 6050 并在 Processing 里可视化

两个芯片的连接方式和上图一样,但是其中一个芯片AD0连接GND,另一个AD0连接3.3V,这样他们在I2C中的地址是不同的(分别是0x680x69)。

然后Arduino的代码中,可以每轮分别从两个传感器的DMP读取信息,标识好数据分别来自哪个传感器,发送给串口。

Processing里可以每轮根据串口读入的数据对3D模型的姿态进行调整。

Code在这个gist

Sublime Text 弹窗 Patch

Sublime 是一款优秀的文本编辑器。

什么,你是 vs code 用户? 那我只好推荐你用这款插件了。

正版售价$80,但是可以无限试用,不过在一定时间后会弹窗提示。

下面记录一下使用 Hopper 软件将该弹窗去掉的过程。

首先用 Hopper 打开 /Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text

Continue reading “Sublime Text 弹窗 Patch”

小Tip: 使用其他设备连接Tsinghua WiFi

有些时候,需要使用非智能设备去连接Tsinghua WiFi。

可能没法打开net.tsinghua.edu.cn/ usereg.tsinghua.edu.cn去认证,没法获取到设备的IP地址,甚至一些设备只有在通过这个WiFi能够连接网络的时候才会使用这个WiFi(比如Switch)。

这时如何连接Tsinghua呢?

首先通过一些方法获得设备的mac地址,xx:xx:…:xx:xx这样的形式,一般在系统信息能看到;或者使用自建的WiFi看一下连接设备的mac地址。

然后把电脑的网卡mac地址改成设备的mac地址,Windows的话可以在设备管理器的网卡里进行设置,Mac或Linux可以sudo ifconfig en0 ether xx:xx:xx:xx:xx:xx 这样。

然后连接Tsinghua,登录net认证,之后直接关掉WiFi,然后设备连接上WiFi就可以上网了。

ps. 所以这样可以偷别人流量?


upd:
哦 直接用arping获取设备的ip地址上线更简单