家里餐桌和冰箱离得比较远,每天晚上把剩菜放到冰箱里的时候总是很困惑
正常情况下是一手端盘子,另一只手打开冰箱,放完就关上。如果有好几盘,就暂时留冰箱门开着,两个手各端一盘,手脚快的话冷气不会流失太多
而冰箱与餐桌离得远,一次拿一盘来回好几次自己都嫌麻烦,两只手都拿,则没法把冰箱门打开,留冰箱门开着就是妈见打了...
有天我想了想,好像家里的垂直双开门冰箱可以在下半部分用脚做出一个杠杆的动作来把门给撬开?试了试可以,但动作不是很优雅
或许可以想办法做一个把垂直力量转移到水平方向的杠杆踏板装置?这样就不用纠结端剩菜是拿一盘还是拿两盘了
正常情况下是一手端盘子,另一只手打开冰箱,放完就关上。如果有好几盘,就暂时留冰箱门开着,两个手各端一盘,手脚快的话冷气不会流失太多
而冰箱与餐桌离得远,一次拿一盘来回好几次自己都嫌麻烦,两只手都拿,则没法把冰箱门打开,留冰箱门开着就是妈见打了...
有天我想了想,好像家里的垂直双开门冰箱可以在下半部分用脚做出一个杠杆的动作来把门给撬开?试了试可以,但动作不是很优雅
或许可以想办法做一个把垂直力量转移到水平方向的杠杆踏板装置?这样就不用纠结端剩菜是拿一盘还是拿两盘了
👍1
Xbox 和 NVIDIA 显卡驱动程序有一种录制回放功能,可以在使用设备的过程中,一键将前一段时间的内容保存下来,对于游戏中突然遇到奇怪的东西的时候想分享出去很有帮助,不用苦恼一直手动录像
我突然想到,好像手机没有这种功能,在需要时按一下按钮,就可以保存前一段时间的录音?
我突然想到,好像手机没有这种功能,在需要时按一下按钮,就可以保存前一段时间的录音?
👍2🤔1
因为 OLED 屏幕的特性,显示亮色内容时就是比深色的内容需要使用更多的能耗,我就倾向于一直开着深色模式
而用 LCD 屏幕的时候,不管显示什么内容,耗电的大头都是背光,既然耗电只取决于屏幕亮度,白天肯定是白色背景黑色字看起来清晰又顺眼
最近换了一台 OLED 屏幕的手机,还是没有忘记这个事情,其他 LCD 屏幕的设备都是一直随着日出日落自动切换
而用 LCD 屏幕的时候,不管显示什么内容,耗电的大头都是背光,既然耗电只取决于屏幕亮度,白天肯定是白色背景黑色字看起来清晰又顺眼
最近换了一台 OLED 屏幕的手机,还是没有忘记这个事情,其他 LCD 屏幕的设备都是一直随着日出日落自动切换
👍1
GitHub PR 有点盒的地方
用户可以设定多个邮箱,可以选择其中一个显示在自己的资料页,作为明面上的公开邮箱
使用 git 提交的时候,git 的 email 配置只要是设定的任何一个邮箱,都可以识别成自己
但用户只能设定一个主要邮箱用来收通知,例如 Issues 和 PR 通知,账户安全验证类的通知有单独的选项
GitHub 是有一个专门的选项,可以关闭公开邮件,还可以在推送的时候检测 git 的 email 配置是否包含自己设定的邮箱,如果包含了就阻止这次推送。不过这样就没法在自己的资料页公开邮箱地址了(README 页都可以)
我日常使用是自建的 Gitea,偶而也会用到 GitHub,用 GitHub 的 <uid>+<username>@users.noreply.github.com 邮箱地址,在 Gitea 上大概是认不出来是我的,就不可能用这个
于是我就在 GitHub 上将账号的主要邮箱设为一个不是很希望公开的邮箱,日常提交则是另一个放在 GitHub 主页的公开邮箱
最近往某个项目推 PR,合并之后我的 Gitea 自动同步镜像,去看了一眼不知道为什么没显示出我的头像,查看 git log 才发现这个 commit 用的是我的主要邮箱,而不是我 commit 时的邮箱
可能是因为这个项目的所有者为 PR 合并设定的是压缩合并 (git merge --squash <分支>),导致 GitHub 需要将我原本的 commit 重新签署,但使用的邮箱是我设定的主要邮箱
想了一下大概是依照 PR 发起人来,读取主要邮箱也不奇怪了,当时怀疑是 bug 还是去搜了一下,官方讨论区里也是有人说了这个事,要说是 bug 也没那么严重,但这种情况默认使用 <uid>+<username>@users.noreply.github.com 这种格式的邮箱会更好吧
👍1
GitHub 登录后的主页逻辑似乎有点问题
今天看到它给我推荐了一个 telegram bot go 库,我点进去看了看,但是这个库最后的提交时间已经是三年前了,我就想点一下按钮让它不要再给我推荐这种库了
但是点了一下按钮后,弹出来的选项中并不是这个仓库,我好奇这个是什麽,搜到了一个正经的仓库
然后我又回到这个页面,Ctrl F 页面内搜索了一下,这个仓库其实是给我推荐的仓库中的第一个,似乎并不是测试的时候写死了这个值
那么问题就是,对于推荐仓库卡片的不感兴趣按钮,每一个对应的仓库值都是第一个推荐的仓库
今天看到它给我推荐了一个 telegram bot go 库,我点进去看了看,但是这个库最后的提交时间已经是三年前了,我就想点一下按钮让它不要再给我推荐这种库了
但是点了一下按钮后,弹出来的选项中并不是这个仓库,我好奇这个是什麽,搜到了一个正经的仓库
然后我又回到这个页面,Ctrl F 页面内搜索了一下,这个仓库其实是给我推荐的仓库中的第一个,似乎并不是测试的时候写死了这个值
那么问题就是,对于推荐仓库卡片的不感兴趣按钮,每一个对应的仓库值都是第一个推荐的仓库
👍1
奇奇怪怪
GitHub 登录后的主页逻辑似乎有点问题 今天看到它给我推荐了一个 telegram bot go 库,我点进去看了看,但是这个库最后的提交时间已经是三年前了,我就想点一下按钮让它不要再给我推荐这种库了 但是点了一下按钮后,弹出来的选项中并不是这个仓库,我好奇这个是什麽,搜到了一个正经的仓库 然后我又回到这个页面,Ctrl F 页面内搜索了一下,这个仓库其实是给我推荐的仓库中的第一个,似乎并不是测试的时候写死了这个值 那么问题就是,对于推荐仓库卡片的不感兴趣按钮,每一个对应的仓库值都是第一个推荐的仓库
复现方法
打开网页版 GitHub 并登录账号,在 Filter 按钮里面仅选中 Recommendations,保存后再试试推荐卡片右上角的按钮
打开网页版 GitHub 并登录账号,在 Filter 按钮里面仅选中 Recommendations,保存后再试试推荐卡片右上角的按钮
👍1
最近一阵子在规范化我的 bot,打算用
其实我一开始只是想加个能选择输出日志级别的日志库,一开始我尝试了 go 中自带的
之后纠结了好几天,看了推荐的好几个日志库,感觉并没有我想要的那种纯粹只有选择日志级别的日志库,我甚至有搓一个的想法
后面我看到了
不过我也并没有选择 logrus,它的字段添加方式看着不是很美观,不过相比 slog 更好,slog 是将字段作为函数的可变参数的形式来添加的,从使用方法上就不是很美观,一眼看上去可能都不知道这是一个键值对(key - value),如果不注意看可能整个字段参数都偏移了
具体我选了哪个日志库其实也写在开头了,zerolog 相比其他日志库性能开销更小,日志字段的添加方式是以一种 Event 的方式来添加的,我说不上来这是一种什么做法,好像是叫链式调用?
字段强类型,看着就很不错。同时它也可以简单方便的用一种对人类友好的日志输出方式
不过这种日志输出方式并不是默认的,不然就只能在终端里看 json 格式的日志,这不好看。找了一下虽然可以设定全局日志输出方式,但是在不同的包导入的话,就没有效果。
但我在 readme 翻了翻,发现一种神奇的东西(看不懂的东西都是神奇的 ),zerolog 可以把设定的 logger 塞到 ctx 里,我之前以为 ctx 只是一些函数不得不需要的一个变量,并没有了解过它是一个什么东西,就只能按照调用函数需求一层层传下去,有这个特性就可以不用在每一个函数都按照输出的方式创建一个 logger 再输出日志,只要改一下 main 函数中的设置就可以随意修改格式化样式
写到这里都有点恍惚本来想写什么了,现在还有很大一部分的日志部分没写好,以及不少逻辑和函数要改
github.com/rs/zerolog 库替换掉之前用 log 和 fmt 内置库胡乱输出的日志其实我一开始只是想加个能选择输出日志级别的日志库,一开始我尝试了 go 中自带的
log/slog 库,改了几个后感觉不对劲,好像我并不需要结构化日志?于是又把改了的部分改回去之后纠结了好几天,看了推荐的好几个日志库,感觉并没有我想要的那种纯粹只有选择日志级别的日志库,我甚至有搓一个的想法
后面我看到了
github.com/sirupsen/logrus 库 readme 中的一段话后,思考了一阵还是写结构化日志吧:https://github.com/sirupsen/logrus?tab=readme-ov-file#fields - (由 Google 翻译自英文)
Logrus 鼓励通过日志字段记录细致、结构化的日志,而不是冗长、难以解析的错误消息。例如,与其记录:log.Fatalf("Failed to send event %s to topic %s with key %d"),不如记录更易于发现的内容:
log.WithFields(log.Fields{
"event": event,
"topic": topic,
"key": key,
}).Fatal("Failed to send event")不过我也并没有选择 logrus,它的字段添加方式看着不是很美观,不过相比 slog 更好,slog 是将字段作为函数的可变参数的形式来添加的,从使用方法上就不是很美观,一眼看上去可能都不知道这是一个键值对(key - value),如果不注意看可能整个字段参数都偏移了
具体我选了哪个日志库其实也写在开头了,zerolog 相比其他日志库性能开销更小,日志字段的添加方式是以一种 Event 的方式来添加的,我说不上来这是一种什么做法,好像是叫链式调用?
log.Debug().
Str("Scale", "833 cents").
Float64("Interval", 833.09).
Msg("Fibonacci is everywhere")
// from https://github.com/rs/zerolog?tab=readme-ov-file#contextual-logging
字段强类型,看着就很不错。同时它也可以简单方便的用一种对人类友好的日志输出方式
不过这种日志输出方式并不是默认的,不然就只能在终端里看 json 格式的日志,这不好看。找了一下虽然可以设定全局日志输出方式,但是在不同的包导入的话,就没有效果。
但我在 readme 翻了翻,发现一种神奇的东西(
写到这里都有点恍惚本来想写什么了,现在还有很大一部分的日志部分没写好,以及不少逻辑和函数要改
👍1
在潜水时,潜水员会背一个氧气罐来在水下呼吸
突然想到,人类在正常情况下不会刻意去憋气,也不会一直深呼吸,那就代表每次吸入的空气中的氧气并不会被完全用完,因为肺泡捕捉氧气并交换出二氧化碳也是需要时间的
那样的话,每一次吸气时,需要憋气多久再吐出,这次呼吸的效率最高?
突然想到,人类在正常情况下不会刻意去憋气,也不会一直深呼吸,那就代表每次吸入的空气中的氧气并不会被完全用完,因为肺泡捕捉氧气并交换出二氧化碳也是需要时间的
那样的话,每一次吸气时,需要憋气多久再吐出,这次呼吸的效率最高?
❤3
