今日(きょう)(さわ)がしく(たわむ)れ生きる人々の漫画映画(まんがえいが)

Misskey 搭建备忘录

基本上跟着官方教程走就行了:setup.en.md,但是由于VPS过于廉价,还是要一点额外处理。

个人不推荐官方的 wiki 上的另外一个教程,写得太散乱了,而且似乎还有一些 bug……

普通处理:Postgresql 配置

反应过来官方那个教程其实没有讲 postgresql 的配置。官方 wiki 上的教程直接使用 postgresql 的默认用户 postgres 来配置其实是不太好的,下面配置一个新用户并只给予它访问 misskey 数据库的权限。

使用以下命令进入 postgresql 控制台:

sudo -u postgres psql

在控制台里依次输入以下命令,请务必将 你的密码 替换:

(个人的做法是先在进入 postgresql 控制台前在终端里使用 uuidgen 命令生成一个随机的 uuid 当作密码。因为这个密码只在接下来的 misskey 配置中用到,配置完了就用不到了,所以不需要是有意义的或是能记住的密码。)

CREATE USER misskey WITH ENCRYPTED PASSWORD '你的密码';
CREATE DATABASE misskey OWNER misskey;

配置完后输入 \q 并回车来退出 postgresql 控制台。后面的 misskey 请使用以下的 postgresql 配置:(您会在 .config/default.yml 中配置以下内容,在配置时替换相关内容或是添加以下内容即可。)

db:
  host: localhost # 没有改变默认配置
  port: 5432      # 没有改变默认配置
  db: misskey     # 重点是改这行、
  user: misskey   # 这行、
  pass: 你的密码   # 以及这行

额外处理:Swap

普通文件 swap

Swap 真的救我命。一个 256MB 的机器去跑编译是真的跑不起来。注意下面的命令可能不适用于一些文件系统(ext4不用担心,可以)。建议还是看一看:Swap file - ArchWiki

# fallocate -l 2G /swapfile

chmod 600 /swapfile

mkswap /swapfile

swapon /swapfile

上面的 “2G” 可以自己调,但是建议不低于 2G。(个人总结:256MB 的机器上 1G 跑不起来,会报错,2G 可以) 但是只是有个 swap 还不够,可能每次执行命令还需要执行一下 export "NODE_OPTIONS=--max_old_space_size=2000"。 想要重启自动加 swap 可以在 /etc/fstab 里加一行。

/swapfile none swap defaults 0 0

ZRAM

Swap 的另一个思路是使用 ZRAM。总之还是记录一下。由于 ZRAMCPU 会比较多,在跑编译的时候我没有用,在日常运行的时候弄了一下,但似乎对我的机器到是基本没有什么用吧 = =。总之还是记录一下。以下来自 Arch Wiki  Zram or zswap

# modprobe zram

echo lz4 > /sys/block/zram0/comp_algorithm

echo 32G > /sys/block/zram0/disksize

mkswap —label zram0 /dev/zram0

swapon —priority 100 /dev/zram0

上面的操作每次开机都要手动操作一遍。开机自动 ZRAM 搜出来有挺多结果的,但是懒得了。

反向代理

用 nginx (或其他服务器)反向代理可能到时申请 Let’s Encrypt 的证书容易一点(sudo certbot --nginx就行了)。网上随便找个反向代理的配置改一下。不要忘了 websocket 需要的那几行 upgrade 命令。

最终效果

(256MB的机器上)编译完跑起来的时候,物理内存几乎沾满,swap占了个一两百MB。只是单用户的话,服务器上没有跑其他东西的话,用起来还行,延迟有时候以秒记(比如上传图片)(不是网络问题),总体还行。可以试一下一些免费CDN,也许有些许加速。

Ubuntu禁用登陆时显示系统信息的banner

来源:https://ubuntuforums.org/showthread.php?t=1449020

That irritates the heck out of me too. It is controlled by the “pam_motd” module. You can disable the motd display (and potential delay) by editing these two files: /etc/pam.d/login, /etc/pam.d/sshd, and comment out the line that has “pam_motd” in it. I only tested the secure shell change since gdm is running, but it worked. Tested on Lucid Beta.

也就是说,修改 /etc/pam.d/login 和 /etc/pam.d/sshd ,把里面的含有 pam_motd 的行都注释掉就行了。

