做了 10 年开源项目,我总结出这 10 个经验
来源:http://www.tudoupe.com时间:2022-03-15
米卡列夫,史蒂夫
桑博迪是个翻译
策划 | 凌敏
本文由PiderFoot Open Source项目的发明人创建, 提供了他从中吸取的十项教训。 InfoQ 翻译并张贴在普通话中。
在过去十年中,我创造了一个开放的信息来源。OSINT)工具,叫做蜘蛛脚印这是一个OSNT计划, 自动收集和分析关于攻击管理和威胁的信息。Python负责创建它。Linux、*BSD和Windows电脑就是这样。功能方面,我们能够获得关于目标的大量信息 因为蜘蛛脚印。例如,网站子域、电子邮件地址、网络服务器版本等。此外,它还有一个方便用户的图形用户界面。
斯派德·福特在过去十年中占用了我大部分时间。 我几乎每天早上和深夜都工作,经常和妻子、孩子和朋友聊天。 这让我非常高兴,但也使我更加严重。
现在,我认为现在是回顾、反思和总结我们多年来所汲取的所有教训的时候了,我这样做是出于我个人的利益,希望我能够帮助那些在自己的开放源码项目中有着类似经验的个人。
迄今为止的旅程
在 2005 年,我初步准备了笔记本你可以用它来学习C#。在我的首次发布后,Oneb版本已经存在七年了。这个故事是我们对2011年埃及抗议的特别报导的一部分。我开始在皮顿重写斯派德福特所以,当你们考虑这个期限的时候,SpiderFoot(至少作为一个名称和概念)已经存在了大约20年。
C# # 版本的图像如下:

以下是PidderFoot的最新版本,Python网络化的CLI工具:

那么,为什么在Python的初始发布和重写版本之间有7年的延迟?
原因在于,我的第一个计划是学习如何在C#中创造有用的工具。并将其推广出去,我做到了。但我没有任何长期的野心 或扩张计划只是“完成了”。那时对我来说是有道理的因为那时候,多年来我做了很多令人着迷的工程工作所以在我闲暇的闲暇时间里,我看不到 发展的东西。
在那些年里,我没有意识到的是,这种小的一次性使用工具非常受欢迎。Opid Foot为出版物和培训课程作出了贡献。每周下载大约500次。虽然不算多,尽管数据来源已经消失,但并非无关紧要。这一工具的一些功能不再发挥作用。
在我正式就业期间担任不同管理职位多年之后,终于想起了当蜘蛛脚踏实地的感觉在我看来,这没什么不对劲现在回忆起来,我浪费了学习的潜力 以新的方式。直到会议, PPT和电子邮件 占用了我所有的时间。
它让我思考了用我的空闲时间我能做些什么。我知道我想学习Python, 进行数据收集和分析, 并在安全方面有所作为, 因为我已经在这个领域工作了20多年。
这样来看,Opid Foot仍然符合上述所有标准。因此,到2011年底,我又另起炉灶,有很多Python技术。然后,他向GitHub的仓库提交文件。行政部门在2013年5月表示,要到年底才能这样做。Opid Foot 2. Verision 0 被释放。
事实上,我花了大约一年的时间才提交它,然后我感到有信心出版新版本并公布。这是我学到的东西之一。
在自首次提交以来的十年中,我一直在摸索,除了熟悉Python之外SpiederFoot在博客上使用“spiderFoot”一词是因为许多模块(在PidarFoot的文字中)所致。它是在收集或处理职业安全和不结盟组织数据中使用的大约200个部件之一。许多社区(特别是学校)对该项目作出了重大贡献。最后,它是用蜘蛛脚踏板建造的。做一个有利可图的生意
这些是我学到的十项教训 我希望对你们有用
例如:当涉及到开放源码软件时, 你永远不知道你会得到什么。
开发开放源码软件的过程不仅仅是简单地将代码放在那里供其他人使用。 当然,这是它背后的过程,使用程序的个人可以免费(如果有用的话)获取一些东西。 以下是我从“蜘蛛脚踏”项目收到的回复清单:
我听到用户提到蜘蛛福特多年来一直在帮助他们,并向我表达他的谢意。这可能是最个人和最有活力的价值。
现在我是一个编程员和首席工程师这比我们刚开始的时候好多了自此以后,诸如学校等民众投入了大量资源。这帮助我的日常工作。作为经理,他和工程师一起工作将斯派德·福特的能力和专长 运用到我的日常工作中
蜘蛛脚项目 真正帮助了我的工作和演示。
这是一个很好的方式,我与非常聪明的人见面和联系, 在许多情况下,我可以立即获得信用, 即使人们不知道我是谁,但了解蜘蛛脚印。
它使我目光睁开,看到斯派德福特HX提出的商业前景,并埋下了这一机会的种子。
持续和长期的贡献提高了产品质量,扩大了上述有利影响。
此外,PidarFoot还提供各种私人或间接优势,如加强自我调节、加强时间管理、确定改善能源和身体健康的方法等等。
经验二 坚持长途跋涉
一个项目之所以成功,是因为它可以经受时间的考验,并且优于其他项目。如果你一直致力于开发该项目,那么它将得到维护和使用,而不是像表演应用一样被淘汰。
没有人会敦促你每天、每周或每月提交申请,但会努力确保您的方案在依赖性发生变化时继续运行。 还应关注所报告的问题,如果问题范围大,需要小心处理。
经验三:交付(定期)
过去十年来,我一直很后悔比如,我应该花更多的钱 在单位测试, 代码文件, 和代码质量 从一开始。但是我也明白,如果我让斯派德福特为公众服务理解和认识某些东西需要很长时间。使它成为一个体面的产品。那么,成千上万的人没有使用蜘蛛脚踏板。他们将无法增加其价值。因为在这期间,我可能会伤心或生气而完全放弃交付。
回想第二堂课。 别担心, 你将有更多的时间来完善它。 一周只有几天的时间, 你就可以安顿下来, 在保持产品运行的同时, 建造一些奇妙的东西。 您必须选择确保交付, 而不是不时地去追求完美 。
建立广泛和开放的目标(经验四)
我的目标是学习Python,但这只是我在“蜘蛛脚踏板”上工作的一个动机。我对“蜘蛛脚踏板”的更大和长期目标如下:
创造出一种我引以为豪的产品 将我的想法集中在我认为我走在正确轨道上的领域
随着我的职业生涯向管理层迈进,我将继续培养和保留一批充满活力的人才。
以前在开发成功的开放源码产品方面有经验,在我的业务中,这种产品被高度视为首选的OSINT工具。
成功和有区别的经营活动是建立在这一基础上的。
必须指出,这些目标不是静态的,而是范围广广和开放的。 我将永远无法实现其中任何目标,因为它们没有结束状态,而且可能逐年增加。
比如,今年,我可能会重新做前端 与反应。我不知道我该怎么办, 但我想运行一个新的测试框架 来完善我的能力。下一年,切换到一个新的后端数据库 。另外,也许我应该加倍 蜘蛛脚趾HX的MTT或在今年取得其他商业成就。
它们是指导原则,而不是僵硬的目标,因此,我将继续向前迈进,并受鼓舞每天在SpiederFoot上工作。
只要你足够关心,你就会没时间了
当人们发现我有一个妻子, 他们震惊。三个孩子,有一份全职工作,当斯派德·福特·HX作为兼职经营时"你如何抽出时间?" 通常是第一次调查当然,我想相信自己是高度专注的(但我不是)或许是个很棒的工程师(我不是),但我相信我可以把它分为以下主要问题:
我经常计划我的时间,这样我就不会被打扰。例如,无论是在早上还是晚上,都取决于我一岁的孩子喜欢的睡眠模式。
我很少看电视(每周可能几小时)。SpiederFoot(见经验七)仅通过社交媒体进行推广。这是我在黑客新闻上见过最讨厌的事但除了我写的那篇作品之外我不会在文章上说。这会减少我浪费的时间
当我因为附近没有笔记本而无法编程时, 我研究新的数据来源, 学习新的Python技术, 检查这个领域其他工具的进展, 或者回复电子邮件等等。
付出了很大努力以后,现在我习惯在蜘蛛脚踏上工作。这就是我正在做的, 我不能忽视它太久,否则我会开始怀疑有什么不对劲。
第六经验:没有人关心你的单位测试覆盖率。
换句话说,所有消费者真正关心的是你的产品是否能做它所声称的事情并做得好。
不过现实情况是,没有人(或只是少数人)因为缺少单位测试或代码混乱而跳过您的项目。人们关心的是,这些项目能正常运作吗?是否能顺利进行,是否有文档记录,贵国是否可无限期保留工作职位(例二和例三)?而如何实现这一点,真的取决于你。
所以,不要担心代码质量 测试范围什么的不管怎么说,许多开放源码项目开发商不是专业软件工程师。许多人因为害怕受到惩罚而遭到惩罚。他们不愿发表他们认为是“贫穷守则”的文章。这实在是太遗憾了。代码可以重构!测试可以添加!您甚至可以用新的编程语言完全重写代码 。只要你想。
你要做的就是想出值得的东西当众人揭穿你的缺陷的时候,你要谦虚地去接受,并且从中吸取教训。{fn黑体fs22bord1shad03aHBE4aH00fscx67fscy662cHFF3cH808080}什么 {fn黑体fs22bord1shad03aHBE4aH00fscx67fscy662cHFF3cH808080}斯派德·福特的一些代码 {fn黑体fs22bord1shad03aHBE4aH00fscx67fscy662cHFF3cH808080}什么 {fn黑体fs22bord1shad03aHBE4aH00fscx67fscy662cHFF3cH808080}什么然而,在过去十年中,我想我只看到过两个抱怨 关于这个糟糕的编码。谁会在乎呢?
请记住,这是你们的计划,你们有时间加以改进(见经验2)。
市场营销没什么好尴尬的
在您的方案取得了预期结果并在合理的时间里成功运作后,人们将开始为您做广告。但是,你必须在早期阶段投资于某些营销,而早期反馈将对您非常有益。
您必须了解您的用户所在位置和去向( Twitter、 LinkedIn、 TikTok 等 ) 。然后联系他们那里。向您所在地区的重要人士(例如,通讯员和博客作者)求助。他们将受益于您的软件。给他们一个机会,你会惊讶的他们将随时接受开放源码开发商。因为他们感谢你花时间帮助别人
专家咨询意见:除了提供新闻外,为您的项目创建美丽的README。 md, 界定其功能、操作方法、突出基本信息以及建立一个独立网站的选择。
与你的上司澄清
关于在正常工作时间以外开展的活动中保护知识产权的规则和条例,各国和雇主之间可能存在差异。如今,大多数技术和技术友好型企业应当有一个批准附带倡议的程序。我不是律师,然而,你必须确保在就职前的所作所为和就职后所作的所为都得到提及。
在你开始为公司工作之前,在你开始项目之前,解决知识产权问题要容易得多。 为了保证近期的安全,我甚至已经阐述了我最终希望工作但目前还不存在的议题。
如果您加入的公司在工作时间内对开源项目不友好, 您应该评估这个职位是否值得您考虑。 这是您在签署合同前可以做出的决定 。
经验九:培养社区
这也许是我自了解其意义以来所收集的最宝贵经验,但它确实需要花费大量精力。 事实上,我从一开始就提供了文件,但是没有做更多的工作,我觉得这已经足够了。 今天的情况可能并非如此。
我所说的“文化”是指为项目使用者创造论坛和工具, 使他们能够学习、接触他人、在需要时获得/帮助。
这里有一些例子:
制作论文、培训录像、博文等。
倾听身份识别请求并采取行动(只要这些请求符合你的目标和愿景)。
建立一个不和谐或黑暗的渠道,让个人可以提出问题和帮助他人。
在会议上发表演讲。
经验X:保持积极的态度。
这应该是第一次经历,因为它是一切的基础,但我最后说,因为我希望这是你从这篇论文中获得的最新一点。
在开始个人软件开发项目时你必须马上放弃 有一天会完成的观念即使你相信它会在某个时候完成然而,当依赖关系发生变化时,还是你想从头做点什么?用户碰到一些问题,我不知道我该怎么办, 但如果我不知道我该怎么办,我不会这样做。甚至所谓的"竞争"倡议..它会给你带来很多压力
一旦我同意 继续这一探索,便永远不会结束,除非我自愿放弃它,我的许多烦恼和紧迫感将会消散。现在,我几乎从来不试图在半夜添加新的特征。我不知道我能否实现这个目标, 或者说越来越多的未决问题或要求是否会给我带来压力。也许测试范围没有增加是不幸的
没有任何规定要求你将每一个要求结合起来,回答每一个问题,或者做你不想做的事,不管你身处什么原因。强迫自己这样做只会使你失去激情,甚至完全破坏项目!
所以,"你做你必须做的, 你必须做你必须做的" 你必须质疑自己。是出于自己的意愿,还是你认为你必须这么做?如果是后一种情况,你可以先放一放,然后去做别的事情,例如,改变特派团的结构。如果我们不这样做,就会增加积压。过一个星期再完成,而不必抱有负罪感。
当然,除了上面列举的十种经验之外,我在过去几年中还学到了许多关于皮顿和其他技能的知识。 当我开始下一个项目时,我将利用这些教训,我希望你们也会这样做。
作者介绍:
https://medium.com/@micallst/lessons-learned-from-my-10-year-open-source-project-4a4c8c2b4f64
上一篇:美、日连续2年发布RPA报告,为何RPA上升至国家战略高度?
下一篇:没有了
相关新闻
- 2022-03-15 美、日连续2年发布RPA报告,为何
- 2022-03-15 苹果不送充电头省下 413 亿元|Re
- 2022-03-15 分析新出现的BlackCat勒索软件
- 2022-03-15 骁龙855神了 Surface Duo成功升级Win1
- 2022-03-15 Atlus新作《灵魂骇客2》中文PV2公开
- 2022-03-15 谷歌 Play 游戏 PC 版今日开测:Win
- 2022-03-14 魅族19岁了!这8款经典产品你还记
- 2022-03-14 美国最大农田主比尔・盖茨:微软
- 2022-03-14 Windows下使用Docker容器的踩坑记录
- 2022-03-14 拼多多千元笔记本:5帧就叫能玩
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
