2019年11月15日星期五

Early Reader 2020 调整

我在 Patreon 上开放 Early Reader 这一档有一年多了,感谢大家长期的支持,让我来聊聊这一年的通过经营 Patreon 学到的东西吧。

Early Reader 这一档每个月收 $1 的费用,对应的好处是提前一周阅读我最新发布的文章。(事实上我推迟了文章在其它平台发布的时间,同时在 Patreon 上设置了解锁时间。)在这一年内我获得了 9 位朋友的支持,现在仍然活跃的有 5 位。

我觉得 Early Reader 这一档并没有达到我原来的预期。我原本设想这一档能够通过足够低的价格获得尽可能多的读者支持,但实际上没有足够多的人愿意为「提前一周」这个福利而付费。我在跟 Joma 聊天时他提醒了我一件事情,「你不应该根据『你需要付出多少』来定价,而要根据『别人能获得多少』来定价,提前一周阅读对读者来说其实不值钱」。我觉得这个视角是对的,所以我准备对 Early Reader 这一档作出调整。

我从读者的角度来思考什么有价值,我觉得主要是两方面吧:

  1. 获得我不对外公开的独家内容。
  2. 能够真正的激励我创作更多的内容。

为此我新开了两档,分别叫做 Coffee Supporter ($5) 和 Sushi Supporter ($30)。这两档的价格比原来的更高,但请我吃饭(尤其是吃寿司)这件事情确确实实能够激励我干活。我有一个猜想,很透明地分享一下吧:如果我的读者觉得他们给我的是看得着摸得到的实物(食物),那会比原来虚无地付 $1 但不知道这 $1 有什么具体含义更乐意付费。(你们可以在评论区告诉我这个猜想对不对。)

此外我会开始做不对外公开的独家内容,专门给付费读者看。一开始主要还是文章,之后我会探索音频和视频。这些内容如果是长篇的话,我可能会免费发布其中一部分在公开的博客上,但不会发布全部。

最后说一下现在 Patreon 上的 Early Reader 这一档会如何迁移。我现在已经对新读者关闭了这一档,并且计划在 2020 年 1 月完全终止这一档,那意味着如果你到时候仍然使用这一档的话 Patreon 就会把你的付费订阅取消掉。如果你愿意升级到 Coffee Supporter 或 Sushi Supporter 的话,你可以在那之前进行升级。升级后会保留原有的福利,同时获得上述新增福利(不对外公开的独家内容)。

如果你是在我 Patreon 以外的博客上看到这篇文章,欢迎来 Patreon 付费支持我。如果你觉得美元付费对你来说并不方便,请在评论区留言告诉我,我正在努力开通支持人民币支付的对应版本。

Career Coaching 2020 新价格

我的 Career Coaching 将在 2020 年初开放更多名额,同时进行年度价格调整。新学生的价格为每小时 $300。2019 年内或更早加入的学生将能继续获得优惠,优惠价将在 2020 年 1 月统一调整到每小时 $200。

对于已经在 Patreon 上进行付费的现有学生,我会在 12 月开放新的一档 $200 的服务,请你们把自己的帐号从现在的 $100 或 $150 一档调整到 $200 一档,然后我会在 1 月删除 $100 和 $150 这两档。(我到时候会发消息逐一通知你们。)

对于等待新名额的学生,我将会在 12 月放出 $300 这一档。如果你 12 月就在 Patreon 上加入的话,系统会在 1 月头扣钱,我会在 12 月跟你约好 1 月份开始的 bi-weekly 30 minutes 1:1。

2019年11月12日星期二

《牛油果烤面包》满月回顾(Part 3 - 统计数据)

Apple Podcasts Connect

上一篇文章里我讲述了《牛油果烤面包》的录音和剪辑过程,接下来我们看看听众订阅和收听的数据如何。


