├── .gitignore
├── LICENSE
├── README.md
├── little-things
├── customer-service.md
└── waic2023.md
├── little-tools
├── crawler-modb.py
└── scrolling-table-page.py
└── little-toys
└── midjourney-style.md
/.gitignore:
--------------------------------------------------------------------------------
1 | # https://github.com/github/gitignore/blob/main/Global/macOS.gitignore
2 | # General
3 | .DS_Store
4 | .AppleDouble
5 | .LSOverride
6 |
7 | # Icon must end with two \r
8 | Icon
9 |
10 | # Thumbnails
11 | ._*
12 |
13 | # Files that might appear in the root of a volume
14 | .DocumentRevisions-V100
15 | .fseventsd
16 | .Spotlight-V100
17 | .TemporaryItems
18 | .Trashes
19 | .VolumeIcon.icns
20 | .com.apple.timemachine.donotpresent
21 |
22 | # Directories potentially created on remote AFP share
23 | .AppleDB
24 | .AppleDesktop
25 | Network Trash Folder
26 | Temporary Items
27 | .apdisk
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Attribution-ShareAlike 4.0 International
2 |
3 | =======================================================================
4 |
5 | Creative Commons Corporation ("Creative Commons") is not a law firm and
6 | does not provide legal services or legal advice. Distribution of
7 | Creative Commons public licenses does not create a lawyer-client or
8 | other relationship. Creative Commons makes its licenses and related
9 | information available on an "as-is" basis. Creative Commons gives no
10 | warranties regarding its licenses, any material licensed under their
11 | terms and conditions, or any related information. Creative Commons
12 | disclaims all liability for damages resulting from their use to the
13 | fullest extent possible.
14 |
15 | Using Creative Commons Public Licenses
16 |
17 | Creative Commons public licenses provide a standard set of terms and
18 | conditions that creators and other rights holders may use to share
19 | original works of authorship and other material subject to copyright
20 | and certain other rights specified in the public license below. The
21 | following considerations are for informational purposes only, are not
22 | exhaustive, and do not form part of our licenses.
23 |
24 | Considerations for licensors: Our public licenses are
25 | intended for use by those authorized to give the public
26 | permission to use material in ways otherwise restricted by
27 | copyright and certain other rights. Our licenses are
28 | irrevocable. Licensors should read and understand the terms
29 | and conditions of the license they choose before applying it.
30 | Licensors should also secure all rights necessary before
31 | applying our licenses so that the public can reuse the
32 | material as expected. Licensors should clearly mark any
33 | material not subject to the license. This includes other CC-
34 | licensed material, or material used under an exception or
35 | limitation to copyright. More considerations for licensors:
36 | wiki.creativecommons.org/Considerations_for_licensors
37 |
38 | Considerations for the public: By using one of our public
39 | licenses, a licensor grants the public permission to use the
40 | licensed material under specified terms and conditions. If
41 | the licensor's permission is not necessary for any reason--for
42 | example, because of any applicable exception or limitation to
43 | copyright--then that use is not regulated by the license. Our
44 | licenses grant only permissions under copyright and certain
45 | other rights that a licensor has authority to grant. Use of
46 | the licensed material may still be restricted for other
47 | reasons, including because others have copyright or other
48 | rights in the material. A licensor may make special requests,
49 | such as asking that all changes be marked or described.
50 | Although not required by our licenses, you are encouraged to
51 | respect those requests where reasonable. More considerations
52 | for the public:
53 | wiki.creativecommons.org/Considerations_for_licensees
54 |
55 | =======================================================================
56 |
57 | Creative Commons Attribution-ShareAlike 4.0 International Public
58 | License
59 |
60 | By exercising the Licensed Rights (defined below), You accept and agree
61 | to be bound by the terms and conditions of this Creative Commons
62 | Attribution-ShareAlike 4.0 International Public License ("Public
63 | License"). To the extent this Public License may be interpreted as a
64 | contract, You are granted the Licensed Rights in consideration of Your
65 | acceptance of these terms and conditions, and the Licensor grants You
66 | such rights in consideration of benefits the Licensor receives from
67 | making the Licensed Material available under these terms and
68 | conditions.
69 |
70 |
71 | Section 1 -- Definitions.
72 |
73 | a. Adapted Material means material subject to Copyright and Similar
74 | Rights that is derived from or based upon the Licensed Material
75 | and in which the Licensed Material is translated, altered,
76 | arranged, transformed, or otherwise modified in a manner requiring
77 | permission under the Copyright and Similar Rights held by the
78 | Licensor. For purposes of this Public License, where the Licensed
79 | Material is a musical work, performance, or sound recording,
80 | Adapted Material is always produced where the Licensed Material is
81 | synched in timed relation with a moving image.
82 |
83 | b. Adapter's License means the license You apply to Your Copyright
84 | and Similar Rights in Your contributions to Adapted Material in
85 | accordance with the terms and conditions of this Public License.
86 |
87 | c. BY-SA Compatible License means a license listed at
88 | creativecommons.org/compatiblelicenses, approved by Creative
89 | Commons as essentially the equivalent of this Public License.
90 |
91 | d. Copyright and Similar Rights means copyright and/or similar rights
92 | closely related to copyright including, without limitation,
93 | performance, broadcast, sound recording, and Sui Generis Database
94 | Rights, without regard to how the rights are labeled or
95 | categorized. For purposes of this Public License, the rights
96 | specified in Section 2(b)(1)-(2) are not Copyright and Similar
97 | Rights.
98 |
99 | e. Effective Technological Measures means those measures that, in the
100 | absence of proper authority, may not be circumvented under laws
101 | fulfilling obligations under Article 11 of the WIPO Copyright
102 | Treaty adopted on December 20, 1996, and/or similar international
103 | agreements.
104 |
105 | f. Exceptions and Limitations means fair use, fair dealing, and/or
106 | any other exception or limitation to Copyright and Similar Rights
107 | that applies to Your use of the Licensed Material.
108 |
109 | g. License Elements means the license attributes listed in the name
110 | of a Creative Commons Public License. The License Elements of this
111 | Public License are Attribution and ShareAlike.
112 |
113 | h. Licensed Material means the artistic or literary work, database,
114 | or other material to which the Licensor applied this Public
115 | License.
116 |
117 | i. Licensed Rights means the rights granted to You subject to the
118 | terms and conditions of this Public License, which are limited to
119 | all Copyright and Similar Rights that apply to Your use of the
120 | Licensed Material and that the Licensor has authority to license.
121 |
122 | j. Licensor means the individual(s) or entity(ies) granting rights
123 | under this Public License.
124 |
125 | k. Share means to provide material to the public by any means or
126 | process that requires permission under the Licensed Rights, such
127 | as reproduction, public display, public performance, distribution,
128 | dissemination, communication, or importation, and to make material
129 | available to the public including in ways that members of the
130 | public may access the material from a place and at a time
131 | individually chosen by them.
132 |
133 | l. Sui Generis Database Rights means rights other than copyright
134 | resulting from Directive 96/9/EC of the European Parliament and of
135 | the Council of 11 March 1996 on the legal protection of databases,
136 | as amended and/or succeeded, as well as other essentially
137 | equivalent rights anywhere in the world.
138 |
139 | m. You means the individual or entity exercising the Licensed Rights
140 | under this Public License. Your has a corresponding meaning.
141 |
142 |
143 | Section 2 -- Scope.
144 |
145 | a. License grant.
146 |
147 | 1. Subject to the terms and conditions of this Public License,
148 | the Licensor hereby grants You a worldwide, royalty-free,
149 | non-sublicensable, non-exclusive, irrevocable license to
150 | exercise the Licensed Rights in the Licensed Material to:
151 |
152 | a. reproduce and Share the Licensed Material, in whole or
153 | in part; and
154 |
155 | b. produce, reproduce, and Share Adapted Material.
156 |
157 | 2. Exceptions and Limitations. For the avoidance of doubt, where
158 | Exceptions and Limitations apply to Your use, this Public
159 | License does not apply, and You do not need to comply with
160 | its terms and conditions.
161 |
162 | 3. Term. The term of this Public License is specified in Section
163 | 6(a).
164 |
165 | 4. Media and formats; technical modifications allowed. The
166 | Licensor authorizes You to exercise the Licensed Rights in
167 | all media and formats whether now known or hereafter created,
168 | and to make technical modifications necessary to do so. The
169 | Licensor waives and/or agrees not to assert any right or
170 | authority to forbid You from making technical modifications
171 | necessary to exercise the Licensed Rights, including
172 | technical modifications necessary to circumvent Effective
173 | Technological Measures. For purposes of this Public License,
174 | simply making modifications authorized by this Section 2(a)
175 | (4) never produces Adapted Material.
176 |
177 | 5. Downstream recipients.
178 |
179 | a. Offer from the Licensor -- Licensed Material. Every
180 | recipient of the Licensed Material automatically
181 | receives an offer from the Licensor to exercise the
182 | Licensed Rights under the terms and conditions of this
183 | Public License.
184 |
185 | b. Additional offer from the Licensor -- Adapted Material.
186 | Every recipient of Adapted Material from You
187 | automatically receives an offer from the Licensor to
188 | exercise the Licensed Rights in the Adapted Material
189 | under the conditions of the Adapter's License You apply.
190 |
191 | c. No downstream restrictions. You may not offer or impose
192 | any additional or different terms or conditions on, or
193 | apply any Effective Technological Measures to, the
194 | Licensed Material if doing so restricts exercise of the
195 | Licensed Rights by any recipient of the Licensed
196 | Material.
197 |
198 | 6. No endorsement. Nothing in this Public License constitutes or
199 | may be construed as permission to assert or imply that You
200 | are, or that Your use of the Licensed Material is, connected
201 | with, or sponsored, endorsed, or granted official status by,
202 | the Licensor or others designated to receive attribution as
203 | provided in Section 3(a)(1)(A)(i).
204 |
205 | b. Other rights.
206 |
207 | 1. Moral rights, such as the right of integrity, are not
208 | licensed under this Public License, nor are publicity,
209 | privacy, and/or other similar personality rights; however, to
210 | the extent possible, the Licensor waives and/or agrees not to
211 | assert any such rights held by the Licensor to the limited
212 | extent necessary to allow You to exercise the Licensed
213 | Rights, but not otherwise.
214 |
215 | 2. Patent and trademark rights are not licensed under this
216 | Public License.
217 |
218 | 3. To the extent possible, the Licensor waives any right to
219 | collect royalties from You for the exercise of the Licensed
220 | Rights, whether directly or through a collecting society
221 | under any voluntary or waivable statutory or compulsory
222 | licensing scheme. In all other cases the Licensor expressly
223 | reserves any right to collect such royalties.
224 |
225 |
226 | Section 3 -- License Conditions.
227 |
228 | Your exercise of the Licensed Rights is expressly made subject to the
229 | following conditions.
230 |
231 | a. Attribution.
232 |
233 | 1. If You Share the Licensed Material (including in modified
234 | form), You must:
235 |
236 | a. retain the following if it is supplied by the Licensor
237 | with the Licensed Material:
238 |
239 | i. identification of the creator(s) of the Licensed
240 | Material and any others designated to receive
241 | attribution, in any reasonable manner requested by
242 | the Licensor (including by pseudonym if
243 | designated);
244 |
245 | ii. a copyright notice;
246 |
247 | iii. a notice that refers to this Public License;
248 |
249 | iv. a notice that refers to the disclaimer of
250 | warranties;
251 |
252 | v. a URI or hyperlink to the Licensed Material to the
253 | extent reasonably practicable;
254 |
255 | b. indicate if You modified the Licensed Material and
256 | retain an indication of any previous modifications; and
257 |
258 | c. indicate the Licensed Material is licensed under this
259 | Public License, and include the text of, or the URI or
260 | hyperlink to, this Public License.
261 |
262 | 2. You may satisfy the conditions in Section 3(a)(1) in any
263 | reasonable manner based on the medium, means, and context in
264 | which You Share the Licensed Material. For example, it may be
265 | reasonable to satisfy the conditions by providing a URI or
266 | hyperlink to a resource that includes the required
267 | information.
268 |
269 | 3. If requested by the Licensor, You must remove any of the
270 | information required by Section 3(a)(1)(A) to the extent
271 | reasonably practicable.
272 |
273 | b. ShareAlike.
274 |
275 | In addition to the conditions in Section 3(a), if You Share
276 | Adapted Material You produce, the following conditions also apply.
277 |
278 | 1. The Adapter's License You apply must be a Creative Commons
279 | license with the same License Elements, this version or
280 | later, or a BY-SA Compatible License.
281 |
282 | 2. You must include the text of, or the URI or hyperlink to, the
283 | Adapter's License You apply. You may satisfy this condition
284 | in any reasonable manner based on the medium, means, and
285 | context in which You Share Adapted Material.
286 |
287 | 3. You may not offer or impose any additional or different terms
288 | or conditions on, or apply any Effective Technological
289 | Measures to, Adapted Material that restrict exercise of the
290 | rights granted under the Adapter's License You apply.
291 |
292 |
293 | Section 4 -- Sui Generis Database Rights.
294 |
295 | Where the Licensed Rights include Sui Generis Database Rights that
296 | apply to Your use of the Licensed Material:
297 |
298 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right
299 | to extract, reuse, reproduce, and Share all or a substantial
300 | portion of the contents of the database;
301 |
302 | b. if You include all or a substantial portion of the database
303 | contents in a database in which You have Sui Generis Database
304 | Rights, then the database in which You have Sui Generis Database
305 | Rights (but not its individual contents) is Adapted Material,
306 | including for purposes of Section 3(b); and
307 |
308 | c. You must comply with the conditions in Section 3(a) if You Share
309 | all or a substantial portion of the contents of the database.
310 |
311 | For the avoidance of doubt, this Section 4 supplements and does not
312 | replace Your obligations under this Public License where the Licensed
313 | Rights include other Copyright and Similar Rights.
314 |
315 |
316 | Section 5 -- Disclaimer of Warranties and Limitation of Liability.
317 |
318 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
319 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
320 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
321 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
322 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
323 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
324 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
325 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
326 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
327 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
328 |
329 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
330 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
331 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
332 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
333 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
334 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
335 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
336 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
337 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
338 |
339 | c. The disclaimer of warranties and limitation of liability provided
340 | above shall be interpreted in a manner that, to the extent
341 | possible, most closely approximates an absolute disclaimer and
342 | waiver of all liability.
343 |
344 |
345 | Section 6 -- Term and Termination.
346 |
347 | a. This Public License applies for the term of the Copyright and
348 | Similar Rights licensed here. However, if You fail to comply with
349 | this Public License, then Your rights under this Public License
350 | terminate automatically.
351 |
352 | b. Where Your right to use the Licensed Material has terminated under
353 | Section 6(a), it reinstates:
354 |
355 | 1. automatically as of the date the violation is cured, provided
356 | it is cured within 30 days of Your discovery of the
357 | violation; or
358 |
359 | 2. upon express reinstatement by the Licensor.
360 |
361 | For the avoidance of doubt, this Section 6(b) does not affect any
362 | right the Licensor may have to seek remedies for Your violations
363 | of this Public License.
364 |
365 | c. For the avoidance of doubt, the Licensor may also offer the
366 | Licensed Material under separate terms or conditions or stop
367 | distributing the Licensed Material at any time; however, doing so
368 | will not terminate this Public License.
369 |
370 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
371 | License.
372 |
373 |
374 | Section 7 -- Other Terms and Conditions.
375 |
376 | a. The Licensor shall not be bound by any additional or different
377 | terms or conditions communicated by You unless expressly agreed.
378 |
379 | b. Any arrangements, understandings, or agreements regarding the
380 | Licensed Material not stated herein are separate from and
381 | independent of the terms and conditions of this Public License.
382 |
383 |
384 | Section 8 -- Interpretation.
385 |
386 | a. For the avoidance of doubt, this Public License does not, and
387 | shall not be interpreted to, reduce, limit, restrict, or impose
388 | conditions on any use of the Licensed Material that could lawfully
389 | be made without permission under this Public License.
390 |
391 | b. To the extent possible, if any provision of this Public License is
392 | deemed unenforceable, it shall be automatically reformed to the
393 | minimum extent necessary to make it enforceable. If the provision
394 | cannot be reformed, it shall be severed from this Public License
395 | without affecting the enforceability of the remaining terms and
396 | conditions.
397 |
398 | c. No term or condition of this Public License will be waived and no
399 | failure to comply consented to unless expressly agreed to by the
400 | Licensor.
401 |
402 | d. Nothing in this Public License constitutes or may be interpreted
403 | as a limitation upon, or waiver of, any privileges and immunities
404 | that apply to the Licensor or You, including from the legal
405 | processes of any jurisdiction or authority.
406 |
407 |
408 | =======================================================================
409 |
410 | Creative Commons is not a party to its public
411 | licenses. Notwithstanding, Creative Commons may elect to apply one of
412 | its public licenses to material it publishes and in those instances
413 | will be considered the “Licensor.” The text of the Creative Commons
414 | public licenses is dedicated to the public domain under the CC0 Public
415 | Domain Dedication. Except for the limited purpose of indicating that
416 | material is shared under a Creative Commons public license or as
417 | otherwise permitted by the Creative Commons policies published at
418 | creativecommons.org/policies, Creative Commons does not authorize the
419 | use of the trademark "Creative Commons" or any other trademark or logo
420 | of Creative Commons without its prior written consent including,
421 | without limitation, in connection with any unauthorized modifications
422 | to any of its public licenses or any other arrangements,
423 | understandings, or agreements concerning use of licensed material. For
424 | the avoidance of doubt, this paragraph does not form part of the
425 | public licenses.
426 |
427 | Creative Commons may be contacted at creativecommons.org.
428 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # operation
2 |
3 | 做 2b 运营三年,说长不长,说短也不短,且以这个 repo 记录下一些运营相关的总结和谈不上是技巧的把戏。
4 |
5 | > 在开篇之前,感谢下前东家我的第一任领导 [@min.wu](https://github.com/whitewum),没有一个好的领导给一个好方向,是很难做成事情的。如果说 NebulaGraph 的国内运营成就有十分功劳,min.wu 占八分,我占剩下两分吧。
6 |
7 | ## 一些小工具
8 |
9 | 由 GPT-3.5 和 GPT-4 编写的爬虫小工具:
10 |
11 | * 可爬取 discourse 论坛浏览数据 [https://github.com/whatis-geb/operation/blob/master/little-tools/scrolling-table-page.py](https://github.com/whatis-geb/operation/blob/master/little-tools/scrolling-table-page.py)
12 | * 可爬取墨天轮平台阅读数(精确到个位数) [https://github.com/whatis-geb/operation/blob/master/little-tools/crawler-modb.py](https://github.com/whatis-geb/operation/blob/master/little-tools/crawler-modb.py)
13 |
14 | ## 如何从零开始做 2b 运营
15 |
16 | 当我三年前,面试前东家时,我只有 2c 的运营经验,我后来在前东家分发很多内容在我做 2c 的时候都以“推广”为理由判断为垃圾推广信息被隐藏过,索性的是,现在的技术平台的运营比当初的我更灵活没那么轴。
17 |
18 | 回到正题,如何从零开始做一个 2b 的运营?
19 |
20 | > 我的答案是:抄作业!
21 |
22 | 如果你不知道一件事情怎么做,那么最好的开始姿势就是看别人怎么做。当然抄作业不是说看到一份作业就抄,而是你要判断你现在业务处于什么阶段,去抄对应其他公司相同阶段的作业。这有点像是,你一个一年级学生,去抄人家三年级学生的作业,是不合适的。
23 |
24 | 除了抄对阶段之外,不要照抄,要去多角度去思考他们背后的动机以及相关的环境因素。
25 |
26 | ### 我的抄袭对象
27 |
28 | 三年前,2021 年的时候,PingCAP 已经是一个非常知名的开源项目,所以我花了大概 2 周时间分析了他们的时间线。
29 |
30 |
31 |
32 | PingCAP 时间线
33 |
34 | 
35 | (截图清晰度问题,可查看对应 [Excel 表](https://docs.google.com/spreadsheets/d/1tkbnldWXYoANLUOUAAWomB-ZrqkSoRgxzwcuPVn5Q0Q/edit?usp=sharing))
36 |
37 |
38 |
39 | ### 我的作业
40 |
41 | 这里罗列了关键时间线。
42 |
43 |
44 |
45 | 折叠进去的关键时间线
46 |
47 | ## 关键时间线
48 |
49 | - **2019.07 开启 18 个内容分发渠道**
50 | - 渠道选择:前期没有明确的场景,以及目标用户,所以我把目标用户 tag 在程序员,开了 10 多个(没记错应该是 18 个)国内程序员活跃的技术平台(在我司之前,我在国内 2 家技术平台待过),去差别;
51 | - 内容来源:早期没有具体的应用场景实践,所以内容依靠之前在 AsiaCon(之前的存储负责人是 HBase 的 Committer)、我们自己的线下 Meetup 演讲稿整理整理而成;
52 | - 内容分发策略
53 | - 标题:因为国内图数据库教育市场并不如国内成熟,所以在 2019-2020 年之间的对外标题都蹭「图数据库」、「数据库」,甚至 Nebula Graph 不加都会用图数据库,以及市面上一些比较被人所熟知的技术,例如:分布式、HBase(注:这是产品);
54 | - 内容形式:因为早期内容过于匮乏,为了保持账号的活跃度,持续曝光产品,所以早期的文章除了会发一次文章之外,还会将文章裁剪成若干块,变成短内容,例如:图数据库应用场景、图的 OLTP 和 OLAP 场景;
55 | - **2019.08 开启公开平台的活动同步**
56 | - 之前活动依靠微信的私域流量,只在公众号、员工朋友圈进行推广,在第三期(第一期和第二期我还没入职)开始,在开源中国、掘金、思否、活动行等公开活动平台进行活动曝光,活动主题策略同早期内容,依旧是靠图数据库这个新名词;
57 | - **2019.09 第一个线上活动**
58 | - 活动形式:参加开源中国的你问我答活动,让开源中国的用户来问图数据库问题;
59 | - 二次曝光:整理这个活动的 QA,变成「关于图数据库人们都问了啥」主题科普贴,发在了内容同步渠道;
60 | - **2019.10 参加第一个线下大型技术大会 QCon**
61 | - 主要目的:科普图数据库和推广 Nebula Graph,宣传图上面写的是新一代图数据库;
62 | - **2019.11 开启社区周报**
63 | - 主要目的:填补内容不足,以及分发一些 Nebula 使用技巧、Nebula 产品开发动态;
64 | - **2019.12 开始第一场视频直播**
65 | - 活动形式:因为之前老板他们一直觉得直播没有线下见面来的真实,有交流。所以直播一直都是被排斥的活动形式,12 月这场直播是采用了线下报名,线上看直播的形式;
66 | - **2020.01 热点文章**
67 | - 主题策划:因为 1 月疫情起来了,借传播链加入真实的疫情传播 case 写了个“[从天津百货大楼 5 病例“迷局”见新冠病毒传播路径](https://www.nebula-graph.com.cn/posts/detect-corona-virus-spreading-with-graph-database)”
68 | - 2019.08-2020.06:地推,和用户交流;
69 | - **2020.06.30 开始长达 4 个月的 BD 邮件**
70 | - 现在回看,我们很多用户的名字和邮件的收件人是重叠的。其实,有个优化点是可以留下运营人员的 IM 联系方式。
71 | - **2020.06 开始常规化用户回访**
72 | - 目的:了解用户的使用问题,以及借机推广最新的发型版了;
73 | - **2020.02 论坛和官网上线**
74 |
75 |
76 |
77 | ### 我对 2b 的理解
78 |
79 | 2b 的 b 是 business 的缩写,顾名思义,你的用户是企业而非个人。作为一个有丰富 2c(~~不是~~)经验的运营,我觉得 2b 和 2c 的不同点在于:
80 |
81 | * 2b:卖的是服务,用户实打实有需求需要用这款产品。包括运营在内,你需要思考的是如何帮用户解决问题,更快用上以及依赖该产品;
82 | * 2c:卖的是情感,用户不一定需要这款产品,但是通过运营手段让用户同你 / 产品产生情感联系。
83 |
84 | 没错,2c 你有个人魅力是一个非常棒的优势。不过,我觉得目前大多数的社区 / 技术产品运营是兼顾 2b 和 2c 特点的,你既要帮用户解决问题,也要同特定的人群建立情感联系。
85 |
86 | ## 细分之内容运营
87 |
88 |
89 |
90 | 上面这个是一条信息,或者说是一个内容的一个生命周期,也是比较常见的生命周期;在我看来,内容运营要做的两件事:**讲好故事**(生产期)、**让人更容易听懂这故事**(预发布),这里似乎少了所谓的流量和爆款,在我看来那是一个结果,而不是一个目的。
91 |
92 | 下面分解下,这个流程的各个环节;
93 |
94 | #### 内容之策划
95 |
96 | 策划,一般来说内容人员都具备一定的策划能力,或者不具备无妨。在我看来,运营人员的把控的事整条链路的正常运作,尤其后面的发布,需要将这个内容传播地更远、更好,这是我理解的运营人员的侧重点。但是不是说生产环节的东西不重要,而是运营人员可以少参与,像是一个产品运营一样,重点是如何让它运转起来。后面的发布环节,便是这种运转。
97 |
98 | 而策划,并非是无中生有,在 NebulaGraph 前期,基本上是没有内容产出的,相关人员的忙着产品迭代,那么有什么事情是策划制作的呢?会变的是代码实现,不变的是**顶层设计——架构**,所以,前期低频率地产出架构相关内容。当然这里还涉及到后面的内容发布,因为是低频,所以一个内容如果同一时间发布,那么在后续地很长时间这个产品(消息)并消失在人眼前了,所以,这里有一个内容分发的 tips,多渠道分开发,保证某段时期,这个产品活跃在人眼前。
99 |
100 | 回到策划,策划一般是基于现有、未来一段时间(可以设定为 3 个月)会有的东西进行,这是常规操作,基于产品自身出发的,延伸出来就有相关的内容:
101 |
102 | * 特性讲解,涉及特性的原理和相关的使用姿势;
103 | * 使用实践,文档和社区用户实践均可;
104 | * 产品动态,release note 或者是产品介绍,均属于这类;
105 |
106 | 这是常规的内容,当然作为一个策划人员,你是不能和相关的产出人员(这里假设策划和作者非同一人)说,我要一个特性讲解。换位下,好比有个人和你说,我要一个数据。好的,是什么数据呢?对,**这就是策划一定要给出相关的内容主题**!一个主题是一个确定的内容方向,但是如何切入这个主题,也是看不同的作者。(详见后面的生产)
107 |
108 | 除了常规的产品主题,所有运营人员,也是非运营人员都会说的一个事——热点,技术产品追热点要和你的产品相关,比如,2020 年疫情刚起来的时候,我就蹭了个疫情传播链的热点。蹭热点的话,一般是越早越好,根据热度的衰减线
109 |
110 | 
111 |
112 | 一般来说它不是线性衰减的,而是会有个上升期,根据不同人接触同一信息的先后顺序,内容出来的第二、第三天会达到峰值,随后再一路下跌,在两周时间内会趋于平衡,事实上,一周之后这个热点已经不会再热。
113 |
114 | 所以,蹭热点一定要早,而且切入点也很重要。这便是后面,主题确定之后的撰写环节了。
115 |
116 | ### 内容之撰写
117 |
118 | 确定主题之后,就需要找相关的人员撰写内容了。这里说个近期事情,我想出一个「世界杯预测冠军」主题,这个主题很确定,但是我一直没有写,为什么呢?因为这个主题涉及了相关的技术点——图计算,所以我拜托了相关同事来写。所以,主题策划和内容撰写,是可以独立分开的。
119 |
120 | 而内容的编写的切入点也会因为不同的人有所不同,比如:ChatGPT 这个主题,有人写语料库、prompts,这些都是在讲用法,也有人从开源角度切入,提出这个项目是否会开源,从而引出产品背后的公司,以及其相关的开源产品。角度不同,即便是同一主题,也会有不同的效应。
121 |
122 | 这里讲一个作者(撰写内容人)应该注意的事项,落笔之前需要思考清楚:
123 |
124 | * 它(这个内容)是给谁看的;
125 | * 看的人是否能明白我说的是什么;
126 |
127 | ### 内容之编辑
128 |
129 | 编辑,是我整个运营工作中干的最多的事情。为什么?因为,如果前面生产环节,作者没有讲明白这个故事,编辑就要负责将它讲明白,让读者更容易理解。这个环节,只有一个目的:**好理解**。当然,免不了会有一些 typo fix 的工作在里面。
130 |
131 | 举个例子,技术文章经常会有遇到流程问题。像这篇稿子 [Nebula 基于全文索引擎的文本搜索](https://discuss.nebula-graph.com.cn/t/topic/4300),第四部分讲述的逻辑,其实是一早是没有流程图的,在我编辑的过程中,试图去理解当中的逻辑,便自行绘制了这个图。记住一点**一图胜千言**,一个流程图搭配相关的文字,能更好地让读者在脑子形成相关的路线图;除了帮助读者理解之外,一个流程图也能帮助作者来思考是否他讲清楚了流程,因为绘制流程图过程中,我会反复和作者确认,是否是这个意思,一旦你的流程图和文字对上了,就说明彼此验证了。
132 |
133 | 
134 |
135 | 此外,编辑也得帮稿子理清主线,NebulaGraph 的有个同学写稿子非常喜欢在某个章节加入 tips,这固然是好意,但是过多的 tips 插入会打乱读者的阅读主线,好比你在专注一件事,周遭人疯狂地给你插入其他事情,整个节奏就乱了。所以,并非通用的内容,怎么理解呢?即,它是写给部分感兴趣的人的东西,比如使用文档、某个技术的介绍之类的内容,可以统一折叠到文末,注意的是,这里不要折叠在某个语句里需要解释的不常见名词,因为对不常见名词的解释是可以帮助读者理解的。
136 |
137 | 一言蔽之:**面向读者,在原作者的基础上,加工出更容易理解、方便他阅读的文章**。
138 |
139 | ### 内容之发布
140 |
141 | 这里已经同作者基本上无关了,这时候内容一般已经定稿。需要考虑的是如何呈现的问题,一般来说国内的技术平台都支持 markdown,而这个是一个免排版让你专注内容产出的格式。到这里,是不是没有什么可以做的呢了?不是的,下面是一个简单的例子,
142 |
143 |
144 |
145 | 和
146 |
147 |
148 |
149 | 二者都是同样的内容,有什么区别呢?答案是,**读者阅读端的信息传递量**。前者是横版的,后者是竖版,在设备高度固定的情况下,横版除了占据更少的高度之外,还可以将剩余的高度用来展示其他信息。当然,这里还涉及到了阅读习惯:先从左往右,再从上往下。所以,横版的流程图更合适。
150 |
151 | 上面讲的是内容发布当中的正文部分,当然,它也是编辑的一部分。其实,内容发布最重要的是,一般内容运营不会只同步一个平台,而是多平台同步内容,这当中涉及了对平台读者调性的把控。
152 |
153 | 举个例子,[https://discuss.nebula-graph.com.cn/t/topic/11510](https://discuss.nebula-graph.com.cn/t/topic/11510),这是一个如何做内核代码贡献的教程,它在各个平台的标题是这样的:
154 |
155 | * NebulaGraph 自己平台:你的内核开发指北,新手也能搞 NebulaGraph 内核开发,这里强调的是“你”这一个体;
156 | * 技术平台:从一个 issue 出发,带你玩图数据库 NebulaGraph 内核开发,因为在第三方平台,读者大概率是不知道 NebulaGraph 是什么的,所以这里加了一个对它的定义;
157 | * 传统的平台:零基础搞定数据库内核开发,这么抽象的原因是因为虽然它是 NebulaGraph 的内部人员编写的,但是它也可以作为通用型的数据库开发贡献指南。
158 |
159 | 这里说下为什么技术平台没有抽象产品,因为虽然抽象成「零基础搞定数据库内核开发」模糊特定的产品会带来更大的流量,但是站在 seo 和产品曝光角度,自然是加上产品更加。再举个例子,文章「ChatGPT 加图数据库 NebulaGraph 预测 2022 世界杯冠军队伍」这个标题,某个平台的运营人员和我建议将 NebulaGraph 去掉,我拒绝了,理由:
160 |
161 | 1. 这篇稿子涉及了两款技术,ChatGPT 和图技术,所以 NebulaGraph 是不能去掉的,加上之后可以有更精准地用户进来;
162 | 2. 还是上面的产品曝光的需求;
163 |
164 | 讲到这里,要说下,多渠道同步内容也许觉得很 boring,但是,可以在各个渠道尝试不同的标题,带来不同的阅读,也是蛮有意思的。
165 |
166 | ### 内容之复盘
167 |
168 | 这里是数据层面的东西,一般来说,可以同类型内容横向对比(热点对热点、特性讲解对特性讲解),发布时间横向对比(比如大家都是周一发的,或是都是下午发布的)。像是公众号,可以查看内容的分布情况,比如,直接打开阅读的有多少,微信群的多少,分享获得的阅读多少,各自占比,同其他文章相比较。
169 |
170 | 对比的结果是用来优化下次的内容生命流程图的,比如,分享好的话,可以引导多分享等等操作。
171 |
--------------------------------------------------------------------------------
/little-things/customer-service.md:
--------------------------------------------------------------------------------
1 | [TOC]
2 |
3 | 首先,说客服是件小事是从门槛角度说的,相比其他的用户运营岗位(注:客服属于用户运营的一个子集)它的门槛更低。但是相比其他用户运营岗,它能接触更多的人,是一个用户信息收集、维持产品和用户关系的一个重要桥梁。一般客服会在以下环节扮演重要角色:
4 |
5 | * 咨询
6 | * 反馈
7 | * 问题反馈
8 | * 建议反馈
9 | * 产品推广
10 |
11 | ## 咨询
12 |
13 | 在这个环节,用户找你咨询产品、公司时,在回复他 / 她的问题之前,需要先收集对方的公司和业务(岗位)信息,再进行一步的操作。根据对方所说内容,一般咨询分为以下几种:
14 |
15 | * 如何进群:告知对方进群流程为身份认证,在对方告知公司、业务信息之后,邀请对方进群;
16 | * 产品、公司信息资讯:针对性地提供现有的博客、视频资料,假若对方咨询的问题没有对应的资料可参考,记录下,在运营例会或者及时反馈给相关同事,并同步信息给主管;
17 | * Roadmap(产品规划):用户问某个功能是否有规划和具体的发布时间,如果问的功能需求你不清楚是否安排在开发,可以礼貌性回复(关于礼貌性回复的说明见下文)对方;如果确认需求在开发中,可以和对方说需求在开发中,具体的发布时间未定,加粗加粗加粗:**客服不要给用户做出任何允诺**。(参考电商客服:你咨询对方什么时候有优惠和打折,即便他们已经安排好了明天有活动,在活动未公开的时候,客服人员也不会提前和你说明天有活动)
18 |
19 | ## 反馈
20 |
21 | 针对反馈的内容不同,所需收集的信息也是不同的。
22 |
23 | ### 问题反馈
24 |
25 | 如果用户反馈的问题是产品使用问题,引导到用户去论坛进行提问,话术上可以强调论坛解决问题更快、提供技术服务的研发更多等同用户利益相关的信息,而非站在运营角度告知对方:微信解决问题,我们(研发)不方便。
26 |
27 | 注:**在和用户交流的过程中,需要强调的是对方的利益,尽量从对方获利角度来阐述你要讲的事项**。
28 |
29 | 如果用户并没有按照你的要求去论坛提问的话,你可以咨询对方是否可以代为发帖到对方,拿到授权并发布帖子之后,将帖子链接发给对方,让对方关注问题的解决过程,以及拜托对方如果信息缺失的话,麻烦他 / 她进行补充。
30 |
31 | ### 建议反馈
32 |
33 | 如果用户反馈了一个优化建议,操作可参考上面用户未能按照要求提问的方法,放在公开的地方进行反馈,让用户可方便地了解对应的建议反馈的回复。
34 |
35 | ## 产品推广
36 |
37 | 在产品有新功能和新版本上线时,可针对性地对特定用户群体进行推广,告知产品动态信息。
38 |
39 | ## 优秀的客服
40 |
41 | 说完客服的职责之后,再说下客服的定位。根据职责,客服的定位为:类似售前,给用户提供通用型服务:回复用户的咨询、反馈,注:不是定制化服务,所以本质上客服是一名服务人员,应具备服务人员的基本素养:礼貌,在和用户交流过程中,即便用户如何的难搞和烦人,用词也需礼貌。
42 |
43 | 满足基本的礼貌要求之后,作为一个门槛较低的行业,优秀、好的、一般客服区别还是比较大的,主要的区别体现在:
44 |
45 | * 挖掘可服务点,举个例子,用户刚接触我们,主动提供相关的学习资料,便是一个非常好的服务行为;再如,用户说我要在一周时间内了解 Nebula Graph,这时候你可以思考,假如他学习过程中遇到问题,该怎么办——提供对应的问题解决渠道:如果你在学习过程中遇到问题,记得论坛有人在帮你解决哟;
46 | * 比用户多走一步,减少用户的操作成本,例如用户问,查询点如何操作,相比较 `文档上有使用方法` 更佳的回复方式是找到对应的文档链接,发送给对方。
47 |
48 | 基本上,上面两点都是在阐述一个事情,提供更多的服务给对方。
49 |
50 | ## 客服人设这件事
51 |
52 | 首先,人设是一个更容易和用户建立关系的方式,相比一问一答的传统客服,有自己性格的客服人员更能得到用户的喜爱及沟通更流畅。
53 |
54 | 建立人设方面,可以忘却你是客服这一角色,以及生活中和朋友的聊天方式和用户进行沟通,注:首先依旧要保持礼貌。以生活中的行为带入客服角色建立人设的好处在于,它的操作成本更低,它本身便是你自己,你可以更好地驾驭这个人设。当然,你如果是个精分党,熟练驾驭各种人物设定,人设自拟。
55 |
56 | ## 礼貌用语
57 |
58 | 礼貌用语指的是看上去回复了对方的问题,但实际上没有提供更多的有效信息给对方。包括但不限于
59 |
60 | * 这个需求我们收集了,有进一步进展第一时间告知你
61 | * ...
62 |
63 | ## 最后,记住定位
64 |
65 | 客服就是为了帮对方解决问题,更好地解决问题的服务岗位。
--------------------------------------------------------------------------------
/little-things/waic2023.md:
--------------------------------------------------------------------------------
1 | TOC
2 | * [参展的目的](https://github.com/whatis-geb/operation/blob/master/little-things/waic2023.md#%E5%8F%82%E5%B1%95%E7%9A%84%E7%9B%AE%E7%9A%84)
3 | * [目的这件事](https://github.com/whatis-geb/operation/blob/master/little-things/waic2023.md#%E7%9B%AE%E7%9A%84%E8%BF%99%E4%BB%B6%E4%BA%8B)
4 | * [筛选展会](https://github.com/whatis-geb/operation/blob/master/little-things/waic2023.md#%E7%AD%9B%E9%80%89%E5%B1%95%E4%BC%9A)
5 | * [数据收集之展会部分](https://github.com/whatis-geb/operation/blob/master/little-things/waic2023.md#%E6%95%B0%E6%8D%AE%E6%94%B6%E9%9B%86%E4%B9%8B%E5%B1%95%E4%BC%9A%E9%83%A8%E5%88%86)
6 | * [信息收集的 tips](https://github.com/whatis-geb/operation/blob/master/little-things/waic2023.md#%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86%E7%9A%84-tips)
7 | * [主流的会展活动](https://github.com/whatis-geb/operation/blob/master/little-things/waic2023.md#%E4%B8%BB%E6%B5%81%E7%9A%84%E4%BC%9A%E5%B1%95%E6%B4%BB%E5%8A%A8)
8 | * [waic 的费用问题](https://github.com/whatis-geb/operation/blob/master/little-things/waic2023.md#waic-%E7%9A%84%E8%B4%B9%E7%94%A8%E9%97%AE%E9%A2%98)
9 | * [其他收获](https://github.com/whatis-geb/operation/blob/master/little-things/waic2023.md#%E5%85%B6%E4%BB%96%E6%94%B6%E8%8E%B7)
10 |
11 | 虽然参展过不到十次的技术大会,也做过一些站台活动,希望借助本稿理清一些参展的思路。
12 |
13 | 因为刚才加 [waic2023](https://www.worldaic.com.cn/),本文的数据部分主要由 waic 的数据作为展示,因为数据不涉及敏感信息,所以可以进行公开展示。
14 |
15 | ## 参展的目的
16 |
17 | 参加展会,在我看来是一种活动形式,正如之前说的:活动是以实现某种目的而采取的一种互动方式。这里就不再展开说明互动是什么,着重讲一讲:目的这件事。
18 |
19 | 在说目的之前,我们先来看看,技术大会能给我们带来什么?
20 |
21 | 这也是之前和 KubeSphere 的 fawei 聊过的,“貌似让他们做个互动之外(这里可能是 star 或者是关注公众号——具体活动形式后面会说),什么都没留下”。我回了一句:**宣传,提高市场品牌知名度**,即,品牌知名度,一个不好量化的指标。
22 |
23 | 但是,是不是仅此而已呢?直到这次参会,我再好好思考了“参展”这件事,答案变得更加丰富。
24 |
25 | ### 目的这件事
26 |
27 | waic 有非常多的大厂参加,蚂蚁、华为、商汤、中国移动…也有一些创业小公司来参加,比如:我司。
28 |
29 | 在我看来,大厂和小厂的参展的目的是不大一样的:
30 |
31 | * 大厂:彰显自身技术实力,可以不需要过度考虑投入产出比,以及费用开销。比如:某个站台花了近 2 平米(1mx2m)来展示了一个智能化城市;
32 | * 小厂:通过精准的用户过筛,完成自己去参展的目的;
33 |
34 | 下面,就展开来说说小厂的目的(毕竟我从没在大厂待过,文末 waic 展台费用部分会有相关收费信息)
35 |
36 | 目前,参展那么多次以来,展台的主导人员一般为两类:
37 |
38 | * 运营
39 | * 市场
40 |
41 | 有些展台会配有 SA、销售等资源,这边不做详细展开。想来说说,这两类主导
42 |
43 | * 运营,主要面对用户,收集到的数据自身就可以处理。因为整个链路都是运营负责操作,所以路径是:
44 | ```
45 | 做活动 -- 收集参会者数据 -- 过筛 -- 转化成用户
46 | ```
47 | * 市场,主要面对客户,收集到的数据交由下游的销售负责跟进。以下用 M 代表市场,S 代表销售,所以路径是:
48 | ```
49 | (M) 做活动 -- (M) 收集参会者数据 -- (M/S) 过筛 -- (S) 二次交谈 -- (S)转化成客户
50 | ```
51 |
52 | 因为市场是和销售紧密相关的,所以他们设置的活动形式,以及收集到的参会者数据要尽可能有效,是个销售可跟进的 leads,信息收集的问卷要尽量过筛掉非目标用户。同样的,运营的目的是为了转化为用户,信息问卷也要尽量过筛掉非目标群体,比如:我司是一个数据库厂商,非目标用户大概率就是销售、市场、运营人员,而目标群体便是软件开发者,这里软件开发也包含学生。
53 |
54 | 基于此,我们有既定的目标群体之后,现在的问题就来到如何去影响这些我们的目标用户,不是用钱(毕竟小厂没钱)而是通过一些活动形式来让他们了解我们的产品,以及在未来的某一天能用上我们。
55 |
56 | ## 筛选展会
57 |
58 | 上面说过我们的目的是什么之后,也说了我们的目标群体。现在就面临一个问题了,是不是什么大会都要参加。
59 |
60 | 这里首先明确一个个人观念:**即便是零花销(这里指的是参展费)的活动,也不代表它是零成本的**。人工成本是一个非常容易让人忽略的事情。员工出去参展,那一天原有的工作量就会搁浅,相当于一天的人工费用就没了,更别提如果是跨城市的出差费用。
61 |
62 | 因此,过筛一些大会是十分重要的。所有的大户主办方方都会会说,我们这个会有 1k / 3k / 5k / 10k+ 的人流量,有 10万的活动曝光。试想,你如果去参加一个全是销售参加的展销会,没有印名片的你除了收到一堆名片,以及出差的疲劳之外,还有什么?
63 |
64 | 因此,考核一个大会的性质是十分重要的。所以,要如何筛选呢?
65 |
66 | 因为我们是数据库厂商,所以一般会参加一些同计算机相关的大会,它可以是某个语言交流会——比如 Go 开发者大会,可惜我们是用的 CPP。
67 |
68 | 或者是技术媒体主办方的交流会,比如说架构师峰会之类的。
69 |
70 | 初步对展会的类型进行筛选之后,下一步就是,去参展,为下一次是否继续参展做相关的数据收集,即验证参会者的人群分布是否同你的目标群体相匹配。
71 |
72 | ### 数据收集之展会部分
73 |
74 | 展会的数据收集主要是哪块内容呢?在我看来是:
75 |
76 | 1. 人流
77 | 2. 群体分布
78 |
79 | 二者相辅相成,前者是基数,后者是概率,二者相乘才是你的目标群体数。这里是一个开源的人流计数器:[ESP32-Paxcounter](https://github.com/cyberman54/ESP32-Paxcounter)。
80 |
81 | 当然,我没用上这个工具我只是知道而已,这次 waic 主要还是通过现场二维码扫描量,来折算出具体的人流量:
82 |
83 |
84 |
85 | 有 5k 的数据,反推的下的话,大概人流在 10k 左右。当然它不是一个具体的数值,而是个估值,一般来说 7k 和 8k 区别并不是很大,都可以近似认为是 10k 左右。
86 |
87 | 也就是,waic 三天一共的人流量大概是 10k+。
88 |
89 | 那剩下就是用户群体的事情了,群体的分布和你样本分布情况大致相同,前提是你的样本得收集到一定的量,不能是 100 份样本来推测 10,000 的分布。
90 |
91 | 在 waic 我们信息收集问卷中,让活动活动参会者选择其职业:
92 |
93 |
94 |
95 | 这里是指粗略地进行群体划分,当然你可以更精细。考虑到精细群体划分,会增加选择字段,有可能在一个手机显示屏,即一屏内放不下选项,所以最佳的数量是主流手机屏幕的 80%-100% 左右。为什么是主流手机呢?😂 简单,一般活动现场都是扫码,扫码器一般都是手机。
96 |
97 | waic,我们收集到了 2k+ 数据,所以相对的,可信度会比价高,当然也只是仅供参考。
98 |
99 | 下面是 waic 三天的群体分布:
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 | 作为参考,这里也放出 waic 三天各个时段的群体分布(头尾数据仅供参考,因为我们开摊时间并非正点,同样收摊也一样)
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 | 上图用深色曲线描绘里目标群体的分布,浅色为非目标群体。结合上面的三天会场人群分布,总的来说 waic 还是一个不错的大会,目标群体占有 50% 左右。——别杠,因为群体划分颗粒度的问题,这个数据并不是非常精准,仅作参考。
116 |
117 | 这里插入一个表单设计的事情
118 |
119 | #### 信息收集的 tips
120 |
121 | 上面说,为了手机参会者的群体划分,所以我们需要手机群体的职业信息。这里有两种方式
122 |
123 | 1. 文本框:让对方输入;
124 | 2. 选项框:让对方自选;
125 |
126 | 先来说说两种的各自的优点和缺点:
127 |
128 | * 文本框:
129 | * 优点:丰富职业工种,可以弥补市场、运营人员因为对职业不够熟悉,而漏掉某个职业选型;
130 | * 缺点:
131 | 1. 后续数据分析,增加额外的信息清洗工作,比如,都是后端开发人员,一个写了后端,一个写了后端开发,还有人写 Java 开发,其实三种都是一类人,小数据量处理起来还算方便。超过 100 条,数据清洗的时候会觉得当初自己没带脑;
132 | 2. 浪费参会者时间,相比较勾选,打字输入更耗时;
133 | * 选项框:
134 | * 优点:
135 | 1. 节省输入时间
136 | 2. 可快速进行数据分析;
137 | * 缺点:
138 | 1. 由于表单创建者不够专业,岗位信息缺失,导致数据有误;
139 |
140 | 很明显,看得出来我的个人情况是选择,让用户选,而不是让用户自己去思考。毕竟,我也不想花几个小时去做数据清洗。
141 |
142 | 回题,现在大会已经筛选完了,我们要去参展了。剩下就是活动形式的问题了。
143 |
144 | ## 主流的会展活动
145 |
146 | 如果你经常去参会,稍微归纳总结下,就知道一般有这些活动。这里面大多数我都做过:
147 |
148 | 1. 关注公众号
149 | 2. 转发文章
150 | 1. 转发朋友圈
151 | 1. 转发即可
152 | 2. 转发积赞
153 | 2. 转发微信群
154 | 3. 填写问卷
155 | 4. 其他
156 | 1. 答题
157 | 2. 点 star
158 | 3. 网站注册
159 |
160 | 这些活动形式可以自由组合,再搭配抽奖、固定礼物这 2 种奖励方式,会有相对丰富的具体活动出来。
161 |
162 | 下面来说说上面这几种活动形式。在我看来,一半的参会人员都没思考过目的这件事,本人也是。所以,nebula 一开始的活动就是关注公众号,在很长时间也是关注公众号。
163 |
164 | 直到有一天,我发现,粉丝量起来了,但是阅读量没起来,为什么呢?
165 |
166 | 这就是上面说到过的,目标群体的问题。即便都是软件开发者去参加的大会,有些是做某个业务开发的,和我司的产品压根没关系,冲着礼物就关注了,后续呢?就是一个沉默的非用户。——这里提一句,如果确定是面向软件开发者的大会,群体划分就可以更加细化,去掉一些销售人员之类的选择,统一折叠成其他。
167 |
168 | 转发文章,相对而言还好点,为什么好点呢?因为你的产品得到了别人的私域流量曝光,注意仅仅是曝光而已。这里,也分两种两种情况:
169 |
170 | 1. 转发任意一篇文章;
171 | 2. 转发指定文章;
172 |
173 | 前者的话,参会人员一般会选欢迎词中的文章(如果有的话),没有便是选择最近的一篇文章,因为小厂的内容存储不如大厂丰富,很可能第一篇文章是个参会活动预告文。简单来说,用户的选项太不可控,相对的,后者会好一点。市场、运营人员可以选择优质的,这里的优质并非说是文章十分干货,而是从标题上就能为你这个产品做背书的文章,比如一些银行、大厂在上面的案例,或者是你想做市场教育的话,相关的科普文章。
174 |
175 | 下面,来说说,waic 我们的活动。其实,我想搞什么活动呢?🌟,给我们点 star 吧。不过,毕竟是受过互联网教育的人,这个风险点太高——因为一开始我的设定是 waic 会有很多发声——这个以后讲是什么意思——的研发到场,一个不小心,和 OB 一样被挂到知乎上,那就是互联网的耻辱柱,下不来的。
176 |
177 | 所以,🌟 没了,还有什么形式呢?关注公众号?——没用,上面说了,阅读量没起来。其他呢?也许可以做做图数据库的科普。
178 |
179 | 所以,waic 的 nebula 活动是:答题。
180 |
181 | 20 道和图数据库,nebula 相关的问题,通过答卷,让用户去看展台的宣传册,也算是一个好的循环。😂 这次的册子发的比以往都快——当然比以往少,册子主要是捡漏我司市场部的册子。
182 |
183 | ## waic 的费用问题
184 |
185 | 个人呢,不断人钱财。waic·2022 主要是上海政府掏钱,所以 nebula 参加的开源集市摊位免费,waic·2023 需要掏一点点钱,但是也不多。因为这个活动更多的是政府的公益活动,😂 真希望杭州政府能多搞搞这种面向市民的活动。
186 |
187 | 其他的商务展台,据朋友了解(她问了她的朋友),10 平左右大概是 20w 左右的费用;
188 |
189 | ## 其他收获
190 |
191 | 😂 杭州高温 4 天,家里电扇、空调全关,我家猫很健康地活了 4 天,真不错。
192 |
--------------------------------------------------------------------------------
/little-tools/crawler-modb.py:
--------------------------------------------------------------------------------
1 | import time
2 | from selenium import webdriver
3 | from selenium.webdriver.chrome.service import Service
4 | from selenium.webdriver.common.by import By
5 | from selenium.webdriver.support.ui import WebDriverWait
6 | from selenium.webdriver.support import expected_conditions as EC
7 | from selenium.webdriver.common.action_chains import ActionChains
8 | from selenium.common.exceptions import TimeoutException
9 | import re
10 | from bs4 import BeautifulSoup
11 |
12 | # Create a new Chrome browser instance and navigate to website A
13 | s = Service('/opt/homebrew/Caskroom/chromedriver/112.0.5615.49/chromedriver')
14 | driver = webdriver.Chrome(service=s)
15 | driver.get("https://www.modb.pro/u/15144")
16 |
17 | # Wait for the element associated with the tab B to become clickable
18 | b_tab = WebDriverWait(driver, 10).until(
19 | EC.element_to_be_clickable((By.XPATH, "/html/body/div/div/section/div[1]/div[2]/div[2]/div[1]/div[1]/div[2]/div"))
20 | )
21 |
22 | # 切换到 tab,这里的 tab 是文章选卡
23 | b_tab.click()
24 | time.sleep(5)
25 |
26 | def scroll_to_bottom(driver, css_selector):
27 | # 如果数据加载不出来,调大 SCROLL_PAUSE_TIME,且 SCROLL_PAUSE_TIME 数值要比下面 WebDriverWait(driver, 60) 中的数值大
28 | SCROLL_PAUSE_TIME = 60
29 |
30 | last_loaded_count = 0
31 | while True:
32 | elements = driver.find_elements(By.CSS_SELECTOR, css_selector)
33 | print(f"Current loaded elements count: {len(elements)}") # Debug info
34 | if len(elements) > last_loaded_count:
35 | last_loaded_count = len(elements)
36 | driver.execute_script("arguments[0].scrollIntoView();", elements[-1])
37 | time.sleep(SCROLL_PAUSE_TIME)
38 | # 如果数据加载不出来,调大下面的 60
39 | WebDriverWait(driver, 60).until(EC.visibility_of(elements[-1])) # Add explicit wait for the last element to be visible
40 | else:
41 | break
42 |
43 | # ... (the rest of the code remains the same)
44 |
45 | # Scroll to the bottom, until all content is loaded
46 | scroll_to_bottom(driver, ".b-border-item.font14.flex.between.knowledge-item.pdlr20.mt20")
47 |
48 | # Extract the HTML source of the page
49 | html_content = driver.page_source
50 |
51 | # 使用BeautifulSoup解析HTML内容
52 | soup = BeautifulSoup(html_content, 'html.parser')
53 |
54 | modiv = soup.find("div", {"id": "actionH"})
55 |
56 | read_num = 0
57 |
58 | for span_with_views_list in modiv.find_all("span", class_="views font12"):
59 | # 被注释掉的这条语句主要用来调试是否抓取了你想要的 td 数据;在 macOS 下选中命令用 command + / 即可取消注释;
60 | # print(span_with_views_list)
61 |
62 | for span_with_views in span_with_views_list:
63 | # 这个也是用来调试的打印程序;
64 | # print(td_with_views)
65 |
66 | if span_with_views:
67 | # 通过标题属性抓取浏览量
68 | # views_title = td_with_views.find("span", {"class": "number"})["title"]
69 |
70 | # 使用正则表达式提取数字
71 | views_num = int(re.sub("[^0-9]", "", span_with_views.text))
72 |
73 | read_num = read_num + views_num
74 |
75 | # print(views_num)
76 | else:
77 | print("无法找到包含'num views'的td")
78 |
79 | print("总阅读量是" + str(read_num))
80 |
81 | # 关闭webdriver
82 | driver.quit()
--------------------------------------------------------------------------------
/little-tools/scrolling-table-page.py:
--------------------------------------------------------------------------------
1 | # 🙋 需要安装 BeautifulSoup、selenium 和 chromedriver;
2 |
3 | import time
4 | import re
5 | from bs4 import BeautifulSoup
6 | from selenium import webdriver
7 | from selenium.webdriver.common.keys import Keys
8 |
9 | # 使用无头模式来避免实际打开浏览器
10 | options = webdriver.ChromeOptions()
11 | options.add_argument('headless')
12 |
13 | # 初始化webdriver,确保您的chromedriver.exe放置在适当的路径(注意路径)
14 | driver = webdriver.Chrome(executable_path='/opt/homebrew/Caskroom/chromedriver/112.0.5615.49/chromedriver', options=options)
15 |
16 | # 访问网页,请替换成自己的 url
17 | url = 'https://discuss.nebula-graph.com.cn/c/blog/8'
18 | driver.get(url)
19 |
20 | # 定义一个函数,模拟滚动到页面底部
21 | def scroll_to_bottom(driver):
22 | SCROLL_PAUSE_TIME = 1
23 | last_height = driver.execute_script("return document.body.scrollHeight")
24 |
25 | while True:
26 | driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
27 | time.sleep(SCROLL_PAUSE_TIME)
28 | new_height = driver.execute_script("return document.body.scrollHeight")
29 | if new_height == last_height:
30 | break
31 | last_height = new_height
32 |
33 | # 滚动到底部,直到所有内容加载完成
34 | scroll_to_bottom(driver)
35 |
36 | # 提取页面HTML源码
37 | html_content = driver.page_source
38 |
39 | # 使用BeautifulSoup解析HTML内容
40 | soup = BeautifulSoup(html_content, 'html.parser')
41 |
42 | # 寻找tbody
43 | tbody = soup.find("tbody", {"class": "topic-list-body"})
44 |
45 | def has_num_views(css_class):
46 | return css_class and 'num views' in css_class
47 |
48 | for tr in tbody.find_all("tr"):
49 | td_with_views_list = tr.find_all("td", class_=has_num_views) # 提取包含 "num views" 的 td
50 | # 被注释掉的这条语句主要用来调试是否抓取了你想要的 td 数据;在 macOS 下选中命令用 command + / 即可取消注释;
51 | # print(td_with_views_list)
52 |
53 | for td_with_views in td_with_views_list:
54 | # 这个也是用来调试的打印程序;
55 | # print(td_with_views)
56 |
57 | if td_with_views:
58 | # 通过标题属性抓取浏览量
59 | views_title = td_with_views.find("span", {"class": "number"})["title"]
60 |
61 | # 使用正则表达式提取数字
62 | views_num = int(re.sub("[^0-9]", "", views_title))
63 |
64 | print(views_num)
65 | else:
66 | print("无法找到包含'num views'的td")
67 |
68 | # 关闭webdriver
69 | driver.quit()
--------------------------------------------------------------------------------
/little-toys/midjourney-style.md:
--------------------------------------------------------------------------------
1 | # 👘 midjourney 风格篇
2 |
3 | 来自:[https://github.com/willwulfken/MidJourney-Styles-and-Keywords-Reference/blob/main/Pages/MJ_V4/Style_Pages/Just_The_Style/Themes.md](https://github.com/willwulfken/MidJourney-Styles-and-Keywords-Reference/blob/main/Pages/MJ_V4/Style_Pages/Just_The_Style/Themes.md)
4 |
5 | 由于原教程没有对应的 prompt,这里所有图片都采用统一 prompt。根据做变量实验法,这里只调整一个 style 参数。
6 |
7 | > 本篇 prompt:
8 | > 1. main style: xx | scene: close-up of a catwoman --ar 2:3 --v 5.1
9 | > 2. main style: xx | scene: a four-story building --ar 3:2 --v 5.1
10 |
11 | #### 风格词汇
12 |
13 | |英文词汇|中文注解|示例|
14 | |:--|:--:|--:|
15 | |realistic|现实风,用于生成写实照片|
|
16 | |hyperrealistic|超现实|
|
17 | |hyper real|同上,可以用来生成非现实图片(偏广告脑洞|
|
18 | |photorealistic|照片般逼真的|
|
19 | |photorealism|照片写实主义|
|
20 | |realism|写实主义|
|
21 | |magic realism|魔幻现实主义|
|
22 | |fantastic realism|奇幻现实主义|
|
23 | |classical realism|古典现实主义,可用来生成复古图片|
|
24 | |new realism|新现实主义|
|
25 | |contemporary realism|当代现实主义|
|
26 | |surreal|超现实|
|
27 | |surrealism|超现实主义|
|
28 | |unrealistic|非现实|
|
29 | |non-fiction|非小说|
|
30 | |fiction|虚构的|
|
31 | |science fiction|科幻|
|
32 | |imagined|想象、虚构的|
|
33 | |imaginative|创新,有想象力的|
|
34 | |imagination|想象力|
|
35 | |dreamlike|梦幻|
|
36 | |dreamy|梦幻般的|
|
37 | |fever-dream|奇妙经历,通常为不好的经历|
|
38 | |dreampunk|梦幻朋克|
|
39 | |daydreampunk|白日梦朋克|
|
40 | |dreamcore|类似同上|
|
41 | |weirdcore|怪诞|
|
42 | |lucid|清晰|
|
43 | |ethereal|空灵,飘逸|
|
44 | |ethereality|脱俗|
|
45 |
--------------------------------------------------------------------------------