这是一篇我职业生涯总结的 OpenIM 故障排查指南

如果你想在寻找一篇针对 OpenIM 并且准备好具体的问题想来这里找到答案的话。那么很遗憾的告诉你,这篇并不是记录问题和编写答案的,这篇是读者经过开发和业务实战中以 OpenIM 为例总结出来的故障排查的方法,以及调试的技巧。如果你想从我这里学习到故障的排查以及问题定位的经验,那么请你继续读下去。 我将会从工作中经常出现的一些情况总结成类型来分析。 一个小小的玩笑,或许我比较逆人性,其他人都很害怕遇到 bug 的时候,我倒是对出现 bug 比较兴奋,我们后期读代码的时间和维护代码的时间其实是远远高于写代码的时间的。所以面对 bug, 我们的思考和总结尤其是非常重要,尤其是帮我们在写代码的时候也思考,代码的扩展性,和错误处理,是否可以禁得起考验 ~ 故障排查的基本概念 故障排查,我主要是分为几种情况,分别是,编译的故障排查,启动的故障排查,以及服务运行故障排查。这几种情况的故障排查思路都是大同小异的。 首先,我们需要发现问题,然后定位问题。我们可能需要经过多轮分析排查才能定位到问题的根因,最后去解决问题。排障流程如下图所示: 开始 | V 发现问题 ------> 记录问题的症状和相关情况 | V 定位问题 | V 进行初步分析 --------> 确定可能的原因 | | V | 是否需要深入分析?-----> 是 ------> 进行深入分析 | | | | | V | | 确定具体原因 | | | | | V | <-------- 是否已找到根本原因? | | | 否 | V 是否解决了问题? | 是 ------> 记录解决过程和解决方案 | | 否 ------> 调整策略或寻求帮助 | V 结束 如果想排查问题并解决问题,你还需要具备以下两个基本能力:...

April 16, 2024 · 7 分钟 · 1478 字 · 熊鑫伟,我

探索开源以及开源商业模式研究

开源为我带来了很多的成长,很多的成长经验和学习途径都是通过开源获取到并且学习到的。 这里有一篇我的第一次开源的成长指南:https://nsddd.top/zh/posts/open-source-contribution-guidelines/ 之前,在深圳的 全球流量大会(GTC) 一些来自我对开源商业化的思考,感兴趣可以阅读先阅读这篇思考文章: https://nsddd.top/zh/posts/openim-open-source-business-journey/ 第一次参与开源还是一个刚刚接触大学没多久 ~ ,调研了解到很多优秀的开源项目都会有很多业界大佬坐镇,因此会让大家以为只有“大牛”才能参与开源。实际上,开源社区经常会听到 “我是小白,我可以参与开源吗?” 这种声音,发出这种声音的同学往往是对开源感兴趣,但并不知道如何入手的小伙伴。 从开源定义来看,我们不需要成为“大牛”才能够参与开源。所谓开源,其实是一种促进个人成长和开源领域发展的行为,通过分享自身技术和经验来促进大家的技术交流,从这方面讲,开源是没有门槛的,只要有想要分享的东西,所有人都可以参与开源。 从参与要求来看,我们需要具备一定的知识积累才能参与开源。开源社区不是学校,社区会解答你的疑问,但首先你要有一定了解,才能准确提出你的疑问。对开源项目一无所知是无法参与开源的。当然,这与你是否成为“大牛”也并没有什么关系。因此,只要具备一定的技术积累,就可以参与相应的开源项目。 “罗马不是一天建成的”。没有人天生就是“大牛”,“大牛”们也是在参与中不断成长的,不要被虚无的 title 所困扰,只有不断的坚持和探索才能让自己不断成长! 其实旅游中也有过一些自己的思考,在旅游中我喜欢摄影,带着相机走走拍拍。或许和女生不一样 ,我开始的时候其实是更倾向于发现风景的,就像是在香港的麦理浩径的第一段和第二段的中间破边洲部分,我更多的是以人物在破边洲的悬崖边上,然后衬托后面的悬崖的美丽壮观。我们在工作中也是一样的, 在我们摄影的时候,我们面临对焦,开始在远方我们或许更多的是把焦点放在人物后面的背景上,或者说是 title,比如说某个人是某个大学、某某大厂的光环,反而忽略了他的本身。后面当你关注在人物身上,你会发现人物的美,你会想办法如何把漂亮的小姐姐这一瞬间记录下来。这个时候其实你更专注的是某一个人,这个转变很重要,你慢慢的发现自己专注自己了,而不是专注后面虚无缥缈的光环和头衔。 在开源社区中,我慢慢学习到了非常多的技巧,比如这里我总结出一篇开源社区的提问技巧:https://nsddd.top/zh/posts/the-art-of-asking-questions-in-open-source-communities/ 我对整个的开源成长也有自己的思考总结,写了这篇关于开源的成长性指南阶段,从我们第一次加入开源项目开始,到最后开源和维护自己的项目,以及商业化成长,可以参考: https://nsddd.top/zh/posts/stage-growth-of-open-source/https://nsddd.top/zh/posts/stage-growth-of-open-source/ 非常推荐阅读 ~ 在加入 OpenIM 的社区一年中,我将自己的开源理解和运营技巧都集成在了 OpenIM 的开源布道上,将 OpenIM 社区带入到了一个顶级的开源社区中来。除此之外,我参与过其他的优秀开源项目的贡献和维护,我会从自己的角度上来介绍如何运营一个优秀顶级的开源社区。 开源不仅是我的热爱,也逐渐成为我的一大优势。在我与开源的互动中,我们相得益彰。 开源除了给个人以及公司带来技术影响力之外,更为重要的是通过开源实现商业化价值,而这部分才是很多开源项目成功的实际驱动力。本文会介绍我对开源的理解,以及着重介绍自己对开源以及开源商业模式做了一个系统的研究,为决策项目是否应该开源、采用何种开源策略以及开源商业化路径提供参考意见。 如果你对我有兴趣,可以关注我的开源的 github 账户: https://github.com/cubxxw 开源商业模式 越是用户付费意愿强的功能,越是要闭源。越是用户觉得好玩的功能,能吸引到大家的功能,越是要开源。 我认为的开源商业模式是什么样的? 开源商业化模式文章后面会总结目前的所有的商业化模式,但是我觉得最主要的商业模式是 open-core 和 open-standard,还有一些非主流的,比如说开源软件免费,但结合硬件组合销售。 我认为: 越是用户付费意愿强的功能,越是要闭源。 越是用户觉得好玩的功能,能吸引到大家的功能,越是要开源。 我认为的开源商业模式是什么样的? 开源商业化模式文章后面会总结目前的所有的商业化模式,但是我觉得最主要的商业模式是 open-core 和 open-standard,还有一些非主流的,比如说开源软件免费,但结合硬件组合销售 开源也有自己的护城河吗? 担心开源后自己的产品被抄袭,开源,作为一个推动技术创新和社区合作的新力量,其商业模式多样,从提供专业支持和服务,到构建围绕核心开源项目的企业级产品。 我认为在开源的护城河上面,关键在于如何利用产品开源的独特价值和社区力量,创建难以复制的竞争优势。 所以基本上就是你要不是有开源 core 产品,作为线索漏斗去吸引你的用户,然后用这来做你整个公司的品牌,然后再做差异化功能的落地实践,然后另一种可能就是类似 MySQL 做咨询顾问的工作。 那么开源产品本身的护城河我理解其实抛开和普通产品护城河区别外,Open standard是今天开源软件商业化更好的一个形态,它对这个公司的技术能力提出了更高的要求。 open core 其实在云时代很难发展,即使是目前 OpenIM 那种做好 传统的 open core 模式在云时代下会比较难,可能难就难在构建好护城河,比如说跟那些云厂商比。各大云厂商,从各方面看,都有巨大优势:它本身就是一个大的流量资源,客户的流量在这里,推广的流量在这里,如果你很不幸,刚好跟这个云厂商贴在同一个赛道,你怎样去获得一个这个优势?这很困难,也是 MongoDB、Elastic、Redis 等开源厂商被逼的修改开源 License 背后的深层次原因。...

