傻猫网络日志 Samool's blog - 二十年老博客 - 问题
type: channel
link: https://samool.com/tag/%E9%97%AE%E9%A2%98/
items: 解决问题的五个层次，你被卡在哪一层？
items: yum update更新遇到错误
items: 成都郫都区：新增本土病例2例 24小时内将完成90余万人采样
items: SQL Server 2008 评估期已过的解决办法
items: 马云最新演讲全文2020-9-30
items: Golang 汇编入门知识总结
items: 【Redis持久化】服务器突然挂了！Redis缓存都在内存中啊
items: 远程桌面连接报【由于CredSSP 加密数据库修正】错误解决办法
items: 如何学习一门新的语言
items: 完美主义不是更好，而是至高无上

解决问题的五个层次，你被卡在哪一层？
type: item
date: 2025-06-27T03:47:38+08:00
description: AI摘要 文章将解决问题的能力分为五个层次，从应激反应层到范式升级层，每个层次都有其特征、卡点原因和突破方向。第一层是表面处理，第二层是找单一原因，第三层是盲目试错，第四层是结构化解决，第五层是预防与创新。文章建议根据个人情况，采取不同的训练和学习策略，以提升解决问题的能力。 document.addEventListener('DOMContentLoaded', function() { const urlDisplay = document.getElementById('urlDisplay'); urlDisplay.textContent = "此内容根据文章生成，更内容请访问：" + window.location.href; }); 解决问题的能力往往决定了一个人处理事务的效率和质量，而不同人在面对问题时的思考深度和行动策略存在明显差异。以下从认知逻辑和实践路径出发，将解决问题的过程划分为五个层次，并附上对应的特征、常见卡点及突破方向，帮助你快速定位自身阶段：第一层：「应激反应层」—— 只做表面处理核心特征行为模式：仅针对问题的表面现象进行应急处理，追求“快速止损”而非彻底解决。典型表现：遇到问题时优先抱怨、推卸责任或陷入情绪内耗（如“这事儿太麻烦了”“都怪别人”）。用“头痛医头，脚痛医脚”的方式处理，例如文档出错只修改表面错误，不思考流程漏洞。缺乏系统规划，常被问题牵着走，陷入“救火式”工作状态。卡点原因：被情绪或即时压力主导，缺乏对问题本质的思考。突破方向：强制自己在行动前问“为什么会出现这个问题？”，先暂停应激反应，建立“现象→本质”的连接意识。第二层：「单一归因层」—— 找单一原因核心特征行为模式：尝试分析问题原因，但倾向于找到单一因素并归因，忽略复杂关联。典型表现：用“因为XX，所以XX”的简单逻辑解释问题，例如项目失败仅归因于“成员不配合”，忽略资源、目标设定等因素。依赖经验主义，用过去的成功案例套用到新问题上，例如“之前这样做没问题，这次肯定也可以”。对问题的分析停留在“谁的错”，而非“系统哪里出了问题”。卡点原因：思维固化，缺乏多角度分析问题的意识，习惯用线性逻辑简化复杂系统。突破方向：用“5Why法”追问深层原因（连续问5个“为什么”），或用思维导图列出问题的所有关联因素（人、资源、流程、环境等）。第三层：「方案堆砌层」—— 盲目试错核心特征行为模式：意识到需要系统解决问题，但缺乏方法论，靠堆砌方案或试错推进。典型表现：收集大量解决方案但不筛选，例如为提升业绩同时尝试打广告、降价、换渠道，却不评估优先级。方案执行缺乏逻辑，想到什么做什么，例如写报告时边查资料边动笔，导致结构混乱。忽视方案的可行性和成本，例如为解决技术漏洞投入远超预算的资源。卡点原因：缺乏“目标→方案→资源”的匹配思维，未建立问题解决的优先级逻辑。突破方向：用“SMART原则”明确目标（具体、可衡量、可实现、相关性、时限性），再用“决策矩阵”评估方案优先级（按效果、成本、可行性打分）。第四层：「系统优化层」—— 结构化解决核心特征行为模式：能从系统角度分析问题，用结构化方法制定方案并执行。典型表现：用“SWOT分析”“PDCA循环”等工具拆解问题，例如分析产品滞销时，同步考虑优势、劣势、机会、威胁。执行方案时设置节点和反馈机制，例如项目推进中定期复盘进度，调整策略。关注问题的关联性，例如解决客户投诉时，同步优化售后服务流程而非仅处理单个投诉。卡点原因：可能陷入“工具依赖”，过度追求方法论而忽略实际场景变化，或执行中缺乏灵活性。突破方向：在结构化方法中加入“动态调整”思维，例如用“敏捷开发”模式，每阶段根据反馈快速迭代方案。第五层：「范式升级层」—— 预防与创新核心特征行为模式：不仅解决当前问题，更通过升级底层逻辑预防同类问题，甚至创造新解法。典型表现：从问题中提炼规律，建立标准化流程或制度，例如因频繁沟通低效而制定跨部门协作规范。跳出问题本身，用创新思维重构需求，例如共享单车解决“最后一公里”问题，而非仅优化传统自行车租赁。主动预判潜在问题，提前布局解决方案，例如企业在业务扩张前完善人才培养体系。卡点原因：需要突破既有认知框架，对思维的前瞻性和创新性要求高，容易受惯性思维限制。突破方向：培养“第一性原理”思维（从本质出发推导解决方案），或通过跨领域学习（如借鉴生物学规律解决商业问题）拓展认知边界。自我评估与提升路径如果你常停留在第一层/第二层：优先训练“冷静分析”的习惯，用“问题日志”记录每次处理过程，强迫自己写出至少3个问题原因。如果你卡在第三层：学习基础的项目管理或逻辑工具（如MECE原则），用“目标倒推法”规划方案（先明确“要达成什么结果”，再拆解步骤）。如果你能达到第四层：尝试用“系统思维”看待问题，例如分析公司利润下降…

