开源项目贡献者_如何认识您的开源项目贡献者并发展您的社区

开源项目贡献者

by David Herron

大卫·赫伦(David Herron)

如何认识您的开源项目贡献者并发展您的社区 (How to recognize your open source project contributors and grow your community)

There’s a truism — if a community is not growing, it is slowly dying. How is your open source community doing? Is your contributor base stagnant, shrinking or growing? Are you like many open source community leaders with little idea of how to encourage new participation?

这是不言而喻的-如果社区没有成长,它就快要死了。 您的开源社区表现如何? 您的贡献者基础是否停滞,萎缩或增长? 您是否像许多开源社区领导者,对如何鼓励新参与者一无所知?

There are many opinions out there about growing the activity around an open source project. Successfully building an open source community-driven project is more than just throwing your code on Github and doing development in the open.

关于围绕开源项目开展活动的观点很多。 成功构建一个开源社区驱动的项目不只是将代码投放到Github上并进行公开开发。

Folks must know the project exists, that you’re open to contributions, what the contribution process is, coding practices in the project, and so on.

人们必须知道该项目存在,您愿意捐款,捐款过程是什么,项目中的编码实践等等。

One very visible tactic is to establish what some call “social proof”. That is, some kind of visual indicator that the project is currently receiving contributions.

一种非常明显的策略是建立所谓的“社会证明”。 也就是说,某种视觉指示器表明该项目当前正在收到捐款。

What does the word “community” mean in this context?

在这种情况下,“社区”一词是什么意思?

A “community” is a group of people coming together for a shared purpose or shared goal. The traditional meaning is the folks living in a town, and their shared goal is living peacefully together in that city.

“社区”是为了共同的目的或共同的目标而聚集在一起的一群人。 传统含义是居住在城镇中的人们,他们的共同目标是在该城市和平共处。

But communities can form for other purposes. For example, a Facebook group about electric motorcycles will host discussions of electric motorcycle brands, where to ride, how to maintain or customize the bikes, and so on. As the members get to know one another through discussing electric motorcycles, they form a community.

但是社区可以为其他目的而成立。 例如,一个有关电动摩托车的Facebook小组将主持有关电动摩托车品牌,骑乘地点,如何维护或定制自行车等的讨论。 当成员通过讨论电动摩托车而彼此了解时,他们便组成了一个社区。

Likewise, the folks maintaining an open source software project also form a community whose goal is improving that software. This article is focused on one aspect of growing community participation in an open source project — acknowledging those who contribute to the project.

同样,维护开源软件项目的人们也组成了一个社区,其目标是改进该软件。 本文的重点是增加社区对开放源代码项目的参与的一个方面-承认那些为该项目做出贡献的人。

Many project websites have “widgets” showing data like build status, whether the tests are passing, and so forth. What if another widget showed an indicator of contributors to the project? Namely:

许多项目网站都有“小部件”,显示诸如构建状态,测试是否通过等数据。 如果另一个小部件显示了该项目的参与者指标,该怎么办? 即:

  • A list of folks making code contributions — demonstrating to the public that this project has contributors

    贡献代码的人员列表-向公众证明该项目有贡献者
  • Giving kudos to contributors, so they can have bragging rights, and to feel appreciated

    向贡献者表示敬意,以便他们拥有吹牛的权利,并感到赞赏
  • Demonstrate there is communal ownership of the project

    证明该项目具有公共所有权
  • Demonstrate who has how much of a stake in the project

    演示谁在项目中拥有多少股份
  • Tell the public this project is not the hair-brained idea of one guy/gal who’s coding to suit their whims

    告诉公众这个项目不是一个正在编码以适应他们的异想天开的家伙/女孩的头脑

The existence of build status widgets and the like demonstrates a place for automatically-updated widgets giving data about open source projects. These widgets are geared for the public, and the purpose is reassuring potential users or contributors the project has an automated build and test system, and whether the current status is green.

构建状态窗口小部件等的存在展示了自动更新的窗口小部件的位置,这些小部件提供了有关开源项目的数据。 这些小部件是面向公众的,目的是向潜在用户或参与者保证该项目具有自动化的构建和测试系统,以及当前状态是否为绿色。