April 13, 2024 · 6 分钟 · 1121 字 · 熊鑫伟,我

Sora Ease 指南:开发者掌握 Sora AI 的全面指南

Sora 中文的提示词 | 调教指南。各种场景使用指南。学习怎么让它听你的话。兼顾了 Sora 的多场景应用。 这篇文章来源于 https://github.com/SoraEase/sora-prompt-zh 开源项目,SoraEase 希望为 sora 相关的开发者提供自动化,便捷,快速上手的工具和指南。 Sora | 索拉 是一个AI模型,可以从OpenAI的文本指令中创建逼真和富有想象力的场景。OpenAI正在教AI理解和模拟运动中的物理世界,目标是训练模型,帮助人们解决需要现实世界交互的问题。 如果你是 sora 的学习者,希望获取到 sora 的最新的咨询和相关的开发项目,以及 sora 相关的开源项目,这里 awesome-sora 提供了 sora 相关的Sora 中文指南,指令指南,应用开发指南,精选资源清单,Sora 开发者精选工具框架。 索拉可提供以下功能: 文本到视频 动画 扩展生成的视频 视频到视频编辑 连接视频 图像生成(文本到图像) 在这个存储库中,你会发现各种可以和索拉一起使用的提示。我们根据视频的风格分配了不同的标签,让你可以根据标签快速找到提示示例(Prompt)和生成的视频,并根据需要进行修改。 虽然索拉尚未正式发布,但我们正在全面收集提示,以帮助你快速开始使用索拉生成你想要的视频。 提示词 官方提示词生成器 视频生成提示 官方视频生成提示 点击查看更多示例 一位时尚女性穿着一件黑色皮夹克,一条长长的红色裙子和黑色靴子,手拿一个黑色的手提包,在热闹的东京街道上行走。周围充满了温暖的霓虹灯和动态的城市标识。她戴着太阳镜和红色口红,自信而随意地行走。街道潮湿而反光,形成了五彩灯光的镜面效果。许多行人在周围走动。 生成视频链接 几只巨大的长毛猛犸象漫步在积雪覆盖的草地上,它们的长毛在微风中轻轻飘动,远处是积雪覆盖的树木和戏剧性的雪山,午后的光线和稀薄的云彩以及高高悬挂的太阳形成了温暖的光芒。低角度的摄像视角令人惊叹,捕捉到了这些大型毛茸茸的哺乳动物和美丽的摄影,景深感非常强烈。 生成视频链接 一个电影预告片,讲述了一位30岁的太空人的冒险故事,他戴着一顶红色的羊毛编织头盔,蓝天,盐沙漠,电影风格,35mm胶片拍摄,色彩生动。 生成视频链接 无人机俯视着波涛汹涌的大苏尔加雷角海滩的崎岖悬崖。蓝色的海水拍打着,形成了白色的波浪,而夕阳的金光照亮了岩石海岸。远处有一座灯塔的小岛,悬崖边覆盖着绿色的灌木。从道路到海滩的陡峭下滑是一个戏剧性的壮举,悬崖边突出在海面上。这是一个捕捉到海岸的原始美和太平洋海岸公路崎岖风景的景色。 生成视频链接 动画场景展示了一个近距离的短毛怪兽跪在一个正在融化的红色蜡烛旁边。艺术风格是3D和逼真的,重点放在光线和纹理上。画面的情绪是惊奇和好奇,怪兽睁着大眼睛,张着大嘴盯着火焰看。它的姿势和表情传达出一种天真和俏皮的感觉,好像它是第一次探索周围的世界一样。温暖色调和戏剧性的光线进一步增强了图像的舒适氛围。 生成视频链接 一个华丽的纸艺世界,一个丰富多彩的珊瑚礁,到处都是色彩缤纷的鱼类和海洋生物。 生成视频链接...

