远程部署一个通过 B 站直播分发的实验室集群监控系统

突发奇想在 debian 上装了个 obs. linux 下 obs 可以直接 capture audio output 了, 于是可以在直播里放音乐了, 非常赞. 但是我的笔记本的这个 HD 6400 实在是支持不太了 obs 这种繁重的负载, 于是想到了利用实验室的台式机作为直播前端. 首先要解决的问题是如何连上台式机并使用 gui. 正好发现 teamviewer 可以用命令行启动. $ sudo teamviewer daemon start $ sudo teamviewer info $ sudo teamviewer passwd <your passwd> 就这么就能获得远端的账号密码了, 就能用了, 非常开心. (虽然 daemon 获得号码可能要等一会儿, restart 若干次) 然后发现 obs 没法 window capture, 所有 window title 都是 unknown. 经过一翻搜索发现原因是 obs 的 locale 不对. 于是设了一下 LC_ALL 就能看到了. 然而 konsole 窗口是黑的一坨, 这和我手上的 debian 不太一样啊!...

June 19, 2020 · 1 min · laekov

毕业倒计时和打卡

要毕业了额. 虽然疫情让这个毕业季显得如此生涩. 但还是决定有仪式感一点…? 地来个倒计时吧. 虽然好像已经过了六天了. 前六天的一起补吧. 6.9 DAY20-DAY14 答辩的前一天. slides ready. 剩下的工作就是改改文章然后交给 kezhao 了. 于是决定把前些天没打的卡补上. 于是有了这篇文章. 20 最喜欢的一张照片 (翻了翻硬盘) 在学校里好像没啥印象特别深刻的照片. 大紫车刚喷出来的样子, 嗯还挺好看. 19 最喜欢/收获最大的一门课 俄语? hhh. 虽然只上了一学期并很累但是很开心. 树莓派跑丹, 存储, 数据结构, 数据库专题, 编原, 网原, 造机, 面向对象什么的, 就内容讲都还挺有意思的, 也学到了很多东西. 还有图形学写大作业 (虽然写得效果不咋的) 但写起来还是很有意思的. 还有微积分, 线代, 大雾, 电子学这些基础课虽然好像日常听不懂最后也没太学明白, 但也是很重要的基础课吧. 要说最, 好像还真最不出来. 18 第一次跑 3000 米? 大一第一门体育课是 5000 米跑. 每节课一次. 第一次体育课 5k 跑了 24 分钟? 毕竟还是有点基础的. 高一高二的时候偶尔晚上会去跑 1.5k 或者 3k, 在七中的操场上跑 10 圈. 就还好? 甚至北京的海拔比较低所以没有在成都那么累....

June 9, 2020 · 2 min · laekov

GIF Test

May 13, 2020 · 0 min · laekov

一篇暗藏玄机的 Base64 简介

Base64 是一种常用的二进制到文本的编码方式, 应用非常广泛. 考虑这么一种场景, 两人之间现只能发送文字信息, 但他们要发送一张 jpeg 格式的图片. 如果尝试用文本编辑软件打开 jpeg, 将会发现是一大堆乱码. 原因是 jpeg 是二进制文件, 每个字节表示的东西几乎都不是给人看的字符, 自然没法解析出来. 而如果想把这些东西强行复制出来, 那更是一种灾难. 里面会有各种各样神奇的比如换行符, 甚至是\0 (文件结束符) 这种迷惑的东西. 自然是没法很好地以文本的方式传输的. 于是就有了这么一种把任意二进制文件都转化成没有奇怪特殊字符的方法. 首先把二进制文件或者任意字符串写成一串 01. 然后把相邻的 6 位合起来, 用 A-Za-z0-9+/ 一共 (64=2^6) 个字符来表示. 最后可能省下 2 个或者 4 个空位, 则用 0 补齐, 然后放一堆等号上去. 这样就可以把任意的文件, 比如文字, 图片, 视频都转换成肉眼可见, 易于复制和通过 http 之类的协议以及 json 之类的格式来传输的数据了. 下面是一些例子 hello world => aGVsbG8gd29ybGQ= 我不知道 base64 是什么 => 5oiR5LiN55+l6YGTIGJhc2U2NCDmmK/ku4DkuYg= 宝宝在这里给宝宝藏了一张小纸条: 6KaB5LiN6KaB5Y6755yL55yL5a6d5a6d55qE572R5piT5LqR6Z+z5LmQ5q2M5Y2V6YeM5aSa5LqG5LuA5LmI6L+35oOR55qE5Lic6KW/Pw== я говорю по русский плохо => 0Y8g0LPQvtCy0L7RgNGOINC/0L4g0YDRg9GB0YHQutC40Lkg0L/Qu9C+0YXQvg==...

February 13, 2020 · 1 min · laekov

针对训诫事件的死亡凝视

开心的是, 在这里写什么都不会有人审核. 关于所谓的 yu qing 监管制度, 到底应该吐槽什么呢. 身边的 dang yuan 都说不要制造恐慌 不传播消息->渎职, 妨害公众知情权 好难额. 可是为什么所谓的 yu 情监管机制这么强大呢. 我想不仅仅是为了抑制 sars 吧. 想想莆田, 想想电视上的各种医骗, 双黄莲. 如果我是警察, 我抓到了一个说着奇怪言论的好像是医生的人. 想着我被假医生害死的老父亲, 我要不要先一刀砍了这个人? 信任危机早就存在了. 训诫好人的不是警察, 而是千千万万或别有用心, 或管不好自己嘴巴的 elements. 坏掉的人多了, 当中的好人也会看起来坏坏的. 一个糟糕的社会.

February 7, 2020 · 1 min · laekov

Ubuntu 发行版更新记录

