快来注册!

*即使不注册, DCC也会展示所有知识性和分享内容

论坛改版cloudreve更新, 链接 https://disk.monika.love/s/bwpIm

增加了登录引导.

我觉得这玩意但凡给个改css的接口都不用重新编译一遍. 太脑瘫了.

论坛专用css更新:

.buttonchat{

box-shadow: 0 0 5px #000;

transition:all 0.3s ease;z-index:998; position: fixed; right:12%;bottom:10%; width:75px; height:75px; border-radius:50%;color:white; background-color: #f7a1cf; border:none;

}

.buttonchat:hover{

box-shadow: 0 0 8px #000;

transition:all 0.3s ease;transform:scale(1.1);

}

.buttonchat:hover>chtip{

transition:all 0.3s ease;

display:none;

}

.buttonchat>chtip{

transition:all 0.3s ease;

font-size:36px;

}

.buttonchat:hover:after{

transition:all 0.3s ease;

font-weight:bold;

-webkit-text-stroke: 1px #754d63;

content:"Chat!";

}

.buttonchatL{

box-shadow: 0 0 5px #000;

transition:all 0.3s ease;z-index:997; position: fixed; right:12%;bottom:10%; width:50px; height:25px; border-radius:10% 75%;color:white; background-color: #f7a1cf; border:none;

transform: translateX(-35px) translateY(-75px) rotate(70deg);

}

.buttonchatL:hover{

box-shadow: 0 0 8px #000;

transition:all 0.3s ease;

transform: translateX(-32px) translateY(-75px) rotate(77deg);

}

.buttonchatL>chtipL{

transition:all 0.3s ease;

font-size:10px;

}

.buttonchatL:hover>chtipL{

transition:all 0.3s ease;

display:none;

}

.buttonchatL:hover:after{

transition:all 0.3s ease;

font-weight:bold;

-webkit-text-stroke: 1px #754d63;

content:"Disk!";

}

.buttonchatR{

box-shadow: 0 0 5px #000;

transition:all 0.3s ease;z-index:996; position: fixed; right:12%;bottom:10%; width:50px; height:25px; border-radius:75% 10%;color:white; background-color: #f7a1cf; border:none;

transform: translateX(10px) translateY(-75px) rotate(-70deg);

}

.buttonchatR:hover{

box-shadow: 0 0 8px #000;

transition:all 0.3s ease;

transform: translateX(7px) translateY(-75px) rotate(-77deg);

}

.buttonchatR>chtipR{

transition:all 0.3s ease;

font-size:10px;

}

.buttonchatR:hover>chtipR{

transition:all 0.3s ease;

display:none;

}

.buttonchatR:hover:after{

transition:all 0.3s ease;

font-weight:bold;

-webkit-text-stroke: 1px #754d63;

content:"Wiki!";

}

.DiscussionListItem-main mark {

background:#FFFF66 !important;

color: #f44336!important;

}

.ChatHeader

{

background-color: #f7a1cf !important; /* chat header color */

}

.ChatViewport

{

background-image: linear-gradient(to bottom right, #f7a1cf, #E0E0E0);

}

.ChatInput{

background-color: transparent; position:relative;bottom:-5%; width:100%;height:10px;margin:0 0 50px 0;

}

.cip{

position:relative;top:-20px;

}

.send{

top:-10px;

}

#open-file {

width: 100px;

height: 50px;

margin: auto;

border: 1px solid #5B5B5B;

border-radius: 5px;

background-color: #FCFCFC;

cursor: pointer;

}

#open-file:hover {

background-color: #F0F0F0;

}

.facog1{

color:#2c1c24; transition: all 0.2s;

}

.fa-volume-up{

color:#2c1c24; transition: all 0.2s;

}

.fa-bell-slash{

color:#2c1c24; transition: all 0.2s;

}

.fa-window-minimize{

color:#2c1c24; transition: all 0.2s;

}

.fa-angle-double-right{

color:#2c1c24; transition: all 0.2s;position:relative;top:-20px;

}

.fa-upload{

color:#2c1c24; transition: all 0.2s;position:relative;top:-20px;

}