yum update更新遇到错误
type: item
date: 2020-12-25T16:00:23+08:00
description: AI摘要 本文介绍了解决yum更新时遇到的错误的方法。首先，如果出现未完成的yum事务，可以通过安装yum-utils、清理缓存和运行yum-complete-transaction来解决。其次，如果发现RPM数据库问题，可以尝试运行package-cleanup --cleandupes命令，或者使用yum -y update --skip-broken来跳过错误。 document.addEventListener('DOMContentLoaded', function() { const urlDisplay = document.getElementById('urlDisplay'); urlDisplay.textContent = "此内容根据文章生成，更内容请访问：" + window.location.href; }); yum安装东西的时候,老是报:There are unfinished transactions remaining. You might consider running yum-complete-transaction first to finish them.意思是:有未完成的yum事务,建议先运行yum-complete-transaction命令清除解决方法：这是强制结束yum引起的安装 yum-complete-transaction（这是一个能发现未完成或被中断的yum事务的程序）yum -y install yum-utils清除yum缓存yum clean all运行 yum-complete-transaction,清理未完成事务yum-complete-transaction --cleanup-only发现 29 个已存在的 RPM 数据库问题， 'yum check' 输出如下：解决办法运行package-cleanup --cleandupes如若依然报错：yum -y update --skip-broken

成都郫都区：新增本土病例2例 24小时内将完成90余万人采样
type: item
date: 2020-12-12T15:45:18+08:00
description: AI摘要 成都郫都区新增2例本土新冠肺炎确诊病例，均为既往病例的密切接触者。目前已追踪到密切接触者580人，完成采样2124人，其中2022人为阴性。郫都区犀浦街道犀池社区二组被划定为中风险区域。成都市计划在24小时内完成90余万人的核酸采样。华西专家栾荣生强调重点人群需要反复检测以确保无漏网之鱼。 document.addEventListener('DOMContentLoaded', function() { const urlDisplay = document.getElementById('urlDisplay'); urlDisplay.textContent = "此内容根据文章生成，更内容请访问：" + window.location.href; }); 红星新闻网（记者 李慧颖 宋雅婷）12月11日报道 12月11日晚，成都市人民政府新闻办公室召开成都市疫情防控工作新闻发布会，成都市卫健委主任谢强，郫都区人民政府区长刘印勇，四川省卫生健康委应对新型冠状病毒肺炎疫情领导小组疫情防控组副组长、四川大学华西公共卫生学院流行病学教授栾荣生对成都市疫情防控进行了信息发布。截至12月11日18时，郫都区新增新冠肺炎本土确诊病例2例。新增病例均在郫都区，其中一例为无症状感染者确诊。病例1：张某某，女，54岁，农民工，居住于郫都区郫筒街道太平村11组，是既往确诊病例的密切接触者。12月10日，核酸检测呈阳性，9时诊断为无症状感染者，并于昨晚新闻发布会通报。昨日22时，因患者胸部CT检查结果异常，订正为确诊病例。该患者14天内去过中铁奥维尔小区、南门菜市场、中冶中央公园、郫都区红牌楼川菜厂等地。病例2：李某，女，57岁，缝纫工，居住于郫都区犀浦街道犀池五街，是既往确诊病例的密切接触者。12月10日，核酸检测呈阳性，当日23时诊断为确诊病例。该患者14天内去过犀浦贸易中心、国宁菜市场等地。上述2例确诊患者，现均已收入成都市公共卫生临床医疗中心进行隔离治疗，其停留过的所有场所均已采取相应管控措施，并实施终末消毒。同时，成都市已按照防控方案，全面开展流行病学调查。经排查，截至12月11日晚6时，已追踪到上述确诊病例及无症状感染者的密切接触者580人，已完成采样2124人，其中2022人为阴性，其余结果待出。截至11日18点，全市已进行核酸采样1458900人，已进行核酸检测 1361050人，其中阳性11人（不含首例确诊病例）。根据国务院联防联控机制有关要求，经省防控指挥部研究同意，自12月11日21时起，将郫都区犀浦街道犀池社区二组划定为中风险区域，其他地区风险等级不变。中风险地区人员原则上不离开当地，确需离开的须持7日内核酸检测阴性证明。24小时内将完成郫都区90余万人采样郫都区区长刘印勇会上介绍，截至12月11日18时，郫都区已对排查出密切接触者169人，次密接触者508人进行集中隔离。12月10日，郫都对太平村在内11个村社区进行第二次采样。12月10日，23时，李某确诊后，郫都区对犀浦街道全域进行采样，已出结果197684人，结果均为阴性，其余待出。此外，刘印勇表示，犀浦街道从未封闭，市民可正常通行。今天，成都21个区县的4000余人的专业采集队伍已在郫都集结，24小时内将完成90余万人采样。华西专家栾荣生：重点人群需要反复检测四川省卫生健康委应对新型冠状病毒肺炎疫情领导小组疫情防控组副组长、四川大学华西公共卫生学院流行病学教授栾荣生介绍，对于重点对象，需要重复检测，要确保没有一个人漏网。栾荣生介绍，这次在郫都区检测的样本很大，成都21个区市县全部来支援郫都区。规模扩大以后，针对重点人群，现在采取的是混检，就是5—10个标本在一起检测。如果呈现阳性，这个5—10个人再来逐个一次。“根据现在的情况是一步一步扩大包围圈，从今天18点起扩大到整个郫都区。”栾荣生解读到，实验室核酸检测要经过45个循环，最后做试纸来看。对于一般的人来讲，不需要反复检测。“对于重点对象需要反复检测，比如密切接触者，刚开始的可能排出病毒量不多，咽拭子有可能没有检测到，但是不代表体内没有病毒。所以，我们要多次进行检测，单次核酸阴性对重点对象来说，其实是不保险的。”栾荣生还说，今天新增的一例病患，并不是在隔离酒店检测出来，而是在扩大了包围圈后发现的病患，也就是说，扩大包围圈是有用的，所以，今晚18时开始检测范围扩大到整个郫都区。发布会和次日官方通报数据不一致：时间统计口径问题对于网友疑问：晚上发布会和早上官方通报的数据不一致，为什么会出现这种情况？成都市卫健委主任谢强进行了回应。他表示，自今年1月成都出现首例新冠肺炎确诊病例以来，成都市坚持及时、准确通报相关信息，并通过健康成都官微对外发布权威信息。参考国家和省卫健委通报的建议，通报数据都是前一天的0-2…

