克雷格的健身法

每个运动做10次,共5回,最重要的是要坚持循环训练(circuit training)的原则,最大限度地减少休息的时间。 动作要领:选择适合自己的重量,选择"扛杠铃"的方式,背部挺直,保持竖脊肌的中立位和稳定性,双腿由直立慢慢弯曲半蹲,最后再回到直立状态。 动作过程:用背阔肌的收缩力量将身体往上拉起,直到单杠触及或接近胸部。静止一秒钟,使背阔肌彻底收缩。然后逐渐放松背阔肌,让身体徐徐下降,直到回复完全下垂,重复再做。注意事项:把身体拉高时,尽量保持身体不要摆动,另外你可在腰上钩挂杠铃片来加重。 双杠臂屈伸主要锻炼胸大肌下部和肱三头肌,一个男人是否经常锻炼,看看他的胸大肌就知道了,所以双杠臂屈伸可以帮你做到这点。 动作要领: 握双杠两臂伸直支撑在双杠上,两腿自然弯曲,双脚重叠,身体放松下垂,双臂屈肘使身体降至最低点,呼吸时双臂用力,将身体撑起。如果想练习胸大肌的下部,则需要使胸大肌的下部位垂直于地面。身体保持垂直放松,不要故意挺胸。如练习肱三头肌可以抬头挺胸,通过臀部向后伸展使身体稍向后倾斜。这时力量会转移到肱三头肌上。 【丹尼尔的健身食谱】 早餐:两个水煮蛋,两片面包片 加餐:蛋白条、水果、坚果和葡萄干任选其一作为早餐与午餐间的零食 午餐:肉或者鱼,配一份糙米饭或者烤土豆 加餐:依然可以选择蛋白条 晚餐:肉或者鱼,配有绿叶蔬菜,像沙拉、莴笋、菠菜或者西兰花这样的蔬菜

October 9, 2023 · 1 min · 13 words · Jimmy

如何正确进行iOS系统的升降级

升级 首先备份全部系统数据, 包含应用数据和其他配置数据, 这是为升级失败以及升级后想降级做准备 使用手机自己的升级功能或者使用Mac进行升级 降级 当升级过程失败或者体验了新系统后, 发现一些问题想降级, 那么就可以使用爱思助手等软件进行降级, 因为使用软件降级后, 是纯净的系统, 数据都会清理掉 首先关闭手机的Find my功能 然后使用爱思助手降级到备份时的系统版本或者更高的版本, 因为爱思助手不支持恢复数据到比备份时的系统更低的系统 等待爱思助手降级后, 继续使用爱思助手的数据恢复功能恢复数据, 等待恢复完成

October 7, 2023 · 1 min · 19 words · Jimmy

我用过的手机

我用过的手机 整理网站书签的时候, 发现一个统计使用过的手机网站, 登录后, 看了一下,之前填写的手机使用数据, 蛮有意思. 主线就是NOKIA→XIAOMI→APPLE 我的主页在这https://mowned.com/jimmy-lee/, 你们也可以统计下.

September 27, 2023 · 1 min · 9 words · Jimmy

如何画好技术设计图

