缩小迭代周期,加快自身的成长

047bc44da843d0fd8bfb1661e7a582ec

一直以来,我对于写周报、日报比较反感。之前曾经试着写过一段时间,但还是写的不够好,容易因为自己的惯性而放弃记录。即使是记录的最频繁的日记,也时常因为变成流水账而失去其意义(但不得不说,即时是流水账,在若干年后回头再看, 还是非常感动的,所以即使是流水账,也还是要记录的)。

而回到我们自身的发展,一个更快的迭代周期,可以帮助我们更好的完成自我的成长,将一个更大的飞轮,变为一个个更小的飞轮。

047bc44da843d0fd8bfb1661e7a582ec

化整为零,能够让我拥有更多的犯错机会,更快的改正机会,避免一次憋个大招,待到发现事情不对,已经失去了改进的机会。

目标指引你成功

selective focus photography of an arrow

每一个人都需要一个目标,来帮助你抵达彼岸。不过可惜的是,我们的教育很少教育大家关于目标、关于理想、关于人生价值的内容。这可能是我们的教育的问题。

不过,如果你看到这篇文章,说明你至少不是一个那么普通的人 —— 这年头看独立博客的人已经不多了。

目标存在的意义并不是和很多人想象中那样的无用。每当我和别人提起,“你是否有理想?”、“你找到你的人生母题是什么了么”,大家常常会说:“我的理想就是不用上班”。

但这只是一阶回答,不上班只是表象。那么你不上班之后要做的事情,才是你的理想 —— 它可能是宅在家里打游戏(只要你能一直打下去)、也可能是周游列国,也可能是做你想做的事情。

它是什么并不重要,重要的是,你必须想清楚你的目标(至少是想清楚当下的目标),有了这个目标,你便可以在做出选择的时候,基于你的目标进行纠偏,从多个选择中,找到那个离你的目标更近的选项。

d2b5ca33bd970f64a6301fa75ae2eb22 3

有没有目标,你都有可能抵达/无法抵达终点。但有了目标,可以让你抵达终点的速度变得更快一些。

灵感 – 播客地推工具

person using black smartphone with gray and pink case

即刻有 JikePage 这样的能力,实现了诸如 Linktree 这样的产品能力。但这个部分其实还有可以更新迭代的方向,比如针对播客场景,提供更加适合地推 —— 破圈的能力。

在我的想象中,这个工具应该具备以下能力

  1. 以播客为维度创建独立的页面;
  2. 可以直接导入 Feeds 地址,选择展示哪些节目;
  3. 对于导入的内容, 默认可以展示 Shownotes ,但允许主播调整;
  4. 每一个节目有一个自己独立的 ID, 可以用于分享链接;
  5. 每一个节目都可以直接在浏览器里收听(不同于小宇宙 Web 版的点是可以选择其中的部分内容,用作破圈,可以选择基于 HTTP 的 Ranges 能力来实现)
  6. 能够生成二维码、分享卡片;
  7. 能够从节目跳转到播客介绍页面;
  8. (如果是小宇宙做的话)可以选择最热评论中的某几个展示在页面上;
  9. 能够跳转到具体的播客订阅页面;
  10. 支持开启播客互推(即如果开启互推,你的节目也会出现在别人的播客下方,作为猜你喜欢的实现;相应的,你的节目下方也会出现别人的播客)。

灵感:Meeting Kit

灵光一闪

我最近在使用 Agora SDK 开发一个视频会议软件,在开发各种视频会议的细节功能时,我不由得疑惑。为什么一定要开发会议当中的一些基础功能 —— 比如静音、踢人、设置设备、会议聊天。

当然, 这些东西开发起来并不复杂 —— 你只需要基于 Agora SDK 就可以开发出来,只是我在想,这些非常基础的功能,能否有一些现成的功能 (是的,我非常懒)。

所以,我在想,能否有一个 SDK ,可以帮助我简化一下视频会议的开发(视频会议算是一个非常普适/标准)。

开源项目: Meeting Kit

Features

  • 开箱即用的视频会议功能
    • 静音 / 设置音频设备
    • 视频分享 / 设置视频设备
    • 屏幕分享 / 自定义屏幕分享设备类型(包含默认值,可自定义)
    • 虚拟背景功能 / 支持自定义虚拟背景 Template
    • 信号状态链接功能
    • 自定义功能区
    • 不同布局模式(可参考腾讯会议、Zoom 等视频软件)
    • 录屏功能
  • 配置 APPID & Token 即可初始化一个标准的视频会议应用。
  • 自定义各组件样式
  • 支持导出部分功能作为一个单独的组件在外部使用(比如需要传入 Client 和 Track)