就在刚刚运行着本网站的阿里云 ecs 经历了一次升级, 从 ubuntu 16.04 lts 升级到了 18.04 lts. 升级过程平稳, 但升级后发现这个 php 做的网站变成了源码. 目测是 php 跪了, 于是尝试修 php. php5 仿佛已经不被支持, 于是换用 php7. 直接暴力 apt remove 再 install 就可以了, 配置会被保留. 然后发现 mysqli not found. 解决方法是在 /etc/php/7.2/apache2/php.ini 里面将 extension=mysqli 一行给 uncomment 掉. 然后就完事了.

January 21, 2020 · 1 min · laekov

在若干不同机器上安装 Debian 并修了一些锅的记录

最近因为各种神奇的移动, 在不同的3台电脑上装了 debian, 并踩了不同的坑. 开一个文章来记录一下各种神奇的坑. 0 一台 2013 年的联想 ideapad 笔记本, 配备了 AMD HD 6400M 独显. 因为突然想起了 bios 的管理密码所以激活了独显. 于是想用独显来跑 opencl 之类的. 然而老的 amd crystal 驱动好像不是很支持? 时间有点久, 忘记了踩了什么坑. 总之 apt 瞎搞最后就装上了. 1 实验室师兄的 i7 + GTX 1070 + 4k 屏. 装 nvidia 驱动并 disable nouveau 是常规操作. 然后遇到的问题是 4k 屏对 gtk 的程序好像不是很友好. chrome 的地址栏和 ibus 之类的东西会变得非常小, 瞎眼. 解决方案是用 GTK_SCALE=2 这个环境变量. 但问题是这个环境变量不应该在开窗口的时候再设, 而是要放到 profile.d 里面. 然后就解决了问题. 然后 ibus 冥顽不化地占据了我的输入法. 然后发现 apt remove 之后就能愉快地使用 fcitx 了....

January 13, 2020 · 1 min · laekov

Minimon: A minimal surveillance system based on buildroot for RaspberryPi

因为发现助教给炼丹任务提供了 64 张图片作为训练集, 64 张图片作为验证集, 所以果断放弃了炼丹任务. (update: 发现还是炼丹任务好做) 打算用 buildroot 从底向上 build 一个能跑起 python-gpio 的 linux. 另开一文记录一下坑们. (补充) 计划 先不管镜像大小, 用 buildroot 搞出一个能跑的系统. (好像 buildroot 部分差不多了.) 实时性补丁 进一步裁剪内核. (即使不栽应该也比 raspbian 小很多了. 毕竟老师那边 raspbian 裁剪纪录是 200M, 而 buildroot 现在才不到 150.) build 使用了默认配置 $ make raspberrypi3_defconfig 节省了很多自己摸索的时间. 配置静态 ip 的时候发现可能是由于 networking 的版本问题, 必需要在 interfaces 配置文件里把 netmask 写在 address 上面, 否则不 work. 另外选装上了 openssh 以支持 ssh 登录. 在折腾了半天之后终于能 ssh 上树莓派上的系统了. 然后发现它有一个轻量级的 dropbear 作为 sshd....

November 27, 2019 · 4 min · laekov

SCC@SC'19 笔记

好的 scc@sc'19 终于没有拿亚军 记个流水账 Benchmarking 好像没啥特别的. 一个新的发现是 HPL 的功耗飘可能是因为 GPU 功耗上升而不是计算 pattern? 回头仔细看看..? 内核的奇怪的锅 导致 idle 状态下 ssh 上一台机器就能跳 200w 的功耗 spike. 通过更新内核版本解决了该问题. IB 卡烧掉了??? benchmark 本来早晨很早就交了而且数也还行. 然而中午玩着玩着发现 ib 卡没了. 尝试 pci hot reenable 失败之后重启并重新跑了 benchmark. 后来发现是 ib 卡在 gpu 风道里, 而我们给没插卡的节点的 gpu 风扇拔了一半的线, 另一半还是最低速运转的, 于是把 ib 给热傻了… SST 人脑挖矿 + 无脑跑 SST 第一个部分是给定 cpu 核心数, l1/l2 cache 的不同搭配之类的总共乘起来 5760 种选择, 让用 SST 搞出一种性能最好且不超过5000块钱的配置. 人脑挖矿 vs 暴力. 测算发现暴力应该能跑完所有点, 于是就暴力了一下. 听说别的队有试图人脑的…...

November 23, 2019 · 1 min · laekov

Raspberry Pi 折腾记录

获得一个生日礼物 raspberry pi 已将近一年, 然而因为它只有四个核所以被嫌弃地闲置了很久. 近期因为上了嵌入式的课, 所以又开始了一轮折腾. 把一些有趣的事记录一下. 网络连接配置 老师说让我们先插上显示器配wifi, 之前我也是这么干的, 于是照做了. 然后想拿回家用, 家里没显示器, wifi 密码输入错误, 失联 ovo 后来想起直接给有线网口配个静态ip 就完事了. 和电脑直接对插就能访问 ovo. 延迟测试 发了一个示波器很好玩, 然而只有 windows 的 pc 端驱动差评. GPIO 管脚控制居然是 python, 严重怀疑效率. 实验本身倒是很简单. 接下来是给 kernel 打实时性补丁. (中断响应优先级? 时间步大小? 感觉 很有趣) 视频流 网上看到一个例子是把 raspivid 的输出用 nc 接起来到 host 上用 mplayer / vlc 播放. 非常有趣就试了一下. cvlc 转发延迟略高. 直接 mplayer 放 h264 格式的视频非常流畅. Modius NN 计算棒 去 intel 上找到了 openvino 作为 myriad 计算棒的驱动....

November 3, 2019 · 1 min · laekov