.chlim{

position:relative;top:-20px;

}

.fa-cog:hover{

color:#62003e

}

.fa-volume-up:hover{

color:#62003e

}

.fa-bell-slash:hover{

color:#62003e

}

.fa-window-minimize:hover{

color:#62003e

}

.fa-angle-double-right:hover{

color:#f7a1cf;

}

.fa-upload:hover{

color:#f7a1cf;

}

.ChatList

{

background-color: #f7a1cf !important; /* chatlist background color */

.header {

background-color: #f7a1cf !important; /* chatlist header color */

}

.panel-preview

{

&:hover:not(.active) {

box-shadow: 0 0 0 3px #f7a1cf !important; /* primary hover color #94ddff*/

@media @phone {

background-color: #f7a1cf !important;

}

}

&.active {

box-shadow: 0 0 0 3px #ff6ac3 !important; /* primary color #94ddff*/

}

.message .sender {

color: #f7a1cf !important;

}

}

.panel-add {

&:hover {

box-shadow: 0 0 0 3px #f7a1cf !important;

}

}

}

@media @phone {

.NeonChatFrame.hidden {

margin-bottom: 52px;

}

}

@media (min-width:768px) and (max-width:999px) {

.Search-input input {

width: 30px;

max-width: 120px;

}

.Search.focused .Search-results,.Search.focused input {

width: 120px;

}

.Search.focused {

margin-left: auto

}

.Button-label {

.LinksButton-title {display:none}

}

}

@media (min-width:1000px) and (max-width:1099px) {

.Search-input input {

width: 120px;

max-width: 200px;

}

.Search.focused .Search-results,.Search.focused input {

width: 200px

}

.Search.focused {

margin-left: auto

}

}

@media (min-width:1100px) and (max-width:1399px) {

.Search-input input {

width: 225px;

max-width: 325px;

}

.Search.focused .Search-results,.Search.focused input {

width: 325px

}

.Search.focused {

margin-left: auto

}

}

@media (min-width:1400px) {

.Search-input input {

width: 325px;

max-width: 600px;

}

.Search.focused .Search-results,.Search.focused input {

width: 600px

}

.Search.focused {

margin-left: auto

}

}

@screen-desktop-hd-max: (@screen-desktop-hhd - 1);

@screen-desktop-hhd: 1400px;

@desktop-hd: ~"(min-width: @{screen-desktop-hd}) and (max-width: @{screen-desktop-hd-max})";

@desktop-hhd: ~"(min-width: @{screen-desktop-hhd})";

:root {--screen-desktop-hhd: 1400px;}

@media (min-width: 1400px){

.container {

width:1400px

}

}

.item-like .Button:before {

font-family:'Font Awesome 5 Free';

font-weight:600;

font-size:14px;

content:'\f164';

vertical-align:-1px;

margin-right:4px;

}

.item-reply .Button--link:before {

font-family:'Font Awesome 5 Free';

font-weight:600;

font-size:15px;

content:'\f3e5';

margin-right:4px;

vertical-align:-2px;

}

@media (min-width:999px){

.Post-actions {

position:absolute;right:1em;bottom:0.4em;

}

}

