碎碎念

陪她去流浪 新建

蔡佩軒 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

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

我竟然写了这么多……

2024-8-5 01:42:20

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

IMG_1274.avif

没有评论 页首

className 竟然可能不是普通 string……

className can also be an instance of SVGAnimatedString if the element is an SVGElement.
It is better to get/set the className of an element using Element.getAttribute and Element.setAttribute if you are dealing with SVG elements.
However, take into account that Element.getAttribute returns null instead of "" if the element has an empty class attribute.

意味着,没有 includes 方法1…… 太反直觉了,虽然我一直用 classList.contains

没有评论 页首

傻逼苹果,电源都给整出负数了,一天没用电脑,待机又把电耗空了,又睡死了……

neg.avif

没有评论 页首

#中山#珠海 一日游~ 没别的,同事去练练车。

带同事去了野狸岛——上次相亲妹子带我去的那个岛,终于吃上了妹子非常推荐的那家店的蛋挞(上次排队太久没等),好吃是非常好吃,但这也太腻了……🥵。


这是一张比较“神奇”的图片,能让 Apple Vision 框架几乎识别不出任何文字出来。

2条评论 页首

一张无法被苹果文字识别的图

几乎一个字也识别不出来,就是这样神奇。

没有评论 页首

#七娘山 回来的路上,顺路送了一个一起下山的大哥。大哥人挺好的,下雨的时候还主动提出给我雨衣,我朋友下山非常慢,他还边走边等我们一起。到山脚公路上的时候,他说他要打车从七娘山回龙岗,我非常吃惊,毕竟这得有 60 多公里,还挺偏,不得一两百的打车🚖费?于是我就捎上了他,当然,他说要给我钱,我没要,大哥不要嫌弃我开飞车就好了。 #你是个好人

送毕,终于是想起了要去一个九年没见的老同学那里。大学的时候我们都是用 QQ,我连他的微信都没有,毕业后没了消息。我们都是来自同一个人工智能实验室,所以其实关系很好。他就在龙岗,巧的是,他的店就在大哥下车点 2 公里。

听另一个同学说他自己创业在 #深圳 开了一家 #火锅 🍲 店,想过去尝尝味道如何。作为小半个 #重庆 人,还得是重庆味道适合我。店在龙岗,因为他之前在比亚迪龙岗的工厂里面,后来遇疫情就辞职了,然后几乎是从零开始学做火锅,这让我非常震惊。我没有问他为何辞职,但我知道的是,比亚迪和在龙岗的华为一样,都是非常血汗的工厂,而和华为不一样的是,比亚迪的工资非常低。

今天可不是周末,但是几乎座无虚席…… 我刚走到门口,他就过来跟我握手,那一定是一眼就认出是我来了。当然,我也认出他来了,我们似乎都没有变。他看起来完全不像是一个老板模样,还是学校时的穿着,学生模样。我那个同学跟我说:等他结账的时候,你就知道他是老板了。

我问他你这边怎么这么多妹子,是不是附近有什么学校🏫?他:深圳妹子本来就多……

我还没有结婚,他,也没有。

(打码好麻烦,不想打了。)

2条评论 页首

终于等到了不是下雨的一天,也终于去了 #七娘山 —— 一座应该算得是 #深圳 少有的我没爬过的山了。

越近山脚,就发现天气越来越开始恶化,尽管我一早就打电话问过今天是可以登山的,但是我仍然一度怀疑马上又要封山,害怕又白来一趟!虽然我觉得开车非常有乐趣,但是,我过来可是要 90 公里,这可不是闹着玩儿的!

一点儿都不风和日丽,几张非常普通的照片。登顶的时候甚至飘起了小雨🌧️,感觉全身湿了个大半。而且上面完全是白茫茫的一片,被雾气🌁笼罩着,几乎没有能见度。本来也带上了无人机,但是发现毫无用处。(最后一张是山顶。)