But that’s not the only kind of status system a project team may use. For team management purposes, a team might use a private dashboard giving the status of various aspects of their project. Commercial software projects regularly do this. Dashboards are maintained by the product manager to measure progress towards goals. This post is not talking about that kind of status system, but instead, one that is shown to the public.

但这不是项目团队可能使用的唯一状态系统。 为了团队管理的目的,团队可以使用私有仪表板来提供项目各个方面的状态。 商业软件项目通常会这样做。 仪表板由产品经理维护,以衡量实现目标的进度。 这篇文章不是在谈论那种状态系统,而是在向公众展示。

Isn’t it reassuring to know an open source project is team driven? That there is more than one set of eyeballs looking for bugs? That the direction is not the mad ravings of one person but driven by a collaborative process? If you’re looking to integrate an open source tool into the software driving your business, don’t you need to know the tool has a stable future?

知道一个开源项目是团队驱动的,这是否令人放心? 是否有超过一组的眼睛在寻找错误? 方向不是一个人疯狂的狂欢,而是一个协作过程的驱动? 如果您希望将开源工具集成到推动业务发展的软件中,您是否不需要知道该工具的未来稳定吗?

Let’s think first about a status widget that does some of the above. Then look at what some prominent open source projects are doing along these lines. Finally look for any existing tool of this nature.

让我们首先考虑一个状态窗口小部件,该窗口小部件可以完成上述操作。 然后看一下一些著名的开源项目在这些方面所做的事情。 最后寻找具有这种性质的任何现有工具。

集思广益 (Brainstorming)

Generally speaking, we’re talking about a “status widget” to install on project pages, like the source code repository. The widget must present some data about the contributors to the open source project, and implement as many of the ideas above as possible. Some possible attributes to show are:

一般而言,我们所说的是要在项目页面上安装的“状态小部件”,例如源代码存储库。 该小部件必须提供有关开源项目贡献者的一些数据,并实现上述尽可能多的想法。 一些可能显示的属性是:

  • Easily installed — insert an HTML widget into websites

    易于安装—将HTML小部件插入网站
  • Automatically retrieve data from Github/Gitlab/etc commits

    从Github / Gitlab / etc提交中自动检索数据
  • Identify the type, size, etc, of code changes in commits

    确定提交中的代码更改的类型,大小等
  • Present contributor data in several forms (customizability)

    以几种形式(可定制性)显示贡献者数据
  • Present useful information about each contributor

    提供有关每个贡献者的有用信息
  • Present useful information about total contributions

    提供有关总捐款的有用信息
  • Be utterly objective about listing contributors

    关于上市贡献者要绝对客观

一些开源项目采取的行动,以确认贡献者 (Actions by some Open Source projects to recognize contributors)

Since it’s useful to take a look around and see what others are doing, let’s look at certain high profile open source projects. What are they are doing in terms of recognizing contributors?

由于四处查看并查看其他人在做什么非常有用,因此让我们看一下某些知名的开源项目。 他们在认可贡献者方面正在做什么?

Vue.js — This leading UI framework for modern web applications has a “Contributors” widget that links over to a Github page which displays Vue.js code contribution data. The contributor's widget is somehow derived from an OpenCollective widget showing “backers” of the Vue.js project. This shows monetary contributors. The avatars do not necessarily correspond to code contributors on the project.

Vue.js —这个领先的现代Web应用程序UI框架具有“贡献者”小部件,该小部件链接到Github页面,该页面显示Vue.js代码贡献数据 。 贡献者的小部件以某种方式从OpenCollective小部件派生而来,该小部件显示了Vue.js项目的“支持者”。 这显示了货币贡献者。 化身不一定与项目上的代码贡献者相对应。

ReactJS — This leading UI framework for modern web applications has a well-developed Contributors area. But nowhere was there found a listing or recognition of contributors.

ReactJS —这个用于现代Web应用程序的领先的UI框架拥有一个完善的Contributors区域。 但是,找不到任何地方列出或认可贡献者。

Bootstrap — This leading responsive UI framework has a well developed Contributors area. On the main page of the repository are mentioned Mark Otto and Jacob Thornton as the Creators. Under “Copyright” it mentions ownership is split between Twitter and “The Bootstrap Authors”. The latter linking to the Github-generated list of contributors.

