├── .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 | ![pingcao-footprint](https://user-images.githubusercontent.com/38887077/198819267-9b86c4cc-5cce-43d8-a9cf-828db25736f0.png) 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 | image 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 | ![image](https://user-images.githubusercontent.com/38887077/206902942-d775c628-d57e-4a62-972c-2a5a328748ab.png) 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 | ![image](https://user-images.githubusercontent.com/38887077/206904821-c9e45e5d-5c92-4281-945e-7cc94a08d1b9.png) 134 | 135 | 此外,编辑也得帮稿子理清主线,NebulaGraph 的有个同学写稿子非常喜欢在某个章节加入 tips,这固然是好意,但是过多的 tips 插入会打乱读者的阅读主线,好比你在专注一件事,周遭人疯狂地给你插入其他事情,整个节奏就乱了。所以,并非通用的内容,怎么理解呢?即,它是写给部分感兴趣的人的东西,比如使用文档、某个技术的介绍之类的内容,可以统一折叠到文末,注意的是,这里不要折叠在某个语句里需要解释的不常见名词,因为对不常见名词的解释是可以帮助读者理解的。 136 | 137 | 一言蔽之:**面向读者,在原作者的基础上,加工出更容易理解、方便他阅读的文章**。 138 | 139 | ### 内容之发布 140 | 141 | 这里已经同作者基本上无关了,这时候内容一般已经定稿。需要考虑的是如何呈现的问题,一般来说国内的技术平台都支持 markdown,而这个是一个免排版让你专注内容产出的格式。到这里,是不是没有什么可以做的呢了?不是的,下面是一个简单的例子, 142 | 143 | image 144 | 145 | 和 146 | 147 | image 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 | image 84 | 85 | 有 5k 的数据,反推的下的话,大概人流在 10k 左右。当然它不是一个具体的数值,而是个估值,一般来说 7k 和 8k 区别并不是很大,都可以近似认为是 10k 左右。 86 | 87 | 也就是,waic 三天一共的人流量大概是 10k+。 88 | 89 | 那剩下就是用户群体的事情了,群体的分布和你样本分布情况大致相同,前提是你的样本得收集到一定的量,不能是 100 份样本来推测 10,000 的分布。 90 | 91 | 在 waic 我们信息收集问卷中,让活动活动参会者选择其职业: 92 | 93 | image 94 | 95 | 这里是指粗略地进行群体划分,当然你可以更精细。考虑到精细群体划分,会增加选择字段,有可能在一个手机显示屏,即一屏内放不下选项,所以最佳的数量是主流手机屏幕的 80%-100% 左右。为什么是主流手机呢?😂 简单,一般活动现场都是扫码,扫码器一般都是手机。 96 | 97 | waic,我们收集到了 2k+ 数据,所以相对的,可信度会比价高,当然也只是仅供参考。 98 | 99 | 下面是 waic 三天的群体分布: 100 | 101 | image 102 | 103 | image 104 | 105 | image 106 | 107 | 作为参考,这里也放出 waic 三天各个时段的群体分布(头尾数据仅供参考,因为我们开摊时间并非正点,同样收摊也一样) 108 | 109 | image 110 | 111 | image 112 | 113 | image 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 | --------------------------------------------------------------------------------