March 14, 2024 · 2 分钟 · 253 字 · 熊鑫伟,我

2023年,我的旅行起点 - 2023年的我漫步在世界边缘

关于我 #最后的大学生涯 #旅行见闻 #跨国冒险 #生活转变 #成长故事 #探索未知 #回忆录 #文化体验 #自然之美 #城市漫步 #历史沉淀 #户外探险 #山川露营 #人生第一次 #世界遗产 #美食体验 #生活与工作的平衡 #毕业倒计时 #从武汉到深圳 #安徽黄山 #歙县古城探秘 #丽江古城之旅 #江西武功山探险 #香港麦理浩径 #澳门巴黎人游历 #川西雪山震撼 #马来西亚独旅 #新加坡探索 不知不觉间,这一年悄然流逝,时间仿佛在指尖间轻轻滑过,我也迎来了大学生活的最后一年。就在刚刚,我还仿佛站在武汉江汉路的大钟下漫步,感受着城市的脉动与历史的沉淀。转眼之间,我已经来到了深圳,这座我生活了大半年的城市。一切变化都显得如此迅速,却又自然而然,生活在这里,我感受到了不同的节奏和氛围。 旅行已然成为自己的生活和工作的平衡点,这一年,去过无数个地方,去过安徽黄山,还去过周边的歙县古城和丽江古城。第一次重装去江西武功山;第一次去绝美的香港麦理浩径,也在香港尝试了第一次绝好的露营体验;第一次去繁华的澳门,看了看澳门巴黎人。第一次去梦想中的川西,看到了让我震撼,触我心弦的雪山。也在第一次一个人出国马来西亚,一个人去新加坡 …. ,这篇博客来记录和回顾这一年来的经历,所见,所想 ~ 去年三月,第一个和室友 刘洋 ,鼓起勇气迈出大学的第一站, 黄山 。 人生第一次爬山 | 黄山 黄山旅程 ~ #第一次爬山是什么感受 #黄山 #古城 黄山有多美? 印象中记不清了,大脑中的杏仁核还是触发海马体进行了记忆检索,触动到了那天晚上登高,抬头望月,满眼云海的景象,平静的夜晚同时自己的荷尔蒙飙升到两百。这是我第一次抱着非常非常节省的心态去的旅行,黄山下有缆车,可以直达迎客松,但是我当时想着省钱就没上了,我觉得这是第一次的经验缺乏的不足。前期不断地爬山爬山 … ,心想,不愧是五大名山,这么难爬,这辈子第一次爬这么高的山,实际上让我觉得艰难的是。每爬山去一座山,后面依旧有一座佁然不动的大山阻在你前方,仿佛一颗千斤重的石锤压在你的内心,压得呼吸混乱,心乱如麻。 我们的冒险之旅从下午开始,直至晚上六点才踏上攀登的征途。沿途我们努力攀爬,终于在黄昏时分隐约见到了令人叹为观止的云海,这可能是我人生中第一次近距离观赏如此绝美的景象。到达山顶时,索道已经停止运营,让我们在凉爽的山风中驻足片刻,然后开始了夜间的下山之旅。不同于白天的紧张气氛,夜晚的山路带来了一种宁静而神秘的体验,下山后我们赶紧找一家酒店就住下了 ~ 晚上还在计划第二天继续完成第一天没有爬完的任务 ~ 但是第二条腿好疼,选择换一个地点旅游 。 随后我们前往黄山周边的小镇继续我们的冒险。比如,宏村或西递,这些小镇以其保存完好的古建筑和充满江南水乡特色的景观而闻名。恰逢阴天,小镇的氛围显得尤为迷人,雨后的青石板路,古老的徽派建筑,以及悠然自得的生活场景,构成了一幅动人的画面,拍照时更是别具一格,充满了江南水乡的独特韵味和艺术感。 感触 在这次旅行中,我认识到了自己准备不足的问题。我发现自己花费了过多的时间在查找攻略上,这不仅耗时而且效率低下。我深刻意识到,未来的旅行中必须制定出详尽的计划和攻略,避免盲目行动。然而,尽管准备不足,旅途中遇到的人和事却给我留下了难忘的印象。我见到了父亲带着年幼的孩子勇敢地登山,也看到了年长的叔叔坚持不懈地一步步往上爬。虽然我不清楚他们背后的故事,但这些经历激励了我,让我更加珍惜旅行中的每一次遭遇。当我第一次目睹云海的壮观景象时,心中的激动难以言表。在下山的路上,夜晚的月光与宁静的环境相结合,呈现出一种难以捉摸的美,是我此前未曾体验过的意境。 第一次踏足江南小镇,那里的美景让我流连忘返。街道美丽异常,小桥流水人家,恰如其分地展示了江南水乡的独特魅力和古朴风情。这不仅是一次对身体的锻炼,更是一次精神上的洗礼。攀登高山,俯瞰云海,仰视密集或稀疏的村落,这些体验让我感受到了自然的壮丽和生活的多样性。 回顾自己走过的每一步,或许是平平淡淡也好,艰难险阻,枯燥乏味,还是万紫千红也罢,总归是自己踏踏实实走过来的,总归是自己一步步感受和思考过来的。 来来往往的爬山者很多,人们为了不同的追求而爬山,或锻炼,或释压,或赏玩,都无所谓,重点是你去做了,他去做了,我们去做了。 于是,黄山教会了我第一课:勇敢迈出第一步,不要恐惧陌生感,勇敢出去看看 ! 社交链接 微博链接 人生第一次重装徒步徒步 | 武功山 #一个人重装徒步是什么感受 #第一次看到云海 #武功山的日出好靓...