SQL Server 2008 评估期已过的解决办法
type: item
date: 2020-10-26T15:08:00+08:00
description: AI摘要 本文介绍了如何解决SQL Server 2008评估期已过的问题。首先，通过输入相应的产品密钥进行版本升级。如果升级后仍提示评估期已过，可以通过修改注册表中的“CommonFiles”值来解决。此外，文章还提供了解决SQL Server 2008安装需要一直重启的问题的方法，即删除注册表中的PendingFileRenameOperations键值。 document.addEventListener('DOMContentLoaded', function() { const urlDisplay = document.getElementById('urlDisplay'); urlDisplay.textContent = "此内容根据文章生成，更内容请访问：" + window.location.href; }); 今天上班一打开SQL Server，就报了下面这个问题很显然，SQL Server 试用期到了，微软提醒我们购买。大家经济允许的话，还是要买正版。对于我们这些暂时无力承担正版费用的屌丝群体怎么办呢？显然，重装不是一个好的办法。SQL Server软件装起来很麻烦，还需要一段时间。况且光卸载老版本就是个问题，很难卸载干净。卸载加安装，半天就过去了。通过百度，找到了一些解决方案，通过自身的具体实践，终于把问题解决了，特将问题与解决方法记录下来，给遇到同样问题的伙伴提供一种解决方式，也方便自己日后查看。1.开始-->所有程序-->MicrosoftSQL Server 2008-->配置工具-->SQL Server 安装中心2.打开SQL Server安装中心(64位) 点击维护-->版本升级，如果提示失败1，电脑没有重启，这个时候就需要我们手动进行重启，重新打开电脑后，从步骤1开始；接着按照提示一直点下一步，到产品密钥的时候输入Microsoft SQL Server 2008 R2序列号密钥开发版32位：MC46H-JQR3C-2JRHY-XYRKY-QWPVM开发版64位：FTMGC-B2J97-PJ4QG-V84YB-MTXX8工组版：XQ4CB-VK9P3-4WYYH-4HQX3-K2R6QWEB版：FP4P7-YKG22-WGRVK-MKGMX-V9MTM数据中心版32位：PTTFM-X467G-P7RH2-3Q6CG-4DMYB数据中心版64位：DDT3B-8W62X-P9JD6-8MX7M-HWK38企业版32位：R88PF-GMCFT-KM2KR-4R7GB-43K4B企业版64位：GYF3T-H2V88-GRPPH-HWRJP-QRTYB标准版32位：CXTFT-74V4Y-9D48T-2DMFW-TX7CY标准版64位：B68Q6-KK2R7-89WGB-6Q9KR-QHFDW输入密钥之后进行升级，升级完成后，再次打开SQL Server。如果还是提示评估期已过，进行如下操作：修改注册表： win键 + r 打开运行界面 输入regedit 就能打开注册表页面找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MicrosoftSQL Server\100\ConfigurationState里的“CommonFiles”值改成3，在重新执行上面的操作。sql server 2008安装需要一直重启的解决办法：同样打开注册表找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 位置然后在右边窗口右击PendingFileRenameOperations，选择删除，然后确认