.item-bestAnswer{

button{

background-color:transparent;

color:#936c83;

font-weight:normal;

margin:0px 0px !important;

padding-left:13px;

padding-right:13px;

}

button:hover{background-color:transparent;color:#f7a1cf}

button:active{background-color:transparent;color:#f7a1cf}

.Button:before {

font-family:'Font Awesome 5 Free';

font-weight:600;

font-size:15px;

content:'\f5c0';

margin-right:4px;

vertical-align:-2px;

}

}

.Post{

.item-who-read-unread{

button{

i{position:relative;left:2px;}

span{display:none}

width: 36px;

text-align: center;

padding: 8px 0;

background: transparent;

border-radius: 18px;

}

button:hover{background-color:#181015}

button:active{background-color:#090608}

position:relative;

bottom:-3px;

left:-6px;

}

}

.AlertManager-alert{

.Alert--success{

-webkit-animation:fade-out 6s ease-in-out 0s 1 alternate forwards;

}

@keyframes fade-out {

from {

opacity: 1;

}

to {

opacity: 0;

}

}

.Alert--error{

-webkit-animation:fade-loop 1.5s ease-in-out 0s infinite alternate forwards;

}

@keyframes fade-loop {

0%{opacity: 1;}

100%{opacity: 0.5;}

}

}

.item-moreTags {

a:before {

position:absolute;

color:#936c83;

font-family:'Font Awesome 5 Free';

font-weight:600;

font-size:15px;

content:'\f141';

left:0px;

}

}

@media (min-height:100px) and (max-height:1000px) {

.IndexPage-nav .item-nav{

max-height: calc(~"100vh - 190px") !important;

height: calc(~"100vh - 190px") !important;

}

}

里面有很多内容都已经用不上了, 但是又不敢随便删. 应该没什么大问题.

比起之前的优化了fof/best-answerclarkwinkelmann/flarum-ext-who-read的按钮效果, 并且针对各个可能的分辨率进行了大量优化.

同理, 其它flarum也能用, 但是分辨率优化还得看具体情况才好.

23.11.22更新: 调整了clarkwinkelmann/flarum-ext-who-read的显示效果.

24.1.11更新: 调整了sticky sidenav的显示效果.

我的主网关配置

镜像: https://disk.monika.love/s/ZVaSX

openwrt, 包含无线网卡的驱动和luci.

  • 配置pppoe, 用isp给的账号密码就行.
  • 如果你和我一样有多级路由, 把ipv6分配全部改成中继模式, 并且关闭一级路由的dhcp. 如果不是那就不管.
  • 如果你和我一样有多级路由, 一定别忘了填静态路由表. 要路由一个网域, 一定要把长度带上, 一般是/24.
  • 装ddns-go. 我觉得它比lucky靠谱一些.
  • 装lucky去映射一些无关紧要的网段. lucky删除配置的时候会把后面的弄乱, 别放重要的映射在这里.
  • 装nps, 当vpn去用. 转发端口数量有限的话问题不大.
  • 配置无线. 很奇怪的是ax210只能用N模式发射, 但是这玩意能用就无所谓. 如果你真指望这个上网可以改地区码试试看.
  • 对公网开放访问的服务必须用强密码. 我其实对我的密码也比较没底, 但是爆破和对表肯定弄不出来就行. 一定要看浏览器的密码泄露提醒.
  • nps在openwrt上安装后, 需要自己去修改/etc/init.d/nps, 至少添加boot() {}命令, 不然会自启不了.

然后是提醒我自己的:

  • 论坛服务的主端口是28991, 把它映射到后端的443. 另一个重要的映射是ftp, 21到21就行.
  • 还有ftp的被动网域, 最好加在lucky的第一条, 选择39000-40000.
  • 邮箱服务器的端口有25,110,143,465,587,993,995, 全部映射了就行.
  • openwrt自己有samba4服务和vsftpd, 要转发就先关掉.
  • 及时备份. openwrt的磁盘镜像很小, 备个份完全没损失. 最好每次修改后都备份.

宝塔再次向我证明了它的老血栓.

我找了半天这个没有使用索引的表到底在哪, 最后看了慢日志, 发现行数太少的时候mysql会拒绝使用索引来提速.

但是这种情况也会被记下来, 也不带筛选地就提醒我索引结构出问题了.

出你妈逼.

如果需要成规模, 专业化或者客制化地部署远程桌面:

别用Rustdesk.

我本来是很喜欢Rd的, 今天自建了服务器打算换个id方便管理, 就去看了文档.

你猜怎么着?

这个项目最开始是2020年在v2ex出现的, 满口承诺着完全开源免费.

结果发布仅仅两个版本(114 115)之后就把改id的功能砍了, 加进了Pro.

不支持买断, 还在issue里面说我也要恰饭的. 搞得跟我不要恰饭的一样.

别的就算了 改id这种功能 都自建服务器了还要卡着?

更逆天的是, 美其名曰安全起见, 在12x版本后把社区里琢磨出来改id的办法给堵上了.

最最逆天的是, 把最开始没收费的114版本的服务端从github上删了. 要么交钱, 要么记随机数id.

我已经从我的所有工作配置里把rd删掉了, 之后打算自建一套novnc.

你可以说你免费给用社区版就是大恩大德了, 我是不吃你这套的.

收录 Unihertz Titan UFS版刷机包: https://disk.monika.love/s/ORVHD

不会真的有人和我一样用这种键盘老古董吧.

因为受众实在太小, 所以资料和资源都非常难找. 但discord上非常有钻研精神的老哥们还是找官方弄到了这份ufs版的固件.

这个Titan的闪存有两个版本, 早期一些的是emmc5.1, 后面升级成了ufs2.0 固件就不一样了.

网上勉强能找到的固件只有emmc版本的, 我在这上栽了两个大跟头.

刷写任何错误版本闪存的固件都会导致无限重启循环, 而Titan的启动逻辑甚至都和一般安卓手机不一样…

  • 如果你很不幸地陷入了无限重启, 像正常手机一样长按电源/电源+音量是没用的.
  • 要脱离循环, 你首先需要在设备屏幕刚亮的时候, 就按住音量+. 不要按电源!
  • 接下来你会进入一个"无命令"(no command)界面. 这里是第二个坑, 虽然有躺着的机器人图标, 但现在手机并不是fastboot. 我查了资料, 应该又是一种很罕见的"无指令recovery"模式.
  • 接下来, 先按住电源键, 然后按下音量+, 不要拖太久. 接下来你就可以看到熟悉的recovery界面了.
  • 然后就可以按正常手机的思路排障了, 该干啥干啥.

我上传的固件经过测试可以正常刷写magisk, 照正常流程就行.

只能说unihertz这破厂 真的是.

要不是它长得颇有黑莓风骨, 鬼还买它

收录 壮志凌云(Jets 'N Guns)黄金版: https://disk.monika.love/s/8roId

呃 这个跟技术就没什么关系了, 是一个老游戏.

如果你的童年里接触过这款 画风独特的横板飞行射击爽游, 打算回顾一下就玩吧.

现在看来剧情比较简单, 当个解压游戏还是挺好的.

顺便, 我自己玩的时候出现了"不能用快捷方式"的奇怪问题, 只能直接去点exe. 我猜它是在某处直接调用启动路径来读取资源文件了.

6 天 后

关于交叉编译到底能不能用多线程

在网上看到的说法, 很多人都说多核编译容易出问题, 但是并没有看到有什么人说出来到底是什么问题.

多核编译的优势实在明显, 那就是速度快太多了. 我用单核多核测试了很多次openwrt的编译, 然后:

  • 多核编译应该不存在实质上的"导致问题". 用单核编译能一次成功的固件, 多核也可以.
  • 多核编译最大的问题是日志. 如果其中一个线程发生致命错误, 剩下的线程不会停, 最终编译失败的时候你就找不到真正的问题在哪.
  • 多核编译需要一个很理想的网络环境. 如果你对下载不太自信, 就单核去试试看再说.
  • 一般而言很多编译是会被保留的. 如果你觉得固件的可靠性已经差不多了, 先多核走一次可能会总体上更快.
  • 无论你怎么编, 一定加上要求输出详细日志的参数! 一定一定!
7 天 后

如何给你的pve虚拟机直通显卡

  • 必须在宿主机中手动禁用显卡驱动
  • 必须调整主板为q35, 直通显卡为pcie设备.
  • 好像没有了.

vGPU license的部署(docker): docker run -d -e DLS_URL=你可以持续访问此服务器的url -e DLS_PORT=这个url的port -p 这个url的port:443 makedie/fastapi-dls

我以为我之前说过来着, 居然没有. 也懒得详细解释了. 总之这个能用.

collinwebdesigns/fastapi-dls也提供这个容器镜像.

容器是自带使用说明的, 你也可以直接去https://edgemonix.top:7070/-/readme看.

一份535版本的vGPU驱动: https://disk.monika.love/s/7aWij

实测可以用, 不太远古的gpu, 基本上帕斯卡以后的都能装.

需要的东西里面都有, 怎么处理那个证书服务器就看你自己的了.

如何让openwrt正确地分配ipv6地址:

  • 服务器模式-服务器模式-混合模式. 有时候多层路由下, 同一个设备会被分配多个ipv6地址, 一般来说不打紧.
  • dhcp一定要开! 就算你不打算真的用它的dhcp也一定要开, 关闭动态dhcp即可.
  • 一定不要动wan6! 就算你看不懂它到底在干什么/觉得它啥也没干, 如果你的接口项目表里面已经有至少一个可用的ipv6了, 那就别动wan6!
  • 如果你真的动了wan6, 往往就只能删掉wan重建了. 一般会顺带把wan6生成出来. 如果还没有就回档.

给pptp整了半天没法正常连接, 最后用ubuntu直接就连上了. 然后才意识到服务端没问题.

  • 作为客户端的测试设备, 一定优先用ubuntu或者kali. centos容易出现奇怪的问题.
  • 作为服务端, 如果你自信就用centos吧.
  • 别相信windows自带的任何网络功能. 就是别相信.
16 天 后

如果你使用mailcow发信代理, 比如ses或者什么别的:

把这几个全勾上.

  1. 中继这个域名: 废话, 就是中继这个域名.
  2. 中继所有收件人: 一个和收件身份验证有关的选项. 如果你的postfix日志里面"存在的用户被认为不存在", 可能是没打开这个.
  3. 只为不存在的地址中继: 非常重要. 这个"不存在的地址"指的是路由表上不存在的, 而不是dns上不存在的, 也就是说指本地之外的地址. 如果不勾这个, 本地递送会出现loop被bounce掉的情况.

赛扬的处理器是不适合做核显直通的, 最好别想了.

说的就是你, n5105. 这些东西老老实实用网页, 或者干脆hyperv.

炮制纯净无广告版的netdata docker:

  • docker-compose.yml

    version: '3'

    services:

    netdata:

    image: netdata/netdata

    container_name: netdata

    pid: host

    restart: unless-stopped

    cap_add:

    - SYS_PTRACE

    - SYS_ADMIN

    security_opt:

    - apparmor:unconfined

    volumes:

    - ./nd/ndweb:/usr/share/netdata

    - ./nd/ndconfig:/etc/netdata

    - ./nd/nddata:/var/lib/netdata

    - ./nd/ndcache:/var/cache/netdata

    - /etc/passwd:/host/etc/passwd:ro

    - /etc/group:/host/etc/group:ro

    - /etc/localtime:/etc/localtime:ro

    - /proc:/host/proc:ro

    - /sys:/host/sys:ro

    - /etc/os-release:/host/etc/os-release:ro

    - /var/log:/host/var/log:ro

    - /var/run/docker.sock:/var/run/docker.sock:ro

    environment:

    - DO_NOT_TRACK=1

    - DISABLE_TELEMETRY=1

    - NETDATA_DISABLE_CLOUD=1

    - NETDATA_REQUIRE_CLOUD=0

    ports:

    - "19999:19999"

  • ./nd/ndweb/web/index.html

    <script language="javascript"type="text/javascript"> window.location.href="v1"; </script>

  • rm -rf ./nd/ndweb/web/v2

更适合赛博洁癖体质.

就不登录, 就不更新, 就不看你的推广, 嘻嘻

这他妈又是什么?

我不知道, 我最后放弃思考了, 把内核日志调到了3. 眼不见心不烦.

问题是在宿主机今天的一次system halt之后发生的, 回滚虚拟机没有用.

暂时没有尝试重新插拔什么的. 日志虽然一直在往外冒, 但是网卡并没有连接性问题.

真是莫名其妙.

12.11更新: 在完全冷重启宿主机之后, 问题消失了.

就和它的出现一样莫名其妙.

如果服务器没有稳定的ipv6, 就不要给ftp一个存在AAAA的域名.

我懒得重复一遍为什么了. 这个问题太弱智了.

1 个月 后

如果你的虚拟机有任何直通pci/pcie性质的设备(网卡显卡都算), ballooning就不会起任何作用, 建议关掉.

打赏

  • 5 分 来自: Ἥβη