March 3, 2024 · 2 分钟 · 364 字 · 熊鑫伟,我

Sora 技术讨论以及普通人和开发者如何利用 Sora 改变世界

Sora !!! 近日,互联网上掀起了一阵关于Sora的热潮。作为OpenAI最新推出的技术,Sora赋予了文字生成视频的魔力,其展示的效果令人印象深刻。 在当前,短视频的吸引力已远超过传统的小说和图像漫画。因此,Sora的问世,可能会在视频制作领域引发一场革命。 Sora的魅力在于,它能够基于文本描述生成长达60秒的视频内容,这些内容包括了精细的场景设置、栩栩如生的角色表情,以及流畅的镜头转换。 这项技术能够塑造出多元化的角色,实现特定的动作,并且在主题和背景方面做到与描述高度一致。Sora不仅准确地理解用户的指令,还能深刻洞察这些元素在现实世界中应有的呈现方式。 Sora展现了对语言的深刻洞察力,能够精确捕捉用户的意图,创造出既生动又情感充沛的视频内容。它甚至能在同一视频中呈现多个场景,同时保证角色的连贯性和视觉风格的统一。 然而,Sora并非完美无瑕。在模拟复杂场景下的物理效应,以及理解特定因果关系方面,它仍有待提升。例如,视频中的角色可能会咬一口饼干,却未能在饼干上留下明显的痕迹。 此外,Sora在处理空间细节,如分辨方向,或是描述一段时间内的具体事件,如摄影机的移动轨迹时,也可能显示出一定的局限性。 简单来说,简单来说,Sora 是一种能用文本生成最长 60 秒视频的技术,也可以用来生成图片,因为图片本质上是一帧的视频。 这篇文章,将会从 Sora 的架构,然后到 Sora 的生态,以及最后普通人或者开发者如何利用或者使用 Sora ,为这个 AI 浪潮做准备 ~ Sora的架构与创新 Sora代表了在AI视频生成技术中的一次重大创新,它在架构上与之前的Runway及Stable Diffusion等基于扩散模型的系统有着明显的区别。核心之处在于Sora采用了Diffusion Transformer模型,这是一个结合了扩散模型和Transformer模型的先进架构,为视频生成带来了前所未有的灵活性和质量提升。 架构比较 Runway/Stable Diffusion:这些系统基于扩散模型,通过逐步向图片添加噪点,再逐步去除噪点的方式生成清晰图片。这一过程虽然能够生成高质量的图像,但在视频生成上存在限制,尤其是在处理长视频和维持视频一致性方面。 Sora:Sora利用Diffusion Transformer模型,通过Transformer的编码器-解码器架构处理含噪点的输入图像,并预测出更清晰的图像版本。这不仅提高了图像处理的效率,而且在视频生成上实现了显著的进步。Sora的创新在于它处理的基本单位不是文本的Token,而是视频的“Patch”,即随时间变化的色块,这允许Sora处理任何大小和长宽比的视频,无需预先裁剪或调整。 创新应用 Sora的架构使其能够在训练时使用更多的数据和计算资源,得到更高质量的输出。这种方法不仅避免了视频预处理可能导致的原始构图丢失问题,而且因为能够接收任何视频作为训练输入,Sora的输出不会受到训练输入构图不良的影响。此外,Sora展示了模拟复杂物理现象(如液体动力学)的能力,这得益于其在训练时使用的大量视频数据中包含的物理规则。 研究基础与启示 Sora的开发受到了《Scalable Diffusion Models with Transformers》和《Patch n' Pack: NaViT, a Vision Transformer for any Aspect Ratio and Resolution》两篇论文的启发,这些研究来自Google,并在Sora项目启动后不久发表。这些研究提供了Sora架构的理论基础和技术细节,为Sora及未来AI视频生成技术的发展奠定了坚实的基础。 通过结合扩散模型和Transformer模型,Sora不仅在技术上实现了突破,而且为视频制作和AI应用开辟了新的可能性,预示着AI在影视制作、内容创作等领域的未来将更加广阔和深入。 Sora 和之前的 AI 视频生成工具有什么升级 Sora在AI视频生成领域的出现,标志着技术进步的一个重要里程碑。与早期的AI视频生成工具相比,Sora引入了一系列创新和升级,这些改进不仅提高了视频的生成质量,而且极大地扩展了视频创作的可能性。以下是Sora与之前AI视频生成工具的主要升级和优化: 提升生成视频的质量和稳定性 Sora的技术进步主要体现在能够生成高质量视频的能力上。与之前的工具相比,Sora生成的视频可以达到长达60秒的长度,同时支持镜头切换、确保画面中的人物和背景的稳定性,以及实现高画质输出。这些改进意味着使用Sora生成的视频更加逼真,观看体验更佳,为用户提供了更为丰富和动态的视觉内容。 创新的技术架构:Diffusion Transformer模型 Sora之所以能够实现上述优势,归功于其基于Diffusion Transformer模型的创新技术架构。这一架构融合了扩散模型和Transformer模型的优点,使Sora不仅能够生成文本内容,而且能够预测生成所谓的“时空补丁”。这些时空补丁可以理解为视频中的一个小片段,包含了几帧视频内容。这种方法使得Sora在训练过程中不受视频长度和显卡性能的限制,生成过程更加灵活多样,能够组合不同的时空补丁来创造出新的视频内容。 灵活性和多样性的增强 与基于Diffusion模型的Pika或基于Transformer模型的LLM和ChatGPT等工具相比,Sora的技术架构赋予了它更高的灵活性和多样性。Pika在处理视频内容时受到显卡性能的限制,而且主要模式集中在基于图片关键帧的视频扩展或风格转换上。Sora则通过其独特的模型,能够无需拘泥于特定的视频分辨率或长度限制,创造出更加丰富和多变的视频内容。 Sora 的算力要求 在讨论Sora的使用成本和算力要求之前,我们需要明白AI视频生成技术特别是像Sora这样的先进模型,其成本和算力需求是由多种因素决定的。这些因素包括但不限于模型的复杂度、生成内容的分辨率、视频的长度、以及所需的生成质量。以下是对Sora使用成本和算力要求的一个专业化和详细的分析。...