马云最新演讲全文2020-9-30
type: item
date: 2020-09-30T12:04:48+08:00
description: AI摘要 马云在2020年的演讲中强调了2020年作为历史分水岭的重要性，并认为海南自贸港的建设是历史性的选择。他提出，新的全球化正在开始，将由发展中国家和中小企业主导，科技和数据流动将成为主力。马云还强调了中国内需对新一轮全球化的驱动作用，以及全球化是一种服务世界的能力。他鼓励企业家面向未来，用未来的方法解决今天的问题，并强调数字化是确定的趋势，将全面改造所有行业。马云还提到，企业家应有担当，为世界变得更好而努力。 document.addEventListener('DOMContentLoaded', function() { const urlDisplay = document.getElementById('urlDisplay'); urlDisplay.textContent = "此内容根据文章生成，更内容请访问：" + window.location.href; }); 2020年非常特殊，未来一定是一段历史的分水岭；海南成为自贸港，也必定是一个历史性的选择；我希望我们CEC这次的海南会议，也能成为一个跨越时代的会议，在疫情之后，新的全球化开始之后，在整个数字时代到来的时候，我们CEC的企业家能够在这段历史中创造独特的价值。我昨天还在武汉，也和我们CEC的三十几位理事一起，到武汉去了一趟。几个月前在电视里看武汉，确实非常之难，这次到武汉，真的感到武汉是一座英雄的城市，有英雄气质。疫情是结束了，我们该考虑如何让经济重生。经济重生不是为了回到昨天、回到以前，而是在更高的水平上面，从疫情中看到未来，看到趋势，把握机会。这次从武汉来到海南，这里面我觉得是巧合，好像也有一种必然的东西。两年前，习主席宣布了建设海南自贸港，全面开放的战略，两年过去了，世界格局发生了巨大的变化。但是我依然相信，我们必须要坚持开放，必须要坚持全球化，特别是疫情之后，我相信全世界所有的门都是要靠自己去打开的，没有门是天然开着的，这时候坚持全球化比什么时候都重要、都有意义。现在海南就站在一个新的历史的起点上，自贸港建设不是简单的海南发展的机遇，更不仅仅是中国经济发展的一个机遇，而是要担当起为世界探索新的全球化的历史责任。我自己觉得，国际化和全球化是两个不同的概念，国际化更偏向于中国人跟外国人做生意，是双边为主。而全球化是世界各国的大事情，是一个全局的问题。今天很多人觉得全球化出现了这样那样的问题，而我并不这么认为：第一，我认为今天是真正全球化开始的时候。昨天的、原来的、传统的、工业时代的全球化正在终结。新的、真正的、数字时代的全球化才刚刚打开。以前，全球化是发达国家和大企业主导，未来，全球化应该是发展中国家、中小企业走向世界；以前贸易是全球化的主力，未来科技将是全球化的主力；以前是人在流动、货在流动，未来是数据在流动、服务在流动；以前是传统企业的全球化，未来是用好互联网技术的企业的全球化；未来，任何一个人，只要有一部手机就可以做全球生意，未来所有的中小企业都是跨国公司，过去三十年是6000家大企业决定了全球化，未来应该是6000万家中小企业决定全球化。地域的扩大就是业务的扩张，这是世界给予我们的巨大机会。第二， 这是由中国内需驱动的新一轮全球化。新一轮的全球化，中国将会从“卖卖卖”，变成“买买买”。海南自由贸易港有自己的历史使命，海南未来留在历史中将会成为一个非常重要的角色。假设我们对贸易游戏规则不满意，今天给了我们一次机会，我们是否有这种胸怀、有这种格局、有这种担当为世界未来数字的全球化，为更多企业、更多国家、更多发展中国家的全球化，来制定一个更加公平、可持续、绿色的贸易规则？大家其实不用害怕从“卖卖卖”变成“买买买”。中国每一次大门打开，都是中国进步的象征，每一次大门打开，中国都进步了。我们要不断地走出去。我记得我们以前的人走出去是找差距，我们觉得人家这个做得好、那个做得好。今天我们很多中国企业走出去，或者很多中国人走出去，是在找感觉。当我们在找感觉的时候，其实我们正在退步。上一次全球化，是美国3亿人消费驱动的；中国这次的全球化是14亿人的内需，会驱动下一轮真正的全球化，带动世界经济。进口不是终点，进口最终是要倒逼中国产业提升、消费升级，促进现代服务业的发展。对于企业家来说，未来的机会在中国那些百万人口的小城镇。我不知道大家是否知道中国有多少城市过100万人口，我在2014年初步做了一个统计，美国大概有不到12个城市过100万人口，中国有167个城市过100万人口。而100万人口的基础建设、100万人口所诞生的巨大产业，我们远远没有发展好。这些近百万城市的人口，也许我们将来会有三百个，这些地方会迸发出巨大的消费潜力。内需绝对不是有钱人的拉动，内需应该是满足每一个普通百姓的需求，普通人的内需拉动，才是真正可以持续发展的内需价值。第三，新的全球…