项目的长期发展

  • 支持底层替换
    • 可以支持 Agora、AWS、腾讯云、自建 WebRTC 中转节点(Premium Plugin?)
  • 支持多种常用开发方案
    • 或许可以作为一个独立的 Organization,下辖 React、Vue、Flutter、iOS、Android 插件。
  • 支持更多功能的插件
    • 比如美颜,可能需要 WebAssembly
    • 比如 Memoji
  • 产出课程 (Premium)

现有项目对比

  • Agora-RTC-React/Agora-RTM-React:这两个项目虽然简化了 Agora SDK 在 React 生态下的使用,但对于开发者来说这些也仅仅是简化了开发,对于开箱即用的应用而言,还是有限。

灵感: Agora RTC/RTM 调试工具

灵光一闪

我最近在写一些 Agora 的 RTC/ RTM 应用的教程,在开发 Demo 过程中,发现调试 Agora 的应用比较复杂,其实可以有一些辅助工具来帮助开发者更好的开发这些应用。

核心诉求

可以更加简单的调试 Agora SDK 当中的 Event

形态

  1. 独立的 Vue Componet / React Component
  2. 基于浏览器的 DevTools

基本功能

  • 支持触发事件(应该是一列 按钮,用户点击后,就会触发对应的事件)
  • 支持发送信息(应该是一个文本框 + 一个提交按钮)
    • 支持设定 Template
  • 支持查看频道内已有信息(最好还可以有筛选,这样方便只看自己关注的信息)
  • 支持查看 Client、Track等基本信息(如当前人数、当前用户列表等等)

为什么一定是独立的 Client?

在实际开发时,业务的逻辑和实际使用到的功能可能是需要多个步骤才能触达的。此外,根据应用的特性,还可能会有浏览器锁定、设备锁定等业务能力。这些能力虽然与 Agora 无关,但会影响调试时的难度,因此,有一个单独的 Client 可以用来调试 Agora 是一个不错的选择。

为什么最好是 Component / Devtools ?

在实际的开发过程中,我们可能会用到 Agora 的 Token 机制,借助这个机制,我们可以对我们的音频/视频 Channel 设定准入门槛,降低成本。但相应的,调试起来比较麻烦。

如果是 Component / Devtools ,可以通过传入 Props / 环境变量来完成 AppID 和 Token 的设定,降低调试的成本。

灵感:信用卡助手

灵光一闪

我在听《知行小酒馆》第 35 期《E35 信用卡是危险的陷阱,还是好玩的工具?》时,听到了傅少爷的信用卡表单,突然有了一个灵感 —— 一个给个人的场景化信用卡助手。

现状

其实有很多不同的信用卡助手,比如 51用卡助手、微信自带的信用卡提醒等常见的信用卡管理软件。但大多核心关注几个功能:

  1. 免息期:帮你计算卡片的免息期,告知你不同的卡片的免息期是多少天?
  2. 还款日期:你的卡片的帐期是哪天、还款日是哪天、提前一天提醒你。

通过上面的功能,来实现尽可能的晚还款 & 尽可能的享受免息期。

问题

我自己过去用这些信用卡助手是非常方便的,因为对我来说,我只关注是否是在还款日期还款就行,对于免息期等没那么在意。在我看来,计算那些优惠属实是太麻烦了。但在听了这一期节目后,确实让我打开眼界。主卡副卡、不同场景下使用不同场景的卡,这些点确实是我之前没有考虑过的。

所以,能不能有一个按照场景来做卡片管理的信用卡管理工具?

需求

回到我的问题,那就推导出这个工具应该具备以下一些特性:

  1. 可以根据场景录入 & 推荐卡片:其实很多卡片是有自己适合的使用场景的 —— 比如 12306 的联名卡、山姆会员店的联名卡。在这些地方使用对应的联名卡,可以更好的获得优惠;因此这个工具应该可以根据一些方式快速筛选场景,然后推荐当前拥有的卡片。当然,如果卡多了,如何做的更简单好用也是一个问题。
  2. 记录免年费的条件,并提醒用户去消费:我自己其实信用卡不多,之前办的几张卡后续都直接退掉了。核心原因是我懒得记录这些免年费的条件,但如果有个工具帮我记录免年费的条件,并在场景推荐的时候,推荐使用还没有免年费的卡片来进行消费,那我就无需再记录免年费,可以同时拥有更多的卡片,合理规划卡片的用法。
  3. 自动计算免息期:这个确实是一个最常见且几乎所有卡片的管理软件都有的软件。我提这个功能更多是从一个更加场景化的用法来考虑:我们追求最大免息期是为了让现金尽可能最大化收益。而小额支出其实对于免息期没有那么高的要求。在这种情况下,我们可以针对大额支出自动推荐最适合的卡片,享受免息期最长的(这部分也需要平衡卡片的优惠,比如大额支出 + 场景优惠就需要优先推荐优惠覆盖范围内免息期最长的卡片)。

