运动
2024-05-20
我之前是一个旱鸭子,完全不会游泳。
前几天,公司组织在三亚团建,酒店有泳池,我就在酒店泳池下水了两三次,在救生员和同事的指导下,我克服了恐惧,有了一个很大的进步。
这里记录下来,看看是否对其他人的学习有帮助。
最重要的一点:一定要带泳镜,一定要带泳镜,一定要带泳镜。
佩戴泳镜,能消除水里睁眼的不适,和闭着眼睛相比,能看见可以极大的减轻对水的恐惧。
- 感受水的浮力:手抓着梯子,吸一口气,憋住,脑袋放到水里,正视池底,手脚伸直,放松,你的身体就会飘在水面上。
- 学会在水池中站起来:在上面动作的基础上,手继续伸直,脚蜷缩到胸前,向下踩,手维持平衡。
知道自己随时可以站立起来,这样就几乎可以完全克服恐惧了。
- 憋气划水:模仿别人的动作,能放开手脚动起来就行。
- 练习换气:抓住边缘,吸气,沉下去,水里吐气,升上来,吸气,循环往复。(我现在在这个阶段)
换气是一个坎,并不容易。
我现在面临的问题就是换气就会往下沉,一次比一次低,甚至沉底。
- 5/25 没有任何进展。
-
6/15 练习了抖音看到得蛙泳动作要领,感觉有一些进步:
手部动作注意:伸手抬头;
脚本动作注意:只收小腿;向斜下方蹬;
问题:不会换气;手脚不协调;脚部动作不熟练。
-
6/16 能够手脚并用(各种动作) + 换气往前游个 20 米左右,然后就撑不住(呼吸很累)。
制定学习路线
-
蛙泳入门
确定现阶段学习方向:蛙泳(手脚协调、换气)
目标:完成 50 米蛙泳
分解:
- 手部动作
- 换气动作
- 脚部动作
- 手脚协调 + 换气
- 50 米池,从这头游到那头
- 蹬边转身,游完 100 米
-
蛙泳进阶:改进动作,提升效率
目标:50 米 1 分钟,100 米 2 分钟(在业余爱好者里面应该算中等水平吧)。
可能需要身体某些方面加强锻炼。
-
在进阶过程中,训练间隙,再夹着学习各种蛙泳动作、自由泳、仰泳、蝶泳动作。
附:体育总局 50 米池运动员成绩标准(男子):
级别 |
50 米 |
100 米 |
三级运动员 |
44.00 |
1:34.00 |
二级运动员 |
37.00 |
1:20.00 |
一级运动员 |
32.50 |
1:11.00 |
运动健将 |
28.75 |
1:03.80 |
国际级健将 |
27.47 |
1:00.23 |
个人
2024-05-06

央视主持人鲁健采访航天员刘洋:你怎么兼顾事业、学业、还有家庭?
下面是刘洋的回答:
这是一个伪命题。
如果单靠女性自己,一肩挑事业,一肩挑家庭,我一定不是女强人,我没办法很好地平衡。
所谓的平衡,是整个家庭和你一起平衡,是你的爱人、你的亲人、你的父母,他们呵护了你的两双(个)翅膀,一个翅膀是事业,一个翅膀是家庭。两者平衡,你才能飞得更稳,飞得更远。
这个平衡的问题,不应该只问母亲、不应该只问妻子、不应该只问妈妈,这是夫妻双方,甚至是全家,共同来完成的一件事。
Translated by Google Translate:
CCTV host Lu Jian interviews astronaut Liu Yang: How do you balance career, studies, and family?
The following is Liu Yang’s answer:
This is a false proposition.
If I were a woman alone, taking care of my career and my family, I would definitely not be a strong woman, and I would not be able to balance it well.
The so-called balance means that the entire family balances with you. It is your lover, your relatives, and your parents. They take care of your wings, one wing is your career and the other is your family. With a balance between the two, you can fly more steadily and farther.
This question of balance should not be asked only to the mother, not only to the wife, and not only to the mother. This is something that both husband and wife, and even the whole family, must complete together.
开发者
2024-05-05
发现一个信息推送小工具,ntfy。挺好用的,不需要我自己做的那个简陋版本了。