这座山有个非常神奇的特点: 虽然登山的路上经常可以看到多条支路,但是,最终它们都会在前面几十米处殊途同归。我一开始会犹豫怎么走,但是经历过几次后发现:怎么一回头就发现隔壁还有一条路?然后就明白,并不是他们不愿意标路牌,因为真的不用🙂‍↔️。

山顶上竟然有“证书”可以拿?这应该是我第一张关于登山的证书。

山上的所谓的观景平台,其实是一个个凸起的小坑位,只有一条路进入,周边也非常隐秘。再加上我们是非周末去的,人非常少,感觉会是情侣幽会的绝佳之地😝。我应该用无人机来拍的,可惜这天气让我懒得拿。

“🧑‍🧒‍🧒设施老旧,请勿聚集。”

2条评论 页首

“大胡兰”真不真不知道,但是车牌肯定是真的

粤B·BB6688,好!

没有评论 页首

同事终于把宝马提到手了,穷逼我也第一次开上了宝马

同事终于把宝马提到手了,穷逼我也第一次开上了宝马……

笑死,同事吃午饭的时候跟我说:我跟 XXX 来这个店试驾了三次,今天提车带你来。我说,你这不是渣男吗……🤣(澄清一下,他一直单身。)

体验再谈

我收回部分上次说的话,再谈谈我觉得的一些明显的优点与缺点:

优点:

  • 油门响应速度确实快,远比我租的 200 块一天的车好使,上次那个试驾车是个垃圾;
  • 外观非常漂亮,高端、大气、上档次。

缺点:

  • 车机非常鸡肋:
    • 蓝牙连接后切换困难,害得我手机关机后同事才重新连上;
    • 用不了百度地图,车机地图不适应;
    • CarPlay 响应很慢、手机发热严重、甚至会把音乐/语音给卡断。

哎,搞得好像是我提了一辆 #宝马 这么高兴一样,你咋发这么多图呢?

特写

真的很帅……

随拍

午餐

南山确实比光明有钱,至少……至少餐厅有工作人员,在光明的时候感觉全部是自助。

晚餐

“每天都值得庆祝🎉”,每天都要有 #仪式感。他们喝了点啤酒🍺,今天晚上这宝马,我是开定了。

一些沿途

感觉深圳最少不了的就是湖南菜,菜的花样多,名字也是…… 大湖南、大弗兰、大胡兰,一时间搞不清楚到底哪些是真、哪些是假……

以及……一些在今天这个日子有些奇奇怪怪/牛逼的车牌……

没有评论 页首

2024-06-04.md

nginx 居然在我服务 panic 挂了的时候重新连接一次……神奇,一个请求收到两次连接。。。

没有评论 页首

“白头并非雪可替,相识已是上上签。” 这 #杨晚晚 这么懂我,怕不是有毒吧!🥵

没错,深圳又开始不停地下着雨了,计划一周的去 #七娘山 又泡汤了……只能宅家研究杨晚晚……啊不不不,是“研究”技术……🥵

白头并非雪可替,相识已是上上签.avif
白头并非雪可替,相识已是上上签.png

上面哪一张图更清晰?你猜哪张是原图?上面是 #AVIF,下面是 #PNG

答案是:下面的 PNG 是原图。特地为了对比,所以没有删除。 AVIF 是用 ffmpeg 从 PNG 转换来的,因为 PNG 太大了(446KB),而 AVIF 只有 38KB,不足十分之一大小,神奇不神奇?看来这 AVIF 是不得不爱了!

另外,没想到这 AVIF 还有 “美颜/磨皮”效果?🤪

没有评论 页首

Go 里面这样可以实现一个允许可重复读、多次副本读的 io.Reader,还挺好玩的,感觉又在 #套娃……

 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
package main

import (
	"bytes"
	"io"
	"os"
	"strings"
)

// 基于内存实现的可重复读的 Reader。
func MemDupReader(r io.Reader) func() io.Reader {
	b := bytes.NewBuffer(nil)
	t := io.TeeReader(r, b)

	return func() io.Reader {
		br := bytes.NewReader(b.Bytes())
		return io.MultiReader(br, t)
	}
}