February 24, 2024 · 2 分钟 · 221 字 · 熊鑫伟,我

双剑合璧:结合GitHub与Google Workspace的项目管理艺术

双剑合璧:结合GitHub与Google Workspace的项目管理艺术 之前写过一篇 从理论到实践的项目管理打通 。 其中介绍了 Github 的项目管理方式 Github Projects,以及配合 Github 实现整个开发和项目管理打通,但是可能会出现一些问题,今天来聊聊其中会出现的问题,以及给出对应的解决方法,顺便总结一下现阶段自己认为的开源项目做项目管理的最佳实践方法。 google projects VS github projects GitHub Projects 针对开发者:GitHub Projects特别适用于软件开发项目,因为它紧密集成了GitHub的代码仓库、问题跟踪(Issues)和拉取请求(Pull Requests)。 项目管理功能:提供看板(Kanban)和项目里程碑跟踪,便于管理项目的进度和任务。 开源友好:对于开源项目尤其友好,使得与全球开发者的协作变得简单。 集成和自动化:通过GitHub Actions,可以实现持续集成和持续部署(CI/CD)等自动化流程,与项目管理紧密结合。 Google Projects Google Workspace集成:如果你已经在使用Google Workspace(前身为G Suite),那么Google Projects(指的是Google的某些项目管理工具,如Google Tasks或者更广泛的Google Workspace应用)可能提供更好的集成体验。 通用项目管理:可能更适合非软件开发的项目管理,如营销活动、HR项目等(如Google Docs、Sheets、Slides等)。 协作和共享:Google应用的强项在于实时协作和文件共享,适合需要紧密协作的项目团队。 以前是单打独斗,或者是简单的开发小团队,那么 Github Projects 必然是最合适的,如今需要考虑到更多人的参与,更有序的资源和文档的管理,那么对于现在来说,可能需要更多的优化协作。 比如说一些重要的文档记录,一些重要的表格,以及 PPT 演示,会议记录,以及一些日程安排。但是对项目本身来说,结合Github问题追踪和拉取请求又非常重要。 我希望组合使用GitHub Projects和Google Projects(或Google Workspace的相关工具)进行项目管理,可以根据各自的优势制定一个最佳实践方案。这样做可以充分利用两个平台的优点,实现更高效和全面的项目管理: 1. 使用GitHub Projects管理开发活动 代码管理和追踪:利用GitHub的核心优势,将所有代码管理任务(包括版本控制、分支管理等)以及与代码直接相关的活动(如Bug追踪、功能请求等)保留在GitHub。 自动化工作流:通过GitHub Actions实现自动化,比如自动测试、构建和部署,以及自动化的问题和拉取请求管理。 项目看板:使用GitHub Projects的看板功能跟踪开发进度,如待办事项、进行中和已完成任务。 2. 利用Google Workspace管理项目的其他方面 文档和文件共享:使用Google Docs、Sheets和Slides来创建和共享项目文档、计划和报告,利用它们强大的实时协作功能。 通信和会议:通过 Google Meet 和 Gmail 进行项目会议、沟通和更新,保持团队成员之间的紧密联系。 任务和日程管理:利用 Google Tasks 和 Calendar 管理非开发任务(如市场活动、人力资源计划等)以及重要的项目里程碑和会议安排。 最佳实践方案 集成工具使用:探索和使用第三方工具或脚本实现GitHub和Google Workspace之间的数据同步。例如,可以自动同步GitHub Issues到Google Sheets作为任务列表,或者在GitHub里程碑变更时自动更新Google Calendar。 明确分工和规范:在项目开始时明确规定哪些任务和活动应该在GitHub上管理,哪些应该使用Google Workspace工具。制定明确的团队协作和沟通规范,确保所有项目成员都清楚使用哪个工具以及如何使用。 定期检查和调整:项目管理方法和工具的选择应根据项目的实际情况进行调整。定期回顾团队的工作流程和工具使用情况,根据反馈和项目需求进行必要的调整。 谷歌项目管理工具:所有你需要知道的 对于 Github 的项目管理,可以阅读 从理论到实践的项目管理打通 ,以及 Github Projects 官方网站 https://docs....

February 22, 2024 · 3 分钟 · 595 字 · 熊鑫伟,我

脑友好型英语学习策略:工具与技巧解析