鲁迅:《非革命的急进革命论者》摘选

引一段话送给我自己。作为警醒吧。

…… 其一是颓废者,因为自己没有一定的理想和无力,便流落而求刹那的享乐;一定的享乐,又使他发生厌倦,则时时寻求新刺戟,而这刺戟又须利害,这才感到畅快。革命便也是那颓废者的新刺戟之一,正如饕餮者餍足了肥甘,味厌了,胃弱了,便要吃胡椒和辣椒之类,使额上出一点小汗,才能送下半碗饭去一般。他于革命文艺,就要彻底的,完全的革命文艺,一有时代的缺陷的反映,就使他皱眉,以为不值一哂。和事实离开是不妨的,只要一个爽快。法国的波特莱尔,谁都知道是颓废的诗人,然而他欢迎革命,待到革命要妨害他的颓废生活的时候,他才憎恶革命了。所以革命前夜的纸张上的革命家,而且是极彻底,极激烈的革命家,临革命时,便能够撕掉他先前的假面,——不自觉的假面。这种史例,是也应该献给一碰小钉子,一有小地位(或小款子),便东窜东京,西走巴黎的成仿吾那样“革命文学家”的。 其一,我还定不出他的名目。要之,是毫无定见,因而觉得世上没有一件对,自己没有一件不对,归根结蒂,还是现状最好的人们。他现为批评家而说话的时候,就随便捞到一种东西以驳诘相反的东西。要驳互助说时用争存说,驳争存说时用互助说;反对和平论时用阶级争斗说,反对斗争时就主张人类之爱。论敌是唯心论者呢,他的立场是唯物论,待到和唯物论者相辩难,他却又化为唯心论者了。要之,是用英尺来量俄里,又用法尺来量密达,而发见无一相合的人。因为别的一切,无一相合,于是永远觉得自己是“允执厥中”,永远得到自己满足。从这些人们的批评的指示,则只要不完全,有缺陷,就不行。但现在的人,的事,那里会有十分完全,并无缺陷的呢,为万全计,就只好毫不动弹。然而这毫不动弹,却也就是一个大错。总之,做人之道,是非常之烦难了,至于做革命家,那当然更不必说。 《申报》的批评家对于《小小十年》虽然要求彻底的革命的主角,但于社会科学的翻译,是加以刻毒的冷嘲的,所以那灵魂是后一流,而略带一些颓废者的对于人生的无聊,想吃些辣椒来开开胃的气味的。

——鲁迅:《非革命的急进革命论者》

测试

[caption id=”attachment_144” align=”alignnone” width=”251”] 图源:https://www.nasa.gov/multimedia/imagegallery/image_feature_2526.html[/caption] [caption id=”attachment_143” align=”alignnone” width=”300”] 图源:https://apod.nasa.gov/apod/ap141001.html[/caption] [caption id=”attachment_142” align=”alignnone” width=”300”] Braid[/caption] [caption id=”attachment_140” align=”alignnone” width=”300”] ∀[/caption] [caption id=”attachment_139” align=”alignnone” width=”300”] 00[/caption] [caption id=”attachment_138” align=”alignnone” width=”474”] 00[/caption]

TIL

xkcd [CITATION NEEDED]图片来源:xkcd 285 (此篇文章中如无特殊说明,全部 [citation needed] )

  1. TIL=Today I Learned,翻译过来大概是学到了学到了这种感觉? 奇怪的只是增加了.jpg
  2. 秦军很厉害有部分原因是因为造剑工艺好,造出的剑更加长。但这也导致了秦王在和荆轲绕柱跑的时候拔不出剑。
  3. 供暖用的水需要用化学物质(EDTA 之类的?)来除去水里的钙。然后这些除钙的物质都是对人体有害的(因为人体中的钙很重要)。有的供暖会向水里加染料或是有味道的物质来防止人们将供暖的水用作生活用途。
  4. 有的实验室按字母表顺序排列论文作者,于是有的导师就再也不收名字比自己排得前的学生了。
  5. HTTP状态码418:I’m a teapot 服务器表示自己只是个茶壶,拒绝冲咖啡。超文本咖啡壶控制协议规定,一个咖啡和茶都能泡的服务器暂时不能泡咖啡时,应该返回503状态码。 该状态码被现代所有流行浏览器完全支持。 来源:418 - MDN
  6. Mozilla温馨提醒您:密保问题的正确填法:原文 Mother's name is Ff926AKa9j6Q
  7. Logo (程序语言) 中文维基百科页面 摘录:

… 设计Logo的初衷是为了向儿童教授计算机编程技能。

Logo的方言NetLogo、StarLogo进一步深化了Logo的海龟绘图概念,可以产生出成百上千个独立的海龟(被称为代理)来模拟诸如物理、生物或社会等复杂系统。建模者可以对众多海龟并行发送指令,来观察微观个体行为与个体之间相互影响产生的宏观样式之间的联系。

另外,在英文页面中提到了一个方言 POOL,全称是 Parallel Object-Oriented Logo,并行的面对对象的Logo。 8. Pleroma赞助了Mastodon:mastodon sponsors(可以类比一下假如FreeBSD赞助了Linux?) 9. desserts 倒过来就是 stressed !压力的对立面不是放松,吃我点心啦!

17天搞定GRE单词背诵计划时间表生成器

之前打算背一背单词, 用的还是之前的杨鹏17天的方法. 发现网上的生成网页竟然不能直接拷到表格软件里面, 因为没有用table, tr, td, 用的是div你敢信. 反正就想自己再随便写一个, 顺便练练手, 虽然是真的很简单的一个程序啦.

现在随着账号搬迁放到了这里: https://shykana.qoto.io/17GRE.

TODO
  1. 用 Vue 改写;
  2. 用url来保存信息, 可以做书签了;
  3. 想偷懒或者有急事可以略过几天的新词;
  4. 用 service worker 实现离线使用(顺便还试了一下display: flex的样式).
  5. 升级到 Vue3

TunnelBroker的问题?

之前用 TunnelBroker 给 VPS 弄了个 IPv6 地址,毕竟教育网可以走 IPv6,挺方便的还省流量。但是有时隔段时间没有用 IPv6 来访问网站后,就直接连不上网站了,ping 也 ping 不通。不知道是不是 TunnelBroker 会自动会把没流量的地址冻结掉。 走 IPv4 登上 SSH 用服务器 ping 了一下其他的 IPv6 地址似乎就可以了。。。现在总之先设了个 cron 隔段时间就 ping 一下,看看怎么样。

简单服务器搭建流程

哎呀最近又奢侈买了一台VPS(说来话长),总之就是又要重新搭一遍。顺便回忆一下流程吧

  1. SSH登陆进去,这时一般的VPS都只有一个root帐号,马上创建用户禁止root登陆,使用密钥。