func main() {
	r := strings.NewReader("123\n")

	dup := MemDupReader(r)

	for i := 0; i < 10; i++ {
		io.Copy(os.Stdout, dup())
	}
}

结果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
tests (main) → go run main.go
123
123
123
123
123
123
123
123
123
123

主要原理是:

  1. 通过 TeeReader 把从原始接口读出来的数据顺便写一份拷贝到内存 Buffer 里面(io.Writer);
  2. 然后下次读的时候,首先从内存读(io.Reader),然后继续从原始的数据读;
  3. 通过内存 BufferBytes() 重建一个 bytes.Reader 支持了 io.Seeker1

由于是在内存中缓存的,所以要小心数据不能太大。否则应该用文件实现缓冲(io.ReadWriteSeeker)。


  1. 奇怪为什么 bytes.Buffer 不支持 Seek? ^

没有评论 页首

《Using i.e. and e.g. correctly》1

The abbreviation “i.e.” stands for id est, which is Latin for “that is.”
The abbreviation “e.g.” stands for the Latin phrase exempli gratia, meaning “for example.”


哇,国外的正规引号的写法真的就是中文的引号!?

“
LEFT DOUBLE QUOTATION MARK
Unicode: U+201C,UTF-8: E2 80 9C

分号是这么用的:

All employees will receive the standard discount; i.e., 20 percent.

...we technically have created a compound sentence...
So we use a semicolon to join the two independent clauses.

没有评论 页首

用过 Unix-like 系统的人都知道以 “/” 开头的路径是绝对路径,但是不知道 Go 为什么要加一个奇怪的 URL.IsAbs() 函数,这个函数只通过判断有没有协议头(Scheme)来确定是不是绝对路径……

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
package main

import (
	"fmt"
	"net/url"
)

func main() {
	u1, _ := url.Parse("/1.txt")
	u2, _ := url.Parse("file:///1.txt")
	fmt.Println(u1.IsAbs(), u2.IsAbs())
}

你要这么搞的话,我感觉 Go 语言对我来说有点儿不受控了……

1
2
$ go run main.go
false true

就算对于前端来说,以 / 开头的也是绝对路径啊,以 https:// 开头这种难道不叫跨源吗?都可以叫作“不是同一个文件系统”了……

没有评论 页首

今天的海湾红树林公园

实况
实况
实况
没有评论 页首

笑死,神经病一样,在 GitHub 上看故事1,这些烂用 GitHub 的人到底有没有公德心? #王思聪 #AVIF

又不回我是吧.jpg

特意贴这句话,是突地想起了前司的一位同组的女同事……之前经常相互发这个来着……🥵,差点遗忘,写下来,对抗遗忘。

为了防止我自己也忘记名字,我应该把名字记录在本文中,怎么做?

6条评论 页首

这是一条来自手机端 iOS App 的碎碎念!🍏🍎。 测试!

人生 #第二次 开发 iOS App!

当然,我并不是要开发一个完整的客户端,只是为了测试一下如何在 iOS 上使用 #GRPC#ProtocolBuffer,上手难易程度完全在预期范围内,感觉当初用 GRPC + ProtocolBuffer 重构 API 接口是非常正确的选择。

只是……接近两年没写 #SwiftUI 了,反倒是 UI 慢慢摸索了好久……

2024-6-2 09:18:11

(当然,图片不是来自手机端 🤪🤪🤪)。

2024-6-2 09:34:19

我一定是现学现用!感觉从来没有开过这么多的标签页!

#第一次 使用 #AVIF 图片格式,比 JPG/PNG 都小,甚至比 WebP 还小很多,后面有空再试试 #JpegXL

第一次总有些不愉快…… 是的,下面这张图好大,因为我代码的图片自动缩放功能不认识 AVIF 格式,晚点有空再修吧😇

tabs.avif

2024-6-2 23:51:10

暴力出奇迹:java - How to get image dimensions from an avif file? - Stack Overflow

LMt5R.jpg

2024-6-3 07:43:51

#AVIF 图片大小修好了,就不会有我搞不定的事!

2024-6-14 18:01:58
2条评论 页首