只是玩玩

随手记下,日子就有了回声。

这里是一些没有来得及展开的片段:今天的天气、脑子里突然冒出的想法、路上看见的一棵树,以及那些不适合写成文章的小事。

周日

Frp打洞后内网Nginx反代
https://1900.live/frpda-dong-hou-nei-wang-nginxfan-dai

from 1900’Blog.

#博客

家里这台NAS从24年10月开组,系统用的飞牛OS,最开始用无线网卡出过几次问题,后来换成有限网卡后趋于稳定。不过官方最近报了个0day漏洞出来炸了锅,不过我情绪还算比较稳定,在期初系统选型时就在黑裙、OMV、truenas、飞牛之间犹豫了很久,最后还是选择了拿安全换方便。

机器从最开始的3D打印机箱+闲置硬盘上手,到后面的疾风知N52机箱+两块4T硬盘上手,后续为了「一步到位」换了10盘位的机箱+陆续上到了7块硬盘,那时的我还不知道短短一年多时间,当时买的这些硬盘能翻上好几倍变成了理财产品。

因为电信不给申请公网服务,所以选择了Frp+中继服务器打洞,当时图方便直接使用了Frp自带的转发服务,但随着玩机的深入,部署的容器服务也从此前的几个增长到了几十个,Frp转发服务的一些问题逐渐暴露出来,如:

  1. 个别服务需要用到WebSocket服务,但是Frp转发服务没法自定义这些配置,
  2. 不能对域名下的不同路径转发做处理
  3. 性能较差,我的体验是看影视资源经常要等个四五秒才能开始播放
  4. 每个服务一个配置项,管理不方便

所以昨天花了一两个小时从原来的Frp转发服务切…

周日

我失业后能干啥
https://1900.live/what-can-i-do-after-losing-my-job

from 1900’Blog.

#博客

可能是因为行业持续低落我始终忍不住把一切往最坏的方面靠拢。

所以最近忽然开始思考,如果有一天我失去了目前的一切之后我还能依靠哪些技能继续找到足以糊口养家的体面工作?我感兴趣的又是那些方面呢?

广告制作

因为门店平时经常做活动,需要设计活动对应的广告传单、宣传物料等。最开始我们全是找外面广告公司来做的,但是感觉沟通成本太高了,效率、质量都不太让我满意。

所以在看了对方制作了几次之后我开始在自己电脑上安装CorelDraw,这是一个用起来有点类似Photoshop的设计工具,它更偏向矢量设计,但是没Adobe Illustrator 那么强大,不过排版功能很强大。

后来学会在nipic这种素材站上下素材,再做对应修改后做出更漂亮的成品,后续几次和广告公司老板沟通后发现我这水平在他们那里找一份5到6k的工作没有问题。

或者自己开个广告公司,其实接触这么多年下来,发现很多广告公司其实根本没有打印设备,都是找同城代打、印刷,如果本地没有还能联系成都的同行进行处理,所以理论上有人和电脑就行了,当然这方面最重要的当然是客户,我目前接触过这么多产品代理,零售店,真要去做资源这块应该还是没问…

周六

花了一两个小时把nas服务原来用frpc自带的代理功能改成了由nginx处理。
感觉速度快了不少,以前用emby看视频经常要等上好一会,现在都是秒加载了。

周四

1900 转嘟 @1900:

在看 南来北往 第 1 季 🌕🌕🌗🌑🌑
依旧是跟着老妈和老婆下班时间围桌而看的。
当生活剧看了,我们全家人一致觉得老马很像我爸。

里面客串的配角大咖可是真的多啊

#Neodb

周四

1900 转嘟 @1900:

在读 点燃希望 🌕🌕🌗🌑🌑
前半部偏向自述,后半部开始讨论人性、神性,对她提到的人类的某些或好或坏的行为是从基因片断里带来还是后天养成的?

#Neodb

周四

tinfoil的黑商店现在大多数都专向收费了,而且质量参差不齐。
所以用 https://github.com/a1ex4/ownfoil 自建了一个tinfoil游戏库,通过夸克网盘下载游戏进行更新,感觉还算比较方便。

1900 的动态图片 1
周四

对了,直接把代码部分放进openlist的自定义头部里能在所有浏览器上都实现这个功能。

周四

在openlist前端调用aria rpc服务下载时不能指定存放的目录,用AI写了个脚本实现了个弹窗设置存放主目录的功能,需要使用的小伙伴可能要修改 /data/aria-download 为你的aria预设下载路径。