$ ssh <ip> [-p port] # 一般起始的端口就是22,不用指定
# useradd -m <用户名>
# usermod -a -G sudo <用户名>
# visudo # 看看有没有 '%sudo ALL=(ALL) ALL' 这一行,没有的话自己加上,前面有 '#' 的话去掉
# passwd <用户名> # 更改密码
    这时本地新开一个终端,如果没有创建过密钥:```
    $ ssh-keygen # 跟着提示走
    $ ssh-copy-id \[-p port\] \<用户名\>@\<ip\>
    如果创建过密钥,直接:
    $ ssh-copy-id \[-p port\] \<用户名\>@\<ip\>
    $ ssh <用户名>@<ip> #尝试登陆,如果登陆不了不要继续!先找到问题,否则之后就进不了SSH了
    \# *注意* :这里应该直接进入,或者显示 `Enter passphrase for key ...`
    \# 如果显示的是 `\<username\>@\<ip\>'s password:` 那这是有问题的!可能是设置错了或者是公钥没有复制对(比如你有多个公钥的时候)!
    \# ~~这里还应该有更多说明,但是暂时懒得。可以查一下 `ssh-copy-key` 的用法。~~
    ```
    这时直接回到原来的SSH:```
    \# nano /etc/ssh/sshd\_config
    更改以下几行为:
    Port <你喜欢的端口>
    PermitRootLogin no
    PubkeyAuthentication yes
    PasswordAuthentication no
    ```
    重启SSHD```
    \# systemctl restart sshd
    ```
    Ctrl+D退出SSH,以后登陆使用一下命令:```
    $ ssh <用户名>@<ip> -p <新端口>
    ```
  1. 服务器搭建:
    1. $ sudo su # 不好的习惯,不要学 \# apt update # 更新软件,不同发行版不同 \# apt upgrade \# apt install \# apt-get install software-properties-common \# add-apt-repository ppa:ondrej/php \# add-apt-repository ppa:ondrej/nginx-mainline \# apt update \# apt install nginx \# apt search php7.3 # 看看想装啥,顺便之后可能PHP版本会变 \# apt install php7.3 php7.3-fpm php7.3-mbstring php7.3-mysql \# apt install mariadb-server
    2. Mariadb数据库(MySQL):
    3. 可以先试一下:“` # apt install mariadb-server 反正我是出错了,版本也不够新,所以用官方的repo。 # apt remove -f mariadb-server # apt autoremove -f

      # apt install curl # curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | bash # 不用 root 的话 bash 前加个 sudo # apt install mariadb-server 还是出错了。。。安装停住了。。。 Setting up mariadb-server-10.4 (1:10.4.10+maria~bionic) … 之后就没有动。没办法,再开一个SSH,`ps aux | grep mysql`发现有几个东西。kill -9 弄掉,至少安装结束了。 Setting up mariadb-server-10.4 (1:10.4.10+maria~bionic) … /var/lib/dpkg/info/mariadb-server-10.4.postinst: line 23: 1208 Terminated
      bash /usr/bin/mysql_install_db —rpm —cross-bootstrap —user=mysql —di sable-log-bin —skip-test-db 2>&1 1209 Done | $ERR_LOGGER Created symlink /etc/systemd/system/mysql.service → /lib/systemd/system/mariadb. service. Created symlink /etc/systemd/system/mysqld.service → /lib/systemd/system/mariadb .service. Created symlink /etc/systemd/system/multi-user.target.wants/mariadb.service → /l ib/systemd/system/mariadb.service. Job for mariadb.service failed because the control process exited with error cod e. See “systemctl status mariadb.service” and “journalctl -xe” for details. Job for mariadb.service failed because the control process exited with error cod e. See “systemctl status mariadb.service” and “journalctl -xe” for details. Setting up mariadb-server (1:10.4.10+maria~bionic) … Processing triggers for man-db (2.8.3-2ubuntu0.1) … Processing triggers for libc-bin (2.27-3ubuntu1) … 还给出了出错命令,重新试一遍: # bash /usr/bin/mysql_install_db —user=mysql # mysql_secure_installation # 看看如何 “` 似乎可以了。

Manjaro 笔记本 Nvidia 显卡折腾 (待续)

笔记本是 Nvidia 加 Intel 核显. 但是之前安装 Manjaro 的时候无论装开源还是闭源驱动都会黑屏, 之后干脆只装了个核显驱动, 碰都不碰独显. 现在无聊 (果然赶 deadline 的时候是最想摸鱼的时候), 所以试一下. 先以防万一记录下计算机信息: 神船K650D-G4E5 开始折腾之前:

$ sudo inxi -Fxxxz
System:
  Host: lil-manjaro Kernel: 5.2.11-1-MANJARO x86\_64 bits: 64 compiler: gcc 
  v: 9.1.0 Desktop: Xfce 4.14.1 tk: Gtk 3.24.10 info: xfce4-panel 
  wm: Compiz 0.9.13.1 dm: LightDM 1.30.0 Distro: Manjaro Linux 
Machine:
  Type: Laptop System: HASEE product: K650D v: N/A serial: N/A Chassis: 
  type: 10 serial: N/A 
  Mobo: HASEE model: K650D serial: N/A UEFI: American Megatrends 
  v: 1.07.06RHAS2 date: 09/21/2018 
CPU:
  Topology: Dual Core model: Intel Pentium Gold G5400 bits: 64 type: MT MCP 
  arch: Kaby Lake rev: A L1 cache: 128 KiB L2 cache: 4096 KiB 
  L3 cache: 4096 KiB 
  flags: lm nx pae sse sse2 sse3 sse4\_1 sse4\_2 ssse3 vmx bogomips: 29576 
  Speed: 1135 MHz min/max: 800/3700 MHz Core speeds (MHz): 1: 1157 2: 1183 
  3: 1194 4: 1166 
