開源項目貢獻者_如何認識您的開源項目貢獻者并發展您的社區

開源項目貢獻者

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.pswp.cn/news/392717.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392717.shtml
英文地址,請注明出處:http://en.pswp.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;可以訪問關系和非關系…