duckduckgo 国内

DuckDuckGo是一个以将隐私放在第一位的用户而闻名的搜索引擎。 因此,当我们去年通过30亿次年度搜索时,我们知道在不牺牲用户隐私的前提下继续为用户提供服务至关重要。 我们意识到,关键是开源。

首先,我们创建了一个API 。 然后,我们启动了Instant Answers ,任何人都可以加入我们以改善搜索结果。 即时答案出现在自然搜索结果的上方,我们现在有来自世界各地的数百人在为此做出贡献。 自从大约四年前我们的第一个社区承诺以来,我们已经学到了很多有关使开源社区蓬勃发展的强大经验。 他们贡献了数百个数据源和数千个拉取请求,在撰写本文时,它们总计约有800个即时答案 ,能够回答数百万次搜索。

我们当然还有很长的路要走,但是我们已经了解到,建立一个成功的开源社区(如任何活跃的社区)都可以为个人提供价值。 了解如何调适他们的动机,找到使这些动机与您的目标保持一致的方法,并努力消除障碍。

社区总是归结于人们。 DuckDuckGo在帮助他们方面投入的资金越多,我们得到的回报也就越多。

顺其自然

社区一直是DuckDuckGo使命的一部分,甚至从Gabriel(我们的创始人)在他位于DuckDuckGo的地下室开始的最早日子开始,就有关Hacker News和IRC寻求帮助和反馈。 人们建议他们认为应该排名第一(或很高)的主题的网站。 为了利用这些宝贵的见解,我们决定为用户提供一种建立自己的搜索结果的方式。 因此,我们启动了DuckDuckHack ,其想法是任何人都可以通过使用自己喜欢的网站和数据源来改善搜索结果。

第一台DuckDuckGo Quack&Hack,于2012年在费城总部成立

诚然,第一个即时答案是复活节彩蛋比什么都重要。 然而,很快人们就开始使用搜索引擎来使有用的数据源更易于访问。 随着时间的推移,尽管API模棱两可,但由于我们的贡献,我们的搜索结果逐渐变得更好。

我们学习了如何从自然发生的事情中获得灵感。 人们自然会在哪里提供贡献? 人们自然想做出什么样的贡献?

第1课:深入了解您的用户已经在哪里进行贡献。

对您的社区有价值

随着人们开始做出贡献,我们意识到人们之所以做出贡献是出于多种原因:

  • 创建他们个人想要的功能
  • 为了获得他们正在从事的另一个项目的可见性
  • 建立专业经验和证书
  • 与全世界的聪明人一起工作
  • 成为组织整体使命的一部分

在做出有关API的决策时,我们在做出重要决策时会牢记这些动机,以确保它们仍然有意义。

这些动机影响了:

  • 我们在贡献和想法方面有多灵活
  • 我们接受什么样的数据源,以及我们如何相信它们
  • 我们为社区建立的沟通工具和流程

我们要确保我们不会无意间做出会削弱动力的改变,并尽我们最大的努力来激发动力。

第2课:观察人们为什么做出贡献,并随着社区的发展而扩大这些动机。

开源也应为您的公司提供帮助

早期,我们只有3个人管理一个每天有100万个查询的搜索引擎。 它使我们非常忙碌,并且随着社区的发展,我们发现很难跟上拉取请求,问题和质量文档。 毕竟,开源社区需要所有权,领导才能和积极的管理。

我们的使命过去是,现在是与十亿美元的搜索巨头竞争,但我们希望以自己的方式,自己的方法和做法来竞争。 同时,我们意识到,最令人愉快的即时答案不会来自公司内部。 人类的知识远远超出了最好的爬虫可能发现的范围。

那就是我们拥有灯泡时刻的时候:社区是搜索引擎成功的关键! 因此,我们将贡献者的需求放在公司的首要任务之上,并看到贡献的回报有所增加。

第3课:开源社区需要关注和投入。 确保您的社区是真正的优先事项,并与公司的目标保持一致。

为您的社区创建家园