Bootstrap-这个领先的响应式UI框架具有完善的Contributors区域。 在存储库的主页上,提到了马克·奥托和雅各布·桑顿作为创作者。 在“版权”下,它提到所有权在Twitter和“ The Bootstrap Authors”之间分配。 后者链接到Github生成的贡献者列表。

Webpack — The project homepage shows several lists of monetary contributors. Each generated by OpenCollective. On the Webpack project repository, it’s clear there is a well-developed Contributors area. It also includes a link to a Medium publication. Here they publish information about how to contribute to the Webpack project. The only folks mentioned here are the Webpack Core Team. Again the lists of monetary contributors generated by OpenCollective.

Webpack —项目主页显示了一些货币捐助者列表。 每个由OpenCollective生成。 在Webpack项目存储库上 ,很明显有一个发达的Contributors区域。 它还包括指向Medium出版物的链接。 他们在这里发布有关如何为Webpack项目做出贡献的信息。 这里提到的唯一的人是Webpack核心团队。 再次由OpenCollective生成货币贡献者列表。

jQuery — This extremely popular library for DOM manipulation in web browsers has a very well developed contributors guideline. Nothing could be found listing the contributors.

jQuery —这个非常流行的Web浏览器中的DOM操作库具有非常完善的贡献者指南 。 没有列出列出贡献者的信息。

ExpressJS — This popular framework for developing web applications with Node.js. It shows TJ Hollowaychuk as the original author and Douglas Wilson as the current project maintainer. It then links to the contributor list generated by Github. It’s clear from that list those two made the overwhelming majority of code contributions to the project.

ExpressJS —这个流行的框架,用于使用Node.js开发Web应用程序。 它显示TJ Hollowaychuk是原始作者,Douglas Wilson是当前项目维护者。 然后,它链接到Github生成的贡献者列表。 从清单中可以明显看出,这两个代码为项目贡献了绝大多数。

Node.js — This popular platform for JavaScript development outside web browsers has a Foundation and a highly structured set of maintainers. The Node.js Technical Steering Committee has final authority over technical direction and governance. There is a manually maintained list of TSC members in the repository. Another manually maintained list contains the other collaborators. These lists are replicated on the main Node.js repository home page.

Node.js —这个流行的Web浏览器外部JavaScript开发平台具有一个Foundation和一组高度结构化的维护者。 Node.js技术指导委员会对技术指导和管理拥有最终授权。 存储库中有一个手动维护的TSC成员列表 。 另一个手动维护的列表包含其他协作者 。 这些列表复制在Node.js存储库主页上 。

Alongside the TSC is the Community Committee which is focused on “community-facing efforts”. A manually-maintained list of Community Committee members is in that projects repository.

与TSC并排的是社区委员会 ,其重点是“面向社区的努力”。 该项目存储库中有一个社区委员会成员的手动维护列表。

One item of note about these manually maintained lists is that they’re in the project Git repository. The process for resigning from one of these teams is to issue a Pull Request against that page announcing the intention to resign from the project team. That’s an interesting use of Git, to track project members over time.

关于这些手动维护列表的注意事项之一是它们位于项目Git存储库中。 从这些团队之一辞职的过程是针对该页面发出“拉取请求”,宣布打算从项目团队辞职。 这是Git的一种有趣用法,用于随着时间的推移跟踪项目成员。

Django — This popular Python framework for developing web applications has both a Foundation to handle business matters, and a few technical teams for technical matters. The technical team members are published on the project website. There is a well developed contributors guide.

Django-这个流行的用于开发Web应用程序的Python框架拥有一个处理业务事项的基金会和一些技术事项的技术团队。 技术团队成员已发布在项目网站上 。 有一个完善的贡献者指南。

Cheerio — This popular Node.js project implements a subset of the jQuery API to run on the Node.js project for server-side DOM manipulation. The project README includes a list of contributors that is generated by running Git commands. This makes it an automatically generated list but the user experience is pretty bad. The Github repository shows lists of monetary contributors generated by OpenCollective.

