#1004 我是怎么学习游泳的?

2024-05-20

我之前是一个旱鸭子,完全不会游泳。
前几天,公司组织在三亚团建,酒店有泳池,我就在酒店泳池下水了两三次,在救生员和同事的指导下,我克服了恐惧,有了一个很大的进步。
这里记录下来,看看是否对其他人的学习有帮助。

最重要的一点:一定要带泳镜,一定要带泳镜,一定要带泳镜
佩戴泳镜,能消除水里睁眼的不适,和闭着眼睛相比,能看见可以极大的减轻对水的恐惧。

  1. 感受水的浮力:手抓着梯子,吸一口气,憋住,脑袋放到水里,正视池底,手脚伸直,放松,你的身体就会飘在水面上。
  2. 学会在水池中站起来:在上面动作的基础上,手继续伸直,脚蜷缩到胸前,向下踩,手维持平衡。
    知道自己随时可以站立起来,这样就几乎可以完全克服恐惧了。
  3. 憋气划水:模仿别人的动作,能放开手脚动起来就行。
  4. 练习换气:抓住边缘,吸气,沉下去,水里吐气,升上来,吸气,循环往复。(我现在在这个阶段)
    换气是一个坎,并不容易。
    我现在面临的问题就是换气就会往下沉,一次比一次低,甚至沉底。

  1. 5/25 没有任何进展。
  2. 6/15 练习了抖音看到得蛙泳动作要领,感觉有一些进步:

    • 手:划、抱、夹、伸
    • 脚:收、翻、蹬、夹

    手部动作注意:伸手抬头;
    脚本动作注意:只收小腿;向斜下方蹬;
    问题:不会换气;手脚不协调;脚部动作不熟练。

  3. 6/16 能够手脚并用(各种动作) + 换气往前游个 20 米左右,然后就撑不住(呼吸很累)。

制定学习路线

  1. 蛙泳入门

    确定现阶段学习方向:蛙泳(手脚协调、换气)
    目标:完成 50 米蛙泳
    分解:

    1. 手部动作
    2. 换气动作
    3. 脚部动作
    4. 手脚协调 + 换气
    5. 50 米池,从这头游到那头
    6. 蹬边转身,游完 100 米
  2. 蛙泳进阶:改进动作,提升效率
    目标:50 米 1 分钟,100 米 2 分钟(在业余爱好者里面应该算中等水平吧)。
    可能需要身体某些方面加强锻炼。

  3. 在进阶过程中,训练间隙,再夹着学习各种蛙泳动作、自由泳、仰泳、蝶泳动作。

附:体育总局 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

#1003 言论:如何平衡家庭与事业

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.

#1002 ntfy 信息推送小工具

2024-05-05

发现一个信息推送小工具,ntfy。挺好用的,不需要我自己做的那个简陋版本了。

服务端是 Golang 开发的,然后官方支持的客户端:

  • Phone
    • Android
    • iOS
  • 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 条消息。

小问题:

  1. 只有 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

参考资料与拓展阅读

#1001 人生的容错率

2024-05-01

容错率,Fault Tolerance Rate,是指对系统产生严重影响的事件发生概率。
比如编程中,对于可能出现的异常,如果我们做了一些准备,那么即时发生,也不会对系统造成影响。这就是提升了容错率。

那么,什么是人生的容错率呢?
把人生当作一个系统,预期是在我们的努力下,明天会更好,生活在幸福之中。但是会有很多事件可能会影响到我们预期的实现。
人生轨迹会不会受到一些意外的严重影响,就是我们人生的容错率。

比方说,没有考上一个好高中,没有考上一个好大学,没有找到一个好工作,等等,我们的人生是不是就被摧毁了?
又比方说,我们生了某种疾病,对我们的身体产生了一些糟糕的影响,我们的人生是不是就被摧毁了?
又比方说,一时行差踏错,我们做了一些糟糕的决定,糟糕的事情,产生了糟糕的影响,我们的人生是不是就被摧毁了?

一方面,我认为不至于,任何时候都可以重新开始。
另一方面,忽视这些重要节点、重要事件的影响,我也做不到(有句老话:一步错,步步错)。
我们人生的容错率到底是高还是低呢?

待续。。。

#998 关于工作的反思

2024-04-02

最近这几个月的工作越来越忙了。感觉怎么忙,工作也做不完,一堆的事情,等着连放假在家都被工作压得不能安心休息一下。

举个简单的小例子:我以前几乎每天都要起来走七八次,上厕所、喝水、或者就在公司走动一下。然后现在每天喝水的次数估计也就一到两次,几乎没有在公司上过厕所了。
这不是一个很好的工作状态,甚至可以说很差劲。

经过反思,我总结了以下几点:

