阅读视图

发现新文章,点击刷新页面。

《刻意练习》

一本记录孩子日常生活的碎碎念,意义不大!

《刻意练习:如何从新手到大师》是由安德斯·艾利克森(Anders Ericsson)和罗伯特·普尔(Robert Pool)合著的一本书。书中主要探讨了通过刻意练习,普通人如何能够实现卓越表现。

《刻意练习》读书笔记


1. 书籍评分

🙋‍♀️ 总结感悟:记录你的阅读感悟!

阅读状态书名作者豆瓣评分推荐指数
📓《刻意练习✍🏼 安德斯·艾利克森/罗伯特·普尔🎟 豆瓣评分:7.8👍🏼👍🏼👍🏼

2. 思考总结

记录摘抄:书中很多句子和自己内心的感悟,可以让你明白很多知识边界!

本书的前半部分描述了刻意练习是什么,为什么管用,以及杰出人物如何运用它来发展杰出的能力。本书的最后部分,让我们从对杰出人物的研究中受益,特别是对刻意练习有了深入的了解,并解释了这对我们其他人来说到底意味着什么。而刻意练习是一种有针对性的、系统性的练习方法,旨在提升个人在某一特定领域的技能。它不同于一般的重复练习,更强调质量和方法。

  • 有目的的练习的定义:为任何行业或领域策划和设计训练方法的最佳方式

    • 有目的的练习具有四个特征,使得它与所说的“天真的练习”区分开来。所谓“天真的练习”,基本上只是反复地做某件事情,并指望只靠那种反复,就能提高表现和水平。
    • 有目的的练习:走出你的舒适区,但要以专注的方式制订明确的目标,为达到那些目标制订一个计划,并且想出监测你的进步的方法。还要想办法保持你的动机。
    • 有目的的练习还不够:刻苦努力还不够。逼迫自己超越极限,也不够。人们通常忽略了训练与练习中的其他一些同等重要的方面。学术界对一种特定的练习与训练方法进行了研究,该方法已被证明是提高人们在各个行业或领域中的能力的最强大和最有效的方式,这种方法就是 刻意练习
  • 有目的练习的四个特点

    • 有定义明确的特定目标
      • 定义明确的具体目标,可以有效地用于引导你的练习。要把目标分解,并制订一个计划。一个合理的具体目标,但你甚至还得将它进一步分解:学习乐理知识的步骤。怎么做到?可以请一位教练来教你怎样以特定方式改一改你的挥拍动作。诸如此类。关键是接受那个一般目标(并且日渐精进),并将其转化成一些具体目标,使你能达到切合实际的进步的期望。
    • 练习时需要集中注意力
      • 练习时要全神贯注,避免分心。要想取得进步,必须完全把注意力集中在你的任务上,并非每个人都通过高声叫喊和拍桌子的方式集中注意力。
    • 有目的的练习包含反馈
      • 一般而言,不论你在努力做什么事情,都需要反馈来准确辨别你在哪些方面还有不足,以及怎么会存在这些不足。如果没有反馈,你不可能搞清楚你在哪些方面还需提高,或者你现在离实现你的目标有多远。需要及时得到有效的反馈,以便不断调整和改进自己的表现。
    • 有目的的练习走出舒适区
      • 如果你从来不迫使自己走出舒适区,便永远无法进步。试着做不同的事情,而非更难的事情。并非达到极限,而是动机不足。
      • 一般来讲,有意义的正面反馈是保持动机的关键要素之一。这种反馈可能是内部反馈,也可能是由其他人提出的外部反馈,对提高自己的水平十分重要。
      • 一旦某个人的表现达到了“可接受”的水平,并且可以做到自动化,那么,再多“练习”几年,也不会有什么进步。原因在于,如果没有刻意地去提高,这些自动化的能力会缓慢地退化。
  • 如何运用刻意练习原则

    • 最大限度地运用刻意练习原则
      • 如果在你所处的行业或领域之中,刻意练习可以实行,那么,你应当采用刻意练习。如果不是,那就要尽最大的可能应用刻意练习的原则。
    • 最佳方法是找到优秀导师
      • 不论什么时候,只要有可能,最佳方法几乎总是 找一位优秀的教练或导师。刻意练习与其他类型的有目的的练习在两个重要的方面上存在差别。首先,它需要一个已经得到合理发展的行业或领域,其次,需要一位能够布置练习作业的导师。
  • 大脑的适应能力:建立检索结构

    • 大脑的适应能力的定义
      • 大脑的结构与运行都会为了应对各种不同的心理训练而改变,很大程度上像你的肌肉和心血管系统响应体育锻炼那样。对于刻意练习,我们的目标不仅仅是发掘自己的潜能,而且要构筑它,以便从前不可能做到的事情变得可能做到。
    • 大脑适应能力的应用
      • 训练可以改变大脑结构:越来越多证据表明,大脑的结构与运行都会为了各种不同的心理训练而改变。而有目的练习刻意训练,既能增强身体能力,又能强化心理能力,使我们可以做一些从未做过的事情。
      • 挑战越大变化越大,但不要太过:大脑对于处在舒适区之外却离得并不太远的“甜蜜点”上的挑战,改变最为迅速。
      • 训练如何改变大脑需要持续:由训练引起的认知和生理变化需要继续保持。如果停止训练,它们便开始消失。
    • 大脑训练达到的目的
      • 联系需要 建立检索结构,这样可以避免短时记忆的局限,并马上就能高效地处理大量信息。建立一系列的心理结构,通过运用长时记忆,避开了短时记忆的局限,从而记住更多知识。
  • 心理表征:有助于刻意练习

    • 心里表征的定义
      • 心理表征是一种与我们大脑正在思考的某个物体、某个观点、某些信息或者其他任何事物相对应的心理结构,或具体或抽象。
    • 心里表征的重要性
      • 心理表征有助于处理信息:理解和解读它,把它保存在记忆之中,组织它、分析它,并用它来决策。
      • 心理表征有助于组织信息:对于所有的心理表征,有一点是相同的:尽管短时记忆存在局限,但它们使得人们可以迅速地处理大量信息。
      • 心理表征有助于制订计划:心理表征可以用来为很多行业和领域做计划,表征越好,计划就高效。
      • 心理表征有助于高效学习:学生之间的差别,在很大程度上最有可能取决于他们能多敏锐地察觉自己所犯的错误,也就是说,他们对音乐作品的心理表征有多么有效。
    • 心理表征的发展过程
      • 通过对自己的心理表征进行持续的检测和评估,人们可以在必要时调整和优化自己的心理表征,以提高其效率和效果。
      • 技能与心理表征之间的关系是一个良性循环:你的技能越娴熟,创建的心理表征就越好;而心理表征越好,就越能有效地练习,以磨炼技能。
  • 在工作中运用刻意练习原则

    • 让练习变成日常工作的一部分
      • 第一种错误思想:即认为某人的能力通常受到基因特征的限制。这种思想常常表现为各种各样“我不能”或者“我不是”之类的表述。在任何一个人们选择着重发展的行业或领域之中,人人都可以通过正确的训练来帮助自己大幅度地提高。我们可以塑造自己的潜力。
      • 第二种错误思想:如果你足够长时间地做某件事情,一定会更擅长。这种思想错在哪里,我们很清楚。以完全相同的方式一而再再而三地做某件事情,并不是提高绩效和表现的秘诀;它会使人们停下前进的脚步,并且缓慢地下滑。
      • 第三种错误思想:要想提高,只需要努力。如果足够刻苦,你会更加优秀。但现实是,所有这些事情,即管理、销售和团队合作,全都是专业化的技能,除非你运用一些专门用于提升那些特定技能的练习方法,否则,即使加倍努力,也无法让你有更大的进步。
    • 边干边学
      • 好处是,它使人们熟悉练习的习惯,并思考如何练习。一旦他们理解了日常练习的重要性,并意识到可以用练习来实现多大的进步,那么,他们会找机会将其他的日常商业活动转变成练习活动。到最后,练习变成了日常工作的一部分。
    • 知识与技能之间的区别
      • 知识与技能之间的区别,正是发展专业技能的传统路径与刻意练习的方法之间的核心差别。传统的方法一直是先找出关于正确方法的信息,然后让学生运用那些知识。刻意练习则只聚焦于绩效和表现,以及怎样提高绩效和表现。在专业的或商业的背景中涉及提高绩效和表现时,正确的问题是“我们怎样改进相关的技能”,而不是“我们怎样传授相关的知识”。
  • 在生活中运用刻意练习原则

    • 首先,找位好导师
      • 尽管好导师并不一定是世界上最出色的人,但他应当在行业或领域之中有所成就。一般来讲,导师只是能够引导你达到他们或者他们的学生曾经达到过的水平。如果你是一位不折不扣的初学者,那么,只要导师具有足够熟练的技能,对你来说都可以,但如果你已经训练了好几年,那你需要找一位更能干的导师。
    • 如何寻找好导师
      • 当你自己改变了时,可能需要更换导师。
    • 专注和投入至关重要
      • 要记住:如果你在走神,或者你很放松,并且只为了好玩,你可能不会进步。而不专注,练习也是没效果的。制订明确的目标,把练习课程的时间缩得更短,是更加迅速地提升新的技能水平的最佳方式。
    • 没有导师,怎么办
      • 设计有效的联系方法:反复做一件事情,目的是找出你在哪些方面存在不足,并且聚焦于在那些方面取得进步,试着采用不同的方法来提高,直到你最终找到适合自己的方法。
      • 将技能分解成一些组成部分,以便反复地练习,并且有效地分析、确定你的不足之处,然后想出各种办法来解决它们。我们只有努力去复制杰出人物的成就,失败了就停下来思考为什么会失败,才能创建有效的心理表征。
      • 跨越停滞阶段的方法,可以以新的方式挑战自己。同时,想办法稍微逼自己一下,但不要逼得太狠,这通常会帮助你搞清楚自己的“停滞点”在什么地方,克服攻克特定的弱点。
    • 保持动机
      • 意志力根本不存在:意志力并非决定我们是否能够继续进行刻意练习的关键,动机才是。动机包含两个组成部分:继续前进的理由和停下脚步的理由。你要保持动机,要么强化继续前行的理由,要么弱化停下脚步的理由。
      • 弱化停下脚步的理由:为了弱化停下脚步的理由,可以设定固定的联系时间,避免其他事情的干扰,以及保证足够的睡眠和健康。
      • 增强继续前进的倾向:一旦你已经练习了一段时间,并且可以看到结果了,这种技能本身就可以成为你动机的一部分;将对同一件事情感兴趣的所有人聚集起来,或者吸引他们加入一个现有的团体,并且将团体的同志情谊和共同的目标作为达到你自己目标的额外动机;
      • 精心设置目标:将漫长的旅程分解成一系列可控的目标,并且每次只关注它们中的一个,甚至可以在每次达到一个目标时,给自己小小的奖励。
  • 成为杰出人物的路线图

    • 杰出人物成长三阶段
      • 第一阶段 产生兴趣:孩子们发展了对某一特定领域或行业的兴趣,那便是:他们觉得棋子好玩,把它们当成玩具,一件玩耍的东西。孩子们发展了简单的技能,例如把国际象棋棋子摆到棋盘上、把篮球投进篮筐、挥舞球拍等。
      • 第二阶段 变得认真:一旦未来的杰出人物对某个行业或领域感兴趣了,而且似乎在其中有着美好的发展前景,下一步通常需要到教练或导师那里上课了。学生面临的期望也逐渐升高,直到他们基本上能够尽最大的可能改进为止。
      • 第三阶段 全力投入:在某些行业或领域,如音乐表演或芭蕾舞蹈等,刻意练习是必不可少的。在其他领域,如医学、教育和企业管理等,尽管无法进行刻意练习,但仍可以运用刻意练习的原则,指引自己发展在所处行业或领域之中可能的最佳的方法几乎总是找一位优秀的教练或导师。
      • 第四阶段 开拓创新:创造性总是保有某种神秘感,因为就其本身而言,创造就是制造出人们尚未见过或体验过的事情。那些有创造性的、不安分的、有进取心的人总是不满足于现状,他们寻找各种办法来向前推进,做一些别人没有做过的事情。
    • 成长需要注意的事情
      • 父母的重要性:那些日后成为杰出人物的孩子,其父母在孩子的成长和发展阶段中扮演了至关重要的角色。尽管父母和导师可以采用许多方法来激励孩子,但动机必须来自孩子的内心,否则,它不会长久。那些长大后成为才华横溢的艺术家的孩子,有着“自加燃料、自我激励的动机来从事繁重的工作”,尽管他们依然需要父母亲和导师“情绪的和技术的支持”。
      • 兄弟姐妹的激励作用:一个孩子看到自己的哥哥或姐姐在从事某项活动,并且获得父亲或母亲的关注和表扬时,自然也想加入进来,获得父母同样的关注和表扬。对某些孩子而言,和兄弟姐妹之间开展竞争,本身也很激励人。

  • 刻意练习的本质

长时记忆正是区分卓越者与一般人的一个重要能力,它才是刻意练习的指向与本质。刻意练习的任务难度要适中,能收到反馈,有足够的次数重复练习,学习者能够纠正自己的错误。

  • 隐性知识

认知复杂度是指你建构“客观”世界的能力。认知复杂度高的人具有高度复杂化的思维能力,更善于同时使用互补与互不相容的概念来理解客观世界。真实世界中,黑白对错并非截然分明。学习科学大量研究表明,成人的最佳学习方式并非独自练习,而是在情境中学习。有效学习是进入相关情境,找到自己的“学习共同体”,学习者最开始时围绕重要成员转,做一些外围的工作,随着技能增长,进入学习共同体圈子的核心,逐步做更重要的工作,最终成为专家。

  • 超越 1 万小时定律

真相是,从来不存在 1 万小时定律,它仅仅是畅销书作家对心理科学研究的一次不太严谨的演绎而已。1 万小时定律究竟有哪些问题呢?首先,不同专业领域的技能习得时间与练习时间并不存在一个 1 万小时的最低阈值,比如学习小提琴和医生所需时间就不同。其次,成功与练习时间并不完全成正比,天赋虽然在其中不起决定性作用,却也会是一大影响因子。再次,练习的成果并不与时间呈正相关,这一点,也取决于练习方法。在沙堆悖论的视野下,1 万小时定律的价值也就这样被消解了。正如真实的心理科学研究表明,成为专家的时间往往随着不同的专业技能领域而变化。

  • 天才的定义和形成

人们常常将非凡的技艺或才能归因为天赋,认为这些人生来就比被人优秀。研究表明,这些杰出人物的天才,并非天生,而是通过他们的能力和适当的方法培养出来的,而是通过深入的研究和刻苦训练。

  • 天才更懂得利用大脑的适应能力

不论基因遗传可能在“天才”取得的成就中发挥着什么作用,他们和我们一样,大脑和身体都具有适应能力,只是比我们更多地利用了那一能力而已。不论在什么行业或领域,提高表现与水平的最有效方法,全都遵循一系列普遍原则。我们把这种通用的方法命名为“刻意练习”。

  • 学习新技能的一般方法