Cheerio-这个受欢迎的Node.js项目实现了jQuery API的一个子集,以便在Node.js项目上运行以进行服务器端DOM操作。 项目README包含通过运行Git命令生成的贡献者列表。 这使其成为一个自动生成的列表,但是用户体验非常差。 Github存储库显示了OpenCollective生成的货币贡献者列表。

BabelJS — This popular JavaScript developer tool is a transpiler allowing us to use modern JavaScript while deploying to older environments. The website has an extensive “Meet the Team” page. This page lists a wide range of contributors, including a non-human contributor (a Twitter bot). The Github repository contains a list of monetary sponsors generated by OpenCollective.

BabelJS-这个流行JavaScript开发人员工具是一个编译器,允许我们在部署到较旧的环境时使用现代JavaScript。 该网站上有一个广泛的“ 与团队见面 ”页面。 本页列出了广泛的贡献者,包括非人类贡献者(Twitter机器人)。 Github存储库包含由OpenCollective生成的货币赞助者列表。

Rust — This new systems programming language promises blazing fast execution, no segfaults, thread safety, and more. The team page appears to be manually maintained, and lists a dozen or so teams supporting Rust. Each team has a dozen or more members.

Rust –这种新的系统编程语言有望实现快速执行,无段错误,线程安全等等。 团队页面似乎是手动维护的,列出了支持Rust的十几个团队。 每个团队有十几个或更多成员。

协助自动识别贡献者的工具 (Tools to assist automagically recognize contributors)

We learned in the previous section that most open source projects try to acknowledge contributors and core team members. But that in most cases this is with manually maintained lists.

我们在上一节中了解到,大多数开放源代码项目都试图承认贡献者和核心团队成员。 但是在大多数情况下,这是手动维护的列表。

Manually maintaining a list of contributors is an administrative burden. It can create a situation where a contributor does not get recognized because nobody remembered to add them to the list. Just as we strive to automate software testing to ensure good development processes, we might also strive to automate contributor recognition to ensure everyone is recognized fairly. Let’s look at several ways of implementing an automated widget.

手动维护贡献者列表是一项管理负担。 这可能会导致由于没有人记得将其添加到列表而无法识别贡献者的情况。 正如我们努力自动化软件测试以确保良好的开发流程一样,我们也可能努力自动化贡献者识别以确保每个人都得到公平的认可。 让我们看一下实现自动化窗口小部件的几种方法。

Use the auto-generated contributor list on Github or Gitlab: Every Github project has an easily-accessed page showing contributions. Gitlab-hosted projects have a similar page that is harder to reach. Some projects simply link to these pages. The Github page is pretty useful, but it’s not the same as a status widget.

使用Github或Gitlab上自动生成的贡献者列表:每个Github项目都有一个易于访问的页面,其中显示了贡献。 由Gitlab托管的项目有一个相似的页面,很难访问。 有些项目只是链接到这些页面。 Github页面非常有用,但与状态小部件不同。

Create your own list: Using git commands (git shortlog -sn) it is possible to generate a list of committers. An inventive programmer could turn this into a list of avatars.

创建自己的列表 :使用git命令( git shortlog -sn )可以生成提交者列表。 有创造力的程序员可以将其变成化身列表。

We found an older (seemingly abandoned) project that did just that: https://github.com/blossom/contributors

我们找到了一个旧的(看似被遗弃的)项目,它就是这样做的: https : //github.com/blossom/contributors

The OpenCollective Widget: Open Collective is a kind of social movement meant to create projects that are openly financed. It’s an interesting idea and worthy of further exploration. For the purpose of this article, the Open Collective team offers a dynamic widget that’s easy to install in a website, that shows contributors. Many open source projects are Open Collective projects, and use this widget. However, in this case “contributor” means monetary contributions rather than code contributions.

OpenCollective小部件 : Open Collective是一种社会运动,旨在创建公开资助的项目。 这是一个有趣的想法,值得进一步探索。 就本文而言,Open Collective团队提供了一个动态窗口小部件,该窗口小部件易于安装在网站上,其中显示了贡献者。 许多开源项目都是Open Collective项目,并且使用此小部件。 但是,在这种情况下,“贡献者”是指货币捐款而不是代码捐款。