// ==UserScript==
// @name         openlist → aria2 强制指定下载目录
// @namespace    https://github.com/yourname
// @version      0.2
// @description  给 openlist 前端批量发送到 aria2 的请求自动加上 dir 字段
// @author       You
// @match        *://alist.demo.com/*
// @grant        none
// @run-at       document-start
// ==/UserScript==
(function () {
    'use strict';

// 缓存用户输入,同一次页面会话内不再反复弹
let userRoot = null;

function getNewRoot() {
    if (userRoot === null) {
        // 弹窗输入,支持 Windows 盘符或 Unix 风格路径
        userRoot = prompt(
            '请输入新的下载根目录(留空=保持原目录):\n例:D:\\down  或  /mnt/usb',
            ''
        );
        if (userRoot === null) userRoot = '';   // 点取消
        // 去掉末尾的 \ 或 /
        userRoot = userRoot.replace(/[\\/]+$/, '');
    }
    return userRoot;
}

function patchBody(bodyStr) {
    let body;
    try { body = JSON.parse(bodyStr); } catch (e) { return bodyStr; }

    // 只处理 aria2.addUri
    if (body.method !== 'aria2.addUri') return bodyStr;

    const options = body.params[2] || {};
    const oldDir = options.dir || '';

    // 如果 dir 里包含 /data/aria-download/ 就替换
    if (oldDir.includes('/data/aria-download')) {
        const newRoot = getNewRoot();
        if (newRoot) {
            options.dir = oldDir.replace('/data/aria-download', newRoot);
            body.params[2] = options;
            return JSON.stringify(body);
        }
    }
    return bodyStr;
}

/* ---------- 拦截 fetch ---------- */
const _fetch = window.fetch;
window.fetch = function (url, opts = {}) {
    if (url.includes('/jsonrpc') && opts.body && typeof opts.body === 'string') {
        opts.body = patchBody(opts.body);
    }
    return _fetch.call(this, url, opts);
};

/* ---------- 拦截 XMLHttpRequest ---------- */
const _send = XMLHttpRequest.prototype.send;
const _open  = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function (m, u) {
    this._url = u;
    return _open.apply(this, arguments);
};
XMLHttpRequest.prototype.send = function (data) {
    if (data && this._url && this._url.includes('/jsonrpc')) {
        if (typeof data === 'string' || data instanceof String) {
            arguments[0] = patchBody(data);
        }
    }
    return _send.apply(this, arguments);
};
})();
周四

1900 转嘟 @conge:

读过 The Man’s Guide to Women 🌕🌕🌕🌕🌑
此书的三观比较正,虽然书名是写给男性的女性攻略。用的语言虽然有点儿游戏用语,但目标不是教男孩子做花花公子,而是教男性奔着建立长期的亲密关系,去学会与女性相处的方方面面。目标读者,适合情窦初开的男孩子到已经结婚的男性,如何与找到自己的伴侣并与其长厢厮守下去。

两性性关系中,女性看中的是 Trustworthiness 和安全感。男性看中的,一少一多:少冲突多性爱。Trustworthiness 我没翻译,是因为不好翻译,有点儿老实忠诚的意思。但在婚姻中,屡屡看到的是老实人吃亏。不要老实,要真实。

吸引女性的特质有:自信,在某一方面展现出能力。紫霞仙子要的是盖世英雄,每个女子大概也会想要自己的英雄。如果女性对某个男性有意思,总会发出信号,走动一下就可以确定信号是不是想你发出的。

在动物界,很少有物种的两性行为像人类的那么复杂。女性对危险很敏感,因而就容易情绪化。女性生理期有周期性变化,也会引发莫名其妙的情绪。女性对容貌有焦虑,有情感需求和社交需求。男性要学会安抚情绪,赞美对方,支持对方发展友谊。

书中也良心的告诉男性,要远离公主病和Drama女王。

如果要和心仪的女性进入婚姻,长厢厮守,可以大致遵循下面的做法:

谈恋爱的时候要确认:能玩儿的到一起,能够聊得到一起 人生观大致相合 互相能够应对对方情绪,如果要有婚前性,性生活要和谐,偶尔不和谐能包容

进入婚姻前,要确定彼此要的一样:要不要孩子,要几个孩子,要孩子谁带,家庭财务如何处理,家务分工如何安排…

最后,进入婚姻后,还要尽量做一些恋爱时期两个人做的事情,保持关系常青……