一旦你已经达到了这种令你满意的技能水平,而且能做到自然而然地表现出你的水平,无论是开车、打网球还是烘焙饼干,你就已经不再进步了。人们通常错误地理解这种现象,因为他们自以为,继续开车、打网球或烘焙饼干,就是一种形式的练习,如果不停地做下去,自己一定能够更擅长,也许进步较为缓慢,但最终还是会更出色。人们认为,开了 20 多年车的老司机,一定会比只开了 5 年车的司机更擅长开车;行医 20 年的医生,一定会比只行医 5 年的医生更优秀;教了 20 年书的老师,一定会比只教了 5 年书的老师能力更强。

  • 有目的的练习是确定的

我们假想的音乐学生如果确定了类似下面这样的练习目标,可能会比他漫无目的的练习要成功得多:“连续三次,不犯任何错误,以适当的速度弹奏完曲子。”如果不制订这样一个目标,就没有办法判断练习是不是成功了。定义明确的具体目标,可以有效地用于引导你的练习。

  • 有目的的练习是专注的

如今,并非每个人都通过高声叫喊和拍桌子的方式集中注意力,但史蒂夫的表现说明了我们可以从有效练习的研究中获得一条重要洞见:要想取得进步,必须完全把注意力集中在你的任务上。

  • 有目的的练习包含反馈

一般而言,不论你在努力做什么事情,都需要反馈来准确辨别你在哪些方面还有不足,以及怎么会存在这些不足。如果没有反馈(要么是你自己给自己提出的,要么是局外人给你提出的),你不可能搞清楚你在哪些方面还需提高,或者你现在离实现你的目标有多远。

  • 有目的的练习需要走出舒适区

对于任何类型的练习,这是一条基本的真理:如果你从来不迫使自己走出舒适区,便永远无法进步。走出舒适区,意味着要试着做一些你以前没做过的事情。有时候,你也许发现,做一些没做过的事情,相对较为容易,然后你会继续逼迫自己。但有时候,你偶然碰到了那些让你感到很难做好的事情,似乎你永远也做不了。想办法去逾越这些障碍,是通向有目的的练习的隐藏钥匙。

  • 试着做不同的事情,而非更难的事情

通常情况下,这种解决方案并不是“试着做更难的事情”,而是“试着做不同的事情”。换句话讲,这是一个方法问题。记忆研究中一种常规的模式:首先取得进步,然后到了一个瓶颈,被困住了,寻找不同的方法来克服障碍,最后找到了这种方法,然后又稳定地提高,直到下一个障碍出现。

  • 并非达到极限,而是动机不足

在我多年的研究中,并没有找到任何清晰的证据来证明,在任何行业或领域,人们真的会遇到绩效和表现完全不变的极限。相反,我发现,人们通常会在努力提高自己的时候放弃并停下。尽管我们总能继续前进和不断进步,但要想做到,并不见得总是轻而易举。保持专注并继续努力,是很难做到的,而且通常没有趣味。

  • 有目的的练习还不够

尽管我们通过专注的训练和走出舒适区,一般能在某种程度上提高自己做某件事的能力,但那并不是全部。刻苦努力还不够。逼迫自己超越极限,也不够。人们通常忽略了训练与练习中的其他一些同等重要的方面。学术界对一种特定的练习与训练方法进行了研究,该方法已被证明是提高人们在各个行业或领域中的能力的最强大和最有效的方式。这种方法就是“刻意练习”,我们会马上进行详尽描述。但首先让我们更加密切地观察,在这种令人称奇的改进背后,到底有着怎样的原因。

  • 1 万小时法则的错与对

在任何一个有着悠久历史的行业或领域,要想成就一番事业,致力于变成业内的杰出人物,需要付出许多年艰苦卓绝的努力。也许并不需要恰好 1 万小时的练习,但要花很长时间练习。

  • 边学边干

我的基本建议是找寻一种与刻意练习原则相一致的方法,问自己以下这些问题:这种方法,是不是逼着人们走出舒适区,迫使人们尝试做一些对他们来说并不容易的事情?它有没有提供关于绩效和表现的即时反馈,以及关于可以做些什么事情来提高绩效和表现的反馈?那些制订了这种方法的人,有没有辨别出他们所处的特定行业或领域之中的最杰出人物?有没有确定是什么因素将杰出人物与其他人区分开来?训练是不是被设计用来提高行业或领域内的杰出人物所拥有的那些特定技能?如果对所有问题的回答全都是肯定的,尽管也许不能保证那种方法有效,至少可以肯定,它是有效方法的可能性大得多。

  • 破解“天才跳高运动员的神迹”

人们希望人生中有这样的奇迹,并非所有的一切都要遵循现实世界中那些古板的、令人厌倦的法则。有时,一些神奇的事情发生了,主人公一夜之间就获得了不可思议的强大力量。你可能不知道,你实际上是在氪星出生的,生下来就会飞。或者,你被一只有辐射的蜘蛛咬过一口,便能飞檐走壁了。或者,你曾暴露在宇宙射线之中,现在,你可以随时隐身了。


3. 个人思考

记录你的思考:记录你的思考过程,记录你的思考感悟!

很早以前就读过这本书了,但是当时确实是不求甚解,挑重点看的,两个多小时就读完了。最近,这本书又看了一遍,确实常看常新,尤其是前几章,特别好。确实是自己之前生活和工作中,又遇到过相同的问题,如果自己好好总结的话,确实也可以得到本文阐述的核心要点。推荐阅读!

《活着活着就老了》

一本记录孩子日常生活的碎碎念,意义不大!

《活着活着就老了》收录的随笔,全部是冯唐近年来的代表作。这些随感而发的文字,表达了作者自由、时尚、前卫的思想、文笔犀利幽默,既调侃又老道深髓,极富哲理,常有惊人之语,既能让读者忍俊不禁,又能给读者的新的启迪。

《活着活着就老了》读书笔记


1. 书籍评分

🙋‍♀️ 总结感悟:记录你的阅读感悟!

阅读状态书名作者豆瓣评分推荐指数
📓《活着活着就老了✍🏼 冯唐🎟 豆瓣评分:6.8👍🏼👍🏼👍🏼

2. 思考总结

记录摘抄:书中很多句子和自己内心的感悟,可以让你明白很多知识边界!

  • 在下半生过下一生

越老越发现,人生第一件要紧事是睡觉,不是指性交,而是指自己睡觉,能睡好觉儿的人,身体不会差。

。“得志则行天下,不得志则独善其身”,这两句,没一句容易,退休之后,第二句变得更难。

  • 活着活着就老了

如果所有时间是一大锅浓汤,我的生命就是一只苍蝇。尽管我只是一只渺小的苍蝇,但我要怀着对未知的敬畏和期待,飞进那锅浓汤,试着坏了它。

  • 人生的战略规划

战略规划基本思路是首先定下远景和使命,一个公司和一个人一样。要问:为什么存在?然后根据公司的竞争力和市场的吸引力,明确在近中长期,什么可为,什么不可为,即在何处竞争。最后确定如何竞争以及竞争后的财务回报。

  • 十信

我相信当下。不要一本教科书背五遍了。去打打球,享受身体,十年后你的身体一定和现在的不一样。去

  • 老聃的金字塔原则

金字塔原则就是,任何事情都可以归纳出一个中心论点,而此中心论点可由三至七个论据支持,这些一级论据本身也可以是个论点,被二级的三至七个论据支持,如此延伸,状如金字塔。


3. 个人思考

记录你的思考:记录你的思考过程,记录你的思考感悟!

随着年龄的增加,越来越发现,人的一生最重要的就是身体健康!没有一个好的身体,再怎么厉害都无济于事。而好身体的重要因素就是睡眠,以及持续不断地运动。人就是这样,知道事情发生了,身体无法挽救了,才会开始反思,当初自己如果可以努力健身、早早休息那该多好呀。

看着小朋友们,每天都精力充沛,特别羡慕。因为自己的少年时期已经过去了,而人到中年势必需要做的和思考的东西越来越多,精力都消耗在了上面。走在路上,忘记了路边的花已经开了;坐在办公室,忘记了窗外的鸟已经飞走了;睡在床上,忘记了今天需要完成的事情。是的,活着活着就老了!

《成长是孩子自己的旅程》

一本记录孩子日常生活的碎碎念,意义不大!

本书是一部以子女教育和培养为中心议题的随笔集。作为一个受过良好教育,且在自己珍视的事业上颇为成功的母亲,作者表现出的对子女教育和培养的重视,似为天经地义。但是,作者又以自己的实践证实,性别差异、家庭环境、文化背景、孩子天资、教育方式方法等等,均可能影响孩子的成长和父母的预期。在与孩子的沟通中,作者感悟到:互动,尊重,和孩子一起成长,或许才是好的教育方式。

《成长是孩子自己的旅程》读书笔记


1. 书籍评分

🙋‍♀️ 总结感悟:记录你的阅读感悟!

阅读状态书名作者豆瓣评分推荐指数
📓《成长是孩子自己的旅程✍🏼 王芫🎟 豆瓣评分:7.4👍🏼👍🏼

2. 思考总结

记录摘抄:书中很多句子和自己内心的感悟,可以让你明白很多知识边界!

  • 教育不是模仿成功的甲方

所谓教育,从定义上说,是把甲方的信仰、理念、愿景、知识、经验等等灌输到乙方的头脑中去。在家庭教育中,家长是甲方,孩子是乙方。在我看来,家庭教育中存在三种甲乙方关系。

  • 用你自己的语言

一个星期过去了,我终于意识到所谓“等我有空的时候”是一种敷衍我的说法。这招不是我经常用的吗?想不到她竟然也学会了。

  • 生活的善意与敌意

在上一代努力奋斗的过程中,下一代的人生起点已经悄然改变。子女站在父母的肩膀上,并不心存感激。

在童年时代频繁搬家的孩子,长大后幸福感相对较低。

  • 教育不是模仿成功的甲方

第一种是成功的关系:甲乙双方互相成就。乙方并不痛苦,甲方也没有牺牲自己。这种成功的例子,我身边还真有几个。

第二种是痛苦的关系:甲方拼命想让乙方成为自己理想的人。绝大多数家庭都处在这种关系之中,只是焦虑的程度不同而已。这种关系中的甲方有一个特点,就是认为教育是有秘诀的。他们期待找到真正的经验,并且加以复制。问题是:成功的教育经验能不能复制?我认为,如果成功的经验是真的,至少值得聆听,能不能复制是另外一回事。要警惕的是伪经验。所谓伪经验,就是乙方的成功是偶然的,和甲方的努力没有关系。

我也曾经热衷于做个有效的甲方,却失败了,于是退而求其次,接受了第三种关系:甲乙双方各自独立成为自己想成为的人。多年来关注教育,我最大的收获就是能够区别经验的真伪。但即使看到真正的经验,我也多半一笑置之,因为我深知教育不是模仿成功的甲方就能取得预期的结果。与其花时间做甲方,不如花时间做自己。在孩子的智力能够领会的范围,身教倒可能会无心插柳。别看保罗·施瑞德 18 岁前没看过电影,说不定他父母经常晚上偷偷出去看电影呢。

  • 正道、歪道与术

图什么呀?运动的目的是模拟真实的生活。孩子年龄小的时候,不能直接参加真实的生活,所以通过运动来提前熟悉真实生活的逻辑。儿子现在的问题就是惧怕未知的世界,要想克服这种心理,就得让他更多地走出去。

  • 别迷恋情商,它只是传说

承诺,就是不以对方是否爱你为前提来决定自己的态度,否则你就会在犹豫权衡中失去自我;宽恕,是充分理解对方的不确定性,给对方背叛的权力,并不因对方的背叛而贬低自己的承诺。我觉得这比似是而非的“情商”论高贵多了,不过,高贵又是什么?

  • 成长是成长者自己的旅程

成长是成长者自己的旅程,是最自然、最普通、最不可抗拒的过程。围绕着成长者的一切人物关系(特别是父母)都是背景,最多是互动,一不留神就会成为干扰。不是只有成为社会大舞台上的主角才叫成长,也不是必须要经历过惊世骇俗的反叛才叫成长。成长最基本的定义就是成为自己生活的主角。


3. 个人思考

记录你的思考:记录你的思考过程,记录你的思考感悟!

关于孩子的教育,确实是一个需要持续不断学习地一个过程。在这中间,会慢慢的发现很多成长中问题,这时如何妥善的处理和灵活的应对变得非常重要。不要指望,靠读一两本书籍或者听几个讲座就可以解决。很好的耐心、强大的耐心、坚定的耐心,才是成长的关键。这样和孩子平和的进行沟通和交流,倾听孩子内心的想法,慢慢改正自己和孩子存在的问题,才能够变得更好。

《仓央嘉措》

带你走进仓英嘉措的传奇人生。

仓央嘉措,别名为阿旺却扎嘉措,旧译仓洋嘉错,是藏传佛教格鲁派的第六世达赖喇嘛及第一世达克布呼图克图。他也是一位西藏诗人,是历代达赖喇嘛中最富传奇色彩的人物。

五世达赖喇嘛圆寂后,摄政桑结嘉措为维护西藏稳定,长期隐瞒五世达赖的死讯长达十五年之久,直到 1688 年才认定仓央嘉措为其转世。1697 年仓央嘉措在拉萨坐床。1705 年,摄政桑结嘉措与和硕特汗国的拉藏汗发生冲突,拉藏汗率兵入侵西藏,杀死桑结嘉措。翌年,拉藏汗拒绝承认仓央嘉措的合法地位,将其逮捕送往北京,途中于青海湖附近失踪,可能遭到谋杀。

《仓央嘉措》读书笔记


1. 书籍评分

🙋‍♀️ 总结感悟:记录你的阅读感悟!

阅读状态书名作者个人评分推荐指数
📓《仓央嘉措✍🏼 高平🎟 个人评分:8.0👍🏼👍🏼👍🏼👍🏼

2. 思考总结

记录摘抄:书中很多句子和自己内心的感悟,可以让你明白很多知识边界!

  • 仓央嘉措诞生

信仰是会改变的……信教不信教,信这个教还是信那个教,都是达官贵人们定出来的,老百姓不过是一盘石磨,谁来推都得转啊……

  • 风从家乡吹来

长叹了一口气,又在想那个老问题:穿袈裟的人越来越多了,但是真正懂得佛学的人又有几个?真正为了超度众生的又有多少?

  • 被杀的和嫁人的

都说是佛爷决定着人们的命运,而佛爷的命运又是谁决定的呢?众生啊,你们在羡慕着我,可知道我在羡慕着你们吗?

  • 贵族小姐

拉萨在松赞干布以前,据说是一片沼泽,沼泽的中心有一个湖,藏语叫卧措。文成公主来到西藏以后,亲自在湖上选点、设计,填土建寺。文成公主根据五行相承相克的说法,建议松赞干布用白山羊背土填湖。因为藏语把白山羊叫“惹”,把土叫“萨”,所以建起的寺庙被称为“惹萨”,这就是大昭寺最初的名字。后来藏语又叫觉卧康,也叫惹萨楚那祖拉康,即拉萨神变殿或显灵殿的意思。接着,由于香火的旺盛,政治、经济、文化的发展,在寺周围出现了许多新的建筑,形成了市区。于是这座新城也就叫作“惹萨”,当时的汉文译作“逻些”。逻些逐渐成为佛教圣地,以后便改称为“拉萨”了,因为“拉萨”在藏语中就是“圣地”的意思。

