本周项目:Jasper
本周我们采访了Jasper的创作者,这是一款基于Electron的GitHub通知管理工具。
🌐 This week we interviewed the creator of Jasper, an Electron-based tool for managing GitHub notifications.
你好!你是谁?
🌐 Hello! Who are you?
我是Ryo Maruyama,在日本的一个软件开发者。我正在开发Jasper和ESDoc。
🌐 I'm Ryo Maruyama, a software developer in Japan. I am developing Jasper and ESDoc.
什么是 Jasper?
🌐 What is Jasper?
Jasper 是一个灵活且功能强大的 GitHub 问题阅读器。它支持 github.com 和 GitHub Enterprise 上的问题和拉取请求。
为什么要这样做?
🌐 Why did you make it?
当人们在工作或开源项目活动中使用 GitHub 时,他们往往每天会收到大量通知。作为订阅通知的一种方式,GitHub 提供了电子邮件和网页通知。我使用这些功能有几年时间,但遇到了以下问题:
🌐 When people use GitHub in their job or OSS activities, they tend to receive many notifications on a daily basis. As a way to subscribe to the notifications, GitHub provides email and web notifications. I used these for a couple of years, but I faced the following problems:
- 我很容易忽略别人提到我、我评论过或我正在关注的问题。
- 我把一些问题记在脑子里,以便以后检查,但有时我会忘记它们。
- 为了避免忘记问题,我会在浏览器中保持多个标签页打开。
- 很难检查所有与我相关的问题。
- 很难掌握团队的所有活动。
我花费了大量时间和精力来避免这些问题,因此我决定为 GitHub 创建一个问题阅读器来有效地解决这些问题,并开始开发 Jasper。
🌐 I was spending a lot of time and energy trying to prevent those problems, so I decided to make an issue reader for GitHub to solve these problems efficiently, and started developing Jasper.
谁在使用 Jasper?
🌐 Who's using Jasper?
Jasper 被多家公司中使用 GitHub 的开发者、设计师和经理使用。当然,一些开源软件开发者也在使用它。它也被 GitHub 的一些人使用!
🌐 Jasper is used by developers, designers, and managers in several companies that are using GitHub. Of course, some OSS developers also are using it. And it is also used by some people at GitHub!
Jasper 如何工作?
🌐 How does Jasper work?
一旦 Jasper 配置完成,屏幕会显示如下。从左到右,你可以看到“流列表”、“问题列表”和“问题内容”。
🌐 Once Jasper is configured, the following screen appears. From left to right, you can see "streams list", "issues list" and "issue body".
这个“流”是 Jasper 的核心功能。例如,如果你想查看“分配给 electron/electron 仓库中 @zeke 的问题”,你可以创建如下流:
🌐 This "stream" is the core feature of Jasper. For example, if you want to see "issues that are assigned to @zeke in the electron/electron repository", you create the following stream:
repo:electron/electron assignee:zeke is:issue
创建流并等待几秒钟后,你可以看到符合条件的问题。
🌐 After creating the stream and waiting for a few seconds, you can see the issues that meet the conditions.
我们能用流做什么?
🌐 What can we do with streams?
我将介绍哪些类型的条件可用于流。
🌐 I will introduce what kind of conditions can be used for stream.
用户和团队
🌐 Users and Teams
| 流 | 问题 |
|---|---|
mentions:cat mentions:dog | 提到用户 cat 或 dog 的问题 |
author:cat author:dog | 由用户 cat 或 dog 创建的问题 |
assignee:cat assignee:dog | 分配给 cat 或 dog 的问题 |
commenter:cat commenter:dog | cat 或 dog 评论过的问题 |
involves:cat involves:dog | “涉及” cat 或 bob 的问题 |
team:animal/white-cat team:animal/black-dog | 提到 animal/white-cat 或 animal/black-dog 的问题 |
involves 意思是 mention、author、assignee 或 commenter
代码库和组织
🌐 Repositories and Organizations
| 进程 | 问题 |
|---|---|
repo:cat/jump repo:dog/run | cat/jump 或 dog/run 中的问题 |
org:electron user:cat user:dog | electron、cat 或 dog 中的问题 |
org 与 user 相同
属性
🌐 Attributes
| 流 | 问题 |
|---|---|
repo:cat/jump milestone:v1.0.0 milestone:v1.0.1 | 在 cat/jump 中附加到 v1.0.0 或 v1.0.1 的问题 |
repo:cat/jump label:bug label:blocker | 在 cat/jump 中附加 bug 且 blocker 的问题 |
electron OR atomshell | 包含 electron 或 atomshell 的问题 |
审核状态
🌐 Review Status
| 流 | 问题 |
|---|---|
is:pr review:required | 需要在 cat/jump 中审核的问题 |
is:pr review-requested:cat | 由 cat 请求审核的问题。 但这些还未被审核。 |
is:pr reviewed-by:cat | 已由 cat 审核的问题 |
正如你可能已经注意到的,通过查看这些内容,流可以使用 GitHub 的搜索查询。有关如何使用流和搜索查询的详细信息,请参阅以下网址。
🌐 As you may have noticed by looking at these, streams can use GitHub's search queries. For details on how to use streams and search queries, see the following URLs.
- jasperapp.io/doc.html#stream
- help.github.com/articles/searching-issues
- help.github.com/articles/search-syntax
Jasper 还具有未读问题管理、未读评论管理、标记星标、通知更新、问题过滤、键盘快捷键等功能。
🌐 Jasper also has features for unread issue management, unread comment management, marking stars, notification updating, filtering issues, keyboard shortcuts, etc.
Jasper 是付费产品吗?它多少钱?
🌐 Is Jasper a paid product? How much does it cost?
Jasper 价格为 12 美元。不过你可以使用 免费试用版 试用 30 天。
🌐 Jasper is $12. However you can use the free trial edition for 30 days.
为什么选择在 Electron 上构建 Jasper?
🌐 Why did you choose to build Jasper on Electron?
我喜欢 Electron 的以下几个方面:
🌐 I like the following aspects of Electron:
- 应用可以使用 JavaScript/CSS/HTML 开发。
- 应用可以构建于 Windows、Mac 和 Linux 平台。
- Electron 正在积极开发中,并拥有庞大的社区。
这些功能使桌面应用的开发快速且简单。太棒了!如果你有任何产品创意,你绝对应该考虑使用 Electron。
🌐 These features enable rapid and simple desktop application development. It is awesome! If you have any product idea, you should consider using Electron by all means.
在开发 Jasper 的进程中,你遇到了哪些挑战?
🌐 What are some challenges you've faced while developing Jasper?
我在理解“流”(stream)概念时遇到了很大困难。起初,我考虑使用 GitHub 的 [通知 API]。然而,我注意到它不支持某些使用场景。之后,我又考虑了结合通知 API 的 [问题 API] 和 [拉取请求 API]。但这始终不是我想要的。然后在思考各种方法时,我意识到轮询 GitHub 的 [搜索 API] 会提供最大的灵活性。经过大约一个月的实验才达到这一点,随后我在两天内实现了带有流概念的 Jasper 原型。
🌐 I had a hard time figuring out the "stream" concept. At first I considered using GitHub's Notifications API. However I noticed that it does not support certain use cases. After that I considered using the Issues API and Pull Requests API, in addition to the Notification API. But it never became what I wanted. Then while thinking about various methods, I realized that polling GitHub's Search API would offer the most flexibility. It took about a month of experimentation to get to this point, then I implemented a prototype of Jasper with the stream concept in two days.
注意:轮询最多每 10 秒进行一次。这对于 GitHub API 的限制来说已经足够了。
🌐 Note: The polling is limited to once every 10 seconds at most. This is acceptable enough for the restriction of GitHub API.
下一步计划是什么?
🌐 What's coming next?
我计划开发以下功能:
🌐 I have a plan to develop the following features:
- 过滤流:一个流有一些过滤流,用于过滤流中的问题。它就像SQL中的视图。
- 多个账户:你将能够同时使用 github.com 和 GHE
- 提升性能:目前 WebView 的加载速度比普通浏览器慢。
在 Twitter 上关注 @jasperappio 获取更新。
🌐 Follow @jasperappio on Twitter for updates.