其他特性

剩下的这些特性,就属于不是那么的重要,但可以有的功能:

  1. 卡片筹划:比如在某些特定场景下,某些卡片就是有优势,但你确实没有,这种情况下可以看看推荐一些卡片。
  2. 帐期规划:各行的卡片的帐期其实是可以调整的,因此,可以由软件统一规划 & 调整帐期,选择将帐期分配到不同的时间段或集中在同一个时间段。从而可以实现还款日的集中 or 分散(对应着发工资后还款 or 每天都有一个最适合帐期的功能)。
  3. 积分规划 & 兑换:不同银行的积分的价值不同,可兑换的商品不同。可以定期提醒用户更新一次积分(每月),并推荐各银行值得兑换的商品。
  4. 活动推荐:爬虫爬取各卡片的优惠活动,并展示在工具内部。

商业模式

商业模式很重要,决定了这个事情能不能长期做下去。这个功能一看就不是一个小事 & 涉及到了长期更新数据。因此,一个合理的商业模式可以让这件事持续的做下去。

免费版

  1. 免费加入 2 张卡;
  2. 不提供活动推荐 & 积分筹划

付费版(一次性解锁)

  1. 无限卡片。

数据更新(月度订阅)

  1. 自动更新每月的积分兑换的商品 & 优惠活动。

如果你只是差了一个灵感,

灵光一闪

灵感对于我来说,并不是一个什么稀缺的时候,我随时会发现有空缺,以及对应的灵感,对应的机会。我放弃了很多在我看来值得做,但收益率很低的灵感。

但并不是对每个人都是这样的,我曾经也属于写作苦手,很难写出哪怕每天 300 字的文章(300字是微信公众号的原创的最低标准),不过,经过一番辛苦的训练,如今的我,灵感和写作不再是困惑我自己的点,甚至于实际上我经常会把写好的文章定时在未来的某个时间点发布(因为我写的很多的内容并不具备时效性)。

而对于缺乏灵感的人而拥有技术的人来说,一个灵感或许就可以帮助他走出当前的困境(我自己对此抱有疑问,但不影响我写这篇文章)。

而如果你是这样的一个人,那么下面这个信息可以帮到你:

在 Reddit 上有一个特殊的分区叫 —— SomebodyMakeThis 
这个分区是用来让人将自己的奇思妙想发布在其中,从而让有能力有技能的人可以去从中摘取合适的灵感来实现的。
这个分区的地址如下:https://www.reddit.com/r/SomebodyMakeThis/

我之前就想过这样的一个事情,提供一个渠道,用来收集灵感,当我不知道要做什么的时候,就随便挑一个灵感来做试试看。

除了上面的这个 Subreddit ,我还觉得 V2ex 的奇思妙想分类,也是一个不错的灵感发现地点。

灵感:币资产小程序/App

灵光一闪

我最近在做 Crypto 投资,需要一个地方记录自己的持仓和涨跌等信息。因此,有了这个灵感。

这个小程序从整体的功能上,接近于有知有行的记账功能和且慢的且慢小账本。

应该具备以下功能:

  1. 对接 CMC or Crypto.com 的 API,实现币价实时获取
  2. 支持计算资产总额
  3. 支持多个钱包
  4. 支持展示图表
    1. 如持仓饼图
    2. 如价格走势图
  5. 支持初始化仓位的功能:我在使用非小号的记录的时候,最大的问题就是没有初始化仓位的能力,这对于已经有投资的人来说,比较麻烦。还要计算一下。
  6. 支持年度总结:大家肯定都有炫富的需求,还是可以搞一搞的
  7. 支持关注行情:这个需求存疑,我只是想到了。因为有可能我们做不到比金色财经更好,那就没啥意义了。
  8. 支持与其他公开的 ETF 对比收益率:满足炫富的心理,也可以让你了解到市场上的情况。
  9. 支持同步钱包的资产:可以让初始化更简单