调研大量的资料后总结出背单词和学习口语的方法 从小老师眼中的问题学生,父母眼中的笨孩子。对于双眼满眼都是三好学生的班主任,眼中容不下我这样一个不出众的学生。我一直在认识和救赎自己的路上,不断地探索者,为什么别人背单词那么快,为什么网上所有的学习方法在我这里失效了,为什么所有人都认为是我的问题… 爱因斯坦说:“如果你根据能不能爬树来判断一条鱼的能力,那你一生都会认为它是愚蠢的。”其实,每个人都是天才,只看能否找到了自己的天赋所在。 于是,我来到了救赎之路,如何解决自己的学习英语艰难,自己背单词辛苦无效果,甚至是如何解决自己的笨拙口语问题,甚至为自己以后学习英语设定合理的计划。 我通过互联网不断地学习,追究人大脑记忆单词,以及后面检索查询单词的整个过程,打通整个原理层,这个过程中我调研了大量的维基百科,以及外网的一些文章,总结出来这篇方法,所有的参考链接放在这篇文章的末尾,我自己是一个从小收到不断地打击和自我怀疑以及极度抑郁过的人,我希望我收到的伤害总结出来的经验教训可以为其他人作为遮雨伞,希望帮助到更多的人。 文章中尽可能的少涉及到专业术语,站在我的角度很多高中生物学到的知识就直接贴出来了,一些复杂的名词我会详细解释清楚,遇到不懂的可以去 google.com 找到。 大脑与学习 首先,理解大脑是如何处理和记忆信息的至关重要。当我们学习新单词时,大脑的海马区域活跃起来,帮助我们将短期记忆转化为长期记忆。重复和练习可以强化这些记忆痕迹,使学习更加牢固。 🚧 首先我们来看看记忆。 记忆(Memory)是神经系统存储过往经验的能力,关于记忆的研究属于心理学或脑部科学的范畴。记忆代表着一个人对过去活动、感受、经验的印象累积,有相当多种分类,主要因环境、时间和知觉来分。 这次过年回家,伯母患上了 阿兹海默病,表现出来的是症状就是逐渐不记得,或者是忘记了周边的人和物。在阿兹海默病中,海马体是首先受到损伤的区域(海马体会肿大):表现症状为记忆力衰退以及方向知觉的丧失。大脑缺氧(缺氧症)以及脑炎等也可导致海马损伤。在动物解剖中,海马体属于脑的演化过程中最古老的一部分。来源于原皮质的海马体在灵长类以及海洋生物中的鲸类中尤为明显。虽然如此,与进化树上相对年轻的大脑皮层相比,灵长类动物尤其是人类的海马体在端脑中只占很小的比例。相对新皮质的发展,海马体的增长在灵长类动物中的重要作用是使得其脑容量显著增长。 基于现在我们对于记忆形成机制的认识,广为接受的模型将记忆过程分为三个不同阶段: 编码:获得资讯并加以处理和组合。 储存:将组合整理过的资讯做永久纪录 检索:将被储存的资讯取出,回应一些暗示和事件。 记忆系统的三个阶段就像一条流水线一样,将进入的刺激资讯流转变为能够被存储和回忆的有意义模式。这个三阶段模型最早是由理查德·阿特金森(Richard Atkinson)和理查德·谢弗林(Richard Shiffrin)于1968年提出的,该模型在一定的加工和修改后被广泛接受。 按照新的记忆产生的时间长短,目前将记忆分为工作记忆(以前也称之为短期记忆)和长期记忆。 按照记忆的内容特性,研究者又将其分为两类,分别是外显记忆和内隐记忆。外显记忆是指可以意识到的过往经历,有时也被称为陈述性记忆。内隐记忆包括我们的运动能力,行为习惯这一类,是我们没有意识,但又确实是因过往经验影响而产生的。一般看法是,能长期存在的外显记忆是被存储在大脑皮层中的,不过其产生却绝对依赖脑中一个被称为海马体的结构。然而关于记忆存储位置的相关研究仍在进行中,目前还缺乏强有力的直接证据。但是有些类型的记忆是在其他位置被储存的-如运动模式,行走,游泳和骑自行车-它们可以被储存在小脑或脊髓。 感官记忆 ↓ 工作记忆 (短期记忆) ↓ 长期记忆 ↙ ↘ 内隐记忆 外显记忆 (程序记忆) (可述记忆) ↙ ↘ 语义记忆 情节记忆 这个图表通过箭头方向展示了记忆从感官记忆流向工作记忆,再从工作记忆流向长期记忆的过程。同时,长期记忆被分为内隐记忆(程序记忆)和外显记忆(可述记忆),其中外显记忆进一步被细分为 语义记忆 和 情节记忆。希望这个简化的表示方法能帮助您更好地理解和展示记忆系统的结构。 记忆的过程 下面有四种记忆过程: 学习/编码 = 吸收新的资讯进入长期记忆 储存 = 通过有规律的读取达到储存重要资讯的目的 回忆/读取 = 整理记忆的内容 遗忘 = 记忆资讯的丢失或是因资讯间的竞争而导致的读取失败 与记忆有关的解剖结构 与语言不同,脑部并没有特定局限的记忆中心区域专司记忆一职。但人们还是能够找到与记忆有关的解剖结构。 寻找记忆的痕迹(engram),其与记忆相关的几个主要的大脑组织是: 小脑,主要负责程序性记忆,这种记忆主要靠后天的重复,以及制约 (古典制约、操作制约) 相关之记忆。 纹状体,是前脑的一个复杂结构,是形成制约的基础。 大脑皮层,负责感觉记忆以及感觉间的关联记忆。 杏仁核,负责情绪记忆。 海马回,负责工作记忆和长期记忆。 神经元 神经元(英语:neuron)又名神经细胞(nerve cell),是组成神经系统结构和执行神经功能活动的一大类高度分化细胞,由胞体和胞突(树突和轴突)组成,属神经组织的基本结构和功能单位。神经元大致分为:感觉(传入)神经元,运动(传出)神经元、联络(中间)神经元三类。...

February 16, 2024 · 2 分钟 · 392 字 · 熊鑫伟,我

心流状态的魔力:专注与幸福感提升指南