他们祈求什么?无非是希望避免今世的厄运,减少来世的贫苦。他暗中叹息了一声,“这真是用头来做脚的事情!”

  • 默思与退戒

你们向我祈求幸福,我的幸福又向谁去祈求呢?

  • 大昭寺前的恩仇

第巴桑结和拉藏汗的手下人,都有背叛旧主、投靠新主的政治赌徒出来表演。这些人的心中,没有国家,没有民族,甚至也没有父母,更没有是非之分;但他们都有强烈的爱憎——爱自己、憎别人。因此,他们才永远用两只腿交替地走着背叛与投靠之路。

雨过天晴,谁还记得雨伞?白天来了,谁还想到灯光?

  • 离开哲蚌寺

我本来不是达赖,是一些与我不相干的人让我当了达赖,又是另一些与我不相干的人不让我当达赖;想当,不想当,怎样当,不能怎样当,都得由别人决定。这一切,都是如此地不由自主!我不是骡马,为什么要由别人牵着走?我不是牦牛,为什么要由别人赶着走……他想流泪,但是他已经没有泪水了。

  • 唱歌的牧羊女

成千上万的信徒把我尊为至高无上的活佛,祈求我的祝福,期望我来改变他们悲苦的命运,唉,可怜的众生!你们哪里知道,我连自己的命运也掌握不了啊!我何时才能走出这厄运的峡谷?

  • 洗温泉

人为什么要有区别?而且要将种种区别用衣服显示出来,同样的肉体,穿着袈裟是僧人,穿着绸缎是富人,穿着破衣是乞丐,穿着盔甲是武士……同


3. 个人思考

记录你的思考:记录你的思考过程,记录你的思考感悟!

在我很小的时候,我就知道仓央嘉措这个人的存在了。但是,当时仅限于知道他的一些诗歌而已。这个月无意在读书软件上面读到了这本书,大概三四天时间就读完了,确实从中科普到了一些知识。比如:关于西藏佛教的起因和一些历史事件、关于印度佛教的发展史、关于不同分支佛教的不同教义、西藏的达赖和班禅的由来和金瓶掣签制度等等。而这些内容,都不是书中讲述的,而是自己感兴趣之后科普到的。

关于仓央嘉措的一生确实是悲惨的一生,除了少时得到的自由和幸福之外,其他的一切都是被他人所控制和安排的。住在布达拉宫,身穿锦罗服饰,但是掩盖不住的向往自由、向往幸福的心。但是,突如其来的达赖头衔,让他没办法变成一个普通人,只能身处风暴之中。

其实,古往今来都是一样的。在真正统治者眼里,普通人的一切对他们来说都不值一提,视如草芥。而作为普通人,我们管不了那么多,我们只需要安安静静的做自己,守住自己幸福就可以了。

了解AList的部署和使用

一个支持多种存储的文件列表程序,使用 Gin 和 Solidjs。

GitHub 开源的 AList 服务是一个功能强大的信息管理平台,旨在帮助用户高效管理和共享信息。AList 提供了丰富的功能,包括信息分类、团队协作、权限控制等,使用户能够轻松地组织和检索各种类型的信息。

了解AList的部署和使用

软件本身是免费的,如果你想更方便的使用 AList 的话,官方也提供付费的服务,可以在 官方网站 进行购买和使用。

了解AList的部署和使用


部署和使用的更多方法,可以参考官方文档,里面说的比较详细了。

3.25.0 以上版本,将密码改成加密方式存储的 hash 值,所以无法直接反算出密码。如果忘记了密码,可通过重新随机生成或手动设置。

# 随机生成一个密码$ docker exec -it alist ./alist admin random# 手动设置一个密码$ docker exec -it alist ./alist admin set NEW_PASSWORD

如果想使用 aria2 离线下载,推荐使用这个 alist-aria2,其提前预装了 aria2 工具。

version: "3"services:  alist:    container_name: alist    image: xhofe/alist:3.30.0    image: xhofe/alist-aria2:3.30.0    restart: always    ports:      - "5244:5244"    volumes:      - "/data/service/alist:/opt/alist/data"    environment:      - PUID=1000      - PGID=1000      - UMASK=022    networks:      - service_alist_networknetworks:  service_alist_network:    external: true

Mac 上使用 WebDAV 装载共享文件夹

WebDAV 允许用户访问和管理远程服务器上的文件。您可以通过 WebDAVMac 上的共享文件夹装载为网络磁盘。

  1. Mac 上,转到 Finder>前往>连接服务器,此时会打开连接服务器窗口。
  2. 指定要访问的共享文件夹路径,请使用以下格式:http://NAS_IP_地址或主机名:端口号/共享文件夹名
  3. 单击连接。
  4. 指定 NAS 登录凭据。
  5. 单击连接。

通过 WebDAVNAS 共享文件夹装载为网络硬盘。现在即可使用 macOS Finder 访问和管理此共享文件夹中的文件。

VBoxManage命令简单使用

VirtualBox 提供了 GUI 工具 VirtualBox Manager 和 CLI 工具 VBoxManage 来控制虚拟机设置和操作。

VBoxManageVirtualBox 的命令行接口,利用它,你可以在主机操作系统的命令行中完全地控制 VirtualBox 虚拟机,包括一些高级和实验性的虚拟机配置设置。

大多数子命令需要在子命令后指定特定的虚拟机,可以使用虚拟机名称或 UUID 来标识虚拟机。并且,对于包含空格的虚拟机名称,需要用双引号括起来。详细的 VBoxManage 命令列表和示例可以在 官方 VBoxManage 命令使用文档 中找到。

VBoxManage命令简单使用

  • 【增】创建虚拟机
# 从命令行创建新的虚拟机并立即注册到VirtualBox$ VBoxManage createvm --name "Ubuntu 22.04" --register
  • 【删】删除虚拟机
# 删除VirtualBox虚拟机$ VBoxManage unregistervm --delete "Name/UUID"
  • 【改】修改虚拟机设置
# 在虚拟机关闭状态下修改设置,如内存大小$ VBoxManage modifyvm "VMName/UUID" --memory 512# 配置网络适配器$ VBoxManage modifyvm "VMName" --nic1 bridged --bridgeadapter1 "eth0"
  • 【查】查询虚拟机
# 查看VirtualBox虚拟机$ VBoxManage list vms# 查看特定虚拟机的配置信息,包括UUID、内存大小等$ VBoxManage showvminfo "VMName/UUID"
  • 【控】虚拟机操作控制
# 启动虚拟机$ VBoxManage startvm "VMName/UUID"# 停止虚拟机# pause/resume/reset/poweroff/savestateVBoxManage controlvm "Name/UUID" pause# 关闭虚拟机# pause/resume/reset/poweroff/savestateVBoxManage controlvm "Name/UUID" poweroff
  • 【备】虚拟机快照管理
# 创建快照$ VBoxManage snapshot "Name/UUID" take "SnapshotName"# 恢复快照$ VBoxManage snapshot "Name/UUID" restore "SnapshotName"
  • 【存】存储配置管理
# 添加存储控制器$ VBoxManage storagectl "VMName/UUID" --add sata --name "SATA"# 挂载虚拟磁盘$ VBoxManage storageattach "VMName" --storagectl "SATA" \    --port 0 --device 0 --type hdd --medium "disk.vdi"
  • 【其】其他常用命令
# 导入虚拟机配置$ VBoxManage import "Appliance.ova"# 导出虚拟机配置$ VBoxManage export "VMName" --output "VMExport.ova"

Obsidian多端同步方案

记笔记的目的不是记忆过去,记忆过去是为了改变未来。

目前,市面上有很多 Obsidian 的多端同步方案,其中最好的当然是官方的收费同步方案了。官方的同步更快速而且安全,并且提供了 端到端加密历史版本跨平台同步离线工作 等功能 。但是,缺点就是需要收费,包年每个月 4 美元(有资源限制)。

Obsidian多端同步方案

除了官方的收费同步服务,目前社区的多端同步方案,均以使用支持 Webdav 的云盘或云服务的对象存储为主,缺点就是有的平台有限制,而且有时因为网络问题,可能同步需要达到分钟级别。

在使用了很多开源方案之后,最后选择了自建 Webdav 服务 Alist(提供笔记存储服务) 和 remotely-save(多端同步功能) 插件的组合,并且使用 Git(提供历史版本功能) 进行同步的方案。

Obsidian多端同步方案

下面列举一下,常见的开源方案,以及对应方案的问题以及简单的使用注意事项。具体的操作步骤就不搬运了,感兴趣的话,可以自行查找相关官方文档或者部署方式。

  • 笔记存储方案对比

    • 坚果云(基本不可用)
      • 使用方法
        • 注册坚果云账户并添加应用程序
        • 账户信息,安全选项,第三方应用管理,添加应用并生成密码
      • 注意事项
        • 移动端的仓库名需要和电脑端一致
        • 移动端扫码只是为了和电脑端同步设置,也可以手动添加
        • MGit 拉到 Android 设备,用 iSH 拉到苹果设备
        • 坚果云显示第三方 Webdav 服务请求为 **半小时请求 600 次的限制
    • Teracloud
      • 注册账户
        • 个人信息
        • 邮箱
        • 用户 ID 用于登录使用
        • 登录密码
      • 注意事项
        • 新用户有 20G 存储空间
        • 使用 4D42H/XTY4 可额外得 5GB
          • Get more capacity
          • Enter friends Introduce code
        • Webdav 同步工具推荐
          • WindowsZotero
    • OSS - S3
      • 注册 aliyun OSS 账户并添加应用程序
        • 官网选择 产品存储对象存储 OSS 并购买资源包
        • 我们根据自己选择对应的 OSS 存储,40G/9RMB/1Year
        • 管理控制台,选择 bucket 桶,即文件夹
        • 需要记住,Endpointbucket 域名后续配置使用
        • 使用 AccessKey 创建访问秘钥,进行配置使用
      • 注意事项
        • 阿里云,因为下载还会有外网流量,也是要收费的
  • 多设备同步插件对比

    • 使用 remotely-save 插件
    • 使用 obsidian-livesync 插件(更新频繁)
    • 其他同步方案介绍
      • syncthing
      • 微力同步
        • https://www.verysync.com
        • 简单易用的多平台文件同步软件,惊人的传输速度是不同于其他产品的最大优势, 微力同步 的智能 P2P 技术加速同步,会将文件分割成若干份仅 KB 的数据同步,而文件都会进行 AES 加密处理。
  • 提供历史版本功能

2024年第二季度总结

2024 年第二季度总结

这里记录下第二季度自己的一些想法,为了日后翻阅方便!

  • 四月
    • pass
  • 五月
    • pass
  • 六月
    • pass

四月

pass

pass

2024年04月月度总结


一 pass

pass

pass

2024年第一季度总结

2024 年第一季度总结

这里记录下第一季度自己的一些想法,为了日后翻阅方便!

  • 一月
    • pass
  • 二月
    • pass
  • 三月
    • pass

一月

pass

pass

2024年01月月度总结


一 pass

pass

pass


二月

pass

pass

2024年03月月度总结


一 pass

pass

pass


三月

pass

pass

2024年03月月度总结


一 pass

pass

pass


Syncthing 文件同步工具

Syncthing:基于 P2P 技术实现设备间的文件同步!

Syncthing 是一个连续的文件同步程序,可以在两台或多台计算机之间实时同步文件,安全地防止窥探。选择你的的数据,选择你的存储位置,就可以通过互联网传输了。

Syncthing文件同步工具


1. 工具介绍

介绍 Syncthing 工具的主要特点和优势。

Syncthing 是一个使用 Go 语言来发的开源文件同步工具,可以在多台计算机之间实时同步文件。它致力于保护用户数据,确保安全、易于使用,并且可以在各种常见的计算机上运行。

  • 安全性和隐私
    • Syncthing 基于 P2P 技术 实现设备间的文件同步,所以它的同步是 去中心化 的,即你并不需要一个服务器,故不需要担心这个中心的服务器给你带来的种种限制。
    • Syncthing 致力于保护用户数据,确保不会丢失或损坏。它使用 TLS 加密来保护通信,并采用完美前向保密以防止窥探者获取数据。每个设备都使用强加密证书进行身份验证,只有经过明确允许的设备才能连接到其他设备。
  • 易用性和功能
    • Syncthing 旨在易于使用,可以在各种操作系统上运行,包括 macOSWindowsLinux 等。它可以同步多个文件夹,支持局域网和互联网上的同步,无需复杂的 IP 地址或高级配置。用户只需将设备 ID 分享给其他设备,即可进行文件夹共享。

Syncthing文件同步工具


1. 安装方式

提供多种安装方式,以及图形化应用。

Syncthing 工具非常好安装,可以通过命令行模式使用。如果你感觉命令行使用非常不好用的话,就可以看看其跨平台的 Syncthing GUI 应用。

  • 二进制 - 基础版本,不带图形界面
# Debian/Ubuntu$ sudo mkdir -p /etc/apt/keyrings$ sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg$ echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list$ sudo apt-get update$ sudo apt-get install syncthing# 直接下载官方软件安装$ sudo apt install -y syncthing.xxx.tar.gz
  • 图形化 - 高级版本,带图形界面
# linuxhttps://github.com/kozec/syncthing-gtk/tagshttps://forum.syncthing.net/t/difficulty-installing-running-syncthing-v-11-5-on-ubuntu-14-04/2761/5# androidhttps://github.com/syncthing/syncthing-android/tags# macOShttps://github.com/syncthing/syncthing-macos/tags# iOShttps://www.mobiussync.com

Syncthing 的容器镜像托管在 Docker Hub 中,直接启动的时候指定对应镜像地址就可以了。可以通过指定 /var/syncthing 对应的目录进行同步,并且默认的 UIDGID 都是 1000,可以通过环境变量进行指定,还可以通过 --hostname=syncthing 来改变实例的名称。

要在不以 root 身份运行的情况下,需要给 Syncthing 镜像额外的系统权限。使用 PCAP 环境变量授权,比如 PCAP=cap_chown,cap_fowner+ep

# docker cli$ docker pull syncthing/syncthing$ docker run --hostname=my-syncthing \    -p 8384:8384 -p 22000:22000/tcp \    -p 22000:22000/udp -p 21027:21027/udp \    -v /wherever/st-sync:/var/syncthing \    syncthing/syncthing:latest
version: "3"services:  syncthing:    image: syncthing/syncthing    container_name: syncthing    hostname: my-syncthing    environment:      - PUID=1000      - PGID=1000    volumes:      - /wherever/st-sync:/var/syncthing    ports:      - 8384:8384 # Web UI      - 22000:22000/tcp # TCP file transfers      - 22000:22000/udp # QUIC file transfers      - 21027:21027/udp # Receive local discovery broadcasts    restart: unless-stopped

3. 使用方式 - 设置文件同步

介绍如何快速上手,使用 Syncthing 工具进行文件同步。

  • 1. 启动服务