服务端是 Golang 开发的,然后官方支持的客户端:
- Phone
- Web APP (没有看到源代码仓库)
- CLI
无需注册,客户端订阅指定主题,然后直接往这个主题推送消息就行了。
这是官网上的几个推送示例:
curl -d "Backup successful 😀" ntfy.sh/wuhan
curl -H "Title: Dogs are better than cats" -d "Oh my ..." ntfy.sh/wuhan
curl -H "Tags: horse,unicorn" -d "Unicorns are just horses with unique horns" ntfy.sh/wuhan
订阅与推送的相关接口文档,官网写得足够好了,非常容易集成。
项目完全开源,包括 Android / iOS 端,可以自己部署,也可以就是用托管服务。
免费套餐对于个人使用也是足够了的,每天 250 条消息。

小问题:
- 只有 Web APP 支持 Markdown,而且支持的语法比较少,不大够。
命令行
ntfy pub -t <title> -f <filepath> <topic> <message>
-> % ntfy
NAME:
ntfy - Simple pub-sub notification service
USAGE:
ntfy [OPTION..]
COMMANDS:
help, h Shows a list of commands or help for one command
Client commands:
publish, pub, send, trigger Send message via a ntfy server
subscribe, sub Subscribe to one or more topics on a ntfy server
GLOBAL OPTIONS:
--debug, -d enable debug logging (default: false) [$NTFY_DEBUG]
--trace enable tracing (very verbose, be careful) (default: false) [$NTFY_TRACE]
--no-log-dates, --no_log_dates disable the date/time prefix (default: false) [$NTFY_NO_LOG_DATES]
--log-level value, --log_level value set log level (default: "INFO") [$NTFY_LOG_LEVEL]
--log-level-overrides value, --log_level_overrides value [ --log-level-overrides value, --log_level_overrides value ] set log level overrides [$NTFY_LOG_LEVEL_OVERRIDES]
--log-format value, --log_format value set log format (default: "text") [$NTFY_LOG_FORMAT]
--log-file value, --log_file value set log file, default is STDOUT [$NTFY_LOG_FILE]
--help, -h show help
Try 'ntfy COMMAND --help' or https://ntfy.sh/docs/ for more information.
To report a bug, open an issue on GitHub: https://github.com/binwiederhier/ntfy/issues.
If you want to chat, simply join the Discord server (https://discord.gg/cT7ECsZj9w), or
the Matrix room (https://matrix.to/#/#ntfy:matrix.org).
ntfy 2.11.0 (Homebre), runtime go1.22.3, built at 2024-05-13T20:11:29Z
Copyright (C) 2022 Philipp C. Heckel, licensed under Apache License 2.0 & GPLv2
-> % ntfy pub --help
NAME:
ntfy publish - Send message via a ntfy server
USAGE:
ntfy publish [OPTIONS..] TOPIC [MESSAGE...]
ntfy publish [OPTIONS..] --wait-cmd COMMAND...
NTFY_TOPIC=.. ntfy publish [OPTIONS..] [MESSAGE...]
CATEGORY:
Client commands
DESCRIPTION:
Publish a message to a ntfy server.
Examples:
ntfy publish mytopic This is my message # Send simple message
ntfy send myserver.com/mytopic "This is my message" # Send message to different default host
ntfy pub -p high backups "Backups failed" # Send high priority message
ntfy pub --tags=warning,skull backups "Backups failed" # Add tags/emojis to message
ntfy pub --delay=10s delayed_topic Laterzz # Delay message by 10s
ntfy pub --at=8:30am delayed_topic Laterzz # Send message at 8:30am
ntfy pub -e phil@example.com alerts 'App is down!' # Also send email to phil@example.com
ntfy pub --click="https://reddit.com" redd 'New msg' # Opens Reddit when notification is clicked
ntfy pub --icon="http://some.tld/icon.png" 'Icon!' # Send notification with custom icon
ntfy pub --attach="http://some.tld/file.zip" files # Send ZIP archive from URL as attachment
ntfy pub --file=flower.jpg flowers 'Nice!' # Send image.jpg as attachment
ntfy pub -u phil:mypass secret Psst # Publish with username/password
ntfy pub --wait-pid 1234 mytopic # Wait for process 1234 to exit before publishing
ntfy pub --wait-cmd mytopic rsync -av ./ /tmp/a # Run command and publish after it completes
NTFY_USER=phil:mypass ntfy pub secret Psst # Use env variables to set username/password
NTFY_TOPIC=mytopic ntfy pub "some message" # Use NTFY_TOPIC variable as topic
cat flower.jpg | ntfy pub --file=- flowers 'Nice!' # Same as above, send image.jpg as attachment
ntfy trigger mywebhook # Sending without message, useful for webhooks
Please also check out the docs on publishing messages. Especially for the --tags and --delay options,
it has incredibly useful information: https://ntfy.sh/docs/publish/.
The default config file for all client commands is /etc/ntfy/client.yml (if root user),
or "~/Library/Application Support/ntfy/client.yml" for all other users.
OPTIONS:
--debug, -d enable debug logging (default: false) [$NTFY_DEBUG]
--trace enable tracing (very verbose, be careful) (default: false) [$NTFY_TRACE]
--no-log-dates, --no_log_dates disable the date/time prefix (default: false) [$NTFY_NO_LOG_DATES]
--log-level value, --log_level value set log level (default: "INFO") [$NTFY_LOG_LEVEL]
--log-level-overrides value, --log_level_overrides value [ --log-level-overrides value, --log_level_overrides value ] set log level overrides [$NTFY_LOG_LEVEL_OVERRIDES]
--log-format value, --log_format value set log format (default: "text") [$NTFY_LOG_FORMAT]
--log-file value, --log_file value set log file, default is STDOUT [$NTFY_LOG_FILE]
--config value, -c value client config file [$NTFY_CONFIG]
--title value, -t value message title [$NTFY_TITLE]
--message value, -m value message body [$NTFY_MESSAGE]
--priority value, -p value priority of the message (1=min, 2=low, 3=default, 4=high, 5=max) [$NTFY_PRIORITY]
--tags value, --tag value, -T value comma separated list of tags and emojis [$NTFY_TAGS]
--delay value, --at value, --in value, -D value delay/schedule message [$NTFY_DELAY]
--click value, -U value URL to open when notification is clicked [$NTFY_CLICK]
--icon value, -i value URL to use as notification icon [$NTFY_ICON]
--actions value, -A value actions JSON array or simple definition [$NTFY_ACTIONS]
--attach value, -a value URL to send as an external attachment [$NTFY_ATTACH]
--markdown, --md Message is formatted as Markdown (default: false) [$NTFY_MARKDOWN]
--filename value, --name value, -n value filename for the attachment [$NTFY_FILENAME]
--file value, -f value file to upload as an attachment [$NTFY_FILE]
--email value, --mail value, -e value also send to e-mail address [$NTFY_EMAIL]
--user value, -u value username[:password] used to auth against the server [$NTFY_USER]
--token value, -k value access token used to auth against the server [$NTFY_TOKEN]
--wait-pid value, --wait_pid value, --pid value wait until PID exits before publishing (default: 0) [$NTFY_WAIT_PID]
--wait-cmd, --wait_cmd, --cmd, --done run command and wait until it finishes before publishing (default: false) [$NTFY_WAIT_CMD]
--no-cache, --no_cache, -C do not cache message server-side (default: false) [$NTFY_NO_CACHE]
--no-firebase, --no_firebase, -F do not forward message to Firebase (default: false) [$NTFY_NO_FIREBASE]
--quiet, -q do not print message (default: false) [$NTFY_QUIET]
--help, -h show help
参考资料与拓展阅读
个人
2024-05-01
容错率,Fault Tolerance Rate,是指对系统产生严重影响的事件发生概率。
比如编程中,对于可能出现的异常,如果我们做了一些准备,那么即时发生,也不会对系统造成影响。这就是提升了容错率。
那么,什么是人生的容错率呢?
把人生当作一个系统,预期是在我们的努力下,明天会更好,生活在幸福之中。但是会有很多事件可能会影响到我们预期的实现。
人生轨迹会不会受到一些意外的严重影响,就是我们人生的容错率。
比方说,没有考上一个好高中,没有考上一个好大学,没有找到一个好工作,等等,我们的人生是不是就被摧毁了?
又比方说,我们生了某种疾病,对我们的身体产生了一些糟糕的影响,我们的人生是不是就被摧毁了?
又比方说,一时行差踏错,我们做了一些糟糕的决定,糟糕的事情,产生了糟糕的影响,我们的人生是不是就被摧毁了?
一方面,我认为不至于,任何时候都可以重新开始。
另一方面,忽视这些重要节点、重要事件的影响,我也做不到(有句老话:一步错,步步错)。
我们人生的容错率到底是高还是低呢?
待续。。。
DNS
2024-04-29
天涯社区将回归!创始人:明天,全面恢复业务!此前被申请破产审查,官网仍“无法访问”
说是 5/1 前回归,我刚查了一下,天涯现在还打不开。搜索一下域名解析的时候,发现了一个 HINFO 记录,这我还是第一次看到。
云平台 TencentCloud 开发者
2024-04-10
- 对客户要讲诚信,除了问题要坦诚,要实事求是
- 故障报告编写流程与规范
- 服务的状态页
- 每一件事都需要有 Owner
个人 工作
2024-04-02
最近这几个月的工作越来越忙了。感觉怎么忙,工作也做不完,一堆的事情,等着连放假在家都被工作压得不能安心休息一下。
举个简单的小例子:我以前几乎每天都要起来走七八次,上厕所、喝水、或者就在公司走动一下。然后现在每天喝水的次数估计也就一到两次,几乎没有在公司上过厕所了。
这不是一个很好的工作状态,甚至可以说很差劲。
经过反思,我总结了以下几点:
一、事情的优先级没有分清楚。自己很累,做了很多事情,但是有些重要的事情最后没有完成。
重要的工作排在前面做,安排的工作应该是努努力能够完成的。
二、不会拒绝。我应该将一部分临时插入的工作,拒绝掉,或者往后推,让位给更高优先级的工作。
这个其实跟优先级没有排清楚也有很大的关系。
三、工作没有往下分派,把压力传导出去。
我感觉我们组就我最忙。因为我总希望安排下去的工作一定能保证完成,但是这不是能够能够让大家发挥出最大潜力的方式。
作为中层管理人员,应该留有一点时间思考,思考业务,思考团队发展,思考如何改进工作,思考如何提升效率。不能一直盯着脚下,要抽空抬头看看路。
四、这个沟通做的不到位。之前无法完成,之前一定要和相关的同事有深入的沟通。
我现在每次都是答应下来,然后一直等工作完成再去报告。
有些时候无法完成排在手上也没有及时反馈出去。
- 工作在传到我这里的时候,应该先和需求方确认清楚,需要完成的程度。
- 我需要自己判断一个优先级,将我自己这边的安排告诉需求方。如果他认为这件事情真的很重要,那我也应该和他或者其他相关人员去沟通,至少应该做到有所取舍。
- 工作在执行的过程中,也需要有适当的反馈和沟通。凡事有交代,件件有着落,事事有回音。
政治
2024-03-28
数据结构与算法
2024-03-05
B 树是一种有助于搜索大量数据的结构。 它是 40 多年前发明的,但仍然被大多数现代数据库所采用。 尽管有更新的索引结构,例如 LSM 树,但B 树在处理大多数数据库查询时是不败的。
阅读本文后,您将了解 B 树如何组织数据以及它如何执行搜索查询。
软件设计 架构 阮一峰
2024-03-04
几乎所有我喜欢的软件架构师,都认同康威定律(Conway Law),认为这个定律非常重要,足以影响到所有系统。而且,你没法与之抗争,想要抗拒康威定律注定要失败。
康威定律的最好表述是:“任何系统的构成,都反映了设计这个系统的组织结构。”
它的出处是 Melvin Conway 在 1968 年写的一篇文章。后来,弗雷德·布鲁克斯(Fred Brooks)在著名的《人月神话》(The Mythical Man-Month)引用了这条定律。
Melvin Conway 观察到,软件系统的架构看起来与构建它的开发团队的组织结构非常相似。
最初的描述是,如果一个团队编写一个编译器,那么它将是一个单通道编译器;但是,如果两个团队共同开发,那么它将是一个双通道编译器。这个描述后来被发现,广泛适用于大量系统。
正如我的同事 Chris Ford 对我说的:“软件耦合是由人类交流促成的。” 如果我可以轻松与代码作者交谈,那么我就更容易对代码有更深入的了解,因此我的代码更容易耦合到该代码。
应对康威定律的第一步是不要与之抗争。我仍然记得一位技术主管,他刚刚被任命为 一个大型新项目的架构师,该项目由分布在世界各地不同城市的六个团队组成。“我做出了第一个架构决定”,他告诉我:“就是这个系统将有六个主要的子系统。我不知道它们会是什么子系统,但肯定会有六个。”
为了适应康威定律,现在有一种策略,就是一旦定下软件架构,就相应改变组织结构,让紧密耦合模块的开发者更容易沟通。