Graphics:
  Device-1: Intel vendor: CLEVO/KAPOK driver: i915 v: kernel bus ID: 00:02.0 
  chip ID: 8086:3e90 
  Device-2: NVIDIA GP108M \[GeForce MX150\] vendor: CLEVO/KAPOK driver: N/A 
  bus ID: 01:00.0 chip ID: 10de:1d10 
  Display: server: X.Org 1.20.5 driver: intel compositor: compiz v: 0.9.13.1 
  resolution: 1920x1080~60Hz, 1366x768~60Hz 
  OpenGL: renderer: Mesa DRI Intel UHD Graphics 610 (Coffeelake 2x6 GT1) 
  v: 4.5 Mesa 19.1.5 compat-v: 3.0 direct render: Yes 
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: CLEVO/KAPOK 
  driver: snd\_hda\_intel v: kernel bus ID: 00:1f.3 chip ID: 8086:a348 
  Sound Server: ALSA v: k5.2.11-1-MANJARO 
Network:
  Device-1: Intel Wireless-AC 9560 \[Jefferson Peak\] driver: iwlwifi 
  v: kernel port: 5000 bus ID: 00:14.3 chip ID: 8086:a370 
  IF: wlo1 state: down mac: <filter> 
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
  vendor: CLEVO/KAPOK driver: r8168 v: 8.047.02-NAPI port: 3000 
  bus ID: 02:00.1 chip ID: 10ec:8168 
  IF: enp2s0f1 state: up speed: 100 Mbps duplex: full mac: <filter> 
Drives:
  Local Storage: total: 1.14 TiB used: 63.24 GiB (5.4%) 
  ID-1: /dev/sda vendor: HGST (Hitachi) model: HTS721010A9E630 
  size: 931.51 GiB speed: 6.0 Gb/s rotation: 7200 rpm serial: <filter> 
  rev: A3U0 scheme: GPT 
  ID-2: /dev/sdb model: Phison SATA SSD size: 238.47 GiB speed: 6.0 Gb/s 
  serial: <filter> rev: 61.2 scheme: GPT 
Partition:
  ID-1: / size: 234.24 GiB used: 20.66 GiB (8.8%) fs: ext4 dev: /dev/sdb2 
  ID-2: /home size: 592.58 GiB used: 35.50 GiB (6.0%) fs: ext4 
  dev: /dev/sda8 
  ID-3: /var size: 78.24 GiB used: 7.08 GiB (9.1%) fs: ext4 dev: /dev/sda7 
Sensors:
  System Temperatures: cpu: 54.0 C mobo: N/A 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 191 Uptime: 10h 59m Memory: 15.55 GiB used: 2.63 GiB (16.9%) 
  Init: systemd v: 242 Compilers: gcc: 9.1.0 Shell: bash (sudo) v: 5.0.9 
  running in: xfce4-terminal inxi: 3.0.36 

$ mhwd -li
> Installed PCI configs:
--------------------------------------------------------------------------------
                  NAME               VERSION          FREEDRIVER           TYPE
--------------------------------------------------------------------------------
           video-linux            2018.05.04                true            PCI
         network-r8168            2016.04.20                true            PCI


Warning: No installed USB configs!

另外, 其实笔记本还外接了个 VGA 屏幕, 但感觉没啥问题, 就先留着了. 然后就先跟着 https://blog.csdn.net/weixin_42205310/article/details/81905293 来走走试试. 不敢直接试, 就先重启, GRUB 里加上 systemd.unit=multi-user.target 的内核参数, 命令行模式下操作. 诶呀重启一下果然还是不行, 命令行模式进入之后把 bumblebeed 给禁用掉就开得了机了 (sudo systemctl disable bumblebeed). 等之后有空看看上 Manjaro 论坛上问问大佬.

最终选取方法:Optimus

最后也没有去问大佬,就参考了 Manjaro 论坛里的教程 Guide: Install and configure optimus-manager for hybrid GPU setups (Intel/NVIDIA) 自己装上好像就行了。 no switching method 但是我的 optimus 在切换时里不能选取任何的电源管理措施(Switching method 以及 PCI reset 只能够选 None/No,否则就直接 kernel panic,可能和垃圾 BIOS 有关。反正切到 Nvidia 之后费多点电就费多点嘛,我也懒得继续折腾了。