程序员画图的痛点 各个图形怎么对不齐啊? 这个在线服务怎么要收费啊? 只能免费画这么几张图? 现在没网了, 用不了啊! 同事画的图的逻辑比较老了, 现在业务迭代了, 已经跟最新的逻辑对不上了, 但是他只留了张图啊, 我怎么改啊? 诶, 重新画吧 这个项目的设计图在哪里呀? 找不到, 唉, 看代码慢慢摸索吧. 好不容易找到设计图了, 怎么是个在线的地址, 点进去, 已经404了啊 图的选择: 什么场景画什么图? 架构图 软件开发过程中,开发人员可以使用技术架构图来描述软件的整体架构,包括不同模块、组件和服务之间的依赖关系。这样,开发人员可以更好地理解系统的结构,并能够更好地进行开发和维护。此外,技术架构图还可以用于帮助开发人员诊断和解决系统中的问题。 适合场景 给不懂技术的人演示, 展示公司技术实力 介绍系统总体组成, 表现整个系统包含哪些服务, 让看的人有个点和面的印象. 其实跟实际代码开发过程没有什么重要关系. 在设计一个新系统的时候, 必须使用架构图. 不适合的场景 需要表现一个具体的功能点逻辑 时序图 时序图是一种UML交互图,用来描述对象之间发送消息的时间顺序和动态协作。它可以表示用例的行为顺序,每条消息对应一个类操作或状态机中的触发事件。时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。时序图也可以用来对一个场景下的对象交互建模,展示了系统的不同部件的执行序列。 时序图适合表现对象之间的动态协作和时间顺序。例如,它可以用于描述系统中不同部件之间的交互。 适合场景 业务逻辑中涉及到其他组件,其他服务的交互时, 使用时序图展示较好; 如tcp连接过程, 数据包流传 再排查bug,性能优化时能帮助定位是哪里的可能出现问题及出现性能瓶颈 不适合场景 需要表现业务逻辑判断的场景 需要表现整体架构的场景 补充: 时序图反映了一系列对象的交互与协作关系,清晰立体地反映系统的调用纵深链路。 时序图的核心元素包括:参与者(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等。 顺序图的语法和功能 PlantUML序列图的语法:你可以有几种类型的参与者(演员和其他人),箭头,音符,组…改变字体和颜色也有可能。 https://plantuml.com/zh/sequence-diagram 微信支付时序图(经典) 流程图 流程图是一种图表,用于表示过程或工作流程。在软件设计中,流程图通常用于可视化软件算法或程序中涉及的步骤。它们可以帮助开发人员识别设计中潜在的问题和低效性,并计划和优化程序的逻辑和结构。流程图通常使用标准符号和形状来表示不同类型的操作、决策和输入。 适合场景 适合表达一个具体的功能点逻辑, 这个一般会要求产品文档就得写好, 研发只需要在此基础上补充一些判断逻辑. 不适合场景 涉及数据流转的场景表现不佳 无法进行整体系统介绍, 只能表现具体功能点 状态图 状态图常用来表示某个对象的状态流转, 因为可能包含很多状态, 而不同状态之前可能不能任意转换, 因此使用状态图表示可能的路径, 在编程时可以规避BUG ...

August 28, 2023 · 2 min · 359 words · Jimmy

时间管理实践

开始使用Toggl Track 参考文章 使用 Tyme 记录和跟踪时间 - 少数派 告别分类、拥抱自由,让时间记录回归记录本身 - 少数派

August 3, 2023 · 1 min · 11 words · Jimmy

屏蔽干扰

网站屏蔽 如bilibili学习视频是挺多的, 但是打开首页很容易被feed流分心, 可以使用AdGuard设置屏蔽feed流 User rules bilibili.com###i_cecream > div.bili-feed4:last-child > main.bili-feed4-layout:nth-child(3) 消息通知屏蔽 只保留必要的通知, 比如财务软件, 也可以在APP里设置关闭营销类的通知, 只保留资金变动的通知

July 26, 2023 · 1 min · 16 words · Jimmy

为什么我们不愿意code review

介绍 Code review 是软件开发的重要组成部分。它是指由一名开发者对另一名开发者编写的代码进行审查,以确保符合编码标准、高效并无错误。这种过程是团队合作和质量保障的重要环节,有助于提高代码的可维护性和可读性,降低代码缺陷率,保证软件质量和安全性。然而,尽管它的重要性,许多团队仍难以有效地实施 code review。在本篇博客中,我们将探讨几个原因,为什么 code review 很难推进执行。 缺乏时间 实施 code review 面临的最大挑战之一是缺乏时间。在软件开发项目中,时间非常宝贵,开发人员需要紧密协作,不断推进项目进度以满足客户的要求和期望。日常的任务往往已经排满,且项目进度紧张,将 code review 加入日程表可能会导致难以满足截止日期。此外,code review 需要大量的时间和注意力,这使得它难以融入已经排满的日程中。因此,code review 可能会被搁置或赶工,导致效果不佳。 抵制变化 另一个导致 code review 难以实施的原因是抵制变化。作为开发人员,每个人都有自己的编程习惯和风格,已经习惯了某种工作方式,可能不愿意接受新的流程或工具。在某些情况下,开发人员可能认为 code review 是不必要的,他们的代码已经足够好了。在这些情况下,很难获得团队的认同,code review 可能会被视为阻碍而不是有帮助的流程。因此,为了让 code review 更好地融入软件开发项目中,需要在团队中树立共识,让每个人明白 code review 的重要性,以及它对整个项目的质量和项目进度的影响。 缺乏责任制 最后,缺乏责任制可能会使实施 code review 成为一项挑战。如果没有人负责确保 code review 及时进行,可能根本不会进行。在某些情况下,开发人员可能会假定其他人会接手他们的工作失误,导致延迟和错过截止日期。为避免这种情况,建立清晰的 code review 流程所有权并确保每个人都知道自己的责任至关重要。需要指定专人负责 code review 的执行,并建立相应的流程和标准,确保每个人都清楚自己的角色和职责,以及执行的时间和方式。 合并困难 在一个项目中,如果不同的程序员使用不同的代码风格编写代码,合并代码时会遇到一些问题。这些问题包括变更点过多,很难分清什么是业务代码,什么是格式化导致的变更。因此,为了避免这种情况,我们需要制定一套标准的代码风格,并确保所有的程序员都遵守这个标准。这样可以使代码更易于阅读和维护。此外,我们还可以使用自动化工具,如代码格式化器,来自动化执行代码风格指南中的规则,并确保所有的代码都符合标准。这样可以节省时间和减少错误。 提交不够独立 在第一次审核中,发现有太多的提交次数,这导致涉及的文件过多,给后续的分析带来了很大的困难。 权限问题 如果项目的权限集中在某几个人手中,则可能出现以下问题:第一,由于这些人的原因,可能会导致 code review 请求无法及时处理;第二,这些人可能会因为自己的优先事项而错过一些重要的 code review 请求,从而造成项目的延误;第三,这些人可能会对他们不熟悉的代码审查请求感到不耐烦,从而使得 code review 的效率受到影响。 代码审查的好处 一个精心设计的代码审查过程和认真对待代码审查的文化可以在短期内没有质变的好处,但是长期来看可以解决以下问题: 检查代码的正确性 确保其他工程师能够理解代码更改 强化整个代码库的一致性 从心理上促进团队的所有权。新入职员工看到一段代码,可能提交者是个离职员工,现在已经找不到了。但是这段代码现在是谁维护呢?可以查看OWNERS文件找到这个人。 实现知识共享 提供代码审查本身的历史记录。某段代码不知道为什么这么写,可以在Git仓库找到这个合并链接,查找review时的评论,理解为什么这样修改 改进措施 以下是一些可以实际操作的让团队爱上 code review 的措施: ...

May 29, 2023 · 1 min · 125 words · Jimmy

MacBook的休眠机制

MacBook的休眠机制 休眠与下面两个因素有关 进入休眠的等待时间 是否有防止睡眠的程序运行 如何查看休眠的等待时间 命令行方式 其中的sleep就是等待进入睡眠的分钟数 pmset -g System-wide power settings: SleepDisabled 0 VACTDisabled 0 Currently in use: lidwake 1 autopoweroff 1 lowpowermode 0 standbydelayhigh 900 autopoweroffdelay 259200 proximitywake 1 standby 1 standbydelaylow 600 ttyskeepawake 1 hibernatemode 3 powernap 0 gpuswitch 2 hibernatefile /var/vm/sleepimage highstandbythreshold 50 displaysleep 2 womp 0 networkoversleep 0 sleep 5 tcpkeepalive 1 halfdim 1 acwake 0 disksleep 10 界面查看 系统信息->电源 中查看, 其中的系统睡眠定时器 ...

May 29, 2023 · 1 min · 197 words · Jimmy

新冠感染记录

12.20晚上感觉喉咙痒,做了抗原阴性 12.21早上感觉发烧 测了37.6,平时36.5左右,做了抗原阳性,核酸混管阳,整天低烧最高38.2,腰酸 ,喉痛,肌肉酸,困,晚上睡觉半夜起夜一次,晚上做了很多梦 12.22 无发烧 起床感觉精神状态好,不发烧了,喉咙有痰,昨晚也没睡好 12.23 无发烧 感觉没劲 有点鼻涕和痰 怕冷 12.24 昨晚起夜一次 做梦 有出一次汗 无发烧 治疗措施:多喝水,食欲正常,三餐正常吃,无食用任何药物 对照组:平时基本一夜到天亮,少做梦,不起夜

May 29, 2023 · 1 min · 19 words · Jimmy

一次websocket服务故障复盘

故障现象 先收到报警通知,然后运营反馈问题, websocket服务掉线用户大于2k 排查过程 集群整体负载正常 https://arms.console.aliyun.com/apm?pid=fl0zuy81v2%40f9d1ca21c1bad6a&regionId=cn-shanghai#/callChain/ea1ae6018c16637637393566236d0001/1663763439356/1663764039356/fl0zuy81v2@f9d1ca21c1bad6a?&page=apps 9-21 21:09:39 mongodb? 9-21 21:10:20 因为健康检查超时是3秒,但是这个请求3.6秒了,我看是检查mongodb的时候慢了,我再看看mongo怎么了 9-21 21:14:29 当时mongo CPU100%了 我分析了精确的监控,mongo从20:35:30到20:35:40 短短10秒钟时间 CPU从40%到100%,不知道发生了什么 比较异常的是这几个指标 从日志的先后来看,不是健康检查通不过才掉线的,是先掉线,后健康检查不通过的 20:35:35 battle-websocket开始出现大量掉线日志 20:35:35-20:35:40 mongo读写队列从平常的0飙升到117 20:35:40 mongodb cpu100% 20:35:42 健康检查超时,是20:35:38左右开始发出检查,42时超时,因为mongodb cpu100%,检查mongo用时3.6秒 websocket实例在这期间没有发生full gc 沈文俊 9-21 21:53:14 mongocpu上去还是因为大量重练的ws连接吧 9-21 21:55:10 对 从表现上来是这样 所以问题来到了为什么这个websocket实例会突然大量用户掉线,我看过没有异常gc,且掉线用户都来自同一个实例 9-21 21:58:27 没有什么错误日志 and topic: battle-websocket and tag:client_ip: “106.14.32.124” and error 那台容器的节点服务器 网络上会不会有什么问题? https://cs.console.aliyun.com/?spm=5176.12818093.ProductAndResource--ali--widget-product-recent.dre0.3be916d09xleyZ#/next/clusters/c5ee2ef6132674f438dfca921ee9345b5/eventcenter?ns=kube-system 从k8s事件来看,发生了reload,但是时间对不上 跟运维确认,昨晚没有进行运维操作,但是集群确认有nginx reload操作,现在知道的是如果认为执行nginx reload操作,针对http服务没有什么大的影响,但是tcp长连接服务是会掉线的 ...

October 31, 2022 · 1 min · 98 words · Jimmy