Sourcerer.io Hall of Fame: Sourcerer.io is a service to automatically generate a profile page for software engineers based on their source code commits. It supports generating a personal profile from any set of git repositories. Github and Gitlab get the best support. For example, see my profile https://sourcerer.io/robogeek.

Sourcerer.io名人堂 : Sourcerer.io是一项服务,可根据他们的源代码提交为软件工程师自动生成配置文件页面。 它支持从任何一组git存储库生成个人资料。 Github和Gitlab得到最好的支持。 例如,请参阅我的个人资料https://sourcerer.io/robogeek 。

The Sourcerer.io Hall of Fame tool generates a summary of committers to Github projects. It picks up the user avatar, either from a Sourcerer profile or Github profile. Installation is very simple once you have a Sourcerer account. Head to the Hall of Fame tab in the Settings area and follow the directions. Sourcerer’s service takes care of the rest.

Sourcerer.io 名人堂工具会生成Github项目提交者的摘要。 它从Sourcerer配置文件或Github配置文件中选取用户头像。 拥有Sourcerer帐户后,安装非常简单。 转到“设置”区域中的“名人堂”选项卡,然后按照说明进行操作。 Sourcerer的服务将负责其余的工作。

The associated Github repository has a few example Hall of Fame widgets, such as iterative/dvc and epicmaxco/vuestic-admin.

关联的Github存储库具有一些名人堂小部件示例,例如iterative / dvc和epicmaxco / vuestic-admin 。

结论/观察 (Conclusion / Observations)

We started this article theorizing that public recognition of contributors to an open source project would help the project to grow. The idea seems sound but we don’t know if it’s true. What we did learn is that many open source projects already have methods to recognize contributors (particularly the ones which do not seem to be corporate-backed — e.g. ReactJS).

我们从本文开始,理论上认为公众认可开源项目的贡献者将有助于该项目的发展。 这个主意听起来不错,但我们不知道这是不是真的。 我们了解到的是,许多开源项目已经有了识别贡献者的方法(尤其是那些似乎没有企业支持的方法,例如ReactJS)。

Not all contributions are in the form of software. Some projects have teams for marketing, or documentation, or testing, or security. An automated tool that scans Git commits will not be able to list folks making non-code contributions to the project. Those contributions do not land in a Git repository. Therefore a tool to generate a contributors widget for source contributions has a limited scope. By listing code contributions the widget does not list the other contributors.

并非所有的贡献都以软件的形式出现。 一些项目有团队进行市场营销,文档编制,测试或安全管理。 扫描Git提交的自动化工具将无法列出对项目做出非代码贡献的人员。 这些贡献不会降落在Git存储库中。 因此,生成用于源贡献的贡献者小部件的工具范围有限。 通过列出代码贡献,小部件不会列出其他贡献者。

The primary acknowledgement tactic among the open source projects we examined are manually maintained lists of team members. A project may have one or more “teams” assigned to handle different areas. Of course some of these teams focus on non-coding work. These team lists acknowledge the non-code contributors as well as the coders.

在我们研究的开源项目中,主要的确认策略是手工维护的团队成员列表。 一个项目可能分配了一个或多个“团队”来处理不同的领域。 当然,其中一些团队专注于非编码工作。 这些团队名单肯定了非代码贡献者和编码人员。

Another common tactic is acknowledging monetary contributions using the OpenCollective widget. It is easily installed and OpenCollective’s systems take care of updating the widgets. Of course it has limited scope. It does not serve the purpose of recognizing code contributions to a project.

另一个常见的策略是使用OpenCollective小部件确认货币捐款。 它易于安装,并且OpenCollective的系统负责更新小部件。 当然,它的范围有限。 它不能用于识别代码对项目的贡献。

We started this noting many teams have automated status widgets, and pondering a status widget for code contributors. While one can roll their own code contributor status widget, the simplest method is to install the Sourcerer.io Hall of Fame widget. It is easy to install and it manages itself. It concisely shows some of the contributors in a fashion that fits right next to the other status widgets. Keep in mind this only shows the code contributors.

我们首先注意到许多团队拥有自动化的状态小部件,并为代码贡献者考虑状态小部件。 虽然可以滚动自己的代码贡献者状态小部件,但最简单的方法是安装Sourcerer.io 名人堂小部件。 它易于安装并且可以自我管理。 它以与其他状态小部件相邻的方式简洁地显示了一些贡献者。 请记住,这仅显示代码贡献者。