最初,我们的协作渠道无处不在。 我们有一个Uservoice创意板,一个Zoho论坛,一个单独的docs网站,用于代码的GitHub ...我们需要尽可能简化社区的存在,并为每个任务创建清晰的路径。 为了使社区成员更轻松,应该在信息和协作的中心位置 。 它应该帮助人们决定在哪里介入,如何做出贡献以及如何进行交流。

第4课:集中化协作渠道,文档和导航。

印度高知会面小组于2016年参加第二届全球Quack&Hack

易于启动

听起来可能很荒谬,但是我们最初的开发环境花了两个小时才能建立。 它需要在本地安装自定义工具及其所有依赖项。然后,我们切换到具有随时可用环境的cloud-IDE,现在花费了不到5分钟的时间。 结果? 每月独特贡献者数量的两倍以上。

关于开源的最令人生畏的部分是赶上速度。 尽一切可能降低准入门槛。

第5课:让刚接触新手的人尽可能地简化后勤工作。

轻松取胜

开源贡献者的最佳来源是人谁不熟悉的开源。 许多开发人员正在寻找参与的第一个机会-他们认为可以产生影响的地方。

我们最初遇到的一个问题是,很难完成一个人的第一个“ 即时答案” 。 除了学习新技术外,还需要考虑很多事情,包括构想,数据源和设计。 我们在开源项目中进行的最好的投资之一就是可以轻松地向我们的实时搜索引擎添加个人“ Hello World”复活节彩蛋。 这使得开始编码并专注于学习系统变得容易。 当我们这样做时,我们被初次拉取请求所淹没! 事实证明,看到代码在短短一个小时后即可运行,这是一个令人难以置信的动力。

另一个较早的问题是,如果没有员工使用新代码运行开发服务器,那么贡献者就无法预览自己的工作。 可以想象,这使开发变得不那么令人兴奋。 为了解决这个问题,我们构建了一个命令行工具,该工具允许任何人启动模拟DuckDuckGo搜索引擎的本地服务器,从而使贡献者可以立即以视觉方式预览其工作。 这大大提高了开发即时答案的速度,并使它变得更加有趣。

第六课:花时间建立即时的满足感。 使贡献者尽可能轻松地关闭一个简单的循环。

让人们在附近

最后一步是帮助贡献者保持参与。

我们了解到,人们在感到他人也参与的同时也保持参与。 当我们快速响应请求时,我们发现贡献者与我们的努力相匹配。 当我们积极参加论坛时,人们倾向于更多地使用它们并吸引我们更多。

如果不能直接合并贡献,请尝试通过将其工作应用到存储库中的其他位置来从每个贡献中获取尽可能多的价值。 无论如何,请确保积极地加强和认可每一项努力和贡献。

教训#7:与社区的每次互动都应该使人们想坚持下去。

向前进

尽管学习了这些课程,但我们当然不会声称拥有所有答案。 我们经常根据贡献者的反馈意见不断尝试新想法,并观察社区的React。 即使撰写本文,也有机会反思和考虑改进和前进的新方法,并希望也能帮助您的社区蓬勃发展。

顺便说一句,我们刚刚宣布了今年的FOSS捐赠的接受者,其中包括我们敬佩的各种开源项目。 它们都符合我们提高在线信任标准的主题,我们鼓励您支持他们的活动。

翻译自: https://opensource.com/business/16/5/duckduckgo

duckduckgo 国内