我在第一篇文章里面提到我们用 Anchor 把播客自动发布到多个平台,同时我们手动发布到喜马拉雅和企鹅 FM。如果我们要看数据,我们就必须一个一个平台地看。

  • Anchor:Anchor 提供「播放数」和估算的「听众数」,同时提供听众的国家、播放平台和设备分布。Anchor 会统计每一集每一天的播放次数。(参考截图
  • Apple Podcasts:Apple Podcasts Connect 不提供「订阅数」只提供「设备数」,所以无法知道有多少人订阅了。Apple 强调的是总收听时间,我们在过去的 60 天内有 96 个小时的收听时间,这样就可以推算出来每台设备 85 分钟的收听时间。此外这 96 个小时里 84% 来自于订阅听众,但这还是无法推算出订阅数。具体到每一集,Apple 同样提供设备数和总收听时间,同时提供节目内的留存率,也就是用户听到第几分钟第几秒钟就流失了。(参考截图:1 2
  • Spotify:Spotify 提供「播放次数」、「播放超过 60 秒次数」、「听众数」和「订阅数」。后面两个都是根据 Spotify 注册用户进行计算的,所以不存在多次在不同设备播放导致的重复计算。我们现在有 153 个订阅用户,但每期节目只有不到 20 次播放,意味着 Spotify 的用户经常订阅但不收听。Spotify 为每一集提供留存率,以及听众的性别和年龄分布。(参考截图)
  • Google Podcasts:Google Podcasts 本身并不提供任何的数据,只要 RSS 被 Google 抓取了就会显示在 Google Podcasts 里。有意思的是,Google Play Music Podcast Portal 可以认领 podcasts,但我认领后还没能看到任何数据,不知道这个产品现在到底是否还活着,还是因为不会有人在 Google Play Music 里面听 podcasts。暂时来说,我们无法从 Google 获得任何数据。
  • Castbox:Castbox Creator Studio 提供节目的订阅数、播放数和每一集的播放次数。(此外,因为 Castbox 提供了评论系统,所以作为管理员可以管理用户评论。)
  • Breaker:Breaker 自动收录第三方的 RSS,对于不是在 Breaker 上创建的 podcasts 无法认领也无法获取数据。
  • Overcast:Overcast 自动收录 Apple Podcasts 已经收录的 RSS,并且不提供认领。有意思的是,Overcast 在抓取 RSS 时通过 user agent 来上报订阅数,但由于我们使用 Anchor 提供 RSS 所以无法截获 user agent 获取订阅数。
  • Pocket Casts:Pocket Casts 接受 podcasts 提交,但不提供认领和数据。
  • RadioPublic:RadioPublic 自身不提供任何的数据分析,但可以使用 Google Analytics 收集数据。不过只有付费用户才能使用这项功能,所以我并不知道 RadioPublic 会向 Google Analytics 汇报什么数据。
  • Stitcher:Stitcher Partners 提供播放数、播放时间和听完率。
  • 喜马拉雅:喜马拉雅提供「订阅数」和「播放数」,以及每周新增听众的留存率。喜马拉雅不提供节目内的「留存率」但提供「跳出率」,虽然本质上是一样的数据但呈现出来的曲线就完全不一样的。(「跳出率」是「留存率」的倒数。)此外喜马拉雅提供听众的省份、城市和性别分布。

总结一下:这些平台提供的数据各不一样,有些平台基本上不提供什么数据。这就导致我们无法轻易地整合数据,分析听众喜好,然后优化将来的节目。现阶段我们能做的是,尽量把用户带往几个提供数据分析的平台,然后依靠这几个大平台的数据做决策。

长远来说,我觉得我们可以做自己的平台入口,让用户可以直接在我们自己的网站上播放甚至是订阅,这样我们就可以自己收集一部分的统计数据了。当然,如果用户喜欢用其它平台的 app 进行订阅和播放我们依然无法收集到那部分的数据,但至少我们能收集多少是多少吧,这对我们优化选题和节目内容很重要。


说完数据之后,我们接下来可以说说选题。如果你想知道我们是如何进行选题的,欢迎通过邮件RSS/Atom 订阅我的博客,保证你不会错过下一次关于选题的文章。

2019年11月9日星期六

追踪短地址的小工具:Trace URL

我写了一个追踪短地址的小工具,输入任何短地址(或普通带重定向的地址),它就能找到原地址显示给你看。我把它叫做 Trace URL,欢迎大家来使用。这是一个 PWA (Progressive Web App),所以 Android 用户可以把它添加到首屏,添加后就可以把短地址「分享」给 Trace URL 进行追踪。

这个项目是完全开源的,不过源代码分布在多个 GitHub 项目当中。traceurl-web 包含了 PWA 客户端代码。这个项目使用 Create React App 创建,然后使用 Material UI 做样式模板,最后手工编辑了一堆 metadata 使它成为一个好用的 PWA。在这里我分享一个比较小众的 PWA 知识吧,也就是如何让 PWA 接受来自 Android 分享的数据,这需要在 manifest.json 里面添加一个叫做 share_target 的信息,例如说:

{
  "share_target": {
    "action": "/",
    "method": "GET",
    "enctype": "application/x-www-form-urlencoded",
    "params": {
      "title": "title",
      "text": "text",
      "url": "url"
    }
  }
}

添加 share_target 信息后,只要 PWA 被添加到首屏,它就能成为 Android 系统的分享目标。需要注意的是,Chrome for Android 有个已知的 bug,分享地址时会把地址传输给 text 参数而非 url 参数。所以在处理传入参数时我们需要同时看 texturl,哪个有值就处理哪个。

这个 PWA 背后实际调用的 API 在 traceurl-api 项目里。这个 API 其实只是对 traceurl 库做了个简单的封装,这个库才是真正负责跟踪短地址的。这样层层封装只是为了好玩,让我能够尝试一些新技术,学习新知识。例如说,traceurl 其实是一个 package,我原本把它发布到 NPM Registry 了,后来 GitHub 发布测试版的 GitHub Package Registry 时我就试用了一下,把 traceurl 发布到那里去然后在 traceurl-api 里面引用。这就让我理解到了到底为什么 GitHub 要做自己的 Registry。(到底是为什么?我另外写一篇文章解释。)

这次就先说这么多吧,大家记得来试用一下 Trace URL 哦,好用的话记得添加到 Android 首屏哦!下次我再写文章讲述 GitHub Package Registry,感兴趣的话请记得通过邮件RSS/Atom 订阅本博客。

2019年10月18日星期五

Career Coaching 小组交流群

我在做 career coaching 的过程中听到了大家的建议,希望能建立小组帮助目标一致的学生沟通。在我的学生当中,有两个主流的目标群体,为此我专门在我的 Discord 服务器上开了两个 channel 用作交流:

  • 第一个是求职小组(#students-job-seeking),主要针对想要找 Software Engineer 职位的在校学生,有计划换工作的 Software Engineer 也可以加入讨论。这个小组主要用来讨论笔试题目、面试题目、公司招聘流程、寻求内部推荐、了解公司口碑和职位信息等。
  • 第二个是职业成长小组(#students-career-growth),主要针对在职 Software Engineer 提升技能和探索新领域,同时也可以用作交换各大公司的职场经验。我预期这个小组的话题更宽广一些,包括一些类似 case study 的个人经历讨论。

如果你还没有加入我的 Discord 服务器,请使用邀请连接 加入。(如果你不想使用 Discord,欢迎通过评论推荐别的平台。)只要你是我的 Patreon 上的学生,你应该会自动获得对应的权限,保证你能够进入这两个小组。如果你在 Patreon 外跟我 ad-hoc 约时间,你可以在加入我的 Discord 服务器后告诉我你的用户名,我可以手动把你添加进去。

《牛油果烤面包》满月回顾(Part 2 - 录音剪辑)

我们继续回顾一下录制播客《牛油果烤面包》过程中学习到的东西。在上一篇文章里我说了一下使用 Anchor、喜马拉雅和企鹅 FM 作为平台发布的经验,这次我们说说录音和剪辑的过程。


我们录音使用的是一支 Sony 录音笔,这是我看着 TheWireCutter 的推荐买的。为什么选择录音笔?这跟我选择 Anchor 作为第一个发布平台的原则是一致的,就是找投入成本最低最快能起步的方式先把节目做起来,如果节目做得好,听众越来越多,我们可以投入更多把节目做得更好,否则我们停掉节目损失也不大。

一个人录音的话其实很方便,直接用手机连接麦克风录就可以了。这其实也是 Anchor 推荐的办法,Anchor 说很多个人播客都是一个人躲在棉被下面录音的,因为棉被可以隔音。不过我们有两位主持人,一个麦克风无论是连接手机还是电脑都不能解决问题,但要两个麦克风一起录的话就需要特殊设备支持。用电脑录的话,可以用 mixer,把多路麦克风输入合并到一起再输入给电脑。后来我发现原来录音笔也是有内置支持多路输入的,例如这个价格是上述 Sony 录音笔四五倍的 Zoom H6

我们现在使用双声道的 Sony 录音笔,两个主持人一起录通常没什么问题,大家坐在桌子的两旁,录音笔放中间。只要录音笔离两个人的举例相当,大家保持相当的音量说话,录出来的效果也不错。当我们开始邀请嘉宾时,事情就变得有点复杂了。要让三个人到录音笔的举例一致比较难,我们往往是把位置安排好后先试录一段,然后再听一听感觉效果没问题了再正式开始录。


录音之后的剪辑我用 Audacity,免费开源的好工具。我在剪辑方面不是很有经验,往往就是看看哪里有废话就剪哪里。我们在录音过程中有时候聊着聊着就把话题给聊死了,于是我们会停下来讨论一下接下来聊什么,这样的部分就会被完全删掉。除此之外,我们还有很多「嗯」、「啊」之类的 fillers,也就是想不到说什么时会无意识说的字,在合理的情况下这些也会被删掉。在内容剪辑好之后,我们会在录音前后加上 intro 和 outro 的音乐,然后调节一下整个节目的音量大小。

这项工作说起来简单,实际上做起来非常耗时。之前剪辑都是另外一位主持人斯图亚特做的,后来我听说 Acquired 这个两位 VC 做的播客使用网上专业的剪辑服务,每周节省数个小时的剪辑时间,于是就产生了类似的想法。很可惜他们使用的服务仅支持英语播客,不适用于我们的中文节目。为此我在 Twitter 上问我的 followers 有没有人愿意收费帮我们剪辑,最终找到了 @icewlb 来跟我们合作,帮我们完成剪辑这一项艰巨的任务。


这次文章就写到这里,下次我们来聊聊我们节目的用户收听数据如何,根据这些数据我们会如何安排接下来的节目。如果你想要看我们的数据,欢迎通过邮件RSS/Atom 订阅我的播客,保证不会错过下一篇文章。

2019年10月17日星期四

《牛油果烤面包》满月回顾(Part 1 - 发布平台)

我们做《牛油果烤面包》这个播客满一个月了,总结一下这个月以来的经验吧。

我在之前的文章里面说到为什么我选择使用 Anchor 这个平台来发布播客,因为它像是播客业界的 YouTube,能够让你免费并且迅速地起步。这对于我们这个不知道能不能做起来的播客来说很重要,因为我们当时还不知道会坚持做多久,所以前期投资越低越好。


用 Anchor 发布我们后发现的第一个问题就是中国国内不能访问。这其实很要命,因为我们做这个节目的一个初衷是为了让国内的听众更好地了解美国加州和湾区,如果国内不能访问的话这一个目标就实现不了。我第一时间尝试研究 Anchor 支持的第三方平台有没有能在国内收听的,例如说 Spotify。我发现 Spotify 的收费用户是能在国内收听的,但因为 Spotify 没有正式在国内提供服务,所以能注册到的帐号必然是其它国家的帐号,不付费就不能「漫游」到中国使用。(我暂时还没有找到一个能让国内用户正常订阅和下载 Anchor 节目的方案。)

在我紧张地想办法解决 Anchor 不能访问的问题时,我们的另外一位主持斯图亚特直接注册了一个喜马拉雅的帐号来解决问题。这需要他进行身份证验证,这还需要我们接下来持续维护两个帐号同步发布,不过为了能让国内的听众正常收听到我们的节目,这也是值得的。

这个问题看起来解决了,但后来我在网上搜索了一下国内播客平台的市场份额,发现没有最新的数据但几年前的数据表明喜马拉雅并没有完全占据这个市场,企鹅 FM 和荔枝 FM 也占据了不小的市场份额。于是斯图亚特又去注册了一个企鹅 FM 的帐号在那边同步发布。


我们遇到的第二个问题是如何修改已发布内容。博客文章发布后要修改很简单,编辑文本就可以了。播客的话,我们可以在本地编辑音频文件,但平台是否支持上传覆盖呢?

Anchor 在这方面是很容易的,编辑一集节目时除了可以修改文本信息,还有一个编辑音频的功能。编辑环境跟发布前的创作环境一样,可以随意切割音频文件,然后重新排列多段音频顺序,或者是插入听众留言和过渡音效。因为我们不使用 Anchor 的编辑环境,所以我们把本地编辑好的新文件上传就好了。

喜马拉雅的这个功能找了很久才找到。在编辑某一集节目的界面里只能修改文本信息,不能重新上传音频。最终我在研究专辑编辑时找到了这个功能——在专辑的节目列表里,可以选择任何一集节目然后重新上传音频文件。当然作为一个国内的平台,上传当然不仅仅是上传,先审后发是必须的,不过审阅超级快(不知道是不是用算法侦测出我们只是微调了音频)。

至于企鹅 FM,因为我们比较晚才登陆,所以没试过需要发布后编辑的,仍然不确定它是否支持发布后编辑……


在这篇文章里我就先说这么多,我会在下一篇文章中聊聊我们录音和剪辑的经验。最后送上我们这一个月里除首发外热度最好的一集,里面讲述了我们两位主持人移民美国的体验。

2019年10月10日星期四

《Secrets of Sand Hill Road》书摘(Part - 1)

我最近读完了《Secrets of Sand Hill Road: Venture Capital and How to Get It》,觉得这本书对于 VC 及其运作方式的解释很清晰。如果你想要创业但还没有跟 VC 打交道的经验,这是一本非常好的入门书。如果你只是好奇 VC 和创业者之间的合作和博弈,那也不妨读一读。以下是我读完这本书以后我觉得有意思值得摘录的点。

VC 是什么?

  • 在你无法通过其它更传统的金融手段(例如债券)获得资金时,VC 是一种获取资金的手段。但在选择 VC 之前,你必须先先思考一下哪种获取资金的手段更适合你。
  • 债券还是股权?债券是要偿还的,所以更适合于那些短期内能够产生利润的公司。股权则没有这方面的限制,但你就不能够保持对公司的 100% 控制权了。
  • VC 作为一种资产类别来说,其回报中位数并不比 S&P 500 好多少,只有顶级 VC 能产生超额回报。研究表明,能够产生超额回报的 VC 会持续产生超额回报,因此品牌效应明显。
  • VC 的品牌效应会覆盖到创业公司:被顶级 VC 投资的创业公司,更可能是这一领域的顶级公司,更有可能吸引顶级人才,更有可能吸引到顶级 VC 投资下一轮。
  • VC 的投资结果分布:约 50% 是亏本的,甚至血本无归;约 20% 到 30% 能产生几倍(不到 10 倍)的回报;约 10% 能产生 10 倍甚至 100 倍回报。VC 只在乎增加 10 倍或以上回报的概率,10 倍以下和亏本无区别。

VC 如何选择投资?

  • VC 主要考虑三个类别:人、产品、市场
    • Founder-Market Fit:有什么特定技能、背景或经历导致创始团队想要做这个 idea?
    • 基本问题:对于同一个 idea,为什么选择押注在这个团队上,而不是等待另外一个更适合做这个 idea 的团队出现?(背后的逻辑:一家 VC 投资一家公司就是认定这家公司能够赢得这个市场,投资这家公司的机会成本就是将来不能再投资这家公司在这个市场的竞争对手。)
    • 创始人的领导力:他们能否围绕公司使命说一个很动听的故事,吸引优秀人才加入,吸引顾客购买,并且为将来的融资吸引其它投资人。
    • 「You have to be partly delusional to start a company given the prospects of success and the need to keep pushing forward in the wake of the constant stream of doubters.」
  • 产品
    • 假设产品在寻找 product-market fit 时会改变许多次,如同探索迷宫一样探索 idea 的流程比实际的产品 idea 能更好地预测创始人的成功。
    • 维生素和阿司匹林:如果你忘记吃维生素,你不会放下手上的活赶回家吃。如果你觉得头痛,无论如何你都会想弄一片阿司匹林来吃。VC 喜欢投资阿司匹林一样的产品。
  • 市场规模
    • 如果 VC 投资到一个不成规模的市场里,就算公司表现优异,股票价值也不会太高。因为 VC 需要 10 倍或以上的回报,所以不能投不成规模的市场。
    • 平庸的团队能在伟大的市场里获得成功,优秀的团队在不好的市场里总会失败。

LP 是什么?

  • VC 靠 LP 的投资来生存。LP 需要 VC 维跑赢市场指数来维持他们的投资组合。
  • 常见的 LP 类型:大学的捐赠基金、慈善基金会、企业和政府退休金、超高净值家庭的财富管理公司、国有财富基金、保险公司、小额基金组合而成的基金。
  • LP 的三大投资类别:grwoth assets(公开股票、私募股权、对冲基金)、inflation hedges(房地产、商品、自然资源)、delationary hedges(债券、现金)。
  • 大学的捐赠基金需要向学校提供稳定的资金来源,Yale 是这些基金的典范。Yale 基金有一半放在非流动性资产里。为了保证学校的正常运作,Yale 基金需要每年从非流动性的 VC 投资里获得 18% 的回报。这个对回报的需求驱使 VC 把投资转化为利润,投资的公司要么上市要么出售。
  • 创业者必须有对 VC 基金周期的敏感性,知道投资自己的基金处于周期的哪里。(大多数 VC 基金的生命周期都是十年。)如果你在基金的第三、四年拿钱,这个基金有充裕的时间和可用资本跟你共同成长。
  • VC 的基金一般都会预留一定的资本,用来追加更晚轮次的投资给之前这个基金投资过的公司。你从一个基金首次获得投资的时间越晚,这个基金就越有可能没留下足够的预留资本继续投资你将来的轮次。
  • 在预留资本不足时,VC 可以用第二个基金追加更晚轮次的投资,但这比从同一个基金出资要难。因为第二个基金有不同的一组 LP,可能会导致跟第一个基金产生利益冲突。

书摘的第一部分就写到这里,下一篇从「LP 如何和 VC 组队」开始继续写。想要关注这个系列的话,欢迎通过邮件RSS/Atom 订阅。

2019年9月24日星期二

如何让 MailChimp 订阅对话框在点击时弹出

问题描述

我的博客提供 MailChimp 订阅,大家点击订阅链接后需要转跳到 MailChimp 的页面输入 email。MailChimp 官方提供直接嵌入在网页内的订阅对话框,我希望读者在博客上点击订阅链接后直接打开对话框,让订阅流程变得更顺畅,这样可能能够提高订阅率。(为了保持兼容性,如果读者在 RSS 阅读器或邮件内点击订阅链接,则还是正常打开订阅页面。)

问题在于 MailChimp 官方不提供订阅对话框通过点击触发的选项。对话框的触发条件只有简单的几种:页面加载后弹出、用户滚动到页面底部时弹出……(可能 MailChimp 是设计给非程序员用的,所以不提供任何需要写点代码才能完成的整合,只提供包装好简单易用的方案。)为此,我需要修改 MailChimp 官方提供的对话框嵌入代码,使得它能在订阅链接点击时触发。

解决方案

MailChimp 提供的嵌入代码包含两个 <script> 标签。第一个 <script> 标签不需要做改动,第二个 <script> 标签需要把内含的代码需要嵌入到一个函数中去,然后就可以在链接的点击事件里通过调用这个函数触发订阅对话框了。以下是参考代码:

在上述代码中,我没有改动第一个<script> 标签,第二个<script> 标签里面有一个函数,第三个 <script> 标签对页面上的订阅链接添加点击事件响应函数并在那里调用第二个 <script> 标签里定义的函数。

第二个 <script> 标签里定义的函数,包含了 MailChimp 官方提供的代码中的 window.dojoRequire(...) 这一行。如果你要使用我的代码,你必须把这一行替换成 MailChimp 给你的同一行代码,然后才会显示你的对话框而不是我的对话框。

在这一行前面,我插入了两行代码用来删除 MailChimp 会插入的两个 cookie:一个是在用户关闭对话框后加入,另一个是在用户订阅后加入。只要有这两个 cookie 中的一个,对话框就不再显示。这对页面打开就触发的订阅对话框来说是合理的,谁也不希望每次打开页面都会看到对话框弹出。但如果用户主动点击链接,则应该总是打开对话框。为此我们要删除上述两个 cookie,保证对话框总是能打开。

第三个 <script> 标签是针对我的博客定制的,并不适用于其它人。我在我的博客页面内寻找所有指向我 MailChimp 订阅页面的链接,然后绑定这些链接的点击事件。用户点击链接的话,就调用第二给 <script> 标签内的函数,打开对话框,同时取消正常链接点击带来的页面转跳。

如果你想测试一下这项功能,请点击邮件订阅链接。如果你是在博客上阅读本文的话,应该会看到对话框。对话框打开后,记得输入 email 然后订阅哦!