Acknowledging team members isn’t the only step to building an active open source project with multiple contributors. The advice we found focused more on having a well documented contribution process, for example. There are many aspects to building and nurturing a community of folks working together on a goal. Obviously giving acknowledgement is one.

认可团队成员并不是构建具有多个贡献者的活跃的开源项目的唯一步骤。 例如,我们发现的建议更多地集中在有一个记录良好的捐款流程上。 建立和培养在目标上共同努力的人的社区有很多方面。 显然,给予认可是其中之一。

With that in mind, an automated code contributor status widget should be one of many tools used for encouraging contributions to your open source project.

考虑到这一点,自动化代码贡献者状态小部件应该是用于鼓励对开源项目做出贡献的众多工具之一。

翻译自: https://www.freecodecamp.org/news/how-to-recognize-your-open-source-project-contributors-and-grow-your-community-3eaa472344ab/

开源项目贡献者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华农java实验7_国家实验教学示范中心

我校有生物学实验教学中心、作物学实验教学中心、水产养殖实验教学中心、动物医学实验教学中心4个国家级实验教学示范中心,10个省级实验教学示范中心。生物学实验教学中心华中农业大学生物学实验教学中心成立于2001年7月,是直属于生命科学技术学院的校级…

jsonpickle数据序列化

json&pickle数据序列化 json 用于字符串和python数据类型间进行转换 pickle 用于python特有的类型 和 python的数据类型间进行转换序列化:把字典或者字符串的内存对象 存到硬盘上; 反序列化:就是从硬盘上加载出来 json序列化与反序列化…

array_walk与array_map的区别