duckduckgo 国内_DuckDuckGo的Instant Answers项目的7课相关推荐

  1. IaaS开源软件之zstack(OSC中国开源项目的TOP30)

    IaaS开源软件之zstack(OSC中国开源项目的TOP30) 中国的开源软件事业正在蓬勃发展,开源的技术也成为了中国信息技术产业不可分割的一部分. 全新的开源IaaS国产开源软件-zstack曾于 ...

  2. 手动将web项目的class文件打成jar包,手动打jar包,java -cvf,IDE打包底层指令

    手动将web项目的class文件打成jar包. 我们的项目在使用IDE进行编译后,在项目的target目录下将会生成class文件.我们可以将class文件打成jar包. 使用的到命令为: 在targ ...

  3. SVN优化(一) SVN忽略maven项目的target

    SVN优化(一) SVN忽略maven项目的target 一 eclipse刚开始导入的项目: 二  解决办法 方式一: 在项目代码路径,如: F:\xyx\sl  鼠标右键,"Tortoi ...

  4. 管理多供应商物联网项目的10个关键步骤

    管理多供应商物联网项目的10个关键步骤 10 critical steps for managing a multi-vendor IoT project 一旦您决定创建一个成功的端到端物联网应用开发 ...

  5. 我是如何做软件测试项目的?

    最近公司刚完成了一个比较大的项目-单品页模块化,即使用现在比较流行的Twitter Bootstrap进行前端开发.说其大是因为工作量大,开发前期投入约80人日,包括前端开发及PHP开发,且不包括修复 ...

  6. [笔记]解决m2eclipse给项目添加maven依赖管理时可能不给项目的build path...

    为什么80%的码农都做不了架构师?>>>    解决办法:在m2eclipse提供的菜单里关闭项目的Maven依赖管理,然后再启动Maven的依赖管理!!! 检查:1)查看项目的.c ...

  7. 比尔盖茨是这样审查项目的 2

    比尔盖茨是这样审查项目的  2 --选自<软件随想录:程序员部落酋长Joel谈软件> [续]http://blog.csdn.net/turingbooks/archive/2009/12 ...

  8. 比尔盖茨是这样审查项目的 1

    比尔盖茨是这样审查项目的  1 --选自<软件随想录:程序员部落酋长Joel谈软件> 2006 年 6 月 16 日 ,星期五 早先, Excel[1] 有一种没有名字的很蹩脚的编程语言. ...

  9. 获取Gitlab项目的Token

    获取Gitlab项目的Token 1.打开所需要Token的项目的主页进入CI/CD setting Setting -> CI/CD -> Genneral pioelines sett ...

最新文章

  1. oracle job使用详解及job不运行的检查方法
  2. Matlab中fileter和conv的区别及卷积的计算方法
  3. OrchardHUN.TrainingDemo 学习记录(2)-Migration中,添加contentPart 和widget
  4. 大型网站技术架构:摘要与读书笔记
  5. HMM和CRF 条件随机场详解
  6. React 父组件(hooks)调用子组件(calss)方法
  7. lintcode最长回文子串(Manacher算法)
  8. 卡巴斯基公布7月中国地区20大恶意软件排行
  9. ssh免密码远程执行sudo命令
  10. mysql学生管理系统毕业设计_学生成绩管理系统设计与实现(MySQL)
  11. 表白生成器PHP源码,表白网页在线生成源码
  12. 国密(1) - 私钥Key文件( PEM格式)编解码方法
  13. JAVA购物网站商城系统毕业设计 开题报告
  14. 并集、交集、差集、补集的概念是什么?
  15. linux 设备类型misc,linux驱动开发之misc类设备介绍
  16. Normalized Mutual information
  17. t.zijieimg.com/v.douyin.com短网址在线缩短工具
  18. 机器学习--使用朴素贝叶斯进行垃圾邮件分类
  19. 基于Ardupilot/PX4固件,APM/PIXhawk硬件的VTOL垂直起降固定翼软硬件参数调试(第三篇)故障保护及问题诊断
  20. Adobe Dreamweaver 的基础知识

热门文章

  1. 深入理解mysql中case when流程控制语句
  2. dockerfile构建镜像
  3. 关于runc漏洞CVE-2019-5736的修复公告
  4. window搭建python环境
  5. spring boot入门学习---热部署
  6. 【小工匠聊Modbus】04-调试工具
  7. 关于BaseAdapter在listView中的使用
  8. mysql 插入数据乱码
  9. 虹软sdk 服务器运行 错误码94212 解决方案
  10. 应用vb编程_VB编程中的列表框综合应用讲解