一、事情的优先级没有分清楚。自己很累,做了很多事情,但是有些重要的事情最后没有完成。
重要的工作排在前面做,安排的工作应该是努努力能够完成的。

二、不会拒绝。我应该将一部分临时插入的工作,拒绝掉,或者往后推,让位给更高优先级的工作。
这个其实跟优先级没有排清楚也有很大的关系。

三、工作没有往下分派,把压力传导出去。
我感觉我们组就我最忙。因为我总希望安排下去的工作一定能保证完成,但是这不是能够能够让大家发挥出最大潜力的方式。
作为中层管理人员,应该留有一点时间思考,思考业务,思考团队发展,思考如何改进工作,思考如何提升效率。不能一直盯着脚下,要抽空抬头看看路。

四、这个沟通做的不到位。之前无法完成,之前一定要和相关的同事有深入的沟通。
我现在每次都是答应下来,然后一直等工作完成再去报告。
有些时候无法完成排在手上也没有及时反馈出去。

  1. 工作在传到我这里的时候,应该先和需求方确认清楚,需要完成的程度。
  2. 我需要自己判断一个优先级,将我自己这边的安排告诉需求方。如果他认为这件事情真的很重要,那我也应该和他或者其他相关人员去沟通,至少应该做到有所取舍。
  3. 工作在执行的过程中,也需要有适当的反馈和沟通。凡事有交代,件件有着落,事事有回音。

#997 政策关注

2024-03-28
发布时间 发布部门 标题和链接
2024/2/28 美国白宫 简报:拜登总统发布行政命令保护美国人的敏感个人数据
2024/3/19 美国国务院 建设更具韧性的信息环境
2024/3/21 美国国务院 联合国大会一致通过美国牵头提出的决议:《抓住安全、可靠和值得信赖的人工智能系统带来的机遇,促进可持续发展》
2024/3/25 美国财政部 美国财政部制裁与中国有关的针对美国基础设施的黑客
2024/3/26 美国贸易代表办公室 戴凯瑟琳·戴大使就中华人民共和国请求世贸组织就《降低通货膨胀法》进行磋商的声明
2024/4/2 美国白宫 关于与中华人民共和国双边关系的背景新闻发布会
2024/4/3 美国财政部 财政部长珍妮特·耶伦将访问中华人民共和国
2024/4/8 美国白宫 乔·拜登总统就与台积电达成芯片和科学法案初步协议的声明
2024/4/11 美国工业安全局 商务部将 11 个实体添加到支持中华人民共和国军事现代化和向俄罗斯军事提供支持的实体清单中
2024/4/11 美国工业安全局 实体清单中实体的添加和条目的修改
2024/4/25 美国司法部 中国公民因涉嫌非法出口半导体制造设备在美国被捕
2024/4/27 美国国务院 布林肯国务卿访问中华人民共和国

#996 转载:B 树工作原理

2024-03-05

B 树是一种有助于搜索大量数据的结构。 它是 40 多年前发明的,但仍然被大多数现代数据库所采用。 尽管有更新的索引结构,例如 LSM 树,但B 树在处理大多数数据库查询时是不败的。
阅读本文后,您将了解 B 树如何组织数据以及它如何执行搜索查询。

#995 转载:康威定律

2024-03-04

几乎所有我喜欢的软件架构师,都认同康威定律(Conway Law),认为这个定律非常重要,足以影响到所有系统。而且,你没法与之抗争,想要抗拒康威定律注定要失败。

康威定律的最好表述是:“任何系统的构成,都反映了设计这个系统的组织结构。”

它的出处是 Melvin Conway 在 1968 年写的一篇文章。后来,弗雷德·布鲁克斯(Fred Brooks)在著名的《人月神话》(The Mythical Man-Month)引用了这条定律。

Melvin Conway 观察到,软件系统的架构看起来与构建它的开发团队的组织结构非常相似。

最初的描述是,如果一个团队编写一个编译器,那么它将是一个单通道编译器;但是,如果两个团队共同开发,那么它将是一个双通道编译器。这个描述后来被发现,广泛适用于大量系统。

正如我的同事 Chris Ford 对我说的:“软件耦合是由人类交流促成的。” 如果我可以轻松与代码作者交谈,那么我就更容易对代码有更深入的了解,因此我的代码更容易耦合到该代码。

应对康威定律的第一步是不要与之抗争。我仍然记得一位技术主管,他刚刚被任命为 ​​ 一个大型新项目的架构师,该项目由分布在世界各地不同城市的六个团队组成。“我做出了第一个架构决定”,他告诉我:“就是这个系统将有六个主要的子系统。我不知道它们会是什么子系统,但肯定会有六个。”

为了适应康威定律,现在有一种策略,就是一旦定下软件架构,就相应改变组织结构,让紧密耦合模块的开发者更容易沟通。