1.array_walk是用于用户自定义的函数,所以想用array_walk($aIds, "trim");去掉数据元素中的空格是达不到目的的只能用array_walk($aIds, create_function(&$val, $val trim($val);)); 2.想完成上边的需求其实更加合适用$aNewIds array_map("t…

shopify二次开发教程_详细教程:如何将Shopify的Storefront API与React和Redux结合使用...

shopify二次开发教程by Chris Frewin克里斯弗里温(Chris Frewin) 详细教程:如何将Shopify的Storefront API与React和Redux结合使用 (A detailed tutorial: how to use Shopify’s Storefront API with React and Redux) 电子商务为所有人! (…网站&…

element里面popover里面的高度_五斗柜的高度一般是多少 五斗柜放在什么位置好

五斗柜也就是一种抽屉收纳柜,目前在卧室或是书房等空间均是可以见到。其根据使用用途的不同,进而有着高度和款式,以及摆放位置等等的区别。因此,下面带来五斗柜的高度一般是多少、五斗柜放在什么位置好,以及五斗柜里面…

leetcode 57. 插入区间

给出一个无重叠的 ,按照区间起始端点排序的区间列表。 在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入:intervals [[1,3]…

《C++标准程序库》学习笔记1--第二章第三章

————————— 第二章 —————————1.&#xff08;P11&#xff09; C规定&#xff1a;除了以typename修饰外&#xff0c;template内的任何标志符号都被视为一个值(value)而非一个型别。 eg. template <classT>classMyClass{ typename T::SubType *ptr; };…

让物联网真正起飞的关键:无线充电

从一般郊区家庭到工厂装配生产线&#xff0c;我们生活中的每个角落都正在经历“智能”技术强化的过程。物联网&#xff08;IoT&#xff09;技术看似无所不在&#xff0c;但是为这些装置持续供电仍是一大挑战&#xff0c;除非这个问题能够解决&#xff0c;否则许多令人兴奋的物联…

【NOIP2016】愤怒的小鸟

题目描述 Kiana最近沉迷于一款神奇的游戏无法自拔。 简单来说&#xff0c;这款游戏是在一个平面上进行的。 有一架弹弓位于(0,0)处&#xff0c;每次Kiana可以用它向第一象限发射一只红色的小鸟&#xff0c;小鸟们的飞行轨迹均为形如的曲线&#xff0c;其中a,b是Kiana指定的参数…

leetcode 127. 单词接龙(bfs)

给定两个单词&#xff08;beginWord 和 endWord&#xff09;和一个字典&#xff0c;找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则&#xff1a; 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。 说明: 如果不存在这样的转换序…

java swing 动态生成表格_6 个曾经牛逼哄哄的 Java 技术,你用过吗?

大家好啊&#xff0c;今天给大家分享下我的开发历程中&#xff0c;我知道的那些被淘汰的技术或者框架&#xff0c;有些我甚至都没有用过&#xff0c;但我知道它曾经风光过。废话不多说&#xff0c;下面我要开始吹了……1、Swing下面这个是用 swing 开发的&#xff1a;Swing 算是…

如果您是JavaScript开发人员,为什么要进行增强现实-以及如何开始

by Evaristo Caraballo通过Evaristo Caraballo 如果您是JavaScript开发人员&#xff0c;为什么要进行增强现实-以及如何开始 (Why you should do Augmented Reality if you are a JavaScript developer — and how to start) If you are a JavaScript coder who is still late…

[Java 安全]加密算法

Base64编码 算法简述 定义 Base64内容传送编码是一种以任意8位字节序列组合的描述形式&#xff0c;这种形式不易被人直接识别。 Base64是一种很常见的编码规范&#xff0c;其作用是将二进制序列转换为人类可读的ASCII字符序列&#xff0c;常用在需用通过文本协议&#xff08;比…

hdu5299 Circles Game

题意是这样。给出非常多圆&#xff0c;要么两两相离&#xff0c;要么包括&#xff0c;若删掉一个圆&#xff0c;那被他包括的都要删除&#xff0c;若某人没有圆给他删&#xff0c;那么他就赢了。 。。。知道树上博弈的话。就非常easy。。。不知道的话。这确实是个神题…… 按半…

leetcode 1356. 根据数字二进制下 1 的数目排序(排序)

给你一个整数数组 arr 。请你将数组中的元素按照其二进制表示中数字 1 的数目升序排序。 如果存在多个数字二进制中 1 的数目相同&#xff0c;则必须将它们按照数值大小升序排列。 请你返回排序后的数组。 示例 1&#xff1a; 输入&#xff1a;arr [0,1,2,3,4,5,6,7,8] 输…

oracle java认证_如何通过Oracle的Java认证-开发人员实用指南

oracle java认证by javinpaul由javinpaul 如何通过Oracle的Java认证-开发人员实用指南 (How to Pass Oracle’s Java Certifications — a Practical Guide for Developers) A Java certification is highly regarded in the IT Industry and provides a Java developer with …

Oracle中exists与in的效率探讨

in 与 exist 的语法比较&#xff1a; select from 数据表 t where t.x in (...) 括号内可以是符合t.x字段类型的值集合&#xff0c;如(1,2,3)&#xff0c;但如果t.x是number类型的时候&#xff0c;似乎这样的写法会出问题&#xff1b;也可以是通 过另外的sele…

log日志轮转--logrotate

服务器上的日志包括系统日志和服务日志每天都会产生n多log,好多人会自己写脚本来进行日志的切割、压缩等&#xff0c;而忽略了系统自带的服务--logrotate。 简介 logrotate是个十分有用的工具&#xff0c;它可以自动对日志进行截断&#xff08;或轮循&#xff09;、压缩以及删除…

2个字段并在一次插入一个字段里面_elasticsearch外用与内观(二)-当插入文档时,elasticsearch都在做什么...

Previous: elasticsearch外用与内观(一)-常用功能与使用方法 在了解了es的基本用法之后&#xff0c;我们再来看看当插入文档数据时&#xff0c;elasticsearch都在做什么。首先&#xff0c;es的索引只是一个逻辑概念&#xff0c;实际上是由一个个物理分片组成的,每个分片就是一个…

学习Spring Data JPA

简介 Spring Data 是spring的一个子项目&#xff0c;在官网上是这样解释的&#xff1a; Spring Data 是为数据访问提供一种熟悉且一致的基于Spring的编程模型&#xff0c;同时仍然保留底层数据存储的特​​殊特性。它可以轻松使用数据访问技术&#xff0c;可以访问关系和非关系…