同之前写的 GTD 和 四象限法则实践 说的那样,我比较缺少一种专注度,以及效率。想起来最开始有过进入心流状态的体验,那就是在打游戏的时候,或者看小说的时候一旦沉迷在游戏或者小说中,那么就会进入到心流的状态,会忘记时间。 如果你曾经如此专注于一项任务,以至于忘记了时间,那么你就经历了心流。但是处于心流状态不仅仅是让一天过得更快。它对你的生活、健康、生产力和幸福感有积极的影响。 要理解是什么让心流状态如此神奇,你需要理解它是什么以及它是如何工作的。了解更多关于心流背后的科学以及如何忘乎所以。 定义 心流理论(英语:Flow),亦译神驰、沉浸,是1975年由奇克森特米哈伊·米哈伊所提出的心理学概念。其描述人类一种完全沉浸(专注)和完全投入于活动本身的心智状态的振奋状态。在适当的条件下,心流状态可以变成催眠或欣喜若狂的恍惚状态。一些科学家已将心流本身理解为一种恍惚。 触发心流 明白了心流是如何产生的,有助于我们进入到心流状态。 米哈里·契克森认为,使心流发生的活动有以下特点: 我们倾向去从事的活动 我们会专注一致的活动 注意力投入在当前活动 动作与意识的合并 反省自我意识的丧失 有清楚目标的活动 有立即回馈的活动 我们对环境与动作有主控感–挑战与技能之间达成平衡 在从事活动时我们的忧虑感消失 主观的时间感改变–例如可以从事很长的时间而不感觉时间的消逝 以上项目不必同时全部存在才能使心流产生。但米哈里·契克森也提出一些方式使得一群人可以在一起工作使得每个个体都能达到心流的状态。这种工作群体的特点包括了: 创意的空间排列 游戏场的设计 平行而有组织的聚焦 目标群组聚焦 现存某项工作的改善(原型化) 以视觉化增进效能 参与者的差别是随机的 在心流中,你会觉得你可以永远做你正在做的事情。没有一种体验会导致心流。它可能发生在你阅读、写作、绘画、跑步或园艺时。 虽然没有一个活动能保证创造心流,但人们经历的心流状态有一些共同的特征。并非所有这些都总是存在的。但是,存在的因素越多,你就越有可能体验到心流。 心流状态的特征 当人们处于心流状态,可能会出现四个特征: 自动运转:事情做起来顺手不需多加思考,身体自动发挥。 时间流逝:处于心流状态中,不会在意时间的流逝,直到回到正常状态后,才会注意到已经过了多长时间。 不觉他物:专注投入事物之中,导致不易察觉像是饥饿、手机震动等感觉与刺激。 感到愉悦:在事情完成后,感受到愉悦、满足、成就感等正向情绪。 心流状态是一种被一项有趣的任务所吸引的体验,你的注意力完全被它吸引住了,你通常会失去时间感、自我意识以及任何与手头任务无关的东西。 心流状态的十大特征 注意焦点(Attentional focus) 在心流中,无论你在做什么,你都会全神贯注。你没有在想别的事情。必须有人工作来吸引你的注意力,或者打断你手头的工作。 挑战(Challenge) 活动必须有适当的难度。太简单了,而且不够吸引人。太有挑战性了,你根本无法进入。 目标导向(Goal-oriented) 要激发心流,活动必须有一定的指向性,不一定要宏大–你可以玩电子游戏或给图片上色。但是为了引导你的注意力,你必须有一些东西来引导你的注意力。 反馈(Feedback) 在活动中有能量的交换。有没有花几个小时在电脑或手机上玩那些益智游戏?他们全神贯注是因为他们能给你给予即时的反馈。你赢了一场比赛,完成了一关,或者赢得了一颗星星–这会让你继续玩下去,因为你觉得自己做得很好。 个人控制(Personal control) 如果你觉得活动或情况超出了你的控制,你将很难进入心流状态。作为一个旁观者,很难拥有心流状态所特有的精神专注和参与感。 永恒(Timelessness)...

February 13, 2024 · 1 分钟 · 127 字 · 熊鑫伟,我

GTD与四象限法则实践

