(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{574:function(e,t,i){"use strict";i.r(t);var o=i(69),a=Object(o.a)({},(function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[i("h2",{attrs:{id:"where-to-find-us"}},[i("a",{staticClass:"header-anchor",attrs:{href:"#where-to-find-us"}},[e._v("#")]),e._v(" Where to Find Us")]),e._v(" "),i("p",[e._v("As an Apache project, we are using mailing list, JIRA, and Github Issues to obtain the feedback of users. We also have a Twitter account.")]),e._v(" "),i("ul",[i("li",[i("p",[e._v("Mailing list: dev@iotdb.apache.org.")]),e._v(" "),i("ul",[i("li",[e._v("The mailing list is used for both user feedback and developer discussion.")]),e._v(" "),i("li",[e._v("Follow method: Send an email to dev-subscribe@iotdb.apache.org with the email you want to\nreceive the email, the subject content is not limited, after receiving the reply, send a\nconfirmation email to the confirmation address again (the confirmation address is longer,\nit is recommended  gmail mailbox).")])])]),e._v(" "),i("li",[i("p",[e._v("JIRA issue: https://issues.apache.org/jira/projects/IOTDB/issues")])]),e._v(" "),i("li",[i("p",[e._v("Github issue: https://github.com/apache/incubator-iotdb/issues")])]),e._v(" "),i("li",[i("p",[e._v("Twitter: https://twitter.com/apacheiotdb")])]),e._v(" "),i("li",[i("p",[e._v("We look forward to you sharing the experience of using IoTDB: "),i("a",{attrs:{href:"https://github.com/apache/incubator-iotdb/issues/748",target:"_blank",rel:"noopener noreferrer"}},[e._v("Survey"),i("OutboundLink")],1)])]),e._v(" "),i("li",[i("p",[e._v("For Chinese users, we have a Wechat Public Account. For more details, read "),i("RouterLink",{attrs:{to:"/zh/Community/Feedback.html"}},[e._v("交流")])],1)]),e._v(" "),i("li",[i("p",[e._v("For Chinese users，we have a DingTalk Group. For more details, read "),i("RouterLink",{attrs:{to:"/zh/Community/Feedback.html"}},[e._v("交流")])],1)])]),e._v(" "),i("p",[e._v("IoTDB community will host Meetups aperiodically, the information can be found in our mailing list and "),i("RouterLink",{attrs:{to:"/Community/Materials.html"}},[e._v("Meetup List")])],1)])}),[],!1,null,null,null);t.default=a.exports}}]);