安装完成之后,将会有一个名为 syncthing 的可执行二进制文件。首次运行命令的话,Syncthing 将生成一个配置文件、一些加密密钥,然后在浏览器中启动管理 GUI。当然,可以通过图形化程序,双击进行打开。

# 启动服务# https://docs.syncthing.net/users/syncthing.html$ syncthingINFO: Default folder created and/or linked to new configINFO: My ID: 6FOKXKK-xxxINFO: TCP listener ([::]:22000) startingINFO: GUI and API listening on 127.0.0.1:8384INFO: My name is "This computer"INFO: Detected 0 NAT services
  • 2. 互相添加对方为远程设备

左侧的 Folders 就是需要共享的文件目录列表,目前尚未与任何其他设备共享。右侧的 This Device 是本机的目录列表,下面的 Remote Devices 是需要远程备份的列表服务器。

而同步的操作,需要通过交换 设备 ID 来实现的。该设备 ID 是一个唯一的加密安全标识符,并在你首次启动 Syncthing 时作为密钥生成的一部分生成。当然,也可以通过在 GUI 中查看到。只有当两台设备都配置了彼此的设备 ID 时,它们才会相互连接和通信,其本质上是公钥的一部分。

Syncthing文件同步工具

单击两台设备右下角的 Add Remote Device,然后输入另一侧的设备 ID。设备名称是可选的,改成我们好记忆的就可以了。单击 Save 后,新设备将出现在 GUI 的右侧,即使已断开连接的设备。

Syncthing文件同步工具

  • 3. 设置需要共享的文件夹

此时,默认情况下,两个设备共享一个 Default Folder 空目录。如果要同步其他文件夹的话,需要事先添加。之后,将文件添加到任一设备上的共享目录都会将这些文件同步到另一端。

Syncthing文件同步工具

Syncthing文件同步工具

如果在连接设备时遇到问题,请先查看防火墙设置,然后查看 GUI 或控制台上的错误消息。不要忘记配置更改不会立即反映出来,尤其是在重新启动后。


4. 使用方式 - 更多高级功能

介绍如何快速上手,使用 Syncthing 工具进行文件同步。

  • 1. 版本控制
    • 是否开启:默认不开启版本控制
    • 打开方式:同步文件夹下面的选项中进行设置
    • 选项说明:可以选择版本控制类型和保留数量

Syncthing 也提供了版本控制功能,它可以记录一个文件的删除和修改历史,你可以根据自己的需要将文件恢复到之前的某一状态。

然而需要特别指出的是,它只记录远程设备对这个文件的修改和删除,并不记录本机对于文件的修改和删除。此外在设备 A 开启共享文件夹的版本控制并不会影响到设备 B,即每个设备需要各自开启版本控制。

  • 2. 忽略文件

有时,我们不希望接收远程设备同步全部文件过来,比如一些隐藏文件等。可以点击文件夹的选项,选择 忽略模式,配置该文件的名称,那后续这个文件不会再被同步,不管远程设备对这个文件做了什么样的修改。

  • 3. 文件同步冲突

共享文件夹中的文件可以被多个设备所修改,所以存在同步发生冲突的可能。Syncthing 对于文件冲突的解决方法是:两个修改后的文件都会被保留,具体需要保留哪个文件由用户自行选择。

Syncthing 能够实现处于不同局域网之中的两台设备之间的同步,这实际上有赖于发现服务器(Syncthing Discovery Server)的协助,否则它们不能发现彼此。Syncthing 默认使用官方提供的全球发现服务器集群,不过你也可以自己搭建一个,在自己的服务器上。你可以设置 Syncthing 使用某一台发现服务器。

当两台设备无法直接相联的时候,Syncthing 可以通过中继服务器进行数据的传输。目前有一批默认的公共中继服务器可供使用,如果你想自己搭建,也是可以的。当然中继传输的速度是不如直连,不过在无法直连的情况,也只能使用中继传输。关于中继服务器的安全隐私问题,你不用担心数据泄露,因为数据是端到端加密的,中继服务器只传递加密后的数据,但是中继服务器是知道连接的用户 IP 和设备 ID


5. 常见问题

介绍使用 Syncthing 工具时,遇到的问题以及解决方法。

  • 问题一: Distribution Package Preferred Over This Version
# 调整优先级$ printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.pref
  • 问题二: HTTPS Method Driver Missing
# 运行apt-get时看到类似于以下错误的错误E: The method driver /usr/lib/apt/methods/https could not be found.N: Is the package apt-transport-https installed?E: Failed to fetch https://apt.syncthing.net/dists/syncthing/InRelease# 更新下就行了$ sudo apt-get install apt-transport-https
  • 问题三: Server Certificate Verification Failed
    • 对应较旧的发行版,系统 TLS 证书存储可能已过时。自 202110 月以来,必须安装较新的根证书。
# 运行apt-get时看到类似于以下错误的错误E: Failed to fetch https://apt.syncthing.net/dists/syncthing/stable/binary-armhf/Packagesserver certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: noneE: Some index files failed to download. They have been ignored, or old ones used instead.# 更新下就行了$ sudo apt-get update$ sudo apt-get install ca-certificates

6. 参考地址

送人玫瑰,手有余香。

如何拯救濒危Flask扩展

失去维护是每个开源项目都会遇到的情况,如何自救呢?

前几天,在 B 站上面看到了 Grey LiPyCon China 2023 上面的一个小演讲。主要讲的是,关于自己最近尝试把几个失去维护的 Flask 扩展通过各种方式救活的故事,号召大家多多参与开源项目。

如何拯救濒危 Flask 扩展