灵感:一个分析 Github 项目买 Star 的工具

灵光一闪

我关注到了 Semi Design 在发布的前一天,突然骤增了 1.5K star。在我看来,这是一个不太正常的数据,因此,便觉得,应该有个工具,可以做。

bdf64

功能用法描述

用户打开应用,然后输入项目地址,点击后开始分析,数据分析完成后,可以提取结果。

提取结果后,可以按照 邮箱域、公司、原创项目的数量、Follower 数量、注册时间、是否设置了个人网站等信息作为维度进行筛选,并在筛选完成后,展示相应的比重。

这个工具并不能直接评判谁是 fake user,但可以帮助你更好的按照你心目中的标准进行筛选。

当然,也可以进一步收集大家筛选的习惯,筛选出那些可能是 fake user 的习惯,并提供给用户进行参考。

部分 MVP 代码

{
  repository(owner: "arco-design", name: "arco-design") {
    stargazers(first: 100 ) {
      pageInfo {
        endCursor
        hasNextPage
        hasPreviousPage
        startCursor
      }
      edges {
        starredAt
        node {
          email
          name
          company
          repositories(first:100, isFork: false) {
            totalCount
          }
          createdAt
          updatedAt
          twitterUsername
          websiteUrl
          followers(first: 0) {
            totalCount
          }
          following(first: 0) {
            totalCount
          }
        }
      }
    }
  }
}
Code language: JavaScript (javascript)

灵感:一个基于 Github 的 Twitter 用户数据分析工具

灵光一闪

这两天在研究 Twitter 的增长。在想有没有可能做一个开源的 Twitter 用户数据分析工具。奈何暂时没空,所以先把灵感记录下来。

特色

  1. 使用 Github 存储数据,无需另行创建数据库
  2. 项目无需服务器

特性

  1. 使用 Github Action 获取数据
  2. 使用 Github 存储数据
  3. 使用 GitHub Pages 展示数据

一些实现的思路

  1. Github Action 支持定时触发,可以设定每小时/每分钟启动一次,这个应该是一个配置参数。
  2. 数据应该是两种,一种是分块数据,按日切片/按小时切片。同时应该还有一个合并后的数据,用于 Web 展示。这部分的实现思路可以参考之前做的 opensource menu
  3. 页面应该是自动构建然后放置在 gh-pages 分支,然后可以默认访问。
  4. 页面应该可以看到数据和在数据前后的 tweet (所以需要调用多个 API)

你愿意帮助 Paul Graham 做本地化么?

idea 2654148 640

发现了一个空白,如果有人做的话,大概率会被不少国内的大佬看到。对于求职应该有帮助。

Paul Graham 的博客是欢迎翻译的,作为一个初入行的同学,你大可以翻译帮助 Paul Graham 翻译他的文章, 并提供链接给他,这样你自己的网站的链接也会得到关注度。

Paul Graham 是《黑客与画家》的作者。

只差一个有心人。

crwv3

如何迸发灵感

idea 2654148 640

做产品设计难免会遇到需要苦思冥想而不得其解的时候,在这时候如何更好的激发自己的灵感,让自己能够更快的跳出苦思冥想的状态中? 一个比较好的方式是:跳出当下,远离细节,用最轻松的状态重新思考问题。 比如说,以我为例,我的灵感大部分时候会出现在两种场景下:

  1. 洗热水澡:洗热水澡可以让我放松精神,而放松的情况下重新去思考问题可能会获得不错的效果(至少对我来说是这样的)
  2. 走路:我在通勤的路上也是常常会有一些灵感会迸发出来的。走着走着我想起来一个问题,然后思绪会因为无法完全集中而开始分散,反而迸发出一些不错的灵感。

但是,也需要注意的是,这两个方式有效的核心原因是跳出当下所关注的问题,从一个更高、更宏观的视角来看待问题。如果你洗热水澡的时候也是整个人很紧绷,可能就无法得到好的结果。

如何将一个commit 变成一系列宣传资源

灵光一闪

作为技术人,对于做 Branding 的事情其实不那么上心,也因为不上心,导致在实际做事情的时候,难免做的不好。

我因为从事过运营,所以有一些经验,这里,分享一下我自己的思路。

以这个 Commit 为例:

这个 Commit 制作了一件事,就是在 GitHub 项目的目录下创建了一个 funding.yml ,从而实现开启 GitHub 的 Sponsor 功能。