GTD 和 四象限法则实践 过年的时间,有很多时候都在思考,一年的成长中,除去很多的优点,还发现了很多的缺点,其中总结缺点有下面的一些: 不会主动的去思考所做事情的优先级 自己更擅长主动解决事情 不够专注去完成某一个TODO 每次当我回顾自己所做的事情时,虽然数量众多,但总感觉缺少清晰的判断和深思熟虑。有时候,我可能会因为某个任务在那一刻看起来很重要,或者出于条件反射而去做,而没有真正地评估其优先级或重要性。这种做法不仅影响了我的工作效率,也让我错过了深入思考和策划的机会,这是我在未来一年中需要改进的地方。 我之前看过一些关于时间管理的书籍,甚至是 GTD。若你是效率控,必定久仰GTD大名,它算的上时间管理界的逼格代表。但是复杂难懂,不好上手。 这篇文章,我将会从之前学过的 GTD 知识,以及自己的部分实践和思考,总结出来的 GTD 模式,自己的时间管理方法,以及四象限。 GTD 是什么 既然想用GTD,那得知道它有何用。时间管理、提高效率,一提GTD就这两词。显然,这两词太抽象。多数人认为,GTD能充分利用一天时间做更多事,部分人认为GTD能治疗拖延症,更有人把GTD作为提醒器,对抗遗忘。 这些确为GTD所及之事,但非核心卖点。Kindle能压泡面,但便携阅读和护眼才是它的核心卖点。用就要用它的核心卖点,否则会显得本末倒置。没有人为了压泡面买Kindle,不是吗? GTD的核心卖点是节省脑力。有些人事多人忙,一天还没过完,精力已耗竭,打不起精神完成更多工作。David Allen 认为用大脑来记忆是浪费,完全可用第三方纸笔或软件等代替,待需处理此事之时,再进入大脑,而非一直盘踞在脑海中。心无旁骛能提高当下效率,还可节省精力,应付更多工作。 由此可见,GTD的前提是“你很忙”。假如你不忙,只是时间利用率不高,爱拖延,爱磨蹭,GTD不是不能用,但也要明白,它并不是为这种情况设计的。 GTD的作用原理 做任何事,都遵循客观的五个步骤:收集、判断、整理、复查、执行。以「家中请客设宴」为例: 收集:询问有几位客人赴约,分别喜欢吃什么。 判断:判断客人的喜好,哪些能满足,哪些不能满足,需要多少份食物。 整理:记下准备做的菜,准备买的食材。 复查:检查还有何遗漏之处。 执行:设宴之日,按预想好的操作即可。 GTD理论认为,人的精力有限,一旦脑力跟不上,就会混乱,可通过合理分配脑力以优化五个步骤:前四步准备充分,第五步傻瓜执行。 GTD则要求忘记前因后果,因为早已用纸笔或软件记录。 GTD理论认为,前期充分准备,执行便可心无旁骛,更轻松,也更专注,提高效率是自然之事。 五个步骤的优化方法 🚧 通过举例生入库来演示一下整个过程,整个流程非常的程序化,备受程序员喜欢哈哈哈 收集:设置生肉库 你需要一个生肉库来代替大脑记忆,将所有待处理的信息记录其中。其他GTD的文章,会称之为工作篮、收件箱等。但我觉得生肉库更形象,因为收集的全是原始信息,像没字幕的原版片,是生肉,待加工。 五步骤中的第一步:收集 生肉库可实体可虚拟。存放促销单的盒子、记事本,这是实体生肉库。手机上的APP、电脑文件夹、邮件收件箱等,这是虚拟生肉库。根据实际情况,可设置1-2个生肉库,勿多勿少,适用最好。 不仅仅把“准备做的事”记入生肉库,而是记入一切待处理的信息。这和其他待办清单有很大区别。 收集阶段如何避免崩坏 所有信息统统放入生肉库,一个不落。如果生肉库中只是部分信息,你就无法完全依赖它,你知道他不完整,还需要用脑记。如此一来,变成两头兼顾,搞得更为费脑而不是省脑。 领导让你采购5样商品,你在清单上记了3样。你无法对照清单买完就走,只能在超市里拼命回想。当你一旦想起,会直奔货架,若再掏出纸笔完善购物清单,明显多此一举。这就是为什么有些人用GTD觉得更麻烦,而不是更轻松。 不要超过2秒。根据我的实践经验,单条收集时间超过2秒,代表收集方法太麻烦,麻烦的事定不能长久。请避免以下三种情况: 不合理的生肉库:扫码送红包的促销单,放盒子里即可,不用拍成照片存印象笔记。 做多余的事:常见于用APP做生肉库。周三14点开会,如此记录即可。不用设定时间提醒,分类,标注重点等等。这是后面的事,不要在收集阶段做。 执念:常见于手账控。记个信息要画花,要贴纸,要换颜色,不然对不起美美的手账。热情一过就懒的搞。 定期清空生肉库。 注意是清空不是清理。生肉库必须定期空无一物,我为了避免堆积每日清空。但这的清空不代表完成,而是把“生肉”从生肉库里移出,进入下一环节。 判断:为“生肉”打标签 收集的后一步是判断。所谓判断,是指对“生肉”作定性。定性的方法是依次提问,再根据答案给“生肉”打标签。 收集阶段要求不超过2秒,原始信息基本一扫而过。为了正确判断,有必要再次阅读,看清楚后进入Q2。 Q1: 这是什么?...

February 12, 2024 · 3 分钟 · 557 字 · 熊鑫伟,我

Go 源码里的这些 go: 指令 && go 自动化工具

Go 源码里的这些 go: 指令 && go 自动化工具 开发人员有很强的自动化重复性任务的倾向,这也适用于编写代码。 样板代码可能包括设置基本文件结构、初始化变量、定义函数或导入库或模块等操作。 在某些情况下,包提供样板代码作为开发人员构建的起点,通常是在代码行为配置之后生成。 尽管样板代码对于应用程序功能可能是必要的和有价值的,但它也可能是浪费和冗余的。出于这个原因,有许多工具可以最小化样板代码。 go generate 是Go编程语言的命令行工具,允许自动生成代码。您可以使用 go generate 为您的项目生成易于修改的特定代码,使该工具在减少样板文件方面功能强大。 go generate 这个命令通常用于在编译前自动生成代码。它可以用来创建那些重复性高或者模式化的代码,从而节省时间和减少错误。想想看,这在哪些情况下会特别有用呢?🤔 比如说下面有一个简单的例子,在代码中: //go:generate echo Hello, cubxxw ! 在这个例子中,当我们运行 go generate 命令时,它将执行注释中指定的命令。在这个例子里,它会打印出 “Hello, cubxxw !"。 因此,元编程(metaprogramming)的主题是一个开发和研究的热门领域,可以追溯到 1960 年代的 Lisp。元编程中一个特别有用的领域是代码生成(code-generation)。支持宏的语言内置了此功能;其他语言扩展了现有功能以支持这一点。 go:generate 在我们之前的讨论中,我们已经介绍了 “Go Generate” 命令的基础知识。现在,我们将深入探讨一些更具体的用例和实践技巧。🚀 让我们从一些术语开始。go generate 工作方式主要由三个参与者之间协调进行的: Generator:是由 go generate 调用的程序或脚本。在任何给定的项目中,可以调用多个生成器,可以多次调用单个生成器等。 Magic comments:是 .go 文件中以特殊方式格式化的注释,用于指定调用哪个生成器以及如何调用。任何以文本 //go:generate 行开头的注释都是合法的。 go generate : 是 Go 工具,它读取 Go 源文件、查找和解析 magic comments 并运行指定的生成器。 需要强调的是,以上是 Go 为代码生成提供的自动化的全部范围。对于其他任何事情,开发人员可以自由使用适合他们的任何工作流程。例如,go generate 应该始终由开发人员手动运行; 它永远不会自动调用(比如不会作为 go build 的一部分)。此外,由于我们通常使用 Go 将二进制文件发送给用户或执行环境,因此很容易理解 go generate 仅在开发期间运行(可能就在运行 go build 之前);Go 程序的用户不会知道哪部分代码是生成的以及如何生成的。(实际上,很多时候会在生成的文件开头加上注释,这是生成的,请别手动修改。)...

January 25, 2024 · 5 分钟 · 973 字 · 熊鑫伟,我