{"action":"created","comment":{"url":"https://api.github.com/repos/xitu/gold-miner/pulls/comments/53777858","id":53777858,"diff_hunk":"@@ -5,68 +5,67 @@\n * 校对者: \n * 状态 :  待定\n \n-Your Facebook News Feed is filled with photos of your friends, family, and loved ones — photos you may want to view on your phone. We are always looking for ways to make things better and faster for mobile. So, our team took a look at how we can make photos faster on iOS and we found a way to reduce the data used by Facebook for iOS by about 10% and show a good image 15% faster than before. Here's how we did it.\n+你的Facebook的动态消息中总是充满了那些你想要在手机上看的照片。照片里有可能是你的朋友，家人甚至是你最爱的人。我们一直在寻找提升用户体验的方式，包括更优秀和更快的移动端体验。为了达到这个目标，我们的团队仔细查看了我们如何在iOS设备上更好的显示照片并且我们找到了一种能够让Facebook在iOS系统中减少数据占用10%的方法而且同时还能加载图片的速度比以前提升15%。接下来是我们如何做到这一点的。\n \n-## How photos used to work\n+## 过去图片是如何被处理的\n \n-Up until now, Facebook for iOS app has loaded your photos in News Feed as follows:\n+直到现在，iOS端上的Facebook已经按照下列的要求在用户的动态消息更好的加载照片：\n \n-*   Photo URLs were downloaded first, and then are used to download the actual photo data in JPEG format.\n-*   At least two versions of the image were fetched in parallel, a small one and a full-size one. As soon as we have the smaller one, we show it until the larger, more detailed one is available.\n-*   Sometimes we download the same photos multiple times in different sizes. The sizes depend on the type of device being used or where in the app it appears (e.g. News Feed or the fullscreen photo viewer).\n-*   Every image we download is cached to disk. Since we downloaded multiple image sizes for each photo, multiple sizes of the same image were often stored on disk.\n+*   照片的链接为最先下载，之后再用它来下载JPEG格式的真实大小照片\n+*   至少有2个版本的同一张图片被使用，这包括一张缩略图和一张全尺寸的图片。一旦小的缩略图下载好之后，我们会先显示小的缩略图直到更高精度的图片能被用于展示。\n+*   有时候我们会多次下载同一张图片的不同尺寸。在不同设备的型号和在不同的场景下（比如在动态消息当中或者是全屏显示图片），被使用的尺寸也是不同的。\n+*   所有被下载的图片都是被储存到硬盘的。因为我们下载同一张图片不同尺寸大小的图片，所以多个尺寸的同一张图片通常都被储存在用户的硬盘中\n \n-## Progressive JPEG\n+## 渐进式图片\n \n-Progressive JPEG (PJPEG) is an image format that stores multiple, individual “scans” of a photo, each with an increasing level of detail. When put together, the scans create a full-quality image. The first scan gives a very low-quality representation of the image, and each following scan further increases the level of detail and quality. When images are downloaded using PJPEG, we can render the image as soon as we have the the first scan. As later scans come through, we update the image and re-render it at higher and higher quality.\n+渐进式图片Progressive JEPG（简称为PJEPG）是一种储存多个独立的扫描的图片格式。并且图片的精度会随着扫描的次数增加，变的越来越清晰。当所有的扫描版本叠加之后，一张最高精度的图片就会被显示出来。第一次的扫描能给予用户第一个低质量的缩略图。之后的每一层扫描都会使得这张图片的精度上升一个等级。当图片以PJPEG的格式被下载的时候，一旦第一层扫描结束我们可以马上在手机上为用户显示缩略图。当之后的扫描被下载后，我们会更新图片到一个更好的质量。\n \n-Support for PJPEG became popular in browsers in 2010, and we've been serving photos as PJPEGs for a while now. However, mobile apps haven't really caught up yet. For example, there is currently no out-of-the-box support on iOS for rendering images progressively, so we had to build our own for the Facebook app.\n+游览器对于PJEPG格式图片的支持在2010的时候就已经非常流行了。并且我们已经用PJEPG作为图片储存有一段时间了。然而，手机端的应用们似乎还没赶上这个潮流。举个例子，iOS端上还没有渐进式处理图片的支持，所以我们不得不为在iOS上的Facebook开发新的方式来做到这一点。\n \n-## Using PJPEG in Facebook for iOS\n+## 在Facebook的iOS客户端上用渐进式图片\n \n-Rendering images progressively in the Facebook app has some advantages:\n+在Facebook这个应用中，渐进式的图片推送在以下几个方面有不同的好处：\n \n-1.  Data consumption: PJPEG allows us to skip downloading smaller versions of an image.\n-2.  Network connections: Since we don't download smaller versions of an image anymore, we now use only one connection per image instead of many.\n-3.  Disk storage: Storing fewer photos on disk decreases the amount of disk space used by the app.\n-4.  One URL: Since we no longer need to download multiple images at different sizes, we can simply use one URL.\n+1.  数据消耗：PJPEG使得我们可以无需下载小尺寸的图片的过程。\n+2.  网络连接：因为我们不再需要下载缩略图，我们现在每张图片只需要用到一个数据连接来代替过去使用多个数据连接来下载同一张图片。\n+3.  硬盘储存：使用PJPEG来储存图片减少了应用对于硬盘的占用。\n+4.  一个链接：因为我们不再需要下载多个图片，所以我们只需要用一个链接。\n \n-There is a downside to PJPEG: Decoding and rendering the image multiple times at varying scan levels uses more CPU. Decoding images can be moved to background threads, but the process is still heavy on CPU. The real challenge for us was to find the right balance between data usage, network latency, and CPU utilization. For instance, we considered using [WebP](http://l.facebook.com/l.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWebP&h=5AQEbNxXm&s=1) since it is more optimal in file size than JPEG in some cases, but the format does not support progressive rendering.\n+然而使用PJPEG的图片有一个缺点：下载并排列多个扫描层会占用更多CPU的资源。即使解码这些图片可以在后台处理，但是这个进程对于CPU来说还是非常繁重。对于我们来说，问题在于在数据占用，网络延迟和CPU的利用率上找到一个平衡点。比如说我们曾经考虑使用[WebP](http://l.facebook.com/l.php?u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FWebP&h=5AQEbNxXm&s=1) 来做到这一点因为从某种角度来说它时最好的，但是它的格式并不支持渐进式处理\n \n-## Waiting for images\n+## 等待图片加载\n \n-The following diagram shows how we used to download photos in Facebook for iOS. Each bar indicates an image download, and “Wait Time” is the period of time between viewing a photo placeholder to viewing a photo that is clear enough to enjoy. Even when the smaller image appeared, many people ended up waiting for the full image:\n+下面这张图片很好的解释了我们在iOS端的Facebook上是如何下载图片的。下面的两张图片都表示下载一张图片的情况。“Wait Time”表示了一段加载出清晰地能让人表示满意所需要的时间。甚至在当只有小的图片出现的时候，很多人就停止了下载整个图片：\n \n ![](https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-xaf1/t39.2365-6/10540969_770021873088131_38326442_n.jpeg)\n \n-Throwing PJPEG into the mix changes the picture:\n-\n+当我们使用PJPEG的图片的时候：\n ![](https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-xap1/t39.2365-6/10935998_1623200524568459_2147345899_n.jpeg)\n \n-We render three different scans of each photo:\n+我们对每一张图片扫描3次：\n \n-1.  First we render a preview scan: this is pixelated.\n-2.  Then we render a scan that looks good to the naked eye. In fact, it looks almost perfect to the naked eye.\n-3.  Finally we render at full-quality: the best resolution possible.\n+1.  首先我们扫描并展示一张预览图片\n+2.  然后我们扫描并展示一张肉眼看上去还不错的图片。事实上，它几乎已经看上去是完美的了。\n+3.  最后我们扫描最后一层然后得到质量最好的图片：这也许是最好的解决方式了。\n \n-The result is that people see a good photo sooner!\n+结果就是用户们可以更快的看到一张棒棒的图片！\n \n ![](https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-xft1/t39.2365-6/10935975_819617794775832_888993011_n.png)\n \n-## Finding the right scan level\n+## 如何找到正确的扫描分层程度\n \n-To determine what “good” means, we tried several different scan-levels and found the levels at which people interacted with photos the most. We also looked at the relative similarity between each of the scans and the final image. Our comparison function takes two images and returns a number between 0 and 1\\. A score of 0 means completely different, while 1 means exactly the same. Here are the results:\n+为了知道什么叫做一张棒棒的图片，我们尝试了多个不同的扫描分层程度并找到了人们最喜欢的那个平衡点。我们同时也关注着扫描的图片和最重的图片之间相对而言的相似度。我们的对比功能会获取两张图片并返还一个0到1之间的数字来表示他们的相似度。0是完全不像，1是完全一样。下面是一些测试的结果：\n \n ![](https://fbcdn-dragon-a.akamaihd.net/hphotos-ak-xpf1/t39.2365-6/10956903_771333189588155_1044601403_n.png)\n \n-To measure the impact of choosing different scan levels, we ran an [A/B test](https://code.facebook.com/posts/520580318041111/airlock-facebook-s-mobile-a-b-testing-framework/) and then examined the data.\n+为了对比选择不同扫描分层深度所带来的影响，我们还做了个[A/B 测试](https://code.facebook.com/posts/520580318041111/airlock-facebook-s-mobile-a-b-testing-framework/) 然后估算出了数据。\n \n-## The Wins\n+## 取得的成果\n \n-1.  Adopting PJPEG reduced the data used by Facebook for iOS by about 10%.\n-2.  Using PJPEG, we can show a good image 15% faster than before. This image is barely discernible from the full-quality version.\n-3.  Adopting PJPEG helps us improve a different metric: “perceived wait-time”. The CPU is doing a little more work by showing earlier scans while the image continues to download, but we reduce how long it *appears* to take for images to download.\n+1.  在iOS端上的Facebook采用PJPEG减少了10%的数据占用。\n+2.  在用了用PJPEG之后，我们可以提高加载一张棒棒的图片的速度15%左右。新的图片和原来的全精度图片相比几乎没有区别。","path":"TODO/faster-photos-in-facebook-for-ios.md","position":95,"original_position":95,"commit_id":"571c458373ca1be47c115d748077b0658f9ef9fa","original_commit_id":"571c458373ca1be47c115d748077b0658f9ef9fa","user":{"login":"nathanwhy","id":7502598,"avatar_url":"https://avatars.githubusercontent.com/u/7502598?v=3","gravatar_id":"","url":"https://api.github.com/users/nathanwhy","html_url":"https://github.com/nathanwhy","followers_url":"https://api.github.com/users/nathanwhy/followers","following_url":"https://api.github.com/users/nathanwhy/following{/other_user}","gists_url":"https://api.github.com/users/nathanwhy/gists{/gist_id}","starred_url":"https://api.github.com/users/nathanwhy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nathanwhy/subscriptions","organizations_url":"https://api.github.com/users/nathanwhy/orgs","repos_url":"https://api.github.com/users/nathanwhy/repos","events_url":"https://api.github.com/users/nathanwhy/events{/privacy}","received_events_url":"https://api.github.com/users/nathanwhy/received_events","type":"User","site_admin":false},"body":"“preview image” “good image” “final image” 是三种不同阶段图片，所以“good image” 翻译成“满意的图片”会更好点，文章其他地方也有“good image”，建议统一下。","created_at":"2016-02-23T13:17:38Z","updated_at":"2016-02-23T13:17:38Z","html_url":"https://github.com/xitu/gold-miner/pull/115#discussion_r53777858","pull_request_url":"https://api.github.com/repos/xitu/gold-miner/pulls/115","_links":{"self":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/comments/53777858"},"html":{"href":"https://github.com/xitu/gold-miner/pull/115#discussion_r53777858"},"pull_request":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/115"}}},"pull_request":{"url":"https://api.github.com/repos/xitu/gold-miner/pulls/115","id":59951053,"html_url":"https://github.com/xitu/gold-miner/pull/115","diff_url":"https://github.com/xitu/gold-miner/pull/115.diff","patch_url":"https://github.com/xitu/gold-miner/pull/115.patch","issue_url":"https://api.github.com/repos/xitu/gold-miner/issues/115","number":115,"state":"open","locked":false,"title":"完成对FB在iOS上照片处理","user":{"login":"bobmayuze","id":14257524,"avatar_url":"https://avatars.githubusercontent.com/u/14257524?v=3","gravatar_id":"","url":"https://api.github.com/users/bobmayuze","html_url":"https://github.com/bobmayuze","followers_url":"https://api.github.com/users/bobmayuze/followers","following_url":"https://api.github.com/users/bobmayuze/following{/other_user}","gists_url":"https://api.github.com/users/bobmayuze/gists{/gist_id}","starred_url":"https://api.github.com/users/bobmayuze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobmayuze/subscriptions","organizations_url":"https://api.github.com/users/bobmayuze/orgs","repos_url":"https://api.github.com/users/bobmayuze/repos","events_url":"https://api.github.com/users/bobmayuze/events{/privacy}","received_events_url":"https://api.github.com/users/bobmayuze/received_events","type":"User","site_admin":false},"body":"RT，完成翻译","created_at":"2016-02-19T13:47:29Z","updated_at":"2016-02-23T13:17:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"618c4d95b6ff7a4e69f916317ee956459394da0c","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/xitu/gold-miner/pulls/115/commits","review_comments_url":"https://api.github.com/repos/xitu/gold-miner/pulls/115/comments","review_comment_url":"https://api.github.com/repos/xitu/gold-miner/pulls/comments{/number}","comments_url":"https://api.github.com/repos/xitu/gold-miner/issues/115/comments","statuses_url":"https://api.github.com/repos/xitu/gold-miner/statuses/571c458373ca1be47c115d748077b0658f9ef9fa","head":{"label":"bobmayuze:BobMa","ref":"BobMa","sha":"571c458373ca1be47c115d748077b0658f9ef9fa","user":{"login":"bobmayuze","id":14257524,"avatar_url":"https://avatars.githubusercontent.com/u/14257524?v=3","gravatar_id":"","url":"https://api.github.com/users/bobmayuze","html_url":"https://github.com/bobmayuze","followers_url":"https://api.github.com/users/bobmayuze/followers","following_url":"https://api.github.com/users/bobmayuze/following{/other_user}","gists_url":"https://api.github.com/users/bobmayuze/gists{/gist_id}","starred_url":"https://api.github.com/users/bobmayuze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobmayuze/subscriptions","organizations_url":"https://api.github.com/users/bobmayuze/orgs","repos_url":"https://api.github.com/users/bobmayuze/repos","events_url":"https://api.github.com/users/bobmayuze/events{/privacy}","received_events_url":"https://api.github.com/users/bobmayuze/received_events","type":"User","site_admin":false},"repo":{"id":48584581,"name":"gold-miner","full_name":"bobmayuze/gold-miner","owner":{"login":"bobmayuze","id":14257524,"avatar_url":"https://avatars.githubusercontent.com/u/14257524?v=3","gravatar_id":"","url":"https://api.github.com/users/bobmayuze","html_url":"https://github.com/bobmayuze","followers_url":"https://api.github.com/users/bobmayuze/followers","following_url":"https://api.github.com/users/bobmayuze/following{/other_user}","gists_url":"https://api.github.com/users/bobmayuze/gists{/gist_id}","starred_url":"https://api.github.com/users/bobmayuze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobmayuze/subscriptions","organizations_url":"https://api.github.com/users/bobmayuze/orgs","repos_url":"https://api.github.com/users/bobmayuze/repos","events_url":"https://api.github.com/users/bobmayuze/events{/privacy}","received_events_url":"https://api.github.com/users/bobmayuze/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bobmayuze/gold-miner","description":"掘金翻译计划，翻译掘金上优质的英文文章","fork":true,"url":"https://api.github.com/repos/bobmayuze/gold-miner","forks_url":"https://api.github.com/repos/bobmayuze/gold-miner/forks","keys_url":"https://api.github.com/repos/bobmayuze/gold-miner/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bobmayuze/gold-miner/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bobmayuze/gold-miner/teams","hooks_url":"https://api.github.com/repos/bobmayuze/gold-miner/hooks","issue_events_url":"https://api.github.com/repos/bobmayuze/gold-miner/issues/events{/number}","events_url":"https://api.github.com/repos/bobmayuze/gold-miner/events","assignees_url":"https://api.github.com/repos/bobmayuze/gold-miner/assignees{/user}","branches_url":"https://api.github.com/repos/bobmayuze/gold-miner/branches{/branch}","tags_url":"https://api.github.com/repos/bobmayuze/gold-miner/tags","blobs_url":"https://api.github.com/repos/bobmayuze/gold-miner/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bobmayuze/gold-miner/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bobmayuze/gold-miner/git/refs{/sha}","trees_url":"https://api.github.com/repos/bobmayuze/gold-miner/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bobmayuze/gold-miner/statuses/{sha}","languages_url":"https://api.github.com/repos/bobmayuze/gold-miner/languages","stargazers_url":"https://api.github.com/repos/bobmayuze/gold-miner/stargazers","contributors_url":"https://api.github.com/repos/bobmayuze/gold-miner/contributors","subscribers_url":"https://api.github.com/repos/bobmayuze/gold-miner/subscribers","subscription_url":"https://api.github.com/repos/bobmayuze/gold-miner/subscription","commits_url":"https://api.github.com/repos/bobmayuze/gold-miner/commits{/sha}","git_commits_url":"https://api.github.com/repos/bobmayuze/gold-miner/git/commits{/sha}","comments_url":"https://api.github.com/repos/bobmayuze/gold-miner/comments{/number}","issue_comment_url":"https://api.github.com/repos/bobmayuze/gold-miner/issues/comments{/number}","contents_url":"https://api.github.com/repos/bobmayuze/gold-miner/contents/{+path}","compare_url":"https://api.github.com/repos/bobmayuze/gold-miner/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bobmayuze/gold-miner/merges","archive_url":"https://api.github.com/repos/bobmayuze/gold-miner/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bobmayuze/gold-miner/downloads","issues_url":"https://api.github.com/repos/bobmayuze/gold-miner/issues{/number}","pulls_url":"https://api.github.com/repos/bobmayuze/gold-miner/pulls{/number}","milestones_url":"https://api.github.com/repos/bobmayuze/gold-miner/milestones{/number}","notifications_url":"https://api.github.com/repos/bobmayuze/gold-miner/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bobmayuze/gold-miner/labels{/name}","releases_url":"https://api.github.com/repos/bobmayuze/gold-miner/releases{/id}","deployments_url":"https://api.github.com/repos/bobmayuze/gold-miner/deployments","created_at":"2015-12-25T15:39:00Z","updated_at":"2016-02-19T12:15:34Z","pushed_at":"2016-02-19T13:47:27Z","git_url":"git://github.com/bobmayuze/gold-miner.git","ssh_url":"git@github.com:bobmayuze/gold-miner.git","clone_url":"https://github.com/bobmayuze/gold-miner.git","svn_url":"https://github.com/bobmayuze/gold-miner","homepage":"http://gold.xitu.io","size":8419,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"xitu:master","ref":"master","sha":"c9869b27911fa20c613dad1f6f6c32aaaae1c312","user":{"login":"xitu","id":10482599,"avatar_url":"https://avatars.githubusercontent.com/u/10482599?v=3","gravatar_id":"","url":"https://api.github.com/users/xitu","html_url":"https://github.com/xitu","followers_url":"https://api.github.com/users/xitu/followers","following_url":"https://api.github.com/users/xitu/following{/other_user}","gists_url":"https://api.github.com/users/xitu/gists{/gist_id}","starred_url":"https://api.github.com/users/xitu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xitu/subscriptions","organizations_url":"https://api.github.com/users/xitu/orgs","repos_url":"https://api.github.com/users/xitu/repos","events_url":"https://api.github.com/users/xitu/events{/privacy}","received_events_url":"https://api.github.com/users/xitu/received_events","type":"Organization","site_admin":false},"repo":{"id":45512989,"name":"gold-miner","full_name":"xitu/gold-miner","owner":{"login":"xitu","id":10482599,"avatar_url":"https://avatars.githubusercontent.com/u/10482599?v=3","gravatar_id":"","url":"https://api.github.com/users/xitu","html_url":"https://github.com/xitu","followers_url":"https://api.github.com/users/xitu/followers","following_url":"https://api.github.com/users/xitu/following{/other_user}","gists_url":"https://api.github.com/users/xitu/gists{/gist_id}","starred_url":"https://api.github.com/users/xitu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xitu/subscriptions","organizations_url":"https://api.github.com/users/xitu/orgs","repos_url":"https://api.github.com/users/xitu/repos","events_url":"https://api.github.com/users/xitu/events{/privacy}","received_events_url":"https://api.github.com/users/xitu/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/xitu/gold-miner","description":"掘金翻译计划，翻译掘金上优质的英文文章","fork":false,"url":"https://api.github.com/repos/xitu/gold-miner","forks_url":"https://api.github.com/repos/xitu/gold-miner/forks","keys_url":"https://api.github.com/repos/xitu/gold-miner/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xitu/gold-miner/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xitu/gold-miner/teams","hooks_url":"https://api.github.com/repos/xitu/gold-miner/hooks","issue_events_url":"https://api.github.com/repos/xitu/gold-miner/issues/events{/number}","events_url":"https://api.github.com/repos/xitu/gold-miner/events","assignees_url":"https://api.github.com/repos/xitu/gold-miner/assignees{/user}","branches_url":"https://api.github.com/repos/xitu/gold-miner/branches{/branch}","tags_url":"https://api.github.com/repos/xitu/gold-miner/tags","blobs_url":"https://api.github.com/repos/xitu/gold-miner/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xitu/gold-miner/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xitu/gold-miner/git/refs{/sha}","trees_url":"https://api.github.com/repos/xitu/gold-miner/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xitu/gold-miner/statuses/{sha}","languages_url":"https://api.github.com/repos/xitu/gold-miner/languages","stargazers_url":"https://api.github.com/repos/xitu/gold-miner/stargazers","contributors_url":"https://api.github.com/repos/xitu/gold-miner/contributors","subscribers_url":"https://api.github.com/repos/xitu/gold-miner/subscribers","subscription_url":"https://api.github.com/repos/xitu/gold-miner/subscription","commits_url":"https://api.github.com/repos/xitu/gold-miner/commits{/sha}","git_commits_url":"https://api.github.com/repos/xitu/gold-miner/git/commits{/sha}","comments_url":"https://api.github.com/repos/xitu/gold-miner/comments{/number}","issue_comment_url":"https://api.github.com/repos/xitu/gold-miner/issues/comments{/number}","contents_url":"https://api.github.com/repos/xitu/gold-miner/contents/{+path}","compare_url":"https://api.github.com/repos/xitu/gold-miner/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xitu/gold-miner/merges","archive_url":"https://api.github.com/repos/xitu/gold-miner/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xitu/gold-miner/downloads","issues_url":"https://api.github.com/repos/xitu/gold-miner/issues{/number}","pulls_url":"https://api.github.com/repos/xitu/gold-miner/pulls{/number}","milestones_url":"https://api.github.com/repos/xitu/gold-miner/milestones{/number}","notifications_url":"https://api.github.com/repos/xitu/gold-miner/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xitu/gold-miner/labels{/name}","releases_url":"https://api.github.com/repos/xitu/gold-miner/releases{/id}","deployments_url":"https://api.github.com/repos/xitu/gold-miner/deployments","created_at":"2015-11-04T03:29:13Z","updated_at":"2016-02-23T13:17:22Z","pushed_at":"2016-02-23T12:30:01Z","git_url":"git://github.com/xitu/gold-miner.git","ssh_url":"git@github.com:xitu/gold-miner.git","clone_url":"https://github.com/xitu/gold-miner.git","svn_url":"https://github.com/xitu/gold-miner","homepage":"http://gold.xitu.io","size":8554,"stargazers_count":321,"watchers_count":321,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":69,"mirror_url":null,"open_issues_count":21,"forks":69,"open_issues":21,"watchers":321,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/115"},"html":{"href":"https://github.com/xitu/gold-miner/pull/115"},"issue":{"href":"https://api.github.com/repos/xitu/gold-miner/issues/115"},"comments":{"href":"https://api.github.com/repos/xitu/gold-miner/issues/115/comments"},"review_comments":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/115/comments"},"review_comment":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/xitu/gold-miner/pulls/115/commits"},"statuses":{"href":"https://api.github.com/repos/xitu/gold-miner/statuses/571c458373ca1be47c115d748077b0658f9ef9fa"}}}}