第一层思考

那如果我们要将其转换为宣传资源,我们可以这样思考:

  1. 内容形态:这个内容我能不能做成文字类型的,或者是能不能做成视频类型的?

如果可以做成文字类型的,那么可以针对这个 commit 写一篇文章,比如就叫做

如何开启 GitHub 的 Sponsors 功能

如果可以做成视频内容,就可以做成

手把手教你开通 GitHub 的 Sponsors 功能

第二层思考

在第一层思考,我们可以很容易获得一篇文章和一个视频,但我们如果不满足以此,希望获得更多的推广内容,我们要怎么做?

我们可以延展思考一下,GitHub 的 Sponsor 功能是基于特定目录下的 yaml 文件来配置的,那我能不能有一篇文章延展介绍一下这个特定目录下的其他功能?

比如:

  • issue template
  • GitHub Action
  • Pull Request template

这样,我们就从之前的文章中,延展出来了第二层思考,这个时候,我们有了第二个主题,同样,可以延展出一篇文章和一个视频。

第三层思考

在第二层思考中,我延展出来了三个不同的服务,那在这种情况下,我可以再写三篇文章,分别介绍这三种不同的服务

这样,我就喜提三篇文章:

  • 如何使用 GitHub 的 issue template 来规范用户的提交?
  • 如何使用 GitHub 的 Action 来完成应用的自动化
  • 如何使用 GitHub 的 PR template 来规范用户的 PR

以及他们对应的视频。

总结

实际上,只要你愿意去思考「为什么」和「能不能」,很难在计算机领域写干,因为这个领域足够大,足够一个人写一辈子的原创了。你需要做的仅仅是,从你最熟悉的领域,选择一个话题,然后开始写作,不断的延展话题。

此外,如果你想写但又不擅长写作,我之前在 GitChat 和图灵的英子老师一起搞过一个写作课,你可以看看这个网站,我将我们当时的课程内容整理并发布在了互联网上。

灵感:小说人名生成器

灵感来源:村上春树《我的职业是小说家》

特性:

  1. 根据百家姓生成
  2. 提供情感分析,正派角色不会给一个反派倾向的名字
  3. 提供选项,根据选项来生成名字,【性别,是否爱运动,是否爱看书,是否是特定职业】等等。
  4. 提供提供一个黑名单的机制,用过的不会出现,避免撞衫。(可以将生成的名字做 hash,对比 hash ,如果 hash 存在,则重新生成一个。hash 放在 redis 里。)

科学需要证伪

再上一篇文章中,我提到了,想要去做一个前端的队列。

和几个朋友聊了聊,他们认为这个东西不值得做,因为没有价值。

在我看来不这样认为。

就这样的话题而言,证实很容易。只要实现,并证明可用,就可以完成证实的内容。

但是,更重要的是证伪,需要证明这个东西,虽然可以做出来,但是并不好用。具体的不好用是多么不好用,具体的量化。这样才能算完成了证伪

灵感:P2P 消息队列

image 3
灵感来源

今天在 V2ex 和别人讨论我写的《离用户近一点,再近一点》时,提到了队列、3rd API

关于 3rd API 的问题,我可以理解,因为涉及到安全问题,我们需要将 token 放在后端。如果安全问题可以解决,放在前端也不无可能。

关于队列的问题,我就有了想法?为什么不可行?

队列主要问题有三处

  1. 消息通讯
  2. 选举问题
  3. 调度问题

关于消息通讯,可以考虑实现 P2P 网络来链接不同的前端设备;而选举问题,可能需要我去看看拜占庭将军问题,以及了解一些数学相关的东西。其中,老王给我了一个思路,可以看看分布式队列的实现逻辑。

调度问题也可以参考分布式队列。

在搜索的过程中,找到了香港城市大学的教授的研究页面。

https://staff.ie.cuhk.edu.hk/~mhchen/projects/p2p.queuing.html

搜索关键词

peer to peer queue

peer to peer message queue

补充信息

搜索过程中,发现问题被简化了,可能有一些可能可以在前端实现队列的工具,比如 ZeroMQ。

image 4

小程序合照助手

合照助手小程序用于快速在一些聚餐、合照的场合生成合照图片。

image

用户可以打开手机小程序,选择图片,然后分别输入合照的名称、第一行的顺序、第二行的顺序。然后可以点击保存将图片保存至本地。

适合场景:聚餐、聚会、会议