碎碎念

陪她去流浪 新建

和朋友一起去看了电影《抓娃娃》。

作为一个土生土长的农村孩子,我对这部片没有太多评价,搞笑片算不上,对我来说有点童年阴影。中国的父母——特别是农村家庭的——爱孩子的方式很多都是:没苦硬吃,还说是“为你好”。当然,中国的社会整体价值观都偏向于歌颂苦难。有一句话是怎么说的来着?“祝歌颂苦难的人天天都有苦头吃。”

片尾,父母认为“大号练废了”(原话),需要给孩子惊喜:一个弟弟或妹妹。我不太了解导演到底是想表达什么,或者是这样更符合主旋律?咋的,敢情说孩子就是父母来拿练手的?练废了就重开?什么弱智行为。放过他人,也放过自己。

IMG_0990.avif

对于“小孩儿要穷养”这件事,我还是比较有发言权的,因为我自己勉强就算得上是一个被穷养长大的孩子。依稀记得上初中那会儿(2007年左右),我表弟借宿我家,和我上同一个初中,初三住校。他一周的生活费是 50 元,而我,只有 15 元。平均一天 3 元,要知道,中午的荤菜是 2.5 元,晚餐的米线是 1.5 元;所以我经常食不果腹。但是我知道,父母肯定拿得出更多的钱至少让我吃饱、不饿着。只是不知道他们从哪里听说了一些“歪门邪道”的东西:孩子要穷养、要多吃苦……才会体会到生活的不易、才会更努力。小时候我可能认为这样观念正确,但是很显然长大后的我不认同这种东西。但是我也不怪他们,毕竟他们本身也没有什么文化,没有自己的思想,容易被控制。

没苦硬吃容易让人从小自卑,是的,我从小就自卑。也不知道是不是因为从小经常饿肚子的原因,我个子很小(裸身高 163cm),严重拖了后腿。不像现在的 00 后,普遍 170+。年初相亲的 00 后,就是 170+,没有哪个妹子愿意接受比自己矮很多的吧?所以,这事儿,它没成,不能说完全无关。

IMG_1219.avif

8条评论 页首

把以前写的脚本语言服务端部分重新编写并编译成 #WASM 后迁移到了 GitHub Pages。六年多没有更新了(短期内没有再更新的打算),少点儿服务器运维;域名 https://tao.twofei.com 作废了。

People die, but long live GitHub.

  1. https://laike9m.com/blog/people-die-but-long-live-github,122/
  2. https://github.com/yihong0618/gitblog
  3. https://josephcz.xyz/log/talk-about-github/
2024-8-1 20:58:19

尝试把域名也通过 Cloudflare 转发,发现不管是“DNS HTTPS 记录”还是“DNS URI 记录”都无效,然后试了试“Page Rules”:

1
2
tao.twofei.com/*
Forwarding URL (Status Code: 301 - Permanent Redirect, Url: https://movsb.github.io/taolang/)

也不生效,再仔细看了 Page Rules 的文档,说是必须先要添加一条对应的 DNS 记录 😅,神经兮兮的……没添加、不报错、不生效……这种体验是人做的吗?

特别注意,添加 A 记录的时候要添加特殊的值,见文档里面:

Page Rules require proxied DNS records

Page Rules require a proxied DNS record for your page rule to work. Page Rules will not apply to hostnames that do not exist in DNS or are not being directed to Cloudflare.

Depending on the record type, you can use different values for the target as a placeholder. Either one of these achieves the same outcome and you only need to create one:

1
2
3
www.example.com  A      192.0.2.1
www.example.com  AAAA   2001:DB8::1
www.example.com  CNAME  domain.example

Cloudflare recommends only using reserved IP addresses or domain names to avoid sending traffic to foreign infrastructure.

添加(且代理)后解决了,现在 https://tao.twofei.com 永久重定向到了 https://movsb.github.io/taolang/。

2024-8-5 02:15:33

时不时就要兴起一股写编译器的风:https://twitter.com/Manjusaka_Lee/status/1815378850328789133。

没有评论 页首

在 #长沙 玩了一周多,一天都没有写代码。刚回来又想写代码了……🥵🥵🥵

没有评论 页首

记得之前有人问我华为问界的英语名字“AITO”是什么意思,以下应该算得上是官方回答……

Adding Intelligence to Auto.

IMG_0939.avif

“华为好、华为美,华为给我增智慧……”[狗头][狗头][狗头]

2024-12-2 09:19:21

啥时候改成“ATIO”了?[狗头]

IMG_7154.avif

2条评论 页首

从去年买车到现在一年时间内,折腾了各种商业充电桩,浪费了大量时间与国内的交互师作斗争(注册、充值、扫码、下 App、实名认证、退款、提现……),终于在长沙发现了“e充电”的“即插即充”功能:插上去后一键开充,自动从微信扣款……国家电网牛逼🥵🥵🥵! 其它的垃圾交互全部去死吧!

IMG_0938.avif

没有评论 页首

终于把这张从第一天上高速就贴上去的、来自深圳交警的、质量超好的实习贴给换新了!

这一年经历了数不清的风吹雨打、它就是不会掉!相比我姐在重庆交警那里获得的实习贴,质量好十倍!

等等,我不是驾照已经满一年了吗?为什么还要贴实习贴?😏😏😏

2条评论 页首

看了《NGINX 配置避免 IP 访问时证书暴露域名》,了解到:

  1. 虽然类似 Cloudflare 虽然这种可以隐藏真实 IP……;
  2. 通过 IP 访问可以通过在 ClientHello 里面通过证书确定对应的域名;
  3. Censys 在全网范围内通过访问所有 IP 来找对应的域名;

看来 ssl_reject_handshake 必须得开了。

没有评论 页首

在一个含有 225 个 JPG 大图的目录内用 #FFMPEG 执行到 #AVIF 批量转换时……

截屏2024-07-17 13.09.52.avif

太爆炸💥了,我存储空间剩余不到 200G,内存总共 32G,这 659GB 是怎么冒出来的?🤔

没有评论 页首

跟前同事聊天的时候,他看我一直闲着,说让我试试 Web3:

部分聊天记录.avif

直到我今天给他发了这张图😅😅😅:

没有评论 页首

#护照 补办拿到了!虽然错过了去东南亚、去埃及🇪🇬…… 再找机会!

IMG_0556.avif

然后跟一个大学同学聊了几句天,感觉有点儿聊不下去……😒

IMG_0564.avif

没有评论 页首

@yiqifacai 只有穷人,才会痴迷技术;只有笨人,才会想着先把事做好。
观察一下身边真正的有钱人,就会发现他们有一个共同的特点:“明明知道这个人不行,但是他不提醒、不指点不好为人师,即便是他的认知经验都超过了对方,他也不会给对方的提建议。
因为无论你是指点、说教,都是需要消耗能量,情商最低的行为就是不停的讲道理,智者戒口,愚者指点江山。能说服一个人的从来不是道理,而是南墙。能点醒一个人的从来不是说教,而是磨难。

噢,难怪我越来越穷了!

没有评论 页首

不小心写错了代码没加限制🚫,一下子启动了上千个子进程(Perl),瞬间把 CPU & Memory 干爆,要不是连上了图形化的 VNC 终端,我差点没辙……(才意识到 BuyVM 不像 HostDare,后者有拯救模式(Rescue Mode),没出问题时万事大吉,出问题了才知道谁是大哥)。

截图 2024-07-08 03.44.49.avif

截图 2024-07-08 03.45.14.avif

问题已经解决了,那我还要不要写容器的资源配额呢?(逃……)

没有评论 页首

奇奇怪怪🤔,北京的同学竟然突然发了一张我大学的书📖的照片给我,关键是,我已经完全忘记什么时候给过他这本书了。

b433f2619b34e13576ed021db2f9c1e0.avif

chat.avif

没有评论 页首

每次找数据库管理软件,就还是觉得 Adminer 顺手,除用 #Adminer 打开 #SQLite3 数据库外,因为它不允许无密码登录,每次都要折腾一下……😡😡😡

  1. 在 Accessing a database without a password 推荐页面使用 login-password-less 这个插件方式;

  2. 在 这里生成你自己的密码,并替换上述插件的源代码如下:

    1
    2
    3
    4
    5
    6
    
    16,17c16,17
    < 	function __construct($password_hash) {
    < 		$this->password_hash = $password_hash;
    ---
    > 	function __construct() {
    > 		$this->password_hash = '$2y$10$0X0Fb9jejoSGWYjUzZzEh.Ck6riuMLm8z./tClCcQe.jEN68/DZ72';
    
  3. 覆盖掉原始插件代码:docker run -it --rm -v ./your.db:/your.db -v ./login-password-less.php:/var/www/html/plugins/login-password-less.php -p 8080:8080 -e ADMINER_PLUGINS='login-password-less' adminer。

就行了,密码输入刚才上面第二步的密码,用户名留空,数据库输入映射的路径即可(绝对路径最好)。

感觉还是做个成品的镜像吧,感觉网上也挺多人搜索这个的,但是网上的方法明显偏复杂,不 Ad-Hoc 🙄:

  • 做个临时用的 Adminer for SQLite3 镜像
2025-4-20 12:27:16

写好了,极其优雅!一个命令就打开!

https://github.com/movsb/adminer-sqlite3-no-password

得有🔟年没写过 PHP 了?

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
function adminer_object() {
	class AdminerSoftware extends Adminer\Adminer {
		function login($login, $password) {
			return true;
		}
		function loginForm() {
			?>
				<input type=hidden name="auth[driver]" value="sqlite">
				<input type=hidden name="auth[db]" value="<?php echo getenv('FILE'); ?>">
				<script <?php echo \Adminer\nonce() ?>>
					window.addEventListener('DOMContentLoaded', () => {
						document.forms[0].submit();
					});
				</script>
			<?php
		}
	}
	return new AdminerSoftware;
}
include './adminer.php';
没有评论 页首

“阿米娜·阔伊姆@二代目”最近再度因为在 #推特 上发表了可能涉儿童色情相关的内容被封号,导致推上出现了一众高仿号(“阿米娜·阔伊姆@三代目”),搞得大家都无从分辨孰真孰假。好景不长,“阿米娜·阔伊姆@三代目”又被封号,现在又出现了一堆“阿米娜·阔伊姆@四代目”🤪……

阿米娜·阔伊姆.avif

我是想借这个话题讨论下如何简单证明自己曾经是某个帐户的持有者——一个不需要实名的方式。

方法非常类似于数字签名✍️:

  1. 生成一对公/私钥🔐;
  2. 用私钥签名自己的帐户名字;
  3. 将签名结果置于当前帐号的描述中;
  4. 帐号被封;
  5. 注册新的帐号;
  6. 用私钥再对新的帐号签名(步骤2、3);

验证方式:

由于签名中带有公钥,如果新、旧帐户的公钥相同,则一定是由相同的私钥签名的,从而证明新、旧帐户的持有者是同一人。

说明:

  1. 被签名的数据可以是任意的,只需要保证公钥一致。
没有评论 页首

蔡佩軒 Ariel Tsai【禮物】(Blessings) 4K MV 官方版

为什么觉得特别好听,听了一晚上……😂😂😂😂😂

没有评论 页首
待办事项
  • 编写自定义的 robots / well-known 处理器,过滤机器人请求
没有评论 页首

非常郁闷,同事说明天中午一起吃饭订机票,该启动国际旅游计划了…… 但是,我突然发现我的 #护照 不见了,找了一个小时都找不到。打视频电话给妈妈让帮忙在农村老家找一找,看是不是过年落家里了,结果也没有找到……

2024-6-20 01:15:38

花了一晚上,做了个大扫除🧹,把出租屋翻了个底朝天,仍未得。

我真的会谢,这么多年,时常看见,从来没有带出过门,突然需要用到时就……消失得无影无踪 😭😭😭。

时常会接到深圳的莫名其妙的电话,也不知道是不是谁拾到了我的护照交公了,然后因为我不接陌生电话而错失……

哎😑,预约了明天的补办,失败了好几次。看造化吧。

2024-6-20 13:17:05

IMG_9925.avif

去补办了,哎呀,要等到 7️⃣🈷️1️⃣1️⃣ 号才能拿到,黄花菜都凉了……我错了🧎。

2条评论 页首
没有评论 页首

不开雨刮完全看不到路

实况
没有评论 页首

刚装的全新系统,一跑 docker-compose 就脚本报错,搞了好一阵才发现原来 #Docker 早就放弃 #Python 版本、而用 #Go 重写了。

所以,现在不再是:

1
apt install docker-compose

而是:

1
apt install docker-compose-v2

了。以前是用 docker-compose,现在是用 docker compose。难怪官方一直叫我这样用但是又一直报错:docker: 'compose' is not a docker command.……🙄

非常丝滑。哎,生命苦短,别用 Python。

如果有人想看看是什么错,可以点击展开。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
root@twofei:~/servers/taoblog# docker-compose up -d

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/docker/api/client.py", line 214, in _retrieve_server_version
    return self.version(api_version=False)["ApiVersion"]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/docker/api/daemon.py", line 181, in version
    return self._result(self._get(url), json=True)
                        ^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/docker/utils/decorators.py", line 46, in inner
    return f(self, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/docker/api/client.py", line 237, in _get
    return self.get(url, **self._set_request_timeout(kwargs))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 602, in get
    return self.request("GET", url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 791, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 497, in _make_request
    conn.request(
TypeError: HTTPConnection.request() got an unexpected keyword argument 'chunked'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 33, in <module>
    sys.exit(load_entry_point('docker-compose==1.29.2', 'console_scripts', 'docker-compose')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 81, in main
    command_func()
  File "/usr/lib/python3/dist-packages/compose/cli/main.py", line 200, in perform_command
    project = project_from_options('.', options)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 60, in project_from_options
    return get_project(
           ^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/cli/command.py", line 152, in get_project
    client = get_client(
             ^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/cli/docker_client.py", line 41, in get_client
    client = docker_client(
             ^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/compose/cli/docker_client.py", line 170, in docker_client
    client = APIClient(use_ssh_client=not use_paramiko_ssh, **kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/docker/api/client.py", line 197, in __init__
    self._version = self._retrieve_server_version()
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/docker/api/client.py", line 221, in _retrieve_server_version
    raise DockerException(
docker.errors.DockerException: Error while fetching server API version: HTTPConnection.request() got an unexpected keyword argument 'chunked'
没有评论 页首

我去,小火箭是怎么敢把 #NES 几十年的扩展名你都敢给我占了?😡😡😡

Xnip2024-06-14_17-52-01.avif

没有评论 页首
待办事项
  • 监控服务器的磁盘空间(几度要被打满了)(这里)
没有评论 页首

还是很好听……

标题:おやすみ

专辑:Zwei!! Original Sound Track

作者:Falcom Sound Team jdk

00:00
摄于:2019年1月26日 星期六 23:48

#番茄花园 🍅,#复古。

おやすみなさい。

5条评论 页首

啊啊啊,原来 position: sticky; 已经早就进入标准的 #CSS 了,而我的《CSS 定位 (Positioning)》这篇文章正好写于标准化的那一年前后……

从这个页面的表格上面学来的:https://exiftool.org/。

2024-6-14 16:36:55

偷走了,可以在博客程序页面中的更新历史表格中看到效果。

2024-6-14 17:39:04
2024-6-14 22:13:48

维斯百科表格中关于 <table> 的使用的描述:

Common attributes for columns, column groups and row groups

The MediaWiki syntax for tables currently offers no support for specifying common attributes for columns (with the HTML element ‎<col />), column groups (HTML element ‎<colgroup>‎</colgroup>) and row groups (HTML elements ‎<thead>‎</thead>, ‎<tbody>‎</tbody> and ‎<tfoot>‎</tfoot>). Those standard HTML elements are not accepted even in their HTML or XHTML syntax.

All the rows and cells (header or data) of the table are rendered within a single implicit row group (HTML element ‎<tbody>‎</tbody>) without any attributes or styles.### Common attributes for columns, column groups and row groups

The MediaWiki syntax for tables currently offers no support for specifying common attributes for columns (with the HTML element ‎<col />), column groups (HTML element ‎<colgroup>‎</colgroup>) and row groups (HTML elements ‎<thead>‎</thead>, ‎<tbody>‎</tbody> and ‎<tfoot>‎</tfoot>). Those standard HTML elements are not accepted even in their HTML or XHTML syntax.

All the rows and cells (header or data) of the table are rendered within a single implicit row group (HTML element ‎<tbody>‎</tbody>) without any attributes or styles.

2024-6-14 23:26:51

不要用 border-collapse: separate;,除非样式写得非常完美,否则带 rowspan 的 tr/td 的 border 会重复出现。不信试试?1

待办事项
  • 把用 outline 实现的 th 的 border 成文(border-collapse 的情况下);
没有评论 页首

#Grafana 设置单个面板的时间范围为昨天一整天:

很难理解,但是达到要求了。

把 Query Options 设置成:

  • Relative time:now/d
  • Time shift:1d/d

其中的 / 有特殊含义:

  • 对于开始时间:表示 round 到时间单位的开始;
  • 对于结束时间:表示 round 到时间单位的结束。

上面的ℹ️提示也非常秘:Relative time should be now-5m and 5m, or variables like $_relativeTime.
请问:你就一个框,你教我如何填两个值?

relative-time.avif

就连特意显示的时间范围的友好名也是错误的:

time-info.avif

这里明明该是:Yesterday。

没有评论 页首

把用 #Obsidian 管理维护的日记本仓库自动同步脚本停了,废弃 Obsidian 中……

说了好久了,用了几年,感觉越来越难用。

2024-6-11 10:57:21

把日记导入到博客中的代码写好了。

2024-6-11 12:36:05

全部导入了,编号范围:1083 → 1417,默认状态全部为“私密”。

我竟然写了这么多……

2024-8-5 01:42:20

哈哈哈,希望我放弃 #Obsidian 是正确的选择:

IMG_1274.avif

没有评论 页首