下面是我总结了一下 PPT,提取的主要内容:

  • 如何拯救一个被遗弃的开源项目?

    • 赢得信任
      • 做贡献提升权限
      • 发邮件要权限
    • 获得权限
      • GitHub 仓库权限
      • PyPI 法宝权限
    • 给维护者的建议 - Bus Factor
      • 至少两个 GitHub 维护者
      • 至少两个 PyPI 维护者
      • 设置 GitHub Actions for PyPI publish
      • 设置 GitHub 账户继任者
      • 捐赠项目给社区组织(比如 pallets-eco
    • 最后一招
      • Make a new one
  • 如何更新一个古老 Python 项目?

值得注意的是,关于 GitHub Actions for PyPI publish 的知识点,其可以不需要获取项目的 PyPI 权限,就可以触发打包更新。对应自己或者拯救失去维护的 Flask 扩展都是一个很好的实践。

jobs:  pypi-publish:    name: upload release to PyPI    runs-on: ubuntu-latest    # Specifying a GitHub environment is optional, but strongly encouraged    environment: release    permissions:    # IMPORTANT: this permission is mandatory for trusted publishing    id-token: write    steps:      # retrieve your distributions here      - name: Publish package distributions to PyPI      - uses: pypa/gh-action-pypi-publish@release/v1

Mackup同步各类软件配置

巧用开源软件 Mackup 在不同设备间同步各类软件设置

需要在多个设备上面同步工作的人来说,同步电脑软件配置一直是一个困扰人的问题。虽然很多软件推出了自己的云同步服务,只需要登陆就可以在多台设备中同步设置,但是仍旧有多数软件并没有多设备间的同步功能。现在,我们就可以使用开源软件 Mackup 对设备中无法进行云同步的软件进行配置的备份与还原。

Mackup同步各类软件配置


1. 工具介绍

利用 Homebrew 和 Mackup 优雅的备份和恢复电脑开发环境!

以下经历就是,非常让人恼火的,既耽误时间,有没有什么实质意义:

  • 安装 Homebrew 工具
  • 再用 Homebrew 安装常用软件,比如 iTerm
  • 增加配置文件,配置环境变量,比如 ohmyzpip
  • 安装 iTerm 插件并配置插件
  • 安装 VSCode 的常用插件并配置插件

如果你只需要备份 Mac 软件的配置文件,可以使用 Time Machine 工具。如果你只需要备份 Homebrew 的话,可以使用 Homebrew Bundle 工具。当然,你也可以使用版本管理系统,比如 git 或云同步工具等。

Mackup  是一款基于 Python 开发的,适用于 Linux/macOS 的命令行备份软件,只需要简单输入几行命令,就可以把应用程序的配置文件备份或还原。Mackup 支持目前市面上主流的云存储,比如 DropboxiCloudOneDrive 等等,通过将备份文件存储到云存储中,再在另一台电脑上还原的方式同步配置。


2. 工具安装

安装方式很简单,需要的是需要配置储存在哪里。

如果你安装了 Dropbox,想用它来保存你的配置文件,这是非常容易的。当然,你也可以选择其他支持的远程存储服务,详情查看下放的配置部分,进行配置。

# Install Mackup$ brew install mackup# Upgrade with Homebrew$ brew update$ brew upgrade
  • Not running macOS - pip
# Install Mackup with PIP$ pip install mackup# Upgrade with Python's PIP$ pip install --upgrade mackup
  • On Ubuntu - pip
    • 默认 pip 将安装到当前用户的家目录下,而不是系统目录。因此,在 Ubuntu 上安装 pip 时,需要运行命令时带有 --system 标志,而在其他平台上不需要添加。
# Install Mackup with PIP$ pip install --upgrade mackup

安装工具之后,就可以使用 backup 命令将配置进行备份。

# Launch it and back up your files$ mackup backup

如有需要的话,在新的机器上面,只需要执行 restore 命令,即可恢复备份。

# Launch it and restore your files$ mackup restore

3. 工具配置

工具使用的核心功能介绍,不清楚就看文档。

安装完成之后我们需要对与 Mackup 进行配置,其配置文件为  ~/.mackup.cfg,可以通过编辑进行编辑。

  • 首先,选择使用的存储备份方式,默认为 Dropbox 服务。
    • engine:表示选择的 备份存储方式
      • Dropboxengine = dropbox
      • Google Driveengine = google_drive
      • iCloudengine = icloud
      • copy:engine = copy
      • file_systemengine = file_system
        • 需要指定 path 将配置存储在这里
    • customdirectory = Mackup
      • 可以指定 pathdirectory 将配置存储在这里
      • directory:你需要备份存放的位置
  • 然后,在配置文件中填写想要同步设置的软件名称。
    • 可以通过查看支持的 软件列表 进行填写
    • 如果 不在列表 上的软件,可以通过 config 实现备份
  • 最后,保存退出就可以用 Mackup 进行备份了。
    • 可以把选择的软件备份到相应的目录下
      • mackup backup
    • 在另一台电脑上,就可以同步配置了
      • mackup restore
# 配置文件目录结构~/├── .mackup.cfg└── .mackup    ├── nethack.cfg    ├── git.cfg    └── my-files.cfg

当然,我们可以通过  crontab  这样的定时执行程序进一步自动化。如果突然有一天,需要 转换存储 方式,就可以参考官方文档进行处理。

# 实例配置展示$ vim ~/.mackup.cfg[storage]engine = iclouddirectory = ~/.config/mackup[applications_to_sync]raycast[applications_to_ignore]sshadium
  • 不支持的应用如何配置

当然,对于不在 Mackup 官方支持的软件列表上的软件,也可以自己创建 config 文件来实现备份,实现方式也很简单。

在配置文件中,填入软件的名称和其配置文件的地址相对地址,就可以了。然后运行一下  mackup list  查看是否添加到 Mackup 中,然后在  mackup.cfg  文件中添加  nethack  即可备份。

# 以nethack为例$ mkdir ~/.mackup$ vim ~/.mackup/nethack.cfg[application]name = Nethack[configuration_files].nethackrc# 可以查到支持的列表了$ mackup listSupported applications:[...] - nethack[...]
  • 对使用 XDG 目录的应用程序的支持

对于将其配置存储在 ~/.config 文件夹下的应用程序,不应对其进行 hardcodeMackup 支持此机制,并提供专用的 xdg_configuration_files 字段。如果任何路径以 .config 开头,请删除 .config 部分并将路径移动到专用的 xdg_configuration_files 部分。

# Instead of: ~/.mackup/git.cfg[application]name = Git[configuration_files].gitconfig.config/git/config.config/git/ignore.config/git/attributes
# Use this: ~/.mackup/git.cfg[application]name = Git[configuration_files].gitconfig[xdg_configuration_files]git/configgit/ignoregit/attributes

4. 常用操作

原理说明:link 大法好!

关于 Mackup 的操作其实非常简单,这里列出 Mackup 的常用操作命令:

  • mackup backup
    • 进行备份操作
  • mackup restore
    • 进行数据的恢复
  • mackup list
    • 查看支持的软件列表
  • mackup -h
    • 查看帮助命令
  • mackup uninstall
    • 将配置文件拷贝回原来的系统目录

执行 backup 操作,其实是使用 link 的方式,为配置文件创建一个软链接,再让其生效。而执行 restore 操作,则是只执行了 link 的步骤。而执行 uninstall 操作,将删除所有创建的符号链接,并将文件从 Dropbox 中的 Mackup 文件夹复制回家目录的原始位置。

# backup git config to dropbox$ cp ~/.gitconfig ~/Dropbox/Mackup/.gitconfig$ rm ~/.gitconfig$ ln -s ~/Dropbox/Mackup/.gitconfig ~/.gitconfig# restore git config from dropbox$ ln -s ~/Dropbox/Mackup/.gitconfig ~/.gitconfig# uninstall to revert all your files$ mackup uninstall

5. 备份实践

简述下自己如果要使用 Mackup 的话,主要需要设置的内容。

安装完工具之后,在默认工具配置下面会提供一份 示例配置文件。我们可以通过 copy 官方 Github 代码目录 mackup/doc/.mackup.cfg 的方式将其复制到家目录下面,而不用我们重新生成配置了。

# 示例配置文件(官方代码仓库)$ cp mackup/doc/.mackup.cfg ~/
  • 备份配置文件 - 想要备份的机器
# 初始化目录(喜欢放到git上面)$ git clone https://github.com/escapelife/dotfiles.git# 备份其他配置文件(macOS)$ brew install mackup$ cp mackup/doc/.mackup.cfg ~/$ vim ~/.mackup.cfg# 配置完成后备份$ mackup backup# 上传代码到你的仓库$ git push
# 主配置文件内容$ cat ~/.mackup.cfg[storage]engine = file_systempath = /Users/escape/dotfilesdirectory = Mackup[applications_to_sync]zshvscode[applications_to_ignore]ssh
  • 初始化新设备 - 想要恢复的机器
    • ./install.sh 脚本做了这样一系列事情
      • 安装 oh-my-zsh + powerlevel10k 和一系列插件
      • 安装各种工具,包括 iTermHomebrewvsCode
      • 配置 .mackup.cfg 软链接
# 拉取你的dotfiles仓库$ git clone https://github.com/escapelife/dotfiles.git$ cd dotfiles# 创建配置文件(link)$ ./install.sh# 恢复其他配置文件$ mackup restore
# 备份Homebrew软件# --describe: 为列表中的命令行工具加上说明性文字# --force: 直接覆盖之前生成的Brewfile文件# --file: 在指定位置生成文件(默认在当前目录生成文件)$ brew bundle dump --describe --force --file="~/dotfiles/Homebrew"# 批量安装Homebrew软件$ brew bundle --file="~/your/path/to/Homebrew"# 手动备份vsCode插件$ code --install-extension dbaeumer.vscode-eslint# 批量安装vsCode插件$ code --install-extension dbaeumer.vscode-eslint

6. 问题处理

记录使用过程中,需要的问题以及处理方式。

# 问题FileExistsError: [Errno 17] File exists: '/Users/username/Library/Mobile Documents/xxx/iTerm2/DynamicProfiles' -> 'xxx'
# 解决# 更简单的解决方法,关闭iTerm.app阻止它重新创建DynamicProfiles$ killall iTerm2$ mackup backup

7. 参考链接

送人玫瑰,手有余香。

开源Electerm终端利器

开源终端/ssh/telnet/serialport/sftp 客户端。

electerm 是一款基于 electron 开发的 SSH/SFTP 客户端,同时支持 LinuxMACWindows 操作系统,免费开源。

开源Electerm终端利器


1. 功能特性

具有书签、快速命令、访问历史、SFTP 传输历史等功能。

electerm 开源免费、多平台支持,自带中文界面。electerm 算是比较成熟的软件了,基本可以满足日常的服务器管理和使用。遇到 Bug 也可以在 Github 进行反馈。

  • 支持 ssh/telnet/serialportsftp 文件传输以及作为本地终端使用
  • 全局快捷键切换隐藏显示窗口(类似 guake,默认快捷键 ctrl + 2)
  • 多平台支持(linux/mac/win)
  • 多国语言支持(electerm-locales)
  • 双击直接编辑远程文件
  • 支持密码或者密匙登录
  • 支持 Zmodem(rz/sz)
  • 支持 ssh 隧道
  • 支持 Trzsz(trz/tsz),类似 rz/sz,兼容 tmux
  • 支持透明窗口(Mac/win)
  • 支持设置终端背景图片
  • 支持代理服务器
  • 支持预设快捷命令
  • 支持主题
  • 支持同步书签等数据到 github/gitee 私人 gist
  • 支持快速输入命令到一个或者多个终端
  • 支持命令行使用

2. 软件安装

自动升级:点击新版本的升级按钮!

除了使用下方命令直接安装以外,也可以通过 SourceForge 或者 Electerm Releases 进行下载安装(提供编译好的安装包)。

  • Mac OS 用户: brew install --cask electerm
  • Snapsudo snap install electerm --classic
  • 一些 Linux 发行版的内置软件商店(Ubuntu/Deepin 等)
  • 不支持rpm/deb/snap  的 Linux 发行版可以尝试  tar.gz 版本
  • Windows 用户可以从 windows store,命令行安装工具  winget,以及scoop
# winget https://github.com/microsoft/winget-cliwinget install electerm# scoop https://github.com/lukesampson/scoopscoop bucket add dorado https://github.com/chawyehsu/doradoscoop install dorado/electerm
  • npm 安装
npm i -g electerm# after installation, it will immediately open for windows and linux,# for macOS, it will open the drag to install panel

3. 设置同步

可以将服务器连接信息同步到远程服务器上面。

electerm 可以将书签(服务器连接信息)同步到 GithubGitee 等代码托管平台上面。

  • 首先,在 GithubGitee 生成一个新的令牌。根据提示进行生成,生成后令牌只会出现一次,注意保存。
  • 然后,打开 electerm 的同步功能,切换到 GithubGitee 的设置,填写刚刚获取的令牌并勾选加密同步,接着保存并上传设置即可。

如果更换了电脑也是按照这样设置,然后点下载设置即可将书签同步到本地。如果不想使用同步功能的也可以在书签设置中进行导出、导入。


4. 常见问题

官方记录的软件使用过程中的常见问题。

electermGithub 和官方网站确实说明比较,很多设置需要在下面看或者去 issues 自己找,不过日常不需要太高级的功能的话,也不用折腾。


5. 相关链接

送人玫瑰,手有余香。

零刻主机操作指南

主要介绍零刻 GTR7 小主机的常见问题以及高级功能处理步骤。

今年前半年买了一台零刻的 GTR7 来当家里的服务器使用的,在使用过程中,难免会遇到一些问题。这里就是专门开了一篇博客,来记录使用当中遇到的问题。

零刻主机操作指南


1. 开启来电自启

零刻 GTR&SER7 开启来电自启功能操作指南!

按下电源启动主机之后,当屏幕上面出现 Logo 的时候,迅速按下 Delete 键进入 BIOS 的设置界面。使用方向键切换到 advice 选项,然后使用回车键进入 AMD CBS 设置,选择 AC power loss options 选项,使用回车键进入设置。然后,将 always off 设置成为 always on 即可开启来电自启动功能。设置完成之后,按 F4 选择 yes 保存并退出,来电启动就设置完毕了。

  1. 开启按下 Delete 进入 BIOS 界面
  2. 方向键切换到 advice 选项,回车键进入 AMD CBS 设置
  3. 选择 AC power loss options 选项,回车键进入设置
  4. always off 设置成 always on 开启来电自启动
  5. F4 选择 yes 保存并退出

零刻主机操作指南 - 开启来电自启

零刻主机操作指南 - 开启来电自启


2. 调整显存容量

零刻 GTR&SER7 调整显存容量大小操作指南!

按下电源启动主机之后,当屏幕上面出现 Logo 的时候,迅速按下 Delete 键进入 BIOS 的设置界面。使用方向键切换到 advice 选项,然后使用回车键进入 AMD CBS 设置,选择 NBIO Common Options 选项,使用回车键进入设置。然后,选择 GFX Configuration 并再选择 UMA Frame buffer size,将后面的值改为自己希望的大小即可开启来电自启动功能。设置完成之后,按 F4 选择 yes 保存并退出,来电启动就设置完毕了。

  1. 开启按下 Delete 进入 BIOS 界面
  2. 方向键切换到 advice 选项,回车键进入 AMD CBS 设置
  3. 选择 NBIO Common Options 选项,回车键进入设置
  4. 选择 GFX Configuration 并再选择 UMA Frame buffer size 修改显存大小
  5. F4 选择 yes 保存并退出

零刻主机操作指南 - 调整显存容量


3. 设置四屏拼接

零刻 GTR6 设置四屏拼接,分辨率可达到 16K!

小主机的 4HDMI 可以做什么?相同的显示接口优点在于输出内容完全相同,不会出现颜色字体显示格式不统一的情况,显示内容完全一致,可以通过 Adrenalin Edition 上的 AMD Eyefinity 功能将多个显示器拼接为一块显示器显示,获得更宽阔的视野以及更高的分辨率。

  1. Windows 系统中,使用 [AMD Software: Adrenalin Edition 软件
  2. 进入软件,根据显示器的实际位置进行标识排列
  3. 启用 AMD Eyefinity 功能即可完成屏幕拼接

零刻主机操作指南 - 调整显存容量

Barrier 共享鼠标键盘神器

多设备,单一输入,低成本使用软件。

如果你需要在 MacOSLinux 或其他设备之间共享键盘和鼠标,可以使用多套独立的键鼠完成,也可以使用同一套键鼠实现,那就是开源的 Barrier 软件。

当我们只有一个键盘、鼠标,但想要操作两台电脑的时候,你就发现,这东西真心不错。

Barrier共享鼠标键盘神器


1. 软件安装

基本常见的操作系统发行版,都可以直接安装。

# Ubuntu$ sudo apt install -y barrier$ sudo snap install -y barrier# CentOS$ sudo yum install -y barrier
  • Mac/Windows
# 开源地址直接下载安装https://github.com/debauchee/barrier/releases

2. 使用配置

安装完成之后,需要配置,才可以使用。

软件安装完成之后,分别在服务端和客户端配置,然后在开启,即可使用。

  • 服务端 - 共享此电脑的鼠标和键盘
    • Server: share this computer's mouse and keyboard
    • 勾选服务端
    • 默认情况下会自动显示本机的 IP 地址的(这个需要客户端配置时使用)
    • 设置服务端 里面,添加需要控制的机器名字和屏幕排列
    • 在设置里面关闭 开启 SSL 以及强制客户端证书认证
    • 开启服务端服务

Barrier共享鼠标键盘神器

  • 客户端 - 使用另一台电脑的鼠标和键盘
    • Client: use another computer's mouse and keyboard
    • 勾选客户端
    • 屏幕名称就是需要和服务端添加的机器名称匹配
    • 输入服务器 IP 地址,如果有多个,输入任意一个
    • 在设置里面关闭 开启 SSL 以及强制客户端证书认证
    • 开启客户端服务

Barrier共享鼠标键盘神器

注意,如果使用过程中遇到任何问题,都要及时看日志。通过日志输出内容,来进行解决。


3. 常见问题

记录软件日常使用当中,常见的问题,以及对应解决方法。

  • 问题一:客户端无法找到配置文件
# 客户端报错信息如下openERROR: ssl certificate doesn't exist: /home/escape/.local/share/barrier/SSL/Barrier.pem
# 默认通过apt安装之后并没有生成pem文件,自行创建即可# https://github.com/debauchee/barrier/issues/231$ mkdir -pv /home/escape/.local/share/barrier/SSL/$ cd /home/escape/.local/share/barrier/SSL/$ openssl req -x509 -nodes -days 365 -subj /CN=Barrier -newkey rsa:4096 -keyout Barrier.pem -out Barrier.pem
  • 问题二:启用 SSL 加密提示版本异常
# 客户端报错信息如下ERROR: ssl error occurred (generic failure)ERROR: error:0A00010B:SSL routines::wrong version numberERROR: failed to connect secure socket
# 处理方法就是关闭服务端和客户端的加密通信(临时解决)# 当然,可以通过查看服务端和客户端的openssl版本,同步升级解决settings -> close openssl

2023年第四季度总结

2023 年第四季度总结

这里记录下第一季度自己的一些想法,为了日后翻阅方便!

  • 十月
    • 哲学家的失眠
    • 为什么写作
    • 慢慢学会感动
    • 自由的可贵
    • 欧丽娟讲红楼梦
    • 婚姻的意义
    • 我为什么不叛逃写 Rust
    • 自己对应生活的思考
  • 十一月
    • 人只有不完美值得歌颂
    • 何为正义战争
    • 生命的本质就是学习
    • 如何打败拖延症
    • 技术人员学习指南
    • 普通人在 AI 时代应该如何应对
    • 可逆决定和不可逆决定
  • 十二月
    • 文档第一 会议第二
    • 一些鬼故事

十月

卧轨的火车 - 一些次要的时刻

因为 2022 年所有的主线都已经灭了,所以一定要发展一些副线,否则人就被毁灭了。在这种状况之下,才能感觉到人与人之间,那些毫无目的的善意和多余的那些情感。这些东西,反而成了你最珍贵的东西。

2023年10月月度总结


一 哲学家的失眠

思考生活背后的意义,要从现实中“觉醒”!- 链接

哲学家的失眠症:害怕入睡的原因是害怕永远不会从有限游戏的梦中醒来。当然,这是一种变相的对死亡的恐惧。每一种恐惧都是对死亡变相的恐惧。

害怕浑浑噩噩的人生,只是害怕死亡的另一种方式。 追求高效,追求健康,追求智慧,追求自我意识,说到底,只是对死亡变相的恐惧。

那么问题又来了,我们应该接受恐惧,还是战胜恐惧?我们应该继续昏睡,还是开始失眠?你觉得呢?


二 为什么写作

我们只能在生命未尽之时,继续追寻。- 链接

一位真正的作家永远只为内心写作,只有内心オ会真实地告诉他,他的自私、他的高尚是多么突出。内心让他真实地了解自己,一旦了解了自己也就了解了世界。很多年前我就明白了这个原则,可是要捍卫这个原则必须付出艰辛的劳动和长时期的痛苦,因为内心并非时时刻刻都是敞开的,它更多的时候倒是封闭起来,于是只有写作、不停地写作才能使内心敞开,才能使自己置身于发现之中,就像日出的光芒照亮了黑暗,灵感这时候才会突然来到。—— 余华在《活着》的自序里面这么说

在我的写作的过程中,我确实有同感。当我内心中有东西想抒发的时候,文字是自动喷涌而出的。在我们的生活中,我们不可能没有感受,好的也好坏的也罢,可以自由抒发的话,都是一种好事情。


三 慢慢学会感动

发现生活中的感动,让我们感受到生活的意义!

回首自己五年前、十年前、甚至二十年前,虽然那时候因为年纪轻,越显得稚嫩,但是我也感慨,那么激昂、那么慷慨、那么自信、那么不顾一切的自己去哪里了呢?

在解决现实的问题之前,对我而言,最大的问题总是找回自己。什么是我最喜欢的自己?什么是应该做的事情?是那个十一假期什么都没做,只是被捅了好几天核酸的我?还是那个相信世界仍旧可以被改变,希望满满的我?是对自己丧失了要求,默默活下去的我?还是可以不断折磨自己,希望探索到自己的极限的我?

堂吉柯德,不论多少次失败最终还是要去挑战风车巨人……
西西弗斯,只能不断地把石头推上山去……
夸父是否知道他永远追不到太阳……
我们只能在生命未尽之时,继续追寻……


四 自由的可贵

没有人生感悟是因为没有真正的生活!- 链接

汗!这一次次大筛我们小区都没有病例,封的是什么逻辑呢?为了卖菜?回头去看看价格如何。估计还要被关在小区里面很久。

不是说不活着,而是浑浑噩噩的活着,想不清楚目标是什么,为了什么活着。有时候早起测核酸,倒像是成了目标,测完以后往沙发一躺,今天貌似什么都不用干了。

其实我平时也是不下楼的,就窝在家里,经常 10-20 天完全都不下楼,但是,我想出去逛就能出去逛,现在则不然,只能在小区里面打转。自由果然可贵,不管是不是真的需求它,但是没有就会很痛苦。

这样的生活当然无所感悟,也没办法感悟。虽然我们都向往更好的生活,更自由,更丰富的生活。但是生活品质首先取决于心境,然而才取决于物质。如果能更积极的面对更美好的生活,才是真正美好的生活。

谁说人生还不是一场旅途呢?不管好坏,生活还是要继续……


五 欧丽娟讲红楼梦

当你拿着锤子时,看什么都像是钉子。- 链接

人格魅力是一种很玄的东西,放在学者身上,这种魅力就是当你潜下心去治学,并把你的思考所得分享出来,你在讲述的时候眼睛里是闪着光的。

围绕红楼梦,老师从熟悉的事物出发,寻找理论的陌生感,散得开也收得拢。在视频中,阿德勒的个体心理学与诗词相互交融,大观,王道与神话并行不悖。诠释文本的支撑材料选择也很有意思,学者需要提出自己观点,但又不能有过强的自我意识,后者会让文本诠释变成“六经注我”的自我娱乐:当你拿着锤子时,看什么都像是钉子。所以需要有主见也要有自我约束,文学和哲学一样,都不是在简单的重复和学舌,而是试图通过留下的文字线索进行作者思维方式的模拟,我明白你的观点形成过程,进一步决定了我是否要接受你的观点或者采纳某种思维方式。


六 婚姻的意义

婚姻是甜蜜的海洋并不是自由的坟墓!- 链接

结婚是一件非常花费心思的事情,牵扯了上百人的精力,来完成一件非常有趣的事情。为什么越来越爱了,为什么结婚很久还是和初恋一样,就是因为一起经历的太多,导致彼此更加珍惜对方。

一场婚礼是非常耗费精力的事情,涉及到两大家族长时间的准备。一个家族内部之间的矛盾可能在这个过程被激发出来,鸡毛蒜皮的事情可能会导致出来一些纷争,牵扯出很久时间之前的恩怨;两个家族之间的价值观也会受到考验。事后来看,有些人之间的感情会更好,因为一起经历过了这件大事,有些人的感情可能会变差——由于有些地方事情办得不好。

家庭和亲戚们不是人能选择的,所以协调这样一个团队去完成一个大项目,本身就是一件很复杂的事情。

婚礼涉及的事情太多了,双方家庭一定会有在某些事情上不一致的地方,这对两个家庭的结合来说就是考验,对小夫妻也是考验,看能否协调好双方家庭。刚办完婚礼的我觉得如果婚礼能和谐地办好,那么以后幸福过日子不成问题。

婚礼看似费神费力,我的心态是,抱着享受过程的心态去准备每一件事,去体验。是一个和自己的兄弟们加深感情的机会(得请大家帮忙,团队合作),是一个双发家庭融合的机会,是一个考验小夫妻和双方父母三观的机会,也是你去认识对方家庭成员的机会,更是一个和自己的妻子加深感情的机会。


七 我为什么不叛逃写 Rust

浅浅的解释下我为什么不叛逃写 Rust - 提及链接

很多同学在留言中都好奇我为什么不叛逃写 Rust?哈哈,浅聊几句。其实我算是深入学习 RustGo 早,我早年不喜欢 Go 觉得它非常平庸(现在也这么觉得),在前司时我其实更期待平台能够支持写 Rust 而不是 G0

Rust 的语言特点会决定它的开发者相对非常小众,未来也不会流行。Go 可以说是 Python 的平替,但是 Rust 品然门栏高了一大截,但是对我来说语言特点只是考虑的一个方面,我看好它但是不会作为主力,我更关注语言的生态(或者说市场),另外可以看一下国内这几年的 RustConf 主题,可以看到它的路还很远:当然也可能和我职业发展规划关联不大。

对,我比较现实,在企业中如果不是高层有对应背景或者业务特点,Rust 是很难被作为核心或者说推荐的语言,因为门栏就是主要因素之一,资深 Go 开发者好找,Rust 开发者可遇不可求。现阶段我只能保持关注,让我「叛逃」可能还得几年~

不过我不反对大家赌 Rust。在之前提的毛剑老师的「技术人如何在多重角色中游刃有余」采访里面也表达过,新语言是有很多红利的,而选择一个过去的语言,你是很难和那些本来就有很多年积累的开发者竞争的,因为新语言出现的晚,还没有专家,有很多机会可以开疆拓土,把其他语言的东西改成 Rust 就是一个常见的方式,更早的在这个领域获得认可,这个就是选择比努力重要,如果赌对了,那前途比在一个早就被占完坑的语言里耕耘来的实际。

你们看我写 Python 十多年,其实相对的也可以说我占了 Python 语言红利(选择了坚持深入),而 Python 在过去那几年确实是越来越好的(但是最终社区自己不争气),所以就会更容易有名气,而同样我要是一个资深的 CJava 开发者。

可能就不容易这么有名气了,而现在各位即便从现在开始在 Rust 领域能够非常深入,也来得及,饭碗虽然没有 Go 的多,但是抢的人也很少啊,依然是非常有前景的。不过这个是有赌的成分的,毕竟是几年时间,各位谨慎。


八 自己对应生活的思考

面对生活,思考生活,改变生活。- 链接

  • 职场

你有没有意识到,上班本来就是痛苦无聊的,不然付你钱干嘛? 但是,不要只是为了钱,而放弃自己的身体,不然就得不尝试了。

如何平衡工作和生活?答案是平衡不了。时间的单向性,决定了时间的唯一性。 你可以一边唱歌一边跳舞,也可以享受工作而乐在其中,但你不能同时又在工位又在床上。在工作和生活无法互相等于对方的情况下,必然需要舍其一而划分优先级。

每个人都应该有几个吃饭搭子,以减轻上班的疼痛。 但如果没有也没关系,他们是萍水相逢的同事,这里叫暂时待着的环境,总有一天你会离开这里。

上班和谈恋爱一样,分手见人品。 好在运气不会次次都差,努力工作,精进本领,真诚待人,然后等待好运降临。花主要精力去关注、增强自己做起来比别人更容易的事情,学习自己做起来不太费力且对自己优势有补充的事情,放弃或者低成本做自己特别费劲的事情。 不要作无效上进状。

我坚持认为每个人都应该有一个自己的副业,跟主业分开。短期内副业并不需要赚钱,但它非常重要。它不仅有机会为你带来额外收入,还能带给你良好的感觉:我的工作,除了赚取薪水,还有别的意义;假设有一天没有工资,我也可以生活。

  • 生活

如果赚钱没有带来更好的生活,那么努力毫无意义。 尽管花时间和钱去投资自己,别做无聊的人,活得漂亮些。保持好奇心和探索精神,敢于冒险,追求美,包括无用之美。

好看是重要的,做个好看的人,精精神神就是好看。年轻的时候都没好看过,那真不知道活着图个什么劲儿了。你得去户外,跑起来,靠身体搞点多巴胺内啡肽,一动起来你就知道电子屏是多么的单调,沙发真的放不下你,我们生来不属于什么地方,心要野。 人生的意义和那些突然击中你的重大灵感,大部分都在玩儿的时间里。出去玩儿,走出去,枯坐是没用的。有意思就是有意义。

我知道你很累,你除了躺在床上刷一个个的短视频没有别的力气了,因为我也一样。但如果有力气刷短视频,就有力气把短视频换成长文章,把手机换成书,因为我也一样。我不是要告诉你每天多看会儿书能改变人生,因为那并不会发生。但最起码,不要在垃圾堆里找东西吃。

  • 健康

要明白好时光有限,学会贪生怕死。不可再生资源悠着点用,比如你的牙齿,眼睛,你的腰背,肩颈。 良好习惯要从步入职场就开始培养,干了伏案的工作,就要知道这活儿会落下哪种类型的职业病。又能把职业干好,又能没有职业病,是很牛逼的事情,很少有人能做到。做个牛逼的人。

人总是很难意识到自己的心理疾病,直到承受的心理压力最后通过身体的疾病表现出来。日常多去问自己当下是否快乐,而不是不断反思自己的表现能打几分。老实说,时至今日我对这个世界仍然有很多的问题,不过知道自己正走在正确的路上,那一切都没有什么好担心。

遇到解决不了的问题,也可以先去睡觉的。要知道,如果能拥有一晚充足的好睡眠,在这一天里就已经超过了世界上 90%的人。

运动带来的快乐,实在是太快乐了。你要知道,人类也是哺乳动物,是激素的奴隶。运动,分泌多巴胺,分泌内啡肽,天然带给你快乐。多锻炼,主动把心率提起来。学会操纵自己的肉身,调节自己的情绪,做个理性的人,人正因有理性而能跟动物区别开来。

饿了就吃,冷了就穿,腻了就换。 吃的是这样,衣服是这样,工作是这样。就这么简单。

  • 人际

活了这么大,在真诚待人的基础上,需要有一些见人说人话、见鬼说鬼话、见狗蹲下来说话的本领。为着实现自己的目标,为着不困扰别人,你需要努力做一个八面玲珑的人。

向帮你的人表达感谢,记住人家的好。每个家伙都需要爱,你也不例外,他也不例外。勇敢给予,大胆表达,「给」永远比「拿」愉快。

遇到问题别怕丢人,跟朋友们倾诉,问他们建议。任何一个真正的人都不会因着对方展露真心而嘲讽他。人这辈子亲密朋友就那几个,这个世界上真心不多了。


十一月

没人在乎

当你离开学校,踏入社会,就会发现没人在乎你。没有人关心你是谁、你知道什么、你在做什么。每个人都忙于自己的生活,他们的注意力都在自己那里。

你唱了世界上最烂的歌?没人在乎。你花了两年时间写小说?没人在乎。你开发了一个出色的软件,解决了一个大问题?没人在乎。这就是推销的用武之地了。

当你意识到,社会上的人们不会像你的父母那样关注你,你就会明白,推销是一种合理的行为。没有推销,别人不会关注到你。推销自己的产品是你的职责,让别人在乎你是你自己要解决的问题。

2023年11月月度总结


一 人只有不完美值得歌颂

为什么自比鲁迅的让我觉得不像,王小波门下走狗我也觉得不好。 - 链接

我觉得一个牛逼的人,一定是个人,一定是个有缺陷的人。这才真实。也有挣扎,也有痛苦,也有错误的时候,也有心胸狭隘的时候。所以,人需要自省,人会犯错误,也需要承认错误。才能成为一个人。

好的作家,思想家,往往都比普通人更敏感,我们觉得司空见惯的东西,他们往往会体会出更多的意涵,有更多的联想。这是一种祝福,也是一种诅咒,所以,他们也会有他们的痛苦,自省不仅带来的是自我的提升,也会带来自我和现实的疏离感,有很多现实存在的问题无法解决带来的无力感。

一切完美的,一切没有错误的,一切不知道反省的,只能让我怀疑。


二 何为正义战争

三条基本原则也不能够完全回答我们关于正义战争的所有的问题

对一个普通人而言,衡量战争的正邪往往是一件更加困难的事情,因为交战的各方往往都会开动其巨大的国家机器,通过外交、媒体和选择性的信息投放,为自己的战争做道德辩护。但是面对强大的国家宣传机器,个人也并不是只能作为被动的应声虫而已。

  • 原则一:正义的目的

在二战前的旧秩序当中,任何国家都可以以任何的正义之名宣战,这其实是一个鼓励和包容弱肉强食的世界。两次世界大战,其实正是这种逻辑的自然结果。经过了两次世界大战的惨烈教训,走向了一种新的秩序。新的秩序只允许两种正义的战争,一种是自卫,另外一种是有联合国授权的人道主义救援战。

新的战争秩序的最根本的逻辑就是和平,但是各种各样的道德疑团仍然存在。对于这些问题,我们可以进一步诉诸另外两条关于正义战争的基本原则来思考。

  • 原则二:相称性

相称性,战争所实现的正面价值,应该要超过它将导致的负面结果。在一次自卫战里,我们要付出的是什么,我们真正捍卫的又是什么,国家主权在人民的自由与幸福之外有什么价值。

  • 原则三:必要性

必要性,只有在没有比战争危害更小的方式来实现正义的时候,我们才可以诉诸于战争。如果从必要性的角度去思考,一场连对方入侵意图都还没有的预防战,我们不禁会去问,这样的战争真的是必要的吗?

在历史的洪流中,我们每个人的力量都只是一粒沙,但是聚沙成塔改变历史洪流的故事,在人类历史上从来也都不缺乏。即便在某一个特定的时刻,我们作为沙尘的力量不足以改变历史前进的方向,但作为一粒会思考的、有行动能力的沙子,表达自己通过理性思考获得的判断,本身就是我们作为一粒沙的尊严。


三 生命的本质就是学习

李安: “坚持梦想”不是可以鼓励的事情。

最近看了李安在 B 站的一个采访合集,导演说:

我觉得“坚持梦想”不是可以鼓励的事情。我真的凭良心讲,一个人会坚持的他本来就会坚持。不能坚持的人,一点小挫折,或者一点不如意,或者不理想的,他可能就不做了,即使鼓励到某一种程度也很小。我觉得坚持很多时候是天生的,很难靠个人毅力。讲起来有点玄的,有种宿命感:你是不是做这一行的,是不是吃这行饭的?至少对我的感觉来讲,好像有一点宿命。

李安还有一句话,我认为生命的本质就是学习。

人就是活到老,学到老。其实没有什么成长期、中年期,人就是一直去适应,一直去学习。当你学习能力衰退的时候,还要尽全力学习,生命的本质就是学习。


四 如何打败拖延症

别纠结艾森豪威尔矩阵啦,更为有效的方法是,参考「能力-意愿」模型。- 链接

一番琢磨过后,我发现影响行动积极性的因素主要有俩:

  • 任务的完成难度
    • 此事是否超出了我的能力范围
    • 写出一系列火爆全网的文章,篇篇阅读量百万加
  • 执行的有趣程度
    • 是否出资自己意愿和兴趣出发
    • 讨厌洗碗,洗了又脏、脏了再洗,循环往复没个尽头

增强行动力的方式主要有俩:增加激励以提升行动意愿,提升个人能力以降低完成难度。前者可在短期内做到,后者则通常需要持久地努力。

  • 第一象限:舒适区 - 有能力达成且愿意尝试
    • 比如说拿着充足的预算为公司采购电脑
    • 反正不用考虑性价比,顺带还能升级自己的设备,何乐不为
  • 第二象限:琐事区 - 有能力达成但不想做
    • 比如说帮同事复印文件、修改 PPT 格式、归档资料等操作简单
    • 高频占用个人工作时间、对项目产出也没啥直接帮助的事务
  • 第三象限:厌恶区 - 既不想做、能力上也做不到
    • 比如说盗取公司的核心数据,再把它高价卖给竞争对手
    • 从法律和道德层面皆不可行,即有这贼心也不同意做到
  • 第四象限:渴望区 - 愿意尝试但能力不足
    • 比如说取代上级成为团队管理者,挣到翻几倍的薪水
    • 愿景很美好,目标也明确,无奈实力不允许

2023年11月月度总结

对于想做但暂时做不到的事情,不如先放低要求,别管成果好坏,做到能稳定且持续地行动再说。毕竟,量变引发质变嘛。对于不想做且做不到的事:不妨问自己“如果不做,会有啥后果?该后果是我可以承受的吗?” 如果可以,那么不如通过主动承担损失来结束此类事件吧。


五 技术人员学习指南

《学习力》- 链接

通常我去学习一个技术都是工作需要,但我希望自己对这些技术有更深入的认识。学习一个技术的原因第一是出于需要,需要用于当前的工作,需要了解行业或者其他。第二是防止被忽悠,当你大概了解一门技术的时候,你就不会被轻易忽悠。

2023年11月月度总结

  • 历史发展

了解一个技术的发展历史和行业现状,短期之内没什么帮助,但是这其中隐藏着一个信息差的概念,对长期的发展有没有帮助,是否值得我们学习。

历史行业业务
过去过去哪些行业中用到?当时行业内部流通的版本是多少?标准是什么?
现在目前大家使用的行业是哪里?和过去对比有没有变化?我所在的行业中是什么样的情况?现在的标准、版本都是多少?
将来有没有人对这个技术的未来做出预测?将来这东西还有人用么?未来会不会推出新的版本?会不会再有更新维护?
  • 选择符合自己需求的部分

针对行业和业务锁定自己的需求,也是从自己所处的行业和业务范围去确定自己的需求。并且限定一个合适的范围,不要在超出范围的事情上浪费时间。

  • 设定成果物

在设定我们的成果物的时候,我们要制造/创造出某个东西,比如我要学会做饭这个技能,就将成果物列为,自己能够做出一道番茄炒蛋,而不是熟悉鸡蛋的内部结构,掌握锅碗瓢盆的使用方式。

  • 根据设定的目标寻找资源

已经确定了成果物,也知道要掌握的范围是什么,就可以着手寻找一些资源。查找资料同样是一门学问,要牢记不要贪多,不断精简留下 1~2 个教程就行,因为到中后期你会发现你连一个教程都很难坚持。

  • 学习计划

定学习计划的原则就是,不要贪多,没错,还是这个。不要给每天密密麻麻的设定好多,计划完成却耗尽激情,接下来的计划也懒得实行,计划没完成就给自己盖章为“废物点心”。

按周设计计划 是一个合适的方案,最好不要强迫自己在劳累了一整天之后坐在书桌前全神贯注的学习,尽量早晨早点起,留出 30min 学习也好,周末划分一个大块时间学习。晚上感觉很好,就多学一些,感觉很累,就休息一下。每周完成自己的周计划或者每个月完成就好,防止自己因为计划没完成而落入“废物陷阱”,自我感觉太差会影响下面的学习计划。

适当的 强迫自己放下电子设备,或者先做个五分钟,坚持一小段时间在休息,告诉自己五分钟也是学习,一秒钟都算进步。不想学的时候,告诉自己,先分解目标,不需要直接开始学习,当你打开章节内容,划分做策略之后,就会发现想学的欲望上涨了,说不定可以立刻开始学习。

细化目标和步骤是老生常谈了,经常设置自己的学习计划的人都应该知道,但是细化目标到什么程度不好把握,这里面的一个技巧是,根据自己的完成时间来限制,比如十五分钟以内,十分钟以内,五分钟以内的算是一个步骤,按照自己的习惯来细化目标,分解步骤。设定学习计划里面有太多的坑要避了,但是设定一个合适的学习计划又特别重要。

  • 开始着手

伴随着深入的学习,你需要不断地调整自己的学习计划,因为兴致好的时候会多学一点,兴致差的时候懒得动手,会拖延一点,其实没兴趣了随时放弃也无所谓,尝试过发现自己不喜欢也有意义。


六 普通人在 AI 时代应该如何应对

努力学习,紧跟潮流。- 链接

面对 AI 时代给我们工作和生活带来的转变,下面是一些具体的、实用的建议,以帮助我们每一个人更好地适应和把握这一时代:

  1. 持续学习与技能更新:专注于掌握和提高那些 AI 难以替代的技能,如创造性思维、情感智慧和战略规划。同时,利用各种在线资源和平台不断加深对 AI 本身的理解和应用。
  2. 多元化能力与跨领域学习:不要局限于单一的领域或技能,而应培养跨学科的知识结构和解决问题的能力。这不仅能够提高个人的适应性,还能够在不同领域之间建立连接,发现新的机会。
  3. 建立人际网络与共同学习体:通过与志同道合的人建立联系,不仅可以获得支持和鼓励,还可以共享资源和经验。在学习和适应过程中,一个良好的社交网络是不可或缺的。
  4. 保持好奇心与开放心态:在技术不断进步的今天,拥有探索的热情和对新鲜事物的好奇心比以往更为重要。让好奇心引导你的学习方向,也让开放心态帮助你接受新的思想和方法。
  5. 身心健康与自我关怀:不要忘记身体和心灵的需求。确保有足够的休息和放松,同时培养一些非技术性的爱好和兴趣,以维持生活的平衡。
  6. 面对不确定性保持谦逊:在这个不断变化的世界,没有人能够预知未来。因此,保持谦逊的态度,不断学习,是对待不确定性最好的方式。

通过这些策略的实施,我们能够在 AI 时代中找到自我提升和发展的机会,而不是被技术的浪潮所吞没。

  • 在瞬息万变的 AI 时代中寻找定位

在这篇文章的最后,我希望大家都能够认识到,在 AI 时代中个人的探索和适应是一场既激动人心又富有挑战性的旅程。ChatGPT 的新功能无疑增加了我们面临的挑战,同时也为我们带来了未知的机遇。让我们以开放的心态、持续的学习、跨领域的探索以及身体和心灵的平衡,迎接这个充满变化的新世界。

无论是作为开发者,还是作为父亲、母亲、朋友或者是一名终身求知者,每一个时刻我们都在塑造自我与 AI 的关系。我相信,如果我们积极拥抱变革,不断提升自己,未来将是充满可能性的。就像那些程序代码能够编织出令人惊叹的软件产品一样,我们的生命亦能在这个多彩的 AI 时代中织出精彩绝伦的人生篇章。


七 可逆决定和不可逆决定

不可逆决定,是很难改变的。- 链接

做决定的时候,你可以做两种决定。一种是不可逆决定,它就像一扇单向门,你穿过了就不能回来了。另一种是可逆决定,就像双向门,穿过了还可以再回来。

2023年11月月度总结

怎么区分它们呢?

你可以看撤销成本。撤消成本越高,决定就越不可逆;撤销成本越低,决定就越可逆。

这里的窍门是,可逆决定要快,不可逆决定要晚。 当决定是可逆的,就要快速做决定。最大的风险是拖拖拉拉、犹豫不决。当决定是不可逆的,就要放慢速度,设法获取更多的决策信息。最大的风险是做出错误的决定。

亚马逊的老板贝佐斯认为,不可逆决定如果有 70% 的把握能确定结果,就是采取行动的时候。如果不那么有把握,那就不妨再观察一下。

总之,可逆决定的最大风险是拖到了最后一分钟,不可逆决定的最大风险是在真正需要决策的时刻来临之前就做出决定。


十二月

好奇心,是多么的重要!

好奇心能激发人们对于知识和真理的渴求,无论是对于硬件、开源软件、编程、组装个人电脑、优化系统设置,还是只是学习使用一个新软件。

谚语说好奇心害死猫。我讨厌这个谚语,因为它被家长、学校、见识短浅的老板、老师和那些不想被我们这种好奇宝宝干扰的人用得太多了。事实上,好奇心激发了对于人们对于知识和真理的渴求。这可能是关于硬件、开源软件、编程、组装个人电脑、优化系统设置或者学习使用新软件。满足你的好奇心吧!

2023年12月月度总结


一 文档第一 会议第二

很多人,总是做得少,却说得多。 - 链接

“开会文化”对公司是有害的,创业公司尤其要避免大量的会议。

创业公司应该少开会,多写文档。文档第一,会议第二。

  1. 创业公司争分夺秒,会议非常浪费时间。当然,并非所有的会议都是不必要的,但是原则上,会议应该尽量不开,参加人员也应该尽量精简。
  2. 不断开会恰恰表明一个更深层次的问题:缺乏清晰、可访问和可靠的文档。如果每个流程都有文档,就不需要一个小时的会议来澄清。如果每个决定都有文档,就不需要满屋子的人来理解它的理由。如果每个团队都有文档,就不需要在新成员加入团队时进行小组讨论。
  3. 会议创造了生产力的幻觉。你以为,开会提高了生产力,实际上它们正在阻碍它。每一次不必要的会议都是一种浪费。那些时间本可以用来改进算法,哪怕用来学习或者休息也很好啊。从本质上看,减少会议不仅仅可以节省时间,还可以让大家更专注、更多创新和创造,这恰恰是创业公司的命脉。
  4. 会议往往会自动膨胀。你召集了半小时的会议,快速讨论一个小问题。结果,在会议中发现一个意想不到的问题非常重要,你们的争论就一口气持续了两个小时。
  5. 会议不容易确定细节。你提到了一些别的事情,或者说话含糊不清,再或者双方沟通不畅,会议就会变得不那么清晰。解决方法到头来还是要写下来。
  6. 会议往往偏向声音最大的人,而不一定偏向那些有最好想法的人。这会扼杀创新和思想的多样性。作为对比,文档提供了公平的竞争环境,每个团队成员都可以表达他们的想法和见解,它促进了一种深思熟虑和反思的文化,而不是草率的判断和冲动的决定。
  7. 结论:你的时间和资源最好花在记录上,而不是花在会议上。大多数会议很容易被一份精心起草的、提供相关数据和建议、并征求反馈意见的文件所取代。

二 一些鬼故事

不要害怕失败,不要害怕失败,不要害怕失败。 - 链接

年底了,大公司事故不断,颇有放个烟花给老板看的节日喜庆气氛。公众号们也没闲着,纷纷借题发挥来帮大公司出谋划策,解决问题,顺便夹带一些私货,可以看出经济下行,大家朝不保夕,难免怨气都很大。

降本增效的背景下,事故频发是必然的,都讲勿在浮沙筑高台,可惜处处是浮沙。正好有些鬼故事,可以给读者分享一下,帮助大家未来在做职业选择和技术决策的时候有个准确的参考。

  • 长期主义

当前互联网公司的员工平均在职时间普遍在 2 年以内,按照各公司每年 20% 左右的晋升比例,意味着 80% 的人会经历晋升失败,这 80% 去参加晋升的人呢,大部分随后就会离职。当然现在行情不行了,也可能会跳不太动。

职业生涯的前几年,我也挺坚持长期主义,希望能够在一家公司深耕,能做出一些说出去能让业界同仁抖一抖的大系统。并且也用这些来教育那些刚毕业的同学们,希望他们坚持学习和思考那些难的东西,而不是浮于表面的八股文。当然,得到的回应是“面试又不考这个,我为什么要学”。

从结果上来讲,即使个人做到了长期坚持,但也没什么用。

当你用这些来证明自己的时候,你的面试官是个两三年跳一次槽的人,你讲的东西他未必听得懂。为了照顾他的情绪,你往简单了讲,别人大概就觉得“就这”?给你扣上个技术深度不够的帽子来压薪资。

这个世界,有些事情明明大多数人做不到,但是你做到了,他就会觉得很简单。所以那些坚持者往往还不如那些投机者赚得多。反过头来还要被弱鸡评头论足。

  • 事故

我个人其实很喜欢事故,从事技术工种,事故对于工程师来说是很好的学习机会,对于个人来说,事故也是锻炼你的辩证思维的极好的机会。

可惜事故在公司里却都是拿来批斗他人的工具。就事论事在这个圈子里已经变得如此之难,以至于每次有事故,复盘会的目的都是把事故关联方批倒批臭,给自己的职业发展和地盘游戏争夺更多空间。

在大公司工作时,常年莫名其妙的复盘时常让人觉得我们这个行业为什么变成了这样,想要做技术创新和业务创新,至少要鼓励一定程度的失败,再通过失败来找到改进的方向。就像最近 spacex 发射火箭后英文媒体都说成功,而中文媒体都说是失败,就可以看出这种微秒的差异,非常有意思。

这是文化问题吗,我也不知道。

现在很多纯技术人员也被乱七八糟的价值观污染,连基本的就事论事都做不到,拿着给一线销售洗脑的价值观大做文章,多么可笑,一起开复盘会的时候大片的时间在强调价值观,心诚了系统就稳了?

我们每次上线都去烧香拜佛好了,还做啥保障。

  • 预防

我们可以做很多事情来预防事故的发生,但即使做了,也没有用,因为一个商业机构,不可能对没有在自己身上发生过的事情提起重视。

比如支付宝的光纤被挖断了,才有了后来的各种断网演练。其它没有被迫断过网的公司会这么做么?未必吧。直到同样的故障降临到他们头上才行。

死到临头方知悔,不见黄河不掉泪。

互联网公司的系统基本都是复杂的分布式系统,里面充满了各种奇奇怪怪的中间件,共同依赖,单点存储,流量瓶颈,低频崩溃路径。每一个都需要有更多的旁路系统去保证在异常来临时不出问题。这和建大坝差不多,如果一直没碰到洪水,那就是劳民伤财;如果碰到了,那就是功在千秋。但你可能活不到洪水来的那一天,就被人送上断头台了。

哪怕公司里专门摆一个业务稳定性团队来当领导的安慰剂,你也会发现因为公司的晋升制度安排问题,他们更喜欢挑选那些看起来特别底层的事情,而不是对稳定性本身最有益的事情来做。

这个是制度问题。

  • 尾气

互联网的发展显然已经进入了尾声,新入行的人能分到的只剩汤了。一边吸着尾气,可能还要被那些不干活,不思考,不退休,站着说话不腰痛的人指责没有奋斗精神。对于后来者是不公平的。作为一个过来人,我的建议也只有两条:

  1. 无论什么时候,都选择给你钱最多的地方;
  2. 先有钱,再去谈理想和长期主义;
  3. 软件架构里有个概念叫 Leave Options Open,你的职业和人生选择也应如此;

颈椎病腰突康复指南

文字大部分内容都来自 RehabilitationGuide,如有需求可以自行跳转!

作为程序员,颈椎病、腰突的基本都是需要伴随而来的坏朋友。如果已经不幸患有颈椎病、腰突的话,可以参考以下内容,希望可以引起您对健康的重视。毕竟工作也是为了更好的生活,应该把自己的健康放在第一位。

颈椎病腰突康复指南


1. 颈椎病

点击查看:《颈椎诊治与康复指南》

颈椎病在程序员中相当常见,因为长时间对着电脑工作、不良的坐姿和缺乏运动。

颈椎病是指颈椎骨骼、关节、韧带、肌肉等组织发生变化,引起颈部疼痛、僵硬、头晕等症状的疾病。以下是颈椎病的病因、症状和康复方法。

  • 病因
    • 颈部长期保持不良姿势,如低头看手机、长时间坐姿等
    • 颈部受到外力打击,如车祸、跌倒等
    • 年龄增长,椎间盘退行性变等自然因素
  • 症状
    • 颈部疼痛、僵硬、弹响
    • 肩部疼痛、僵硬、弹响
    • 头晕、头痛、注意力不集中
    • 上肢麻木、无力(压迫神经导致)
    • 视力模糊、耳鸣
    • 严重者还可能引起手部无力、平衡障碍、甚至是失明等
  • 康复方法
    • 保持良好的颈部姿势,避免长时间低头或仰头;
    • 进行适当的颈部运动,如颈部转动、前后倾等;
    • 颈部按摩,促进血液循环;
    • 热敷或冷敷,缓解颈部疼痛;
    • 采用物理治疗方法,如理疗、针灸等;
    • 如果病情严重,需要进行手术治疗;

综上所述,颈椎病是一种常见的疾病,需要引起足够的重视。通过改善生活习惯、适当运动、保持正确姿势等方法,可以预防和缓解颈椎病的症状,提高生活质量。如果症状严重,建议及时就医。


2. 腰突

在线查看:《每日一动,远离疼痛:腰椎间盘突出科学康复指南》

腰椎间盘突出症也常见于程序员,因为长时间坐在电脑前工作、缺乏运动,越来越多的人出现了腰间盘突出。

腰间盘突出是指腰椎间盘的纤维环破裂或退化,导致椎间盘向外突出,压迫周围神经或脊髓,引起腰痛、下肢疼痛、肌肉无力、感觉异常、尿失禁等症状。

  • 病因
    • 长期保持不良姿势,如久坐、久站、久蹲等
    • 腰部受到外力打击,如跌倒、车祸等
    • 年龄增长,椎间盘骨质疏松等自然因素
  • 症状
    • 腰部疼痛、坐骨神经痛、下肢无力
    • 无法弯腰、提重物、领东西
    • 腿麻、脚麻(压迫神经导致)
    • 严重的腰间盘突出还可能引起大小便障碍、性功能障碍等
  • 康复方法
    • 休息和适量运动,避免长时间保持同一姿势
    • 进行物理治疗,如贴膏药、热敷、理疗、针灸等
    • 进行康复训练,如核心肌群训练、腰部牵拉等
    • 采用药物治疗,如止痛药、消炎药等
    • 如果病情严重,需要进行手术治疗

综上所述,腰间盘突出是一种常见的脊柱疾病,需要引起足够的重视。通过改善生活习惯、适当运动、保持正确姿势等方法,可以预防和缓解腰间盘突出的症状,提高生活质量。


3. 康复经验分享

送人玫瑰,手留余香!

KubeKey轻量集群安装工具

KubeKey 一个开源的轻量级工具,用于部署 Kubernetes 集群。

KubeKey 提供了灵活、快速、方便的方式来安装 Kubernetes/K3sKubeSphere,以及相关的云原生附加组件。它也是扩展和升级集群的有效工具。

此外,KubeKey 还支持定制离线包(artifact),方便用户在离线环境下快速部署集群。有三种情况可以使用 KubeKey

  • 仅安装 Kubernetes
  • 用一个命令中安装 KubernetesKubeSphere
  • 首先安装 Kubernetes,然后使用  ks-installer  在其上部署 KubeSphere

KubeKey轻量集群安装工具


1. 工具优势

基于 Go 语音开发,无依赖问题。

基于 Ansible 的安装程序具有大量软件依赖性,而 KubeKey 是使用 Go 语言开发的,可以消除在各种环境中出现的问题,从而提高安装成功率。

KubeKey 使用 Kubeadm 在节点上尽可能多地并行安装 K8s 集群,以降低安装复杂性并提高效率。与较早的安装程序相比,它将大大节省安装时间。支持将集群从 all-in-one 扩展到多节点集群甚至 HA 集群。将集群当作一个对象操作,即 CaaO

  • 支持的环境 - Linux 发行版
# 建议使用 Linux Kernel 版本: `4.15 or later`Ubuntu 16.04, 18.04, 20.04, 22.04Debian Bullseye, Buster, StretchCentOS/RHEL 7AlmaLinux 9.0SUSE Linux Enterprise Server 15
  • 支持的环境 - Kubernetes 版本
v1.19:   v1.19.15v1.20:   v1.20.10v1.21:   v1.21.14v1.22:   v1.22.15v1.23:   v1.23.10 (default)v1.24:   v1.24.7v1.25:   v1.25.3

2. 要求和建议

安装使用前的前置要求,需要保证满足再开始使用。

/var/lib/docker 主要用于存储容器数据,在使用和操作过程中会逐渐增大。对于生产环境,建议 /var/lib/docker 单独挂盘。

  • 最低资源要求 - 仅对于最小安装 KubeSphere
    • 2 核虚拟 CPU
    • 4GB 内存
    • 20GB 储存空间

默认情况下,KubeKey 将安装  OpenEBS  来为开发和测试环境配置 LocalPV,这对新用户来说非常方便。对于生产,请使用 NFS/Ceph/GlusterFS 或商业化存储作为持久化存储,并在所有节点中安装相关的客户端 。

  • 操作系统要求
    • SSH  可以访问所有节点
    • 所有节点的时间同步
    • sudo/curl/openssl  应在所有节点使用
    • docker  可以自己安装,也可以通过 KubeKey 安装。
    • Red Hat  在其  Linux  发行版本中包括了  SELinux,建议关闭 SELinux或者将SELinux 的模式切换Permissive 工作模式。

KubeKey 可以同时安装 KubernetesKubeSphere

  • 依赖要求
Kubernetes 版本 ≥ 1.18是否需要安装
socat必须安装
conntrack必须安装
ebtables可选,但推荐安装
ipset可选,但推荐安装
ipvsadm可选,但推荐安装
  • 网络和 DNS 要求
    • 确保  /etc/resolv.conf  中的 DNS 地址可用。否则,可能会导致集群中出现某些 DNS 问题。
    • 如果您的网络配置使用防火墙或安全组,则必须确保基础结构组件可以通过特定端口相互通信。建议您关闭防火墙或遵循链接配置:网络访问

3. 下载工具

工具可以在线下载,也可以通过上传方式到内容环境使用。

  • 使用脚本获取 KubeKey 工具
# 无法访问github则需要加export$ export KKZONE=cn$ curl -sfL https://get-kk.kubesphere.io | sh -

下载解压后可直接使用。

  • 从源代码生成二进制文件
$ git clone https://github.com/kubesphere/kubekey.git$ cd kubekey$ make kk

4. 工具使用 - 单节点

创建集群 + 单节点

  • [1] 开始使用

快速入门使用  all-in-one  安装,这是熟悉 KubeSphere 的良好开始。注意: 由于 Kubernetes 暂不支持大写 NodeNamehostname 中包含大写字母将导致后续安装过程无法正常结束

# 无法访问github则需要加export$ export KKZONE=cn# 创建集群$ ./kk create cluster \    [--with-kubernetes version] [--with-kubesphere version]
# 使用默认版本创建一个纯Kubernetes集群$ ./kk create cluster# 创建指定一个支持的版本的Kubernetes集群$ ./kk create cluster --with-kubernetes v1.19.8# 创建一个部署了KubeSphere的Kubernetes集群$ ./kk create cluster --with-kubesphere [version]# 创建一个指定的container-runtime的Kubernetes集群# docker, crio, containerd, isula$ ./kk create  cluster --container-manager containerd
  • [2] 高级用法

可以使用高级安装来控制自定义参数或创建多节点集群。当指定安装 KubeSphere 时,要求集群中有可用的持久化存储。默认使用 localVolume,如果需要使用其他持久化存储,请参阅  addons  配置。

# 无法访问github则需要加export$ export KKZONE=cn# 创建一个示例配置文件$ ./kk create config \    [--with-kubernetes version] [--with-kubesphere version] \    [(-f | --filename) path]
# 使用默认配置创建一个示例配置文件# 可以指定文件名称或文件所在的文件夹$ ./kk create config [-f ~/myfolder/config-sample.yaml]# 同时安装KubeSphere平台$ ./kk create config --with-kubesphere# 根据您的环境修改配置文件$ vim config-sample.yaml# 使用配置文件创建集群$ ./kk create cluster -f ~/myfolder/config-sample.yaml

5. 工具使用 - 多集群

创建集群 + 多集群

默认情况下,Kubekey 将仅安装一个 Solo 模式的单集群,即未开启 Kubernetes 多集群联邦。如果您希望将 KubeSphere 作为一个支持多集群集中管理的中央面板,您需要在  config-example.yaml  中设置  ClusterRole。关于多集群的使用文档,请参考  如何启用多集群

  • [1] 添加节点
# 将新节点的信息添加到集群配置文件$ ./kk add nodes -f config-sample.yaml
  • [2] 删除节点
# nodename指需要删除的节点名$ ./kk delete node <nodeName> -f config-sample.yaml
  • [3] 删除集群
# 以all-in-one模式$ ./kk delete cluster# 以多节点集群模式$ ./kk delete cluster [-f config-sample.yaml]
  • [4] 集群升级
# 以all-in-one模式$ ./kk upgrade [--with-kubernetes version] [--with-kubesphere version]# 以多节点集群模式$ ./kk upgrade \    [--with-kubernetes version] [--with-kubesphere version] \    [(-f | --filename) path]
  • [5] 启用 kubectl 自动补全
# 安装bash-completion$ sudo apt-get install bash-completion# 将completion脚本添加到你的~/.bashrc文件$ echo 'source <(kubectl completion bash)' >> ~/.bashrc# 将completion脚本添加到/etc/bash_completion.d目录$ kubectl completion bash >/etc/bash_completion.d/kubectl
# 安装zsh-completion$ sudo apt-get install zsh-completion# 将completion脚本添加到你的~/.zshrc文件$ echo 'source <(kubectl completion zsh)' >> ~/.zshrc# 将completion脚本添加到/etc/bash_completion.d目录$ kubectl completion zsh >/etc/zsh_completion.d/kubectl

6. 相关文档

送人玫瑰,手有余香!

KSV 云原生虚拟化

基于 Kubernetes 云原⽣架构的虚拟机平台

KSV 云原生虚拟化是由 KubeSphere 衍生的轻量化虚拟机管理平台,支持单节点部署和多节点部署,便捷易用,满足企业级虚拟化业务需求。KSV 可帮助您减少前期的硬件投入,您可以使用 KSV 创建所需数量的虚拟机,快速开发和部署应用。

KSV云原生虚拟化


1. 工具介绍

官方文档 - 产品介绍

功能优点 - KSV 基于 Kubernetes 云原⽣架构,相较于传统虚拟化服务更加轻量、灵活、开放,并且能够实现服务自愈、快速弹性伸缩、灵活调度等能力。具有以下优势的计算存储资源:

  • 超低门槛
    • 单节点 4C/8G 内存即可部署,同时⽀持多节点集群部署
  • 极简操作
    • 提供便捷易⽤的可视化 Web 控制台,并提供自修复能力
  • 快速安装
    • 二十分钟之内完成平台部署和更新
  • ⾼速运⾏
    • 秒级创建虚拟机和调整虚拟机配置
  • 卓越兼容
    • ⽆底层基础设施依赖,可部署在任何⽀持虚拟化的主机之上
  • 对接容器
    • KubeSphere 容器平台⽆缝衔接,虚拟化和容器化完美融合

功能架构 - 可以将 KSV 运行在私有云、公有云、虚拟机、物理机、边缘节点等各类开发或生产环境。在功能层面,KSV 主要包含物理节点、网络、存储、虚拟机、镜像、硬盘、安全组等组件。

KSV云原生虚拟化

底层原理 - KSV 各模块的底层原理描述如下表所示。

名称描述
虚拟机底层使用 KubeVirt 插件;支持对虚拟机多种管理
网络KSV 运行在容器环境之上支持多种网络类型
镜像底层使用 CDI 插件将镜像导入到持久卷中;持久卷的克隆实现系统盘创建
存储基于 KubernetesCSI 插件实现存储相关资源的管理
安全组Kube-OVN 创建的网卡提供了对安全组的支持
带宽限制Kube-OVN 创建的网卡提供了对带宽限制的支持
指标监控基于 Prometheus 实现集群监控指标的配置、收集、存储和查询
告警监控基于 Prometheus Alertmanager 实现集群告警的配置/收集/存储和查询
日志查询基于 Fluent BitElasticsearch 实现日志的收集、存储和查询

产品计费 - KSV 目前提供个人免费版、开发者版和企业版三种模式的虚拟化服务。个人免费版用于助力个人用户和微型团队,提供 3 个节点内的免费虚拟化服务。开发者版和企业版为中小型团队和大型企业用户提供更多节点数、更全面的虚拟化服务体验。

KSV云原生虚拟化

KSV云原生虚拟化


2. 安装使用

官方文档 - 快速入门

  • 单节点模式安装 - 建议最低机器为 4C8G 配置

服务器节点必须至少具有 1 个未格式化且未分区的磁盘,或 1 个未格式化的分区。该磁盘或分区的最低配置为 100 GB,推荐配置为 200 GB。

# 检查CPU核心数$ cat /proc/cpuinfo | grep "processor" | sort | uniq | wc -l# 检查内存大小$ cat /proc/meminfo | grep MemTotal# 检查可用磁盘大小$ df -hl# 节点需支持虚拟化(x86/arm64)$ grep -E '(svm|vmx)' /proc/cpuinfo$ ls /dev/kvm

超卖比,即每个物理 CPU 可以虚拟化多少个虚拟 CPU。只有安装 KSV 时可以设置超卖比,升级时不支持修改超卖比。超卖比还将决定 KSV 可创建虚拟机的总数。可创建虚拟机的总数 = 集群 CPU 核心总数 x 超卖比。

# 下载工具并解压$ curl -OL https://virtualization.kubesphere.cloud/xx.tar.gz$ tar -zxvf kubesphere-virtualization-<package name>.tar.gz$ cd kubesphere-virtualization-<file path># 开始安装# --ratio: 指定KSV集群的超卖比; 默认值为2个$ ./install.sh -h$ ./install.sh -a --ratio <overcommit ratio># 安装结束后执行以下命令查看安装日志$ ksv logs
# 如果显示如下信息则安装成功\#####################################################\###    Welcome to KubeSphere Virtualization!      ###\#####################################################Console: http://172.16.0.59:30880Username: adminPassword: P@88w0rdNOTE:Please change the default password of the admin userafter login.\#####################################################https://kubesphere.cloud/ksv/     2022-12-01 14:03:45\#####################################################

3. 使用方式

官方文档 - 用户指南

可以使用 KSV 云原生虚拟化 Web 控制台创建、查看、使用或释放不同类型的虚拟机资源。资源类型主要分为物理资源和虚拟资源。在使用某个资源时,KSV 提供运维工具,帮助实时监控各类资源的使用情况。

  • 平台概述
    • 仅用户  admin  有权限激活 KSV
    • 平台概览中的物理资源统计信息仅  admin  用户可见
    • 支持自定义 QoS 规则,可以帮助区分不同业务的流量
  • 节点管理
    • 目前只支持添加节点,可以在 Web 界面和终端添加节点
    • 单节点模式下,KSV 个人免费版支持再添加最多 2 个节点
    • 节点添加完成后,执行 ksv set-ceph-ha 命令开启高可用
    • 终端通过修改配置文件,并通过内置脚本完成添加动作
  • 网络管理
    • 可以直接给容器分配物理网络中的地址资源
  • 项目管理
    • 项目用于对资源进行分组管理
    • 可以将用户分配到项目中并指定用户的角色以控制项目权限
  • 虚拟机管理
    • 虚拟机模块对所有用户可见
    • 虚拟机模板是虚拟机的一种主副本,包含了虚拟机的具体配置
    • 可以使用虚拟机模板创建虚拟机,也可以将现有虚拟机转化为模板
    • 虚拟机镜像是虚拟机的一种标准交付物,用于构建环境
  • 磁盘管理
    • 云原生虚拟化提供数据盘和系统盘两种磁盘类型
    • 提供块级别的虚拟存储资源,以文件夹的形式存在于宿主机上
  • SSH 秘钥
    • 可以使用 SSH 密钥安全便捷地登录 Linux 虚拟机
    • SSH 密钥是通过加密算法生成的一对密钥,由公钥和私钥组成
  • 安全组
    • 安全组是一种虚拟防火墙,用于控制入流量和出流量
    • 每台虚拟机至少需要属于一个安全组,可为每个安全组添加流量规则
  • 定时器
    • 定时器对所有用户可见
    • admin  用户可以查看系统中的所有定时任务和定时策略
  • 监控告警
    • 默认免费开启监控告警功能
    • 监控告警模块获取节点监控指标,实时分析和处理告警
    • 可以创建告警策略,并在告警策略触发后查看告警消息
  • 日志
    • 系统日志收集系统中的日志数据
    • 操作日志可以用于查看用户的操作记录
  • 用户
    • 用户可以被分配到项目中并根据用户的项目角色获得不同的权限

4. 参考链接

送人玫瑰,手有余香!

❌