Golang 汇编入门知识总结
type: item
date: 2020-09-27T14:35:04+08:00
description: AI摘要 本文是一篇关于Golang汇编入门的知识总结，作者分享了自己在学习Golang底层实现机制时对Golang汇编的理解。文章首先解释了为什么需要汇编语言，然后介绍了程序与进程的概念，接着深入讲解了Go汇编的相关知识，包括核心寄存器、常用操作指令等。文章还提供了如何输出Go汇编的方法，并通过对一个简单Go函数的汇编代码进行分析，帮助读者理解Go汇编的实现过程。最后，文章还介绍了一些Go调试工具，如gdb和delve，并总结了学习Go汇编需要熟悉的几个方面。 document.addEventListener('DOMContentLoaded', function() { const urlDisplay = document.getElementById('urlDisplay'); urlDisplay.textContent = "此内容根据文章生成，更内容请访问：" + window.location.href; }); 作者：ivansli，腾讯 IEG 运营开发工程师在深入学习 Golang 的 runtime 和标准库实现的时候发现，如果对 Golang 汇编没有一定了解的话，很难深入了解其底层实现机制。在这里整理总结了一份基础的 Golang 汇编入门知识，通过学习之后能够对其底层实现有一定的认识。0. 为什么写本文平时业务中一直使用 PHP 编写代码，但是一直对 Golang 比较感兴趣，闲暇、周末之余会看一些 Go 底层源码。近日在分析 go 的某些特性底层功能实现时发现：有些又跟 runtime 运行时有关，而要掌握这一部分的话，有一道坎是绕不过去的，那就是 Go 汇编。索性就查阅了很多大佬们写的资料，在阅读之余整理总结了一下，并在这里分享给大家。本文使用 Go 版本为 go1.14.11. 为什么需要汇编众所周知，在计算机的世界里，只有 2 种类型。那就是：0 和 1。计算机工作是由一系列的机器指令进行驱动的，这些指令又是一组二进制数字，其对应计算机的高低电平。而这些机器指令的集合就是机器语言，这些机器语言在最底层是与硬件一一对应的。显而易见，这样的机器指令有一个致命的缺点：可阅读性太差（恐怕也只有天才和疯子才有能力把控得了）。为了解决可读性的问题以及代码编辑的需求，于是就诞生了最接近机器的语言：汇编语言（在我看来，汇编语言更像一种助记符，这些人们容易记住的每一条助记符都映射着一条不容易记住的由 0、1 组成的机器指令。你觉得像不像域名与 IP 地址的关系呢？）。1.1 程序的编译过程以 C 语言为例来说，从 hello.c 的源码文件到 hello 可执行文件，经过编译器处理，大致分为几个阶段：编译器在不同的阶段会做不同的事情，但是有一步是可以确定的，那就是：源码会被编译成汇编，最后才是二进制。2. 程序与进程源码经过编译之后，得到一个二进制的可执行 文件。文件这两个字也就表明，目前得到的这个文件跟其他文件对比，除了是具有一定的格式（Linux 中是 ELF 格式，即：可运行可链接。executable linkable formate）的二进制组成，并没什么区别。在 Linux 中文件类型大致分为 7 种：b: 块设备文件c：字符设备文件d：目录-：普通文件l：链接s：socketp：管道通过上面可以看到，可执行文件 main 与源码文件 main.go，都是同一种类型，属于普通文件。（当然了，在 Unix 中有一句很经典的话：一切皆文件）。那么，问题来了：什么是程序？什么是进程？2.1 程序维基百科告诉我们：程序是指一组指示计算机或其他具有消息处理能力设备每一步动作的指令，通常用某种程序设计语言编写，运行于某种目标体系结构上。从某个层面来看，可以把程序分为静态程序、动态程序：静态程序：单纯的指具有一定格式的可执行二进制文件。动态程序：则是静态可执行程序文件被加载到内存之后的一种运行时模型（又称为进程）。2.2 进程首先，要知道的是，进程是分配系统资源的最小单位，线程(带有时间片的函数)是系统调度的最小单位。进程包含线程，线程所属于进程。创建进程一般使用 fork 方法(通常会有个拉起程序，先 fork 自身生成一个子进程。然后，在该子进程中通过 exec 函数把对应程序加载进来，进而启动目标进程。当然，实际上要复杂得多)，而创建线程则是使用 pthread 线程库。以 32 位 Linux 操作系统为例，进程经典的虚拟内存结构模型如下图所示：其中，有两处结构是静态程序所不具有的，那就是 运行时堆(heap)与 运行时栈(stack)。运行时堆从低地址向高地址增长，申请的内存空间需要程序员自己或者由 GC 释放。运行时栈从高地址向低地址增长，内存空间在当前栈桢调用结束之后自动释放(并不是清除其…

【Redis持久化】服务器突然挂了！Redis缓存都在内存中啊
type: item
date: 2020-09-27T14:29:53+08:00
description: AI摘要 文章通过Redis与MySQL的对话形式，介绍了Redis的两种持久化方式：RDB和AOF。RDB通过周期性备份内存中的数据到文件，而AOF则记录所有写入命令到文件中。文章还讨论了AOF重写的概念，即通过合并命令来减小AOF文件的大小。最后，文章提出了一个问题，即在AOF方案已经很完善的情况下，是否还需要RDB方案。 document.addEventListener('DOMContentLoaded', function() { const urlDisplay = document.getElementById('urlDisplay'); urlDisplay.textContent = "此内容根据文章生成，更内容请访问：" + window.location.href; }); 我是Redis，一个叫Antirez的男人把我带到了这个世界上。“快醒醒！快醒醒！”，隐隐约约，我听到有人在叫我。慢慢睁开眼睛，原来旁边是MySQL大哥。“我怎么睡着了？”“嗨，你刚才是不是出现了错误，整个进程都崩溃了！害得一大堆查询请求都给我怼过来了！”，MySQL说到。刚刚醒来，脑子还有点懵，MySQL大哥扶我起来继续工作。“糟了！我之前缓存的数据全都不见了！”“WTF？你没有做持久化吗？”，MySQL大哥一听脸色都变了。我尴尬的摇了摇头，“我都是保存在内存中的，所以才那么快啊”“那也可以在硬盘上保存一下啊，遇到这种情况全部从头再来建立缓存，这不浪费时间嘛！”我点了点头，“让我琢磨一下，看看怎么做这个持久化”。RDB持久化没几天，我就拿出了一套方案：RDB既然我的数据都在内存中存放着，最简单的就是遍历一遍把它们全都写入文件中。为了节约空间，我定义了一个二进制的格式，把数据一条一条码在一起，生成了一个RDB文件。不过我的数据量有点大，要是全部备份一次得花不少时间，所以不能太频繁的去做这事，要不然我不用干正事了，光花时间去备份了。还有啊，要是一直没有写入操作，都是读取操作，那我也不用重复备份，浪费时间。思来想去，我决定提供一个配置参数，既可以支持周期性备份，也可以避免做无用功。就像这样：save 900 1 # 900秒（15分钟）内有1个写入save 300 10 # 300秒（5分钟）内有10个写入save 60 10000 # 60秒（1分钟）内有10000个写入多个条件可以组合使用，只要上面一个条件满足，我就会去进行备份。后来我又想了一下，这样还是不行，我得fork出一个子进程去做这件事，不能浪费我的时间。有了备份文件，下次我再遇到崩溃退出，甚至服务器断电罢工了，只要我的备份文件还在，我就能在启动的时候读取，快速恢复之前的状态啦！MySQL:binlog我带着这套方案，兴冲冲的拿给了MySQL大哥看了，期待他给我一些鼓励。“老弟，你这个方案有点问题啊”，没想到，他竟给我浇了一盆冷水。“问题？有什么问题？”“你看啊，你这个周期性去备份，周期还是分钟级别的，你可知道咱们这服务每秒钟都要响应多少请求，像你这样不得丢失多少数据？”，MySQL语重心长的说到。我一下有些气短了，“可是，这个备份一次要遍历全部数据，开销还是挺大的，不适合高频执行啊”“谁叫你一次遍历全部数据了？来来来，我给你看个东西”，MySQL大哥把我带到了一个文件目录下：mysql-bin.000001mysql-bin.000002mysql-bin.000003···“看，这些是我的二进制日志binlog，你猜猜看里面都装了些什么？”，MySQL大哥指着这一堆文件说到。我看了一眼，全是一堆二进制数据，这哪看得懂，我摇了摇头。“这里面呀记录了我对数据执行更改的所有操作，像是INSERT，UPDATE、DELETE等等动作，等我要进行数据恢复的时候就可以派上大用场了”听他这么一说，我一下来了灵感！告别了MySQL大哥，回去研究起新的方案来了。AOF持久化你们也知道，我也是基于命令式的，每天的工作就是响应业务程序发来的命令请求。回来以后，我决定照葫芦画瓢，学着MySQL大哥的样子，把我执行的所有写入命令都记录下来，专门写入了一个文件，并给这种持久化方式也取了一个名字：AOF（Append Only File）。不过我遇到了RDB方案同样的问题，我该多久写一次文件呢？我肯定不能每执行一条写入命令就记录到文件中，那会严重拖垮我的性能！我决定准备一个缓冲区，然后把要记录的命令先临时保存在这里，然后再择机写入文件，我把这个临时缓冲区叫做aof_buf。说干就干，我试了一下，竟然发现数据没有写入到文件中去。多方打听才知道，原来操作系统也有个缓存区，我写的数据被他缓存起来了，没有给我写入到文件中去，这不是坑爹呢嘛！看来，我写完了还得要去刷新一下，把数据真正给写下去，思来想去，我还…

远程桌面连接报【由于CredSSP 加密数据库修正】错误解决办法
type: item
date: 2020-09-16T14:48:04+08:00
description: AI摘要 本文介绍了在连接远程服务器时遇到的“由于CredSSP加密数据库修正”错误的原因和解决办法。错误原因是由于CVE-2018-0886的CredSSP更新导致。解决办法有两种：1）修改策略组配置，在“计算机配置”->“管理模板”->“系统”->“凭据分配”中找到“加密数据库修正”项目，选择“已启用”，保护级别选“易受攻击”；2）修改注册表，在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters”下找到“AllowEncryptionOracle”并把值设置成“2”。建议优先使用组策略方式解决，因为注册表修改不当可能导致严重问题。 document.addEventListener('DOMContentLoaded', function() { const urlDisplay = document.getElementById('urlDisplay'); urlDisplay.textContent = "此内容根据文章生成，更内容请访问：" + window.location.href; }); 今天连接远程服务器时，出现这个错误提示，其它服务器都是好好的，唯独这台新服务器就报错错误原因：查看微软CredSSP更新日志查看win10系统升级日志，果然找到了原因，是因为CVE-2018-0886 的 CredSSP 2018 年 5 月 8 日更新默认设置从“易受攻击”更改为“缓解”的更新。相关的 Microsoft 知识库编号已在 CVE-2018-0886 中列出。默认情况下，安装此更新后，修补的客户端无法与未修补的服务器进行通信。 使用本文中描述的互操作性矩阵和组策略设置来启用“允许的”配置。具体的内容请自行阅读：https://support.microsoft.com/zh-cn/help/4093492/credssp-updates-for-cve-2018-0886-march-13-2018解决办法1：修改策略组配置win+R 打开运行运行，然后输入“gpedit.msc”打开 如下图所示，在左侧窗口依次找到策略路径：“计算机配置”->“管理模板”->“系统”->“凭据分配” 然后右侧窗口设置名称中找到： 加密数据库修正 项目，选择”已启用“，保护级别选”易受攻击“，确定即可解决。解决办法2：修改注册表这里建议先使用上面组策略的方式进行解决，如果解决不了，再使用注册表方式，因为注册表方式没有组策略这种图形化界面的简单方便。win+R 打开运行菜单，然后输入“regedit” 按Enter键即可打开如下的注册表，按照图示，找到此路径“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters”然后在右侧窗口双击“AllowEncryptionOracle” 并把值设置成“2” （跟上面组策略设置效果一样）然后确定。如下图所示0表示强制更新的客户端1表示缓解2表示易受攻击 （跟上面组策略设置效果一样，有木有）总结今天主要是介绍下win10 mstsc远程遇到的坑“这可能是由于CredSSP 加密数据库修正”的两种解决方法。从微软官方更新日志入手，然后引出组策略以及注册表的解决方法。图文也更容易让新手朋友也能按照步骤进行解决！最后还是提醒下，新手朋友最好通过组策略的方式进行解决，因为微软也给出了警告： 如果使用注册表编辑器或其他方法修改注册表不当，可能会出现严重问题。 这些问题可能需要您重新安装操作系统。 Microsoft 不能保证可解决这些问题。 请自行承担修改注册表的风险。部分图文来源：https://blog.csdn.net/qin_yu_2010/article/details/81150741

如何学习一门新的语言
type: item
date: 2020-09-13T17:14:29+08:00
description: AI摘要 本文探讨了学习新编程语言的方法和常见问题。作者指出，仅阅读官方文档和查看开源项目代码对初学者来说并不足够，因为这些资料可能过于复杂或不全面。作者建议初学者从官方提供的Step-By-Step代码开始学习，这些代码由浅入深、有质量保证且更新及时。同时，作者强调了实践的重要性，建议初学者通过小项目逐步提高。最后，作者呼吁开发者社区中的老手和新手之间需要更多的耐心和理解，以减少信息不对称带来的矛盾。 document.addEventListener('DOMContentLoaded', function() { const urlDisplay = document.getElementById('urlDisplay'); urlDisplay.textContent = "此内容根据文章生成，更内容请访问：" + window.location.href; }); 首先要说，这并不是一篇教你如何学习的文章，因为到今天为止我也没有找到一种通用的方法来解决如何学习的问题。但是在探索的道路上，我确实产生过一些思路，我想把这些思考的过程分享出来让大家探讨。如果这对你有帮助的话，那我会非常高兴。我最近在学习 Rust ，这是一门很酷但是相对冷门的语言（学习冷门语言可能是我的一大爱好，比如我就非常喜欢 CoffeeScript ，这是 JavaScript 的一门方言）。自从在某些语言的舒适区待久之后，经常会产生自己无所不能的错觉，这也是我不断想学习新语言的一大动力。而我的学习过程跟大多数人类似，就是先在网上找文档然后自学。而在看文档的过程中，我就发现了一些问题。手册的作用“去看文档喽。”这是老鸟在面对新手时最喜欢扔的一句话，我通常也是这么扔给自己的。但当你打开一门语言的手册，你会发现它除了教你语法外，几乎没有教你什么其它东西。于是你会陷入这样一个境地：“背下来了么？”“背不下来，太难懂了。”“再看一遍，给我背下来。”。。。“背下来了么？”“大部分背下来了。”“给我写个程序，实现个XX功能。”“不会。。。”“。。。”在一个高级开发者眼里，你会了语法理所当然就应该会写程序了，但实际情况并非如此。这让我想起前段时间跟一个朋友关于目前编程教育市场的一个讨论。我出于自己的经验提出一个想法：让大牛开发者来教新手入门。在我的设想中，大牛开发者拥有强大的实战经验，以及丰富的专业知识，更是自带光环，这不比现在市场上那些半吊子的讲师好多了。在我为自己“伟大”的想法得意的时候，朋友给我浇了一盆冷水。他告诉我这样根本行不通，大牛根本不知道菜鸟需要什么知识，你可能以为基础语法讲清楚就好了，人家却连编辑器是什么都不清楚。设想一下，让一个大学教授去教一群小学生，这对两者来说都是一种灾难吧。这些语言的创造者，或者文档的作者，无疑都是一些大神。它们在撰写一个语言手册的过程中，只能尽量负责地把这个语言的全貌准确地有组织地展现给你。然而这种全面的展现，对于一个没有任何引导的初学者来说并不完全是一件好事。简单来说就是，你会在一些次要的事情上浪费太多时间，而一些主要的概念又没有理解透彻。关于看真实代码当觉得文档满足不了你的时候，老鸟们往往会扔给你第二招：看代码。看什么代码呢？那还用说，当然是被业界奉为经典的，在 GitHub 上至少有一万颗星的知名开源项目代码啦。当你怀着崇敬的心情，打开扔给你的网址，看着满屏幕的代码时，你会对自己问出那三个经典的哲学问题。这是什么东西？它是怎么做到的？为什么要这么写？搞不好某些人还会因为惊吓过度，从而失去了学习下去的信心。那么让我们一起来看看这些代码里有什么鬼东西，会吓得新手信心不足。大段的注释说一件事你们不要笑，在我还是个萌新的时候，我曾经对这些穿插在代码中的神秘文字产生了深深的困惑，我还以为它们对代码有某种加成作用，以至于我还试验过把注释去掉会对代码执行产生什么影响。而现实中好的代码会让后面的维护者方便很多，但不好的甚至错误的注释会让人迷惑不已。语法糖语法糖是个好东西，它大大简化了我们的编程过程，高手用起语法糖写起代码来简直不要太爽，所以越强大的项目这玩意儿越多。但是对于初学者来说，语法糖隐藏了一些细节，而且让语法看起来很怪异。有些代码如果你用标准语法来写是很好懂的，但如果用语法糖来写的话很难让人一下子明白。初学者为了弄懂这些语法往往要花大量时间，但其实这些时间在这个阶段是没必要的浪费。你看不懂它觉得它是一个很重要的东西，其实它只是一个做工精巧的小玩意儿，离开了它这些代码照样能工作。而随着你的经验丰富，也可以随时随地用起来，用的方法可能也不尽相同。代码里的重点对于一个开源项目来说，往往 50% 的代码可能都是在适配各种不同的运行环境，将系统的 API 抽象成项目里通用的接口，这部分代码除非你自己要做类似的项目，要不然的话对初学者…

完美主义不是更好，而是至高无上
type: item
date: 2020-07-25T22:20:49+08:00
description: AI摘要 文章强调了完美主义在工作和生活中的重要性，认为完美主义不仅是追求更好，而是至高无上的标准。通过稻盛和夫和荣事达公司的例子，说明了精益求精和零缺陷管理的重要性。文章认为，只有将完美主义视为生命一样重要，才能在工作中追求卓越，实现高质量的成果。 document.addEventListener('DOMContentLoaded', function() { const urlDisplay = document.getElementById('urlDisplay'); urlDisplay.textContent = "此内容根据文章生成，更内容请访问：" + window.location.href; }); 【人生悟语】以完美主义的标准去要求每天的工作，听起来是很苛刻，也很困难。但是与生命相比起来呢？你做到像对待仅有一次的生命那样严肃谨慎地去对待你的工作了吗？将至高无上的完美主义进行到底吧。“完美主义”是稻盛和夫在工作中一直追求的目标，他所考虑的完美主义不是更好，而是至高无上。生产一个产品，那怕付出90%的努力也是不够的，一点瑕疵，一点疏漏，一点粗心都不能原谅，只有做足100%才堪称完美。在工作中不断追求的是做到精致、精湛、精益求精，力求最品质量，把产品做成无可挑剔的完美作品，把工作做到极致，挑战极限，这才是工作的终极目标。稻盛和夫的一位叔叔当过海军航空队的飞机维修员，他从战场归来后曾对稻盛讲起他在航空队的经历，给稻盛很深刻的印象。每当轰炸机起飞的时候，维修员都要随机飞行，但几乎他们中的所有人都不乘坐自己维修过的飞机，他们似乎不约而同地选择乘坐别的同事维修的飞机，这里面有什么玄机吗？原来，虽然维修员在维修保养机器时竭尽全力工作，但却不敢保证自己做的万无一失，于是他们都乘同事负责的轰炸机。正因为对自己的工作缺乏充分的信心，又考虑到万一出现紧急情况，所以维修员们做出了这样的选择。还有很多类似的事情，许多医生的父母妻儿，或是亲戚身患重病，他们大都不愿意亲自诊断医治。亲人们需要进行手术时更是如此，这些医生往往委托自己信任的同事主刀。这样做的缘由是，在血浓于水的亲情面前，关系到亲人的安危，自己会动不了手。稻盛并不赞同这种观点，他认为每一天的工作都是真刀真枪干出来的，拥有这样的积累，他一定会对自己的技术有满满的自信。如果换了他做飞机维修员，他必定会选择乘坐自己负责的轰炸机；如果换了他做外科医生，当亲人需要救治时，他不会请人代劳，必定会亲手主刀。只有觉得自己的工作做得完美无缺，能自己的能力打满分时，才能有正面观对问题的决心和魄力。有人说，在中国，不缺少雄韬伟略的战略家，缺少的是精益求精的执行者。这话也许说得没错，国人的“差不多”思想总是引诱我们放弃对完美的追求，但是有一家企业即是在质量上精益求精、苛求完美的典范，它就是荣事达公司。“零缺陷管理”是荣事达借鉴国外企业“无缺点运动”经验并结合本企业实际加以独特的再创造的成果，而“无缺点运动”最早发端于美国佛罗里达州的马丁马里塔公司。1962年，该公司与美国军事部门签订了一项生产供货合同，合同规定的交货期限很紧，对质量要求很严。可是军令如山，不容耽搁，马丁公司以形势所迫，打破常规，开展了一场“无缺点运动”，这一运动包括：打破传统的“人总要犯错误”理念，改换成“只要主观尽最大努力，就可以不犯错误”的理念，以此动员全体员工追求无缺点目标，自觉避免工作中的失误。打破以往的生产与质检的分离格局，要求每个操作者同时也是质检者，规定上道工序不得向下道工序传送有缺陷的产品。打破过去对错误只有事后发现和补救的常规，讲求超前防患，事先找出可能产生缺点的各种原因和条件，提前采取措施，做到防患于未然。打破生产过程中各工序的员工各自为战、各行其是的习惯状态，要求树立全局观念，主动配合、密切合作，从总体上保证实现无缺点结果。马丁公司实行“无缺点运动”果然一举成功，合同期限一到便交出无可挑剔的百分之百合格产品。荣右达吸收其中的精华，形成了自己的“零缺陷生产”模式，将“用户是上帝”“下一道工序是用户”“换位思考”“100%合格”等质量意识转变为员工的自觉行动。与此相关的一系列制度纷纷出台，从而实现分散与集中，全员自控与专门控制、内在质量控制与系统信息反馈相结合的“零缺陷生产”质量管理体系。零缺陷供应是零缺陷生产的前提和保证，通过严把质量关，确保提供“零缺陷”的零配件或可辅助件。从此，荣事达建立了“零缺陷”的企业文化，企业进入了新的境界。精益求精是对结果最好的诠释。一位企业经营都说过：“如今的消费者是拿着显微镜来审视每一件产品和提供产品的企业。在残酷的市场竞争中，能够获得较宽松的生存空间的企业，不只是合格的企业，也不只是优秀的企业，而是非常优秀的企业，你要求自己的标准，必须远远高于市场对你的要求标准，才可能被市场…