{ "version": "https://jsonfeed.org/version/1", "title": "The Art of Chawye Hsu", "home_page_url": "https://www.h404bi.com", "description": "Personal Website of Chawye Hsu.", "author": { "name": "h404bi", "url": "https://www.h404bi.com" }, "items": [ { "id": "/blog/2019/05/mariya-takeuchis-plastic-love-gets-music-video-after-35-years", "content_html": "
\"题图(来源:
题图(来源: 兎姫
\n

今天我们来谈谈音乐吧,这是我很喜欢的一个话题。聊聊音乐趣事,当然可能会扯到些扩散话题。

\n

旧事物总有一天会重新闯入你的生活,即使那不是你的过去

\n

2019 年 5 月 16 日,日本华纳音乐(Warner Music Japan)在流媒体网站 YouTube 上传了竹内玛莉亚(竹内まりや)的单曲《Plastic Love(塑料爱情)》的一支先行版(Short ver.)\nMV[1]。这首在 2018 年引起病毒式传播的歌曲,在发布的 35 年后,“意外地”拥有了它的官方 MV。

\n\n

\n

\n

如果你还未曾对这首极具时代色彩的日本 City Pop 歌曲有所了解的话,别担心,点击播放这首歌曲,来与我一边感受日本八十年代特有的气息,一边继续慢慢阅读下文。

\n

\n

1984 年,结婚两年后的竹内玛莉亚以专辑《Variety》复出,正式完全转型为创作歌手。对于这位当时还是 29 岁的音乐人而言,这张专辑的推出成为了她的一个重要转折点 ——《Variety》是竹内玛莉亚的第一张登顶日本公信榜 Oricon 榜的专辑[2]

\n

而《Plastic Love(プラスティック・ラブ)》,便是这张专辑中的其中一首,也是后来竹内玛莉亚在全球范围内最为知名的一首歌曲。次年的 3 月 25 日,Extended Club Mix 版本的《Plastic Love》作为一支单曲发行,一度冲上 Oricon 榜第 86 位。

\n
\"《Plastic
《Plastic Love -Extended Club Mix-》
\n

竹内玛莉亚的许多歌曲都曾被翻唱过,比如陈慧娴的《岁月流声》翻唱自她的《Natalie》,草蜢的《原谅我是我》翻唱自《シソグルアゲイソ》。当然这首《Plastic Love》也不例外,梅艳芳就为此翻唱过两个版本 ——《找爱的人》(国语)、《寻爱》(粤语)。由此可窥见此曲的魅力[3]

\n

不过,真正将《Plastic Love》这首歌曲重新带到当下人们的视线中,并引爆传播炸弹的,是来自 YouTube 上关于这首歌曲的奇妙事件……

\n

这就是互联网的迷幻之处,我真的不知道为什么突然就……

\n

2017 年 7 月 5 日,YouTube 上一个名为 Plastic Lover 的不知名帐号,平常地上传了一个名为《Mariya Takeuchi 竹内 まりや Plastic Love》的视频,其中的音频是《Plastic Love》歌曲的 7 分钟饭制加长版本,而提供的画面是一张静止的照片。只是,这张照片并不是所想的《Plastic Love》单曲的封面,而是来自于竹内玛莉亚另一张单曲《Sweetest Music / Morning Glory》的封面。

\n
\"Mariya
Mariya Takeuchi 竹内 まりや Plastic Love
\n

到此,奇妙的故事才刚刚开始。

\n

一个无人关注、平庸如常的普通帐号,上传了一个有好看封面的音乐分享视频。这本该是一件普通地不能再普通的事情。但是这一份普通,却似乎是被当时的 YouTube 给看上了。在视频被上传之后,YouTube 的推荐算法开始将这个视频“有意无意地”推送到了一部分用户的「接下来播放」列表中,以试探这些用户是否对此感兴趣。

\n

而事实是,确实有一批用户认真的看完了这个视频,同时将《Plastic Love》加入到了他们的音乐播放列表中。这些用户的反应让 YouTube 推荐算法做出了更进一步的动作 —— 向更多用户推送这个视频。最终的结果便是,这个由爱好者上传的音乐视频累计获得了 2500+ 万次播放(截至笔者撰稿前),并让《Plastic Love》这首歌成为了 2018 年 YouTube 上最流行的歌曲之一。这首三十多年前的老歌,重新进入了广大互联网居民的讨论圈中。同时带来的,还有相当一部分人在尝试寻找为什么 YouTube 的推荐算法会有这么一个“癖好”的完美解答,以及一个对 J-Pop 音乐子类 City Pop 的复古挖坟热潮。

\n
\"YouTube
YouTube 的算法怎么了
\n

故事还没结束。

\n

前面说到,Plastic Lover 上传的饭制视频中,使用的不是原《Plastic Love》单曲的封面,而是《Sweetest Music / Morning Glory》单曲封面的截图。也许就是这么一个在当时上传者有意无意做出的变化,让观众觉得这首歌变得更加迷幻。照片中三十多年前竹内玛莉亚那份独特的韵味,似乎与《Plastic Love》异常地相配(想像在当时只有第 86 位的《Plastic Love》如果用的是《Sweetest Music》的这张封面,我想一定会更好吧)。越来越多的爱好者基于这个封面创作出了许多有意思的作品,并在 DeviantArt、Tumblr 等平台上传播了起来。

\n
\"各种同人(来源:
各种同人(来源: Know You Memes
\n

越来越多的相关视频持续被算法推送至更多未曾了解过日本 City Pop 的用户,越来越多的二次作品诞生以及蔓延开来。《Plastic Love》的模因(meme)[4]产生了,并且一发不可收拾。关于《Plastic Love》与竹内玛莉亚的搜索热度持续上升。

\n
\"Plastic
Plastic Love 的 Google 搜索指数
\n

可是就在 2018 年的 12 月 20 日,当时就已经突破 2400 万次播放量的《Mariya Takeuchi\n竹内 まりや Plastic Love》视频,被 YouTube 以侵权为理由删除了。发起侵权处理请求的,不是竹内玛莉亚及其唱片公司,却是一位名为 Alan Levenson 的人。其理由是,他拥有视频中那张照片的版权。

\n

于是,YouTube 上这一份被热捧了 7×2400 多万分钟的塑料爱情,就这样与竹内玛莉亚那一个迷人的微笑,一同消逝在了 2018 年的圣诞节前夕。

\n
\"通过时光机回看当时下架的样子\"
通过时光机回看当时下架的样子
\n

很快,整个互联网记住了 Alan Levenson 这个名字,并且开始不高兴了。人们开始在推特等社交平台上诅咒 Alan Levenson,查到了 Alan 的邮箱地址并给他发送恶语谩骂邮件,指责他以《Plastic Love》的名气逐利云云。

\n

后来,Alan 联系上了几位当时给《Plastic Love》做出过热门科普视频的 YouTuber,道出了关于竹内玛莉亚那张微笑照片背后的往事……

\n
\n

这张既没有出现在《Variety》专辑中,也没有出现在《Plastic Love》单曲中的照片,是\nAlan 于 1980 年在洛杉矶,为当时竹内玛莉亚准备发布的《Miss M》专辑拍摄的素材。但是后来这张照片并没有被 RCA(竹内玛莉亚当时的唱片公司)选为专辑封面,RCA 只是将\nAlan 拍摄的其他照片随机地分散在了《Miss M》专辑的 B 面中[5]

\n
\n
\"《Miss
《Miss M》专辑 B 面
\n

三十多年后,Alan 通过 YouTube 上《Plastic Love》的病毒性传播才得知了自己当时拍摄的照片出现在了另一支单曲的封面中。他为自己的作品被上千万的观众所喜爱而感到惊讶的同时,对 RCA 当时不采用自己的创意作为《Miss M》专辑的封面而感到愤慨。

\n

同时 Alan 认为,华纳音乐(竹内玛莉亚如今的唱片公司)利用 YouTube 上《Plastic Love》突然火爆的事件,来宣传抬高竹内玛莉亚出道 40 周年纪念专辑的商业行为,没有给他合理的回馈。在他无法联系上当时上传《Mariya Takeuchi 竹内 まりや Plastic Love》视频的作者\nPlastic Lover 商讨相关事情的情况下,只好动用了侵权删除的办法。

\n

视频下架,推荐减少,热度逐渐消退,似乎大家都冷静了许多。网络还是继续地运作着,人们的生活也依旧进行着,时间也持续地在向未来延伸。

\n

故事到结尾了,但是我们还是相信未来的。

\n

4 个月后的 2019 年 4 月份,Plastic Lover 现身了,联系上了包括 Alan 在内的几位事件参与者。在他们的交谈与努力下,被下架的视频就在前几天的 5 月 14 日,又回到了 YouTube\n的推荐流中,人们又能打开观察竹内玛莉亚的微笑了。除了视频封面以及视频描述里增加了关于照片版权的信息外,其他的一切都还是原来的样子,音频、播放量、评论。

\n

而再往后两天的 5 月 16 日,便是文章开头提到的日本华纳音乐为《Plastic Love》这首三十多年的老歌,发布了先行版官方 MV 的事件。当然了,商业公司的这种行为必然不会是纯粹地“意外”与“怀旧”了。不过呢,能够让这些旧时被埋没的美好事物,再次展现给当代的人们以欣赏与回味,不也是挺好的事情嘛。昭和末平成初的事物,到了令和也是要抄抄真香冷饭的呢。

\n
\"感谢你拯救你爱的
感谢你拯救你爱的 Plastic Love(图源: @SteveMcCarthyII
\n
\n

连《Plastic Love》这首歌曲都能在 35 年后获得官方 MV,那么相信不管花多少时间,你都可以完成你的目标的!—— @Lumena_tan

\n
\n

这份满是既视感的遇见,其实早就在某处埋下了种子

\n

关于《Plastic Love》在 YouTube 上的故事讲完了,但其实,与《Plastic Love》相关的音乐故事我还想说些什么。以下都是我的个人认识与见解,君如有不苟同之处不妨当个乐子看吧。

\n

其实,《Plastic Love》在 YouTube 上突然的火爆,原因并不全是因为所谓的 YouTube 推荐算法突然的“嗜好”。以《Plastic Love》为主的一大批上世纪 80 年代的日本 City Pop 歌曲再度受到当代部分人的喜爱追捧,跟近些年来热度不低的蒸汽波(Vaporwave)及其子类的亚文化有着千丝万缕的关系。只是 YouTube 上的这次事件,让这一趟数十年轮回的复古狂欢,来得更猛烈持久了些。

\n
\n\n

2016 年 TARA 发行《Plastic Love (TARA Bootleg)》(类别:Future Funk)

\n
\n

蒸汽波从 2010 年初出现,至今发展不过 10 年,但已经发展出不少的分支子类。其中比较有名和相对流行的,就是 Future Funk。这个子类的作品的采样更多地取材于上世纪 80、90 年代的日本 Funk 音乐、都市流行(City Pop)乐以及部分欧美同期的歌曲,同时引入了更多的\nDisco/House 音乐的元素。这些与原始 Vaporwave 的不同点让这类作品变得更抓耳和更容易接受。通过“future funk plastic love”作为关键词去搜索引擎里搜索的话,你会发现不少采样自《Plastic Love》的 Future Funk 作品,有些在很早就出来了。

\n
\n

既要怀旧,又要现代。单纯听老歌,不一定能听得进去。而只取抓耳的部分,再加入舞曲节奏搅拌一下,更符合现代年轻人。—— 知乎@金时代

\n
\n

但其实,一旦突破了这个自我限制去听原曲的话,你会发现一片新的天地。不过我感觉,跟我同辈的人,不管听蒸汽波也好,听 City Pop 也罢,应该都会有 VICE 的一篇文章里说的一个情况:我们这一代并没有过在那个时代的生活经历,但是为什么听这些歌时会有一种莫名的怀旧感?以及会感觉到或向往自己在那个时代生活的样子[6]

\n

我想以我对以上疑问的鄙见来结束这篇文章。作为千禧一代的我们,其实从小就受到过 City\nPop 以及其所在年代的其它文化的影响。小时候跟着父母听的港乐,张国荣、梅艳芳,不少歌曲都有着与东瀛那个年代相似的感觉。以及小时候接触的还是那个年代画风的动画、游戏等,都给那时年少的我们带来了许多美好的记忆。

\n

进入社会后,却才发现自己的各种不是。纵使物质上逐渐满足,却无法再找回那时一样的快乐。只能在工作下班后,拖着疲惫的躯体通勤奔波。带上耳机,用塑料爱情所制造出来的空洞塑料情感,去弥补精神上的孤独与不安[7]

\n
\n
\n
    \n
  1. 竹内まりや「Plastic Love」Short ver. ↩︎

    \n
  2. \n
  3. Mariya Takeuchi’s “Plastic Love” gets music video after 35 years ↩︎

    \n
  4. \n
  5. https://music.163.com/#/artist/desc?id=17916 ↩︎

    \n
  6. \n
  7. https://knowyourmeme.com/memes/plastic-love ↩︎

    \n
  8. \n
  9. What Happened to Plastic Love? - Tales From the Internet ↩︎

    \n
  10. \n
  11. 为什么我们又听起了 City-Pop? ↩︎

    \n
  12. \n
  13. What is Plastic Love中文字幕版↩︎

    \n
  14. \n
\n
\n", "url": "https://www.h404bi.com/blog/2019/05/mariya-takeuchis-plastic-love-gets-music-video-after-35-years", "title": "35 年后,竹内玛莉亚的《Plastic Love》有了官方 MV", "summary": "在 2018 年 YouTube 上引起广泛关注、病毒式传播的歌曲,竹内玛莉亚(竹内まりや)的 Plastic Love,在其发布的 35 年后,“意外地”拥有了它的官方 MV。受蒸汽波等亚文化热 度持续存在的影响,上世纪 80 年代的日本 City Pop 音乐正在当下焕发出新的魅力。", "date_modified": "2019-05-21T15:07:32.000Z", "date_published": "2019-05-19T17:02:53.000Z" }, { "id": "/blog/2019/05/macos-mojave-dark-mode-in-css", "content_html": "

苹果公司的操作系统 macOS 从 10.14 Mojave 版本开始,为用户提供了深色模式的可选外观。用户可以在系统中的通用设置里选择启用深色模式,整个系统的界面会全局变为暗色调。对于夜间使用场景而言,深色模式的界面可能会显得更加友好,也更能让用户集中注意力。

\n\n
\"Office
Office 365 Dark Mode (Twitter @derek_snook)
\n

利用苹果公司提供的接口,各类原生桌面应用程序都开始陆续支持深色模式,可根据 macOS\n用户的系统设置进行换肤,比如 Google Chrome、Microsoft Office 等。

\n

但对于 Web 应用而言,似乎还没有什么讨论。好消息是 CSS 的媒体查询(media queries)新增加了一个叫做 prefers-color-scheme 的媒体特征,开发者可以通过该设置特征,让网站的配色随着 macOS 系统的界面外观色调改变而改变。

\n
/* 常规浅色模式下的网页背景颜色及文本颜色 */\nbody {\n  background: #fff;\n  color: #222;\n}\n\n/* 深色模式下的网页背景颜色及文本颜色 */\n@media (prefers-color-scheme: dark) {\n  body {\n    background-color: #222;\n    color: #ddd;\n  }\n}

prefers-color-scheme 支持三个值,分别是 no-preferencelight、以及 dark,对应是“无指定”、“浅色主题”以及“深色主题”。详情可以查看 MDN 说明。

\n

这个还在 CSS 草案阶段的媒体特征[1],显然尚未被主流浏览器大规模支持,不过已经开始受到部分浏览器支持了。可以从 MDN 或者 Can I Use 上看到,Firefox 67 以及 Safari\n12.1 开始支持该媒体特征。

\n
\"
prefers-color-scheme 兼容性
\n

如果你是 macOS 用户,又正巧使用的是支持该特征的浏览器的话,可以通过切换系统的外观色调,查看到我的博客配色跟随系统色调的变化。

\n
\"配色跟随系统色调切换而变化\"
配色跟随系统色调切换而变化
\n

除了 Firefox 浏览器之外,也可以用 macOS 系统的 Safari 查看到效果。

\n
\"浅色\"
浅色
\n
\"深色\"
深色
\n

图中的文章见《总结下博客最近的调整》。不过其实 prefers-color-scheme 只是帮助做到随系统自动变化而已,网站的深浅配色系统本身还是要开发者预先设计好。

\n
\n
\n
    \n
  1. https://drafts.csswg.org/mediaqueries-5/#descdef-media-prefers-color-scheme ↩︎

    \n
  2. \n
\n
\n", "url": "https://www.h404bi.com/blog/2019/05/macos-mojave-dark-mode-in-css", "title": "利用 CSS 媒体查询让网页配色跟随 macOS 深色模式", "summary": "苹果公司的操作系统 macOS 从 10.14 Mojave 版本开始,户提供了深色模式(Dark Mode) 的外观。本文介绍利用 CSS 媒体查询(media queries)中的 prefers-color-scheme 媒体特征(media feature)做到让网页跟随 macOS Mojave 的黑暗模式进行配色自动切换。", "date_modified": "2019-05-01T10:14:40.000Z", "date_published": "2019-05-01T10:14:40.000Z" }, { "id": "/blog/2019/04/recent-changes-of-my-site", "content_html": "

Old Days

\n

我建博客始于 2013 年,时间也不长。那会儿也不过是一个从 WordPress 加免费空间入坑的新手,免费空间关了就买了个域名和虚拟空间继续折腾。啊对,也改成了 Typecho 一段时间,仿过几个主题。之后便是在流行之下,一个 commit 换成了静态博客 Hexo。于是开始在这个“自留地/实验室”里摆弄各种新玩意,做做小试验。没写过几篇文章,却也一直延续至今。

\n

Changes

\n

A. 核心系统

\n

将使用了近 4 年的 Hexo 换下是博客最近最大的改变,换上的是基于 Vue、Webpack 等当前主流技术的 Saber 静态博客系统。

\n
\n

以 React、Vue、Webpack 等当代主流前端技术为基础的静态网站生成器系统持续出现并开始崭露头角,Gatsby、Nuxt、VuePress[1],势必会抢占 Jekyll、Hexo 等以字符串模版为主的“更加静态[2]”的旧式静态博客系统,我相信这也是这个社群中的趋势。

\n

在最初规划迭代的时候,预期是更换至 Gatsby 这个基于 React 技术栈的系统,其中的原因是受到 Daniel Eden(知名 CSS 动画框架 animate.css[3] 的作者)的博客改版影响。他在稍早的一段时间将他的博客 —— daneden.me 从 Jekyll 换成了 Gatsby。我的博客受其影响很大,即使到目前为止,在我博客中你仍然能够找到一些来源于他的博客的设计元素。最明显的是在文章图文排版上的借鉴,在大屏幕下,你可以在如《推特背后的 Notch 之道》等文章中看到左右溢出的插图。这个我非常喜欢的排版设计,便源于:「Design Elitism」,我博客的整个排版系统很大程度上受他影响,只是彼此经过多次迭代,已不太能找出相似点了。

\n
\"Gatsby\"
Gatsby
\n

没有选择 Gatsby 是因为在我对 React 生态的还不了解,头疼一连串硬啃 React、GraphQL\n等技术的时候,VuePress 出世了,我还是更倾向于相对比较熟悉的 Vue。

\n
\"VuePress\"
VuePress
\n

然而,在我尝试 VuePress 后,其更加面向于项目文档的设计,让我感觉从 Hexo 迁移显得力不从心。对比 Gatsby 这或许是因为还是刚起步阶段,生态还不完善吧,截至目前其博客方面的支持还在陆续开发中[4]

\n

于是我便在等待/寻找一款能让我更加平滑地进行迁移的系统。然后 Peco 出现了,并在后来被现在的 Saber 所替代。我不想在此大谈如何迁移至 Saber 的,真要这样或许会另起一篇文章写这个。只想说,非常感谢 EGOIST 的开源工作,让大家能够用上前沿的技术。

\n

B. 主题外观

\n

得益于 Saber 的系统设计,将我的原有 Hexo 自用主题迁移至新系统并没有感觉到费力。迁移后整体上我还是使用此前的主题,只是在原有的基础上完成了一些更加细致的迭代,使其更符合我的现存观感。除了调整了列表的布局变得紧凑些、完善响应式文字排版设计外,最大的一点是从以前一直使用的 CSS 预处理器 Stylus 切换成了 SASS,并用上了原版 Bulma 框架。在生态上,果然还是 SASS 更胜一筹。

\n
\"Bulma.io\"
Bulma.io
\n

期间学会了几个以前不了解、不常用的 CSS 属性,并应用到了主题中。

\n\n

不过整个主题目前还是有缺陷,只能后续随着时间推移再慢慢优化。

\n

C. 部署架构

\n

在我刚开始使用 Hexo 或者说刚入坑静态博客系统的时候,我就已经在使用持续集成工具来帮助我进行构建和部署工作,一直在使用 Travis CI 的社区版。静态博客系统通过使用持续集成做自动构建部署,真的能省下不少重复劳动。

\n
\"旧部署架构\"
旧部署架构
\n

旧架构如此的原因是以前部署到 GitHub Pages 上觉得速度不行,同时又不支持自定义域名使用 HTTPS,我也有一台闲置的香港 VPS,于是就通过 Webhook 触发 VPS 同步 GitHub Pages\n的内容,然后在 VPS 上使用 Nginx 提供服务,这样能解决前述的两个问题。后来因为域名的\nSSL 证书过期(那时还没用 Let's Encrypt)和 VPS 不稳定的原因,就加了层 CloudFlare。然后就没管了,一直这样。

\n
\"新部署架构\"
新部署架构
\n

调整后实际上就是将提供服务的后端从 VPS 迁移到了 Netlify。其一是图方便,Netlify\n自动申请 Let's Encrypt 不用自己麻烦在 VPS 上设置,其二是 Netlify 自带 CDN,速度还不错,最后是因为我需要调整整个博客各页面的固定链接,同时希望旧有的链接能重定向到新的固定链接上,保留可用性。而刚好 Netlify 原生支持重定向服务 —— Netlify Redirect,这样就不用因为 CloudFlare 免费版只有 3 个 Page Rules 而显得拘谨。

\n

构建文件依然推送到 GitHub Pages 分支上后再同步到 Netlify 的原因是,我希望保留能够在 GitHub 仓库中查看构建后的文件的功能,构建后直接推送到 Netlify 上我就看不到构建文件和历史变更了。

\n
\"Wappalyzer
Wappalyzer 检查
\n

故意加了个假的 Hexo Generator 的 Meta 标签,所以被检测出用 Hexo(大雾)。关于这个扩展程序,可以看我之前写的文章《我都在用些什么 Chrome 扩展程序》里有介绍。

\n

D. 其它变化

\n

整个核心架构变化,于是现在托管仓库的项目架构也有所调整,改成了 Monorepo 并用 Lerna\n进行管理[7]

\n

修改了内容授权协议,具体可见 About 页面。因为细想了一下,真有人取走内容的话大概也不会在意你的协议,于是干脆放飞自我。

\n

RSS Feed 调整,增加 JSON Feed 的支持,路径 /feed/index.json,同时原有的\nAtom Feed 的路径会从 /blog/atom.xml 调整为 /feed/atom.xml,原有路径会重定向至新路径。

\n

完整的迁移记录可见仓库 Commit Log

\n
\n
\n
    \n
  1. https://www.staticgen.com/ ↩︎

    \n
  2. \n
  3. https://vuepress.vuejs.org/zh/guide/#hexo ↩︎

    \n
  4. \n
  5. https://daneden.github.io/animate.css/ ↩︎

    \n
  6. \n
  7. https://github.com/vuejs/vuepress/issues/36 ↩︎

    \n
  8. \n
  9. https://developer.mozilla.org/zh-CN/docs/Web/CSS/text-align#Justify ↩︎

    \n
  10. \n
  11. https://developer.mozilla.org/zh-CN/docs/Web/CSS/@font-face/font-display ↩︎

    \n
  12. \n
  13. https://github.com/h404bi/www.h404bi.com/tree/592c99120e8452a816d51fbec6fb7eabf3f15448 ↩︎

    \n
  14. \n
\n
\n", "url": "https://www.h404bi.com/blog/2019/04/recent-changes-of-my-site", "title": "总结下博客最近的调整", "summary": "我建博客始于 2013 年,时间也不长。那会儿也不过是一个从 WordPress 加免费空间入坑 的新手,免费空间关了就买了个域名和虚拟空间继续折腾。啊对,也改成了 Typecho 一段 时间,仿过几个主题。之后便是在流行之下换成了静态博客 Hexo。", "date_modified": "2019-04-21T11:21:20.000Z", "date_published": "2019-04-21T10:07:40.000Z" }, { "id": "/blog/2019/02/understanding-windows-console-host-settings", "content_html": "

Windows Console Host(即 conhost.exe,下称“ConHost”[1])中的设置可能有点难以理解,主要是因为在过去几十年中这个设置系统不断发展。根据 ConHost 如何被调用,这些设置项会存储在不同的位置。

\n
\"控制台设置\"
控制台设置
\n

设置加载的层级

\n

决定一个控制台设置的加载与存储是基于以下层级进行的:

\n
    \n
  1. 写死在 conhostv2.dll 里面的设置
  2. \n
  3. 用户定义的控制台默认设置,存储在注册表 HKCU\\Console
  4. \n
  5. 每个控制台应用程序[2]单独的设置,存储在注册表 HKCU\\Console\\ 中,其中 sub-key 使用以下两种值中的一种:\n\n
  6. \n
  7. Windows 快捷方式(.lnk)中的设置
  8. \n
\n
\"注册表中的控制台设置键值\"
注册表中的控制台设置键值
\n

当一个控制台应用程序被启动后,ConHost 会依据加载情况决定使用哪些设置,同时会按照前述的层级先后对一些进行覆盖。每一个设置项将取其最后加载的值,也就是说在第 4 级(Windows 快捷方式)中的值会覆盖掉第 2 级(用户定义的默认设置)中的值。

\n

这样一个层级设计解释了为什么在每个控制台实例窗口的标题菜单中,都会有一个“默认值”\n选项以及一个“属性”选项。

\n
\"控制台窗口标题菜单\"
控制台窗口标题菜单
\n

修改“默认值”时,改动会存储到注册表 HKCU\\Console 中,写入用户定义默认设置(即前述层级中的第 2 级)。

\n

修改“属性”时,改动会存储到注册表中的控制台应用程序单独设置或者 Windows 快捷方式中:

\n\n
\"快捷方式中的设置\"
快捷方式中的设置
\n

当一个控制台应用程序被启动后,ConHost 会根据前述的层级,从第 1 级写死的默认设置开始覆盖设置,最后确定使用哪些设置。这意味着在 Windows 快捷方式中的设置会覆盖掉注册表中的控制台应用程序单独设置以及默认设置。

\n

值得注意的是在注册表中的设置是“稀疏”的,意味着如果某个设置项为空,则不会修改正在使用的值。这允许用户在所有控制台应用程序之间共享部分设置项的同时指定其它一些特定设置项。

\n

而快捷方式文件则会将每个设置项都存储其中,不管是否有默认设置。这些设置会以不透明的数据块存储在快捷方式中。

\n

下面是 Windows 控制台的设置列表,包含了简短的描述以介绍其作用。

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
设置项名字类型描述
FontSizeCoordinate (REG_DWORD)字体像素大小
FontFamilyREG_DWORDGDI 字体族
ScreenBufferSizeCoordinate (REG_DWORD)屏幕缓冲区大小,宽x高个字符
CursorSizeREG_DWORD光标大小
WindowSizeCoordinate (REG_DWORD)窗口大小,宽x高个字符
WindowPositionCoordinate (REG_DWORD)窗口位置,宽x高个像素(如果没有设置则进行自动定位)
WindowAlphaREG_DWORD窗口透明度(取值范围:0x4D-0xFF)
ScreenColorsREG_DWORD前景色与背景色
PopupColorsREG_DWORD显示弹窗(CMD.exe 按 F2)时的前景色与背景色
QuickEditREG_DWORD快速编辑模式是否开启
FaceNameREG_SZ字体名字 (默认使用 __DefaultTTFont__,根据你的代码页 CodePage 选择最合适的字体)
FontWeightREG_DWORDGDI 字重
InsertModeREG_DWORD插入模式是否开启
HistoryBufferSizeREG_DWORD命令记录缓冲区大小
NumberOfHistoryBuffersREG_DWORD命令记录缓冲区数量
HistoryNoDupREG_DWORD是否丢弃旧的副本
ColorTable%%REG_DWORD16 色的调色盘中每个颜色的 RGB 值
ExtendedEditKeyREG_DWORD是否启用扩展的文本选择键
WordDelimitersREG_SZ分词符列表(例:' .-/\\=|,()[]{}'
TrimLeadingZerosREG_DWORD选取复制文字时是否删除首部零宽字符(使用 00000001 表示 1
EnableColorSelectionREG_DWORD选择时是否同时复制颜色
ScrollScaleREG_DWORD使用滚轮滚动时一次滚动多少行
CodePageREG_DWORD代码页 CodePage
ForceV2REG_DWORD是否使用新版控制台
LineSelection*REG_DWORD是否启用对选定内容自动换行
FilterOnPaste*REG_DWORD是否在粘贴时筛选剪贴板内容(如:将弯引号替换为直引号)
LineWrapREG_DWORD是否在调整窗口大小时对输出的文本换行
CtrlKeyShortcutsDisabledREG_DWORD是否启用 Ctrl 键快捷方式
AllowAltF4CloseREG_DWORD是否禁用 Alt-F4 热键
VirtualTerminalLevelREG_DWORD控制台 VT 支持级别
\n

*仅在新版控制台中有效

\n

已知问题

\n

与大多数复杂的事物一样,有一些问题需要注意:

\n

系统更新会导致设置被重置

\n

每当你升级到新版本的 Windows 时,系统级的快捷方式以及“「开始」菜单”中的设置会被重置为默认值。这意味着如果你升级了系统,你自定义的字体、颜色等设置将会全部重置为\nWindows 的默认值。

\n

后记

\n

我一直在使用 concfg 作为我管理我的\nWindows 控制台设置的工具,近期成为了该项目的协作者进行项目维护,便开始稍微深入地了解 Windows 控制台相关知识。本文是微软官方 Windows Console & WSL 团队的一篇博文的译文,原文见 Understanding Windows Console Host Settings,有些许删改。

\n
\n
\n
    \n
  1. 在 Wikipedia 上也称 Win32 控制台 ↩︎

    \n
  2. \n
  3. 注意“控制台”与“控制台应用程序”的区别,前者指 ConHost 宿主程序,后者是运行在 ConHost 下的应用,如 cmd.exe/powershell.exe ↩︎

    \n
  4. \n
\n
\n", "url": "https://www.h404bi.com/blog/2019/02/understanding-windows-console-host-settings", "title": "彻底搞懂 Windows 控制台的设置", "summary": "Windows Console Host(即 conhost.exe)中的设置(如命令行字体等)可能有点 难以理解,主要是因为在过去几十年中这个设置系统不断发展。根据 ConHost 如何 被调用,这些设置项会存储在不同的位置。", "date_modified": "2019-03-06T15:15:20.000Z", "date_published": "2019-02-18T14:02:03.000Z" }, { "id": "/blog/2019/01/the-2018-hacktoberfest-shirt-arrived", "content_html": "
\"Get
Get Your Pull-Request Merged!
\n

竟然寄到了,而且还有小惊喜。

\n
\n

起因是参加了由 GitHub 和 DigitalOcean 联合举办的 Hacktoberfest 2018 活动。据说已经是第五届了,活动目的就是鼓励更多的人对开源社区做出贡献,支持开源项目。在活动期间内在 GitHub 上发出并且被合并 5 次 Pull-Request,就能登记领取文化 T 恤。挺好的。

\n
\"Hacktoberfest
Hacktoberfest 2018
\n

当时觉得 5 个 Pull-Request 被合并其实不难。倒是在想,这文化 T 到底能不能顺利漂洋过海来到手中。毕竟,我还有 2018 年中从宝岛台湾寄给自己的明信片到现在还是了无音讯的(悲伤)。抱着一丝希望,完成了任务填写了信息。之后就当作没有这回事不管了。

\n

数个月后,突然收到邮政打电话过来询问是不是“茶某某”,说有份国际快件让我去自提。彼时我在上班砍需求中,一时没想起来,就纳闷我名字里没茶这个字啊,这时对面已经挂线了。缓过神来才想起可能是 Hacktoberfest 的 T 恤,就只好等下班去邮政仓库转一圈。

\n

邮政晚上 9 点下班关门,赶着时间提前溜去了目的地拿到了包裹。

\n
\"打码打码打码...\"
打码打码打码...
\n

居然是从 Germany 德国寄过来的,我还以为是你大 USA 呢(图中的邮票是打码加上去的,谁会寄快件贴邮票哈哈哈),贴的满满的邮寄信息贴纸。这里有个小插曲要说下。去自提其实没有很顺利,到场后说是外国包裹,被告知要出示身份证并且不能代领。我不是代领,但是还是遇到了问题,在仓库现场根据我的身份证信息找不到包裹。我想到前面打电话叫我\n“茶(Cha)某某”,才醒悟到当时填邮寄信息时,我心大填了英文名而不是姓名拼音。后面拿笔纸写了英文名才找到。被告知国家实行实名制,快件要写实名,不能只凭电话收取云云。还好最后拍了快件照片,让我签收了。工作人员要回收签收贴纸,但由于贴纸贴了太多不好撕,就让我现场剪开了包裹拿走了物品,留下了袋子。在剪开之前拍了上面那张照片。

\n

经过这次后,觉得涉及实物相关的特别是跨国的东西,邮寄信息等资料最好还是写拼音。心大写英文还是不太行,有时候会造成麻烦。

\n
\n

接下来算是“开箱”。

\n
\"除了
除了 T 恤之外还有……
\n

小惊喜就是包裹里除了一件 T 恤外,还有几张 Stickers。现场拆包裹时邮政的工作人员心细帮我拿了出来,不然我可能拿了件衣服就跑了。

\n

整件衣服就是稍微浅色一点的酒红色。挑了最小号的,感觉刚刚好。正面一个大号\nHacktoberfest LOGO,右侧衣袖印了活动主办方的产品 LOGO,这样你穿出去就是“移动广告”啦。

\n
\n

DigitalOcean、GitHub 以及不认识的 Twilio。

\n
\"Hacktoberfest
Hacktoberfest 2018 LOGO
\n
\"整件衣服所有能找到的图案\"
整件衣服所有能找到的图案
\n
\"District
District - VERY IMPORTANT TEE
\n

哈哈哈,我看得这个“VERY IMPORTANT TEE”的时候真的笑了。这衣服牌子起的名字真有意思。

\n
\"面料产地\"
面料产地
\n

一半棉一半涤纶……倒是摸得出来棉量一般。产地 Honduras 洪都拉斯,拉丁美洲国家……\n所以这件衣服有飞了快一圈地球了吗?

\n
\"Hacktoberfest
Hacktoberfest 2018 LOGO 细节
\n
\"Hacktoberfest
Hacktoberfest 2018 LOGO 细节
\n
\"Hacktoberfest
Hacktoberfest 2018 LOGO 细节
\n

其实可以很明显地看出来,衣服的 LOGO 印花做得是相当直接粗暴的,也有些“粗糙”吧。这种衣服,放洗衣机里拉扯几次,估计印花就烂的差不多了。所以这些文化广告 T 呢,很多情况下要么穿的话就手洗,要么就……不愿做移动广告,供起来做收藏咯哈哈哈……

\n
\"Stickers\"
Stickers
\n

四张贴纸,分别对应 GitHub 章鱼猫、DigitalOcean 鲨鱼、Hacktoberfest LOGO 以及不认识的 Twilio。剩下那个大概是马克杯垫。贴纸是真的小惊喜了,章鱼猫挺好的。

\n
\"Stickers\"
Stickers
\n

有 DigitalOcean 的新用户广告,还有让你收到衣服后穿上然后去 Twitter 上的 #Hacktoberfest\n发推分享 2333。我在推上搜索看到有不少分享了,并且才知道除了这一款 DigitalOcean\n联名的酒红色 T 恤外,还有微软款等其它款的!我觉得还更好看,有点羡慕……

\n
\"来自推特用户
来自推特用户 @tanhengyeow
\n

看到大眼睛的回形针了吧!好赞啊。不过不管怎样,能收到还是很高兴,于是就记录下来了。有下一届的话,我应该还会参加的,嘿嘿。

\n", "url": "https://www.h404bi.com/blog/2019/01/the-2018-hacktoberfest-shirt-arrived", "title": "历经数月,GitHub 章鱼猫寄来的 T 恤竟然……", "summary": "历经数月,GitHub 章鱼猫寄来的 T 恤竟然寄到了,而且还有小惊喜。起因是 去年参加了由 GitHub 和 DigitalOcean 联合举办的 Hacktoberfest 2018 活动。 据说已经是第五届了,活动目的就是鼓励更多的人对开源社区做出贡献,支持开源项目。 活动期间内在 GitHub 上发出且被合并 5 次拉取请求,就能登记领取文化 T 恤。", "date_modified": "2019-01-14T18:19:44.000Z", "date_published": "2019-01-14T18:19:44.000Z" }, { "id": "/blog/2018/12/chrome-extensions-that-i-am-using", "content_html": "

想不到在 Microsoft Edge 正式发布后的第三年,微软官方宣布了 Edge 将放弃自家的内核引擎,转而去拥抱在当前浏览器生态中占据统治地位的 Google Chromium。继 Opera\n之后,“Chromium 家族”又将迎来新的成员。这无疑是一个重磅消息,对于用户而言,对于微软自己而言,带来的影响都是巨大的。

\n

内核统一后,可以预见的是,前端开发者们花在浏览器兼容上的时间应该会再减少。同时微软在宣布这个消息时,也确认了 Edge 将能无缝支持 Chrome 的全部扩展,这对于开发者和用户而言肯定是有好处的。要知道,Chrome 好用的一大原因是拥有各种各样数不清的扩展程序,丰富的扩展资源能给用户带来许多方便的增强功能。

\n

说到 Chrome 的扩展,也是本文的主题。在笔者的日常生活中,偶尔会看到关于 Chrome\n扩展相关的讨论,有时候会被问及用了什么扩展程序。其实也是,Chrome 商店上琳琅满目的主题扩展,一下子肯定不知道哪个好用,哪个适合自己,唯有自己尝试过后才清楚。

\n

看了一下,距离上一篇博文也蛮久了。而恰好有这么个话题,于是就拿出自己这几年使用\nChrome 以来积累到的一些扩展程序和信息,做这么一个盘点,也算是更新一篇文章。其实扩展的使用跟个人平时日常生活的使用习惯是有很大关联的,喜欢浏览些什么网站、使用什么服务、以及从事什么工作等等。有些还比较涉及隐私,但既然开了这么个坑,就填掉吧。如果能让读者发现有眼前一亮的扩展且愿意去使用,也挺欣慰的,嘿嘿。那么下面就开始盘点吧。

\n
\n

AcFun HTML5 Player

\n
\"AcFun
AcFun HTML5 Player
\n

Adobe 官方宣布 2020 年停止更新 Flash,Flash 时代的终结终于定上了日程。即使没有官宣,从那些日子使用《妈妈再也不用担心我的 MacBook 发热了计划》养成了“刁钻习惯”,在浏览视频类网站的时候,能用 HTML5 的话,我都会尽量使用。不过,很庆幸 Adobe 能做出这个大好的决策。有些东西,到了被淘汰的时候,也就那样了。就如,哪天 A 站原生支持了 HTML5 播放器,这个扩展的寿命也许就……

\n
\n

Checker Plus for Gmail™

\n
\"Checker
Checker Plus for Gmail™
\n

无需打开 Gmail 或 Inbox,即可收到桌面邮件通知,方便地查看、收听或删除邮件,并且支持多账户。用过这个之后,你就不会再想起 Google 自家提供的很久没有更新的\nGoogle Mail Checker 扩展了。伟大的邮箱,伟大的软件,伟大的公司,敌不过更伟大的墙。如今还在坚持用 Gmail 的同学,一定不是真爱就是历史数据迁移太麻烦!迫于 Google\n全家桶的问题,我还是保持着 Gmail 的轻微使用。更多的,还是走 Outlook 了……

\n
\n

Cowlevel Steam 增强小能手

\n
\"Cowlevel
Cowlevel Steam 增强小能手
\n
\n

研发辛苦了,对奶牛关的与steam的结缔有很大的帮助qwq。—— bulong dou

\n
\n

奶牛关在 Steam 上的增强扩展。在浏览 Steam 商店页面等的时候,可以查看到来自奶牛关玩家的综合评分与游戏相关问答讨论、相关文章、精选评测等内容。当然,如果你并不知道奶牛关是什么的话,可以查看一下《关于我们 - 奶牛关》,一句话描述就是“游戏狂热者的分享问答社区”。一个类似知乎但只专注游戏的,更垂直的社区。社区里面有不少硬核玩家、游戏从业者,欢迎来找我玩耍:h404bi - 个人主页 - 奶牛关

\n
\n

Enhanced Steam

\n
\"Enhanced
Enhanced Steam
\n

第二款跟 Steam 相关的扩展。Chrome 与 Steam 重叠用户的话,这款扩展基本上算是\n“装机必装”的了。这款免费的扩展,为 Steam 网站做了非常多的增强,添加了很多功能,比起前面的奶牛关增强小助手,就是大巫见小巫了。

\n\n

上面是扩展商店页介绍的主要功能。其它大大小小的功能点,如显示 SteamGifts\n等网站链接,商店跨区警告,商店页面用 HTML5 播放视频等等,就不一一列举了。一旦习惯了这个扩展的话,没有扩展支持的情况下打开 Steam 商店页面,就会觉得少了很多东西。有 Enhanced Steam 的 Steam 商店页面,才是真正的页面。

\n
\n

Feedly Notifier

\n
\"Feedly
Feedly Notifier
\n
\n

RSS 已死,Web2.0 已是过去式

\n
\n

即使有大批用户表示不舍,Google 还是在 2013 年彻底关闭了 Google Reader。我虽然没认真用过 Google Reader,但是对于同样离不开关闭命运的“鲜果阅读器”,我却有过一段稍长的使用经历。那种感觉确实挺难受的。就像 Flash 那样,有些东西终究会随着无情的时间慢慢消逝,只是 RSS 没有 Flash 那么让人不爱罢了。字节跳动带着它的头条系产品崛起成为了新独角兽,足以证明,大数据与算法、个性化推荐比起难用的 RSS 还是更“懂用户”,更适合绝大多数人。但就是在有数不清的各种 APP 肆意撕裂、抢占你的个人时间,到处充斥着信息焦虑的今天,仍然会有那么一小撮人,选择使用 RSS 来管控自己的信息源,只因为它能让这些人在信息爆炸的环境下,仍能专注与高效地从中汲取自己想要的信息。这就是我保有对 RSS 的使用的原因,只是这个载体是 Feedly 而已。Feedly Notifier 作为 Feedly 在 Chrome 上的一个辅助扩展程序,已经够用了。

\n

时至今日,关于 RSS 的话题其实还是会时有出现,就像一颗石子扔入水中,泛起一阵涟漪。这里我非常推荐读者能去阅读 Platy Hsu 写的两篇关于 RSS 的文章:《论 RSS 的「复兴」》与《RSS 服务对比评测》。特别是前一篇,很有深度。

\n
\n

Free Download Manager

\n
\"Free
Free Download Manager
\n

IDM(全称“Internet Download Manager”)确实更胜一筹吧。但胜在 FDM 是免费软件。其实很忏愧在日常生活中自己实在做不到完全去盗版化,使用 IDM 大概也有两三年时间,羞愧之心还是要有。在版权意识越来越被重视的时代,如果有满足需求的可替代产品,能去盗版化的话,就尽量去盗版化了。

\n

而且,FDM 支持 WIndows 与 macOS 双平台,这也是另一个优点。由于需要监听浏览器的下载事件,所以要安装这个扩展程序,跟 IDM 一样。

\n
\n

Full Page Screen Capture

\n
\"Full
Full Page Screen Capture
\n

用过好几个全网页截图工具,还是觉得这个来的顺手。不过这个只支持一键截全网页,没有截局部的功能。截局部的话,有太多替代软件了,Windows 自带的 Snipping Tool、\nQQ 的截图等等。Full Page Screen Capture 是开源的,源码托管在 GitHub 上。

\n
\n

Holmes

\n
\"Holmes\"
Holmes
\n

觉得 Holmes 大概是从前文说到这里,第一款相对来说很实用但是却又比较不出名的扩展。这个小而美的扩展程序,只提供了一个非常提升效率的功能:在地址栏快速搜索书签。只需要在地址栏输入一个星号(*),然后按下 Tab 即可进入 Holmes 搜索书签模式,利用模糊搜索功能可以从整个 Chrome Bookmark 中快速找出你想要的书签并按下回车打开。美中不足的地方是不支持对中文搜索,众所周知的中文分词问题,外国人开发的扩展在所难免。

\n
\n

HTTPS Everywhere

\n
\"HTTPS
HTTPS Everywhere
\n

从 Chrome 之前的给使用 HTTPS 的网站加上绿色安全小绿锁,到现在把使用 HTTPS\n的网站当作正常网站,并把使用 HTTP 的网站标为不安全网站可以看出,Google 正在不遗余力地推进 HTTPS 的普及使用。作为一名“激进的用户”,自然而然地安装上了\nHTTPS Everywhere,能 HTTPS 的全都给我 HTTPS!当然,在“HTTPS 不发达的国内”,强制 HTTPS 总会时不时遇到各种毛病,如某段时期微博登录页的无限重定向 HTTP 云云。

\n
\n

Imagus

\n
\"Imagus\"
Imagus
\n

这大概是 Chrome 上最好用的辅助看图扩展程序了。只需要将鼠标悬停在缩略图上,就能放大显示缩略图背后的原始图片。拥有对接近 300 个网站的筛选规则支持,而且即使像本人博客这样没有预设规则的站点,常见的缩略图形式也是能识别到的。装上这个扩展后,渐渐就会越来越少地右键审查元素翻代码找原始图片了。

\n
\n

JavaScript and CSS Code Beautifier

\n
\"JavaScript
JavaScript and CSS Code Beautifier
\n

在 Chrome 上直接访问混淆压缩的 JS、CSS 文件时,能对代码进行格式化并且高亮。能更好地查看代码逻辑,在理解网站前端逻辑、样式设计时比较有用。特别有利于扒皮党(雾)。

\n
\n

JSON Formatter

\n
\"JSON
JSON Formatter
\n
\n

Makes JSON easy to read. Open source.

\n
\n

打开 JSON API 或者 JSON 文件时可以更方便阅读,支持格式化切换、折叠、链接跳转。

\n
\n

minerBlock

\n
\"minerBlock\"
minerBlock
\n

加密货币近些年来真的是火热得不行,特别是去年比特币一路高歌猛进的时候。在网站上挂 JS 利用访问用户的计算机资源进行挖矿,究其本身其实是比较难评判的。如果是站长自己的行为,并且显著位置告知了访问用户的话,这个看不同人的看法。但如果是特意埋藏得很深,或是被“挂马”了,用户不知情的情况下这么做,确实难以让人接受。这个扩展也就是防这一类的情况吧,防不胜防最为致命。另外该扩展本身是开源的,大概也是免除监守自盗的情况。

\n
\n

Minimal New Tab Clock

\n
\"Minimal
Minimal New Tab Clock
\n
\n

十位 Chrome 用户中有八位用 Infinity 新标签,一位用 Chrome 自带新标签,剩下一位用 Minimal New Tab Clock —— 胡说八道

\n
\n

不得不承认,Infinity 新标签确实是很多很多很多人在用、推荐吧。可是我这人,偏偏选上了极简风。于是就一直在用着 Minimal New Tab Clock,再搭配用了很久很久的一款纯白主题,弄得整个 Chrome 都死白死白的,毫无色彩美感可言。倒是有不少人见过我这个死白的 Chrome 截屏问我用的是什么新标签,这里再介绍一遍:「Minimal New Tab Clock」。只有一个功能,在新标签显示当前时间。只能换背景色,不能换图片背景,没有云同步,除了显示时间啥都没有。

\n
\n

OctoLinker

\n
\"OctoLinker\"
OctoLinker
\n

一款 GitHub 增强扩展,可以提高在 GitHub 上浏览查阅代码的效率。功能就是能为指定语言的模块加载语句(比如 includerequireimport)加入跳转链接,点击链接可以跳转到引用的文件、依赖文件的仓库或者外部网站。

\n
\n

Octotree

\n
\"Octotree\"
Octotree
\n

这个扩展我想只要是常访问 GitHub 的都会有使用的,因为它实在是太能提升效率了。将仓库以目录树的形式展示出来,比起 GitHub 原本的形式,在目录之间切换浏览真的来得方便快捷多很多。不过与上面的 OctoLinker 一起使用的话,有个不小的问题:\nOctoLinker 不会对从 Octotree 的目录树中点击打开的文件进行识别,不会为模块加载语句添加跳转链接。

\n
\n

Proxy SwitchyOmega

\n
\"Proxy
Proxy SwitchyOmega
\n

这个基本上人手一份的知名扩展,就不多做说明了吧。

\n
\n

Save to Pocket

\n
\"Save
Save to Pocket
\n

将来不及阅读或者暂时不想阅读的网页内容,一键保存到 Pocket\n上云同步,然后可以在其它不同的设备上继续阅读。不过因为感觉访问不太稳定的样子,平时使用比较少。

\n
\n

Steam Database

\n
\"Steam
Steam Database
\n

这是我安装使用的跟 Steam 有关的第三个也是最后一个扩展。主要是在 Steam\n页面上增加了一些跟 SteamDB.info 网站有关的扩展功能。可以快速查看游戏对应的 SubID、历史价格变动、游戏最近更新时间等等,还在 Steam\n的库存页增加了快速出售的按钮。都是一些比较实用的扩展功能,让你更方便更自信地剁手。

\n
\n

Stylus

\n
\"Stylus\"
Stylus
\n

此前一直用着 Stylish,后面爆出该扩展偷偷窃取上传用户的浏览历史,而且被 Chrome\n下架。虽然感觉自己不少信息被卖过了,但是对于这种偷偷摸摸的不干净行为还是反感的。于是就转战 Stylus 了,跟前者使用上也没什么大区别。其实我只安装了一个自定义样式「GitHub Mod」,将 GitHub 的样式拍扁变成扁平化设计,并且修改字体为 Open Sans。这是我唯一安装的一个样式,但是因为严重依赖这个样式,所以样式管理扩展还是得安装一个使用。扁平化后确实很好看,看前面 Octotree 的实际截图就知道了,私家珍藏强烈推荐。

\n
\n

Tampermonkey

\n
\"Tampermonkey\"
Tampermonkey
\n

「油猴」扩展本身就不多介绍了,知名扩展。说说我安装在用几个脚本吧。

\n\n
\n

Text Mode

\n
\"Text
Text Mode
\n

无图模式!而且是真的无图,启用扩展后,会直接将网页中的图片加载直接 Block 掉,不是图片加载了才用色块填充。这样就有个使用场景,如果应急情况笔记本电脑连上了手机的热点,这样打开网页时就能省下很多流量,虽然现在手机卡无限流量也不太昂贵了。另外一个使用场景就是阅读专注,把无关图片屏蔽掉了,剩下文字让阅读更专注。不过偶尔会觉得在这个使用场景下有点鸡肋,一个是图片位置填充的都是灰色色块,有时眼睛会被色块占据,觉得疲劳。另一个是做不到像 Safari 阅读器视图那样,保留正文的图片。有这方便更深的需求的话,据说国产扩展「简悦」会是一个不错的选择,有机会找个时间我也试试看。

\n
\n

uBlock Origin

\n
\"uBlock
uBlock Origin
\n

我以前也是 AdBlock/AdBlock Plus 的用户,后来切换成了 uBlock Origin。切换的原因并不只是 uBlock Origin 比起其它广告过滤扩展在性能上面有优势[2],而且其实我也没实际去检验过这个性能比较。主要的另一个原因是 uBlock Origin 自己在介绍上说的:

\n
\n

uBlock Origin 不是一个广告过滤工具,屏蔽广告的功能是通过支持 Adblock Plus\n过滤规则语法实现的。uBlock Origin 的主要目的是帮助用户抵御侵犯隐私的行为,uBlock\nOrigin 安装后会默认开启 EasyPrivacy 等一系列可以屏蔽跟踪、分析等行为的过滤规则。

\n
\n

除了 uBlock Origin 为我默认开启的一系列规则列表外,我只多增加了一个自定义规则,\nCJX 的「去自我推广列表规则」:CJX's Annoyance List

\n
\n

v2ex plus

\n
\"v2ex
v2ex plus
\n

V 站还是一个很不错的地方的,日常逛逛摸摸鱼。发现好几个朋友同事都有浏览 V2EX……\nv2ex plus 确实是一款很好用的 V2EX 扩展,对话详情、插入表情图片等都是很好的功能。

\n
\n

Vue.js devtools

\n
\"Vue.js
Vue.js devtools
\n

Vue.js 开发调试神器,就这样。React 暂时没啃下,还得靠 Vue 活着。不比较,都重要。

\n
\n

Wappalyzer

\n
\"Wappalyzer\"
Wappalyzer
\n

这是我安装的这么多个扩展程序中,使用率比较高一个。Wappalyzer 是一款非常实用的网站技术分析扩展,通过它可以识别一个网站是以什么架构的,所用到的前后端技术栈等信息。比如 B 站主站全站用上了 Vue、webpack,网易云音乐用了 Nginx、Node.js 等等。虽然有时候不太准确,但大体上还是能快速得知到一些信息的。Wappalyzer 的原理是维护一套规则,里面有各种技术的特征信息,然后根据网站是否有对应特征进行判断。

\n

比如我的博客是用 Hexo 架设的,特点就是在页面源代码里有一串表示是 Hexo 的特征代码,Wappalyzer 就根据这个判断出来我的博客用了 Hexo。

\n

其实 Wappalyzer 原本一直不支持判断 Hexo,于是我找了个时间先在 Wappalyzer 的仓库提交了Hexo 的特征规则[3],然后在 Hexo 的仓库提交了 meta 特征注入功能[4],并最终合并进了主分支随着 Hexo 3.8.0 版本发布而生效。在生效之后,随着被判断的站点的增加,现在已经可以在 Wappalyzer 上看到都有哪些知名的站点使用 Hexo 架构的了:

\n
\n

https://www.wappalyzer.com/technologies/hexo

\n
\n

这其实跟隐私保护有点对立了。所以如果你也是用 Hexo,却不想被判断出来,则可以通过\nHexo 的 after generator 钩子在页面生成时将特征(不只是 meta 一个特征)去掉,这样就不会被判断到了。

\n
\n

划词翻译

\n
\"划词翻译\"
划词翻译
\n

后悔大学时期没把英语往深里去学,只得半桶水。现在接触越多,才会发现语言愈加重要,亏我还是外语大学毕业的。「划词翻译」是我使用时间比较久的一款扩展。到如今 Chrome\n与 Firefox 双修的我,还是对在 Firefox 上没有一款能与划词翻译媲美的扩展而感到难受。

\n
\n

哔哩哔哩助手:bilibili.com 综合辅助扩展

\n
\"哔哩哔哩助手:bilibili.com
哔哩哔哩助手:bilibili.com 综合辅助扩展
\n

B 站增强扩展,有这款就够了。好用!啾咕咕www 牛掰。AB 站双修,缺 B 乐还在就好。

\n
\n

眼不见心不烦(新浪微博)

\n
\"眼不见心不烦(新浪微博)\"
眼不见心不烦(新浪微博)
\n

用了很久的一款扩展了。看了下虽然扩展有近一年没有更新过了,但是已有的功能还是都能用。屏蔽掉一些不想看到的信息、模块,偶尔打开微博看看关注的人发的内容还是挺愉快的。

\n

此前听一同事说了一个关于微博的有意思的点,说到微博是唯一一个不太被其他应用、平台屏蔽分享的产品。像今日头条与腾讯微信互掐、网易部分产品禁止腾讯 QQ、腾讯屏蔽淘宝天猫等等,都是怕自家产品被往外导流量,却很少见微博被拒绝,被屏蔽。我想了下也确实好像是这样,不少平台应用都允许发布微博信息,比如关注微博什么的。

\n

微博已经是一个成熟型的平台,纵使有感觉到周边的人对比以前都不太使用微博,它也是一款经历了十年风雨的、稳定的产品吧。一些人还是会偶尔上去逛逛的。

\n
\n

结语

\n

以上就是本人在这些年使用 Chrome 积攒下来的一些主要的扩展程序。其实目前我的浏览器里还有安装一些其他的扩展程序,但大多数都是处于停用的状态,也就是保留着但基本上不再去使用了,可能偶尔打开用一下的样子。而以上盘点的扩展,都是在用而且比较常用的。阅读到这里的你,不知道有没有发现感兴趣或是合适的扩展呢。不管怎样,每一款优秀扩展的诞生,都是为了能让用户更好地使用浏览器,更好地从互联网上汲取信息,更好地生活和工作。愿你有个更好的使用体验,感谢阅读。

\n
\n
\n
    \n
  1. https://music.163.com/#/artist/album?id=13222556 ↩︎

    \n
  2. \n
  3. https://github.com/fang5566/uBlock/blob/master/README.md ↩︎

    \n
  4. \n
  5. https://github.com/AliasIO/Wappalyzer/pull/1970 ↩︎

    \n
  6. \n
  7. https://github.com/hexojs/hexo/pull/3129 ↩︎

    \n
  8. \n
\n
\n", "url": "https://www.h404bi.com/blog/2018/12/chrome-extensions-that-i-am-using", "title": "我都在用些什么 Chrome 扩展程序", "summary": "Chrome 好用的一大原因是拥有各种各样数不清的扩展程序,丰富的扩展资源能给用户 带来许多方便的增强功能。可以说这可能是一篇 Chrome 扩展程序推荐文,但其实扩 展的使用跟个人平时日常生活的使用习惯是有很大关联的,比如喜欢浏览些什么网站、 使用什么服务、以及从事什么工作等等。", "date_modified": "2018-12-21T03:00:17.000Z", "date_published": "2018-12-21T03:00:17.000Z" }, { "id": "/blog/2018/05/talk-about-scoop-the-package-manager-for-windows-again", "content_html": "
\"Let
Let us Scoop it!
\n

在 2015 年的《用 Scoop 改善 Windows Powershell》博文中,我曾经介绍过这个令我眼前一亮的 Windows 软件包管理器。那是我刚开始使用上 Scoop 的时候,回看过去对它的介绍,也确像是一见钟情后的入坑纪实。简单,直接。

\n

那会我很快适应了 Scoop,并一直使用至今。经过这两年多的使用,我渐渐地更加依赖 Scoop 来管理一些软件。在我日常的 Windows 使用中,它带给我的便利,已不再仅仅是那时所言的“改善 Windows Powershell”。其实感觉就现在的 Scoop 而言,它确实还是挺小众的。只是最近我发现有些人通过搜索引擎浏览了我的那篇旧文,我觉得那篇文章太旧且简单了。于是挖下这么一个坑,写下这篇新文章更新下对 Scoop 的介绍与体会。

\n
\n

软件包管理器

\n
\n

https://scoop.sh/

\n
\n

这是 Scoop 的官网首页。网站正中央醒目的 Slogan 已表明了它的定位,一个 Windows 下的命令行式的(软件)安装工具。

\n
\n

A command-line installer for Windows

\n
\n

虽然 Scoop 的作者在项目的 GitHub Wiki 中谈到,\nScoop 只是一个安装工具(installer),不应该被称为包管理器(package manager)。但是对于使用者而言,它与我们一般认为的软件包管理工具其实很是相似。

\n

作为对比,我列举一下常见的不同系统下类似的工具:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
系统工具范例备注
Arch LinuxPacmanpacman -S pyenvBuilt-in
CentOS/RHELyumyum install python-wheelBuilt-in
Debian/Ubuntuapt/apt-getapt install python3Built-in
Fedoradnfdnf install python-pipBuilt-in
macOSHomebrewbrew install python3rd-party
openSUSEzypperzypper install python3-pipBuilt-in
WindowsChocolateychoco install docker3rd-party
\n

这些工具的一个重要的特征是在终端下以命令行形式工作。所以很多情况下,安装一个软件时你不再需要使用浏览器打开\nhttps://www.python.org/\n网页,找到并下载安装包,双击安装程序。而是直接一句命令,然后等完成就行了。

\n
\"Homebrew\"
Homebrew
\n

作为一个以桌面环境专长的系统,Windows 自然不会有像 Arch Linux 亦或者 Debian\n等以命令行环境起家的 Linux 系统那样,内置有这样的工具。不过,苹果家的 macOS\n这个无论命令行环境还是桌面环境都好使的系统,却也没类似的工具。但在用户社区的不断发展下,Homebrew 这个神器从社区中诞生,弥补了 macOS 的一大“缺陷”。那句充满自信的 Slogan,足以体现出 Homebrew\n的地位。(更别提以小号 Linuxbrew 身份扩散至 Linux 社区……会不会有\nWindowsbrew/Winbrew 呢哈哈……)

\n
\n

Homebrew: The missing package manager for macOS

\n
\n

回到 Windows 这边厢。用户的需求与社区的发展必然也会催生类似的工具。在产生的这为数不多的几种工具中,巧克力(Chocolatey)是目前最为出名,相信也是用户数最为多的一个。从最初的开源项目,到现在的独立公司商业项目(仍开源),收获近 6000 个软件包与近 3 亿次包安装次数(2018 年 5 月官网数据)。甚至在 Windows 10 系统开始集成的官方“包管理器”(这里打引号是因为我觉得它已经超出了包管理器的基本范畴,更像是一个聚合物,一个超集)—— OneGet 都提供了对 Chocolatey 源的支持,你可以直接用 OneGet 安装 Chocolatey 的软件包。

\n

但就像 NPM 之后的 Yarn 那样,轮子还是会有人重新造的。在 Chocolatey 之后的\n2013 年,lukesampson 开发了 Scoop。我了解过但没并用过 Chocolatey,所以接下来我只能根据我对 Chocolatey 的短浅认识,来说一说我为什么一开始就选择用上了 Scoop。

\n

Why Scoop

\n

\n

\n

上方是 Scoop 刚发布时(我想也是唯一)的介绍视频,观看要能访问 Youtube。

\n

如上文说的我对 Scoop 的“一见钟情”,这里我换个表达:第一感觉。很多情况下第一感觉确实很能影响一些事情,不管人还是物。就从上面的视频里拿出来说一下,\nScoop 的安装说明真的很直截了当,有且仅有那一行命令,没有任何选择余地。就像 Homebrew 那样,将命令粘贴至终端回车就好了。我也看过 Chocolatey 的安装说明[1],虽然也提供了无脑一行命令的安装方式,但看到 More Install Options\n我还是会研究一番看看怎么安装最优最合适,然后就不由自主地陷进去了。这里有个趣闻,Chocolatey 的创始人曾经在 Scoop 的 GitHub 项目下提 issue[2]\n询问 Scoop 能否整合 Chocolatey,并表示 Scoop 非常利落

\n

上面是第一感观。第二个是 Scoop 跟 Chocolatey 对于管理员权限安装的部分的不同处理方式,直接让我倾向于先入手了 Scoop。Chocolatey 的安装脚本默认要求管理员权限安装,同时非管理员安装默认路径是 C:\\ProgramData\\chocoportable,这对于非高权限用户来说不太友好(比如没有管理员权限的工作机安装会比较折腾),而 Scoop 默认仅需普通用户权限,安装路径是 %USERPROFILE%\\scoop 则显得比较清新,不过这都是可以根据需求修改的了。

\n
\"Want
Want some Chocolatey?
\n

关于 Chocolatey 默认管理员权限安装的原因,应该是比较明显的:\nChocolatey 需要能处理安装更多的软件包,比如 Flash Player Plugin,\nVirtualBox,以及 Windows 的各种 KB 补丁。因为默认管理员,所以很多只能以管理员身份安装到高权限目录的软件 Chocolatey 就能比较方便地处理了。而 Scoop 的处理方式则反过来,默认普通用户权限。软件包能限当前用户,不全局安装的就不全局安装。如果需要全局安装则自行利用 -g 参数提升为管理员权限安装。

\n

这极大地方便了低权限用户,同时用户目录安装不污染系统目录,比较讨喜“绿色用户”。我觉得 Chocolatey 才更像是命令行式软件安装工具(Installer),通过命令行来执行各种软件的安装。而 Scoop 在我看来优先解压包体的理念,反而更有 Homebrew\n那种装瓶(bottle)与倾倒(poured)的感觉[3]

\n

第三个就是软件包(package)及其仓库。二者在这一部分的不同设计,让我决定了先放弃尝试 Chocolatey。首先是关于软件包的定义,Chocolatey 用的是\n.ps1 脚本和 .nuspec 定义文件(xml),Scoop 用的是 json。乍一看你便会像\nChocolatey 作者对 Scoop 的评价那样:

\n
\n

ferventcoder: this is super neat...

\n
\n

另一个是 Scoop 有用户软件包仓库的概念,官方仓库里没有你想用的软件包,又或者你想自定义一些软件包,那么可以自己建一个仓库,存放自己的软件包定义文件。在实际的使用体验上,相信也会更加喜欢 Scoop 这样的设计,它更接近于 Homebrew:软件包 manifest -> Formula,仓库 bucket -> tap。

\n

剩下的可以再通过上面的视频介绍自行体会一下。总的来说,\nChocolatey 能更加全面地包办绝大多数的软件安装,适应重度需求;而 Scoop 则更加简单利落,容易自定义软件包,适应中低需求。而我恰是后者,对于像 VirtualBox、Docker for Windows 这些需要高权限的软件还是会用安装包在用户界面下自定义安装。更特殊的用户倒是更可以将 Chocolatey 和 Scoop 结合使用。

\n

How Scoop

\n

Scoop 需要 PowerShell 3 以上进行安装使用。最新的 Windows 10 系统已经是\nPowerShell 5 了所以可以直接使用安装命令。Windows 7 的话默认是 PowerShell 2,可以根据微软的文档[4]升级到 PowerShell 5,或者可以安装使用新的 PowerShell Core,即 PowerShell 6。然后两句命令很快就安装好了:

\n
# 先设置 PowerShell 允许执行未签名脚本\nset-executionpolicy remotesigned -s currentuser\n# 下载 Scoop 安装脚本进行安装\niex (new-object net.webclient).downloadstring('https://get.scoop.sh')
\"我这里已经安装过了\"
我这里已经安装过了
\n

由于 Scoop 的安装脚本托管在 GitHub 的仓库里,所以对于无法正常访问 GitHub\n的用户来说,安装的时候可能需要加一层全局代理后再进行安装[5]

\n

执行 scoop help 看一下子命令就能快速上手,用过 Homebrew 的话应该更不在话下。比如 scoop info 是最近新集成的子命令[6],在安装软件前可以对包体有个了解。

\n
$ scoop info grep\nName:      grep\nVersion:   2.5.4\nWebsite:   http://gnuwin32.sourceforge.net/packages/grep.htm\nLicense:   GPL-2.0 (https://spdx.org/licenses/GPL-2.0.html)\nManifest:\n  C:\\Users\\hanabi\\scoop\\apps\\scoop\\current\\lib\\..\\bucket\\grep.json\nInstalled: No\nBinaries:\n  bin\\grep.exe

然后就能像上面的视频里那样安装和使用软件包了。这里说一下,由于 Scoop 的设计以及其基于GitHub 的特性,一些软件包相信你会必定安装的:

\n
\n

scoop install git 7zip

\n
\n

就像介绍视频里说的那样,Scoop 默认不会污染用户的 PATH 环境变量(除非软件包有修改环境变量的定义),而是使用垫片(shims)来进行统一管理调用执行文件。

\n
\"嗯,Bucket\"
嗯,Bucket
\n

当你通过 scoop search 搜不到需要的软件包的时候,这时候便是你开始进阶使用 Scoop 的时候了。Scoop 管存放软件包描述文件的地方叫做桶(Bucket),桶里面就是一个个 json 格式的软件包描述文件,Scoop 的默认桶的名字就叫 bucket。当找不到需要的软件的时候,最直接的自然是可以向仓库提交你想要的软件包的描述文件,比如像这些这样:scoop/pull/2151、\nscoop/pull/2143、\nscoop/pull/2002

\n

不过在你进一步使用 Scoop 时,除了会遇到找不到软件包而可能会频繁提交描述文件之外,你还可能会对已有的某些软件包,有一些自己的“差异需求”,比如“不想某软件包设置某个环境变量”、或者“修改某个软件包的安装行为”。这时候,一个更好的办法:自定义桶

\n

桶其实就像 Homebrew 的 Tap,关于桶的详细概念可以查看一下 Scoop 的 Wiki 页[7]。通过自定义桶就可以将自己的“使用习惯”收纳起来,而不用频繁向 Scoop 的 main bucket\n提交请求(Scoop 维护者一般也不能马上处理你的请求)。我维护着自己的桶,所以自己的软件包需求随时可以进行自定义:

\n
\n

https://github.com/h404bi/dorado

\n
\n

比如 Scoop 的 main bucket 中的 nvm-windows 使用时会有 UAC 提权,我自己编译了一份没有 UAC 弹窗的 nvm-windows,放到了自己的桶里面。另外要说一下的是,Scoop 的自定义桶不一定要求存放到 GitHub 的公开仓库上的,所以完全可以在本地创建一个 git 仓库,做成一个不公开的私有桶,用于存放一些不宜公开的软件包。

\n
\"Add
Add a scoop bucket
\n

Scoop 还自带一个切换软件包版本的功能,可以让你在不同的软件包版本中进行自由切换。这个我想在上文的视频中你已经有看到了。这在你同时需要几个版本的软件包时会比较有用,比如 Python2 和 Python3(虽然 Python2 即将退役)。

\n
$ scoop install python27 python\n$ python --version        # -> Python 3.6.x\n\n$ scoop reset python27\n$ python --version        # -> Python 2.7.x\n\n$ scoop reset python\n$ python --version        # -> Python 3.6.x

我看到网络上有不少使用 Chocolatey 的人吐槽其下载安装软件包的时候奇慢,有的甚至因此而放弃继续使用 Chocolatey。通过 Scoop 本地自定义桶的话,拉取软件包描述文件的时候可以说是毫秒级的。然后还可以在描述文件里,自行修改软件包的下载链接,比如改成适合自己的 CDN 下载或者是私有软件源等。这样安装软件时会特别快速。这一切都得益于 Scoop 比 Chocolatey 更利落的软件包描述文件设计以及桶设计,用户自定义软件包所需的学习成本更低。

\n

但 Scoop 还有问题

\n

Scoop 是一个从个人项目开始,发展到现在由社区维护的开源项目。Scoop 不像 Chocolatey\n那样已经成立公司,并推出商业版,它仍然是一个“个人”项目,只是目前靠着社区在维护。所以它的活跃度与维护情况肯定是不如 Chocolatey 的,一些缺点还是有的。这里我只说一下几点我认为的 Scoop 应该要在后续发展中优先考虑处理的问题。

\n

没有稳定版

\n

目前的 Scoop 本身的核心功能是“滚动更新”的,它没有版本号的概念,不像 Chocolatey[8] 和 Homebrew[9] 那样有 Releases,所以也就没有所谓稳定版本。只要 Scoop 的 GitHub 仓库有新的 commits,用户通过 scoop update 命令就会拉取所有的 commits 更新。

\n
\"图来源于网络\"
图来源于网络
\n

如此的滚动更新,对于一个社区维护的开源软件来说,会很容易产生问题。没有 tags,没有 releases,如果维护者或者贡献者在 commit 时不小心手抖加入或者修改了一些代码,造成了 BUG,并且 commit 的人还并不知情。这个 BUG 将很快地传到最终用户那里,因为用户更新时是立刻拉取最新 commit 的。这时遇到问题的用户,需要到 GitHub 上开 issue 反馈,或者开 Pull-Request。但有权限处理合并的协作者也就那么几位(创始人 Luke 不怎么活跃了[10],除了目前的 commit 数最多那位主要维护者外,其他几位协作者也是最近才加的),按以往的情况来看多数得半天以上时间才完成修复。

\n
    \n
  1. 更新历史新功能导致 BUG 大概半天之后修复
  2. \n
  3. 重构核心函数导致 BUG 大概半天之后修复
  4. \n
  5. 重构核心函数导致 BUG 数天尚未完成修复
  6. \n
\n

Scoop 目前的设计是很直接的,核心功能组件跟 main bucket 揉在一起,一更新 bucket\n核心文件跟着更新。如果我没记错的话,早期的 Homebrew 也是这样的设计,而 Scoop\n又是借鉴了 Homebrew 的设计。如今的 Homebrew 已经拆分为 brew 和 homebrew-core 两部分,前者是 brew 的核心功能代码,后者是默认的软件包仓库。brew 核心会打 release 包,用户在更新时会检查 brew 有没有新版本,如果没有则不会更新 brew 本身,只更新软件包仓库。

\n
$ brew -v\nHomebrew 1.6.3\nHomebrew/homebrew-core (git revision bdb1ff; last commit 2018-05-03)

我觉得 brew 这个新设计 Scoop 是需要跟进的。将 main bucket 从 Scoop 主仓库中分离出来,\nScoop 本身的仓库维护其核心功能代码,并打上 tags,发布 release 包,给 Scoop 一个版本号,定期更新稳定可用的版本。所有用户安装 Scoop 时,默认使用最新的稳定版,并克隆 main bucket 的最新 commit。而 Scoop 主仓库继续向前推进开发,开发者及少数激进的用户可以通过修改 channel 设置使用 nightly/insider 版本的 Scoop。这样即时新功能出 BUG 了,也不会马上传播到所有的 Scoop 用户,因为大部分用户用着稳定版。

\n

仍需优化的核心功能

\n

在我使用的这近三年里,除了一次默认安装路径的变动之外[11],在使用上其实并没有感受到 Scoop 有什么巨大的改动。它并没有什么 Breaking Changes,一直是平平淡淡稳定前进,加加子命令完善体验之类的,虽然 Scoop 似乎是被越来越多人发现,当然越来越多人用意味着会有越来越多的新需求和新问题(所以我才觉得得有稳定版本)。

\n
\"Scoop
Scoop 的 GitHub Stars 指数
\n

不过没有大改动的同时,Scoop 的一些存在设计不足的核心功能,也照样是稳稳定定没有优化。这里我就说几个在使用 Scoop 时一定会遇到的情况:

\n

第一个。scoop install 安装软件包的命令。当你使用的自定义 bucket 当中有跟主 bucket 有相同名字的软件包描述文件的时候,直接执行 scoop install \n默认会选择主 bucket 中的描述文件进行安装。你不得不卸载软件包并重新执行\nscoop install / 进行安装。对于有自定义桶的用户来说,估计会经常遇到,因为一时疏忽就忘了 bucket 名字直接敲软件名字安装了。关于这个点,最近才有人开了个新 issue 讨论这个问题[12]

\n

第二个。scoop uninstall 卸载软件包的命令。当你卸载一个软件包,而恰好这个软件正在运行的时候。目前的卸载指令会让这个软件包处于一个\n“没卸载干净”的状态[13]。只要执行卸载,便会马上清理相关的 shims,shortcuts,然后删到一些不能删的文件了,就会提示文件正在使用不能清理。更好的设计应该是先检查文件是否有占用,是否有服务在运行。没有才开始清理 shims 等。这样软件包可以要么是完全卸载干净了、要么还是正常的安装状态。

\n

第三个。scoop cleanup 清理旧版本软件包的命令。这个命令有跟上面的卸载命令有类似的问题。用 Scoop 更新了软件后,当前运行着的其实还是旧版本的软件,然后清理会把旧版本的清理掉,这时会跟卸载命令一样,删到一些不能删的文件了,才会提示文件正在使用不能清理,让旧版本软件变成一个“没卸载干净又不再可用”的状态。

\n

第四个。scoop update 更新软件包的命令。Scoop 的更新命令的逻辑是这样的,当执行更新一个软件包时,它会先卸载旧的版本(清理 shims、shortcuts 等),给新版本预创建目录,然后下载新版本并检查安装包的哈希值。当哈希值正确时,才进行安装。那如果下载软件包过程中断线了呢?或者哈希值不对呢?于是问题来了,恰恰是这样的逻辑,会导致一个大概会是你用 Scoop 时最经常遇到的问题——软件实际上没更新成功,但 Scoop 却给你显示软件已经是最新的版本,并且旧版本无法使用[14][15]。你不得不执行 uninstall 命令并重新安装软件,或者 reset 命令重置软件。这个问题我相信只要是 Scoop 用户,都会经历过。

\n

回头看一下你会发现,我所讲的这几点基本上覆盖了 Scoop 最常用的几个命令:安装、卸载、更新、清理,这几个都是 Scoop 最最核心的功能。自我开始用 Scoop 到现在,这几个毛病就一直存在着。所以我才说,Scoop 的一些核心功能仍然存在不足需要改进。到目前还没有优化,也许是没有很好的解决方案吧。

\n

结语

\n

回看全文下来,我觉得文章算了符合了我原本想写成的,以我的角度更新对 Scoop\n的介绍与体会的形式。对比、优点、缺点都稍微讲到了,应该不会有强烈的安利感觉。我看到访问记录有人从搜索引擎搜 Chocolatey 和 Scoop 的对比,找到了我原来那篇文章。想必也是想做个选择。其实如果你是偏重度的用户,想尽量多的软件可以用命令行管理,又不在乎我前文说的 Chocolatey 的软件包描述文件相对复杂等缺点的话,其实可以去试试使用 Chocolatey。而如果你没那么强烈的需求,只是像我一样有一点点\n“绿色软件洁癖”,同时想用命令行管理部分软件包,并且以此构建一个相对轻量的命令行环境的话,不妨可以尝试一下 PowerShell + Scoop + Cmder 这套组合。或者,Chocolatey 和 Scoop 二者一起用也是可以的。

\n
\n
\n
    \n
  1. https://chocolatey.org/install#more-install-options ↩︎

    \n
  2. \n
  3. https://github.com/lukesampson/scoop/issues/2 ↩︎

    \n
  4. \n
  5. https://github.com/Homebrew/brew/blob/master/docs/Bottles.md ↩︎

    \n
  6. \n
  7. https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell?view=powershell-6#upgrading-existing-windows-powershell ↩︎

    \n
  8. \n
  9. https://github.com/lukesampson/scoop/issues/2227 ↩︎

    \n
  10. \n
  11. https://github.com/lukesampson/scoop/pull/2165 ↩︎

    \n
  12. \n
  13. https://github.com/lukesampson/scoop/wiki/Buckets ↩︎

    \n
  14. \n
  15. https://github.com/chocolatey/choco/blob/master/CHANGELOG.md ↩︎

    \n
  16. \n
  17. https://github.com/Homebrew/brew/releases ↩︎

    \n
  18. \n
  19. https://github.com/lukesampson/scoop/graphs/contributors ↩︎

    \n
  20. \n
  21. https://github.com/lukesampson/scoop/blob/master/lib/core.ps1#L1 ↩︎

    \n
  22. \n
  23. https://github.com/lukesampson/scoop/issues/2121 ↩︎

    \n
  24. \n
  25. https://github.com/lukesampson/scoop/issues/488 ↩︎

    \n
  26. \n
  27. https://github.com/lukesampson/scoop/issues/2220 ↩︎

    \n
  28. \n
  29. https://github.com/lukesampson/scoop/issues/2245 ↩︎

    \n
  30. \n
\n
\n", "url": "https://www.h404bi.com/blog/2018/05/talk-about-scoop-the-package-manager-for-windows-again", "title": "再谈谈 Scoop 这个 Windows 下的软件包管理器", "summary": "与 Chocolatey Windows 包管理工具(Package Manager)相比, Scoop 是一款更为轻量的 Windows 包管理器。本文将对比 Chocolatey Scoop 这两款工具的区别,介绍一下 Scoop 安装使用体验,如果你没有重度的包管理需求, 不妨可以尝试一下 Scoop PowerShell Concfg 这套组合。", "date_modified": "2018-11-02T16:46:50.000Z", "date_published": "2018-05-12T13:44:39.000Z" }, { "id": "/blog/2018/03/office-2016-custom-installation-guide", "content_html": "
\"Microsoft
Microsoft Office
\n

作为宇宙第一 IDE Visual Studio 的兄弟,宇宙第一办公套件 Office 在 Windows\n系统下更加常见。新安装的系统,即使刚开始不愿安装,等到要查看编辑 docx pptx\n文档时,还是会乖乖就擒。只是没想到,Office 2016 这个 2.41GB 的安装镜像,居然是一个 Click-to-Run。

\n
\n

FILE cn_office_professional_plus_2016_x86_x64_dvd_6969182.iso
\nSHA1 277926A41B472EE38CA0B36ED8F2696356DCC98F
\nSIZE 2.41GB

\n
\n

点一下,就全自动帮你把 Office 全家桶完整安装上了,不需要你做任何的下一步设置,也不给你做任何的安装设置。

\n
\n

对于日常只使用 Word、Excel、Powerpoint,最多再加一个 Outlook 的人来讲,全家桶的 Access、Onedrive for Business、Publisher、Skype 等必然是多余的,装上了基本不会用到。如果你想干掉这些没用处的部分应用,又或者像我一样,此前已经知道过 Click-to-Run 的厉害,但新装系统后手抖直接点下了镜像的\nsetup.exe 的话,那就来与我一起“卸了又装”。

\n

卸载已安装的 Office

\n

Office 官方文档库里,选择第 2 种方法:

\n
\n

Option 2 - Completely uninstall Office 2016 with the easy fix tool

\n
\n

下载 easy fix tool: o15-ctrremove.diagcab,双击执行一路到底后重启计算机。

\n
\n

重新自定义安装 Office

\n

第一步: 解压安装镜像。因为待会要替换文件,直接挂载 iso 的话无法进行替换。

\n
\"安装镜像解压后\"
安装镜像解压后
\n

第二步: 下载 Office 2016 Deployment Tool。执行后会解压出两个文件,一个是 configuration.xml,另一个是 setup.exe。将两个文件覆盖到刚刚解压的镜像文件夹内(也可以改名备份原来的 setup.exe)。

\n
\n

第三步: 修改 Deployment Tool 配置。编辑 configuration.xml 文件,设定安装版本,更新频道,排除不想安装的应用。以下是我的配置文件,安装 64 位专业中文版(对应 cn_office_professional_plus),仅保留了 Word、\nExcel、Powerpoint 以及 Outlook,其它全部排除。如果想把 Outlook 也排除的话,可以在此配置基础上再加上 即可。具体配置说明可以看配置文件里面的注释。

\n\n
\n

第四步: 载入配置文件进行自定义安装。在镜像解压目录下,按住\nShift + 鼠标右键,在当前目录打开命令行。键入\n./setup.exe /configure configuration.xml 并执行。

\n
\n

UAC 弹窗确认后开始自动安装。不过这次可以很明显的看到不再是全家桶都给你安装上了。

\n
\n

结尾小 Tips

\n
    \n
  1. Outlook 添加两步验证的帐号时,要使用 App Password 而不是帐号主密码。
  2. \n
  3. Outlook 默认下很奇怪的是,启动后你点最小化,它实际上并不会最小化到托盘,在任务栏上还是会有 Outlook 的图标。而如果你选择点关闭,则整个 Outlook 都会关掉。通常比较多的可能是误点关了 Outlook,而退出后的 Outlook 是不接收邮件的。这时可以使用一个小插件实现 Outlook 点关闭时最小化到托盘,解决这个问题。
  4. \n
\n

完整的 gist 归档:gist.github.com/h404bi/62f65347d5784b37c8535aa371c59720

\n\n", "url": "https://www.h404bi.com/blog/2018/03/office-2016-custom-installation-guide", "title": "Microsoft Office 2016 自定义安装", "summary": "本文将简要说明一下 Office 2016 自定义安装的方法,以及提供 Outlook 关闭时不退出, Outlook 关闭时最小化到托盘的小技巧,适合想 Office 只安装 Word、Excel 的同学。", "date_modified": "2018-03-25T05:00:00.000Z", "date_published": "2018-03-23T19:33:27.000Z" }, { "id": "/blog/2018/01/the-tao-of-notch-beyond-twitter", "content_html": "

译者序

\n

自 Notch 出售了 Minecraft,出售了 Mojang 公司后,他在 Minecraft 方面的消息也随着 Minecraft 逐年下降的热度而减少。因此也有人跟我说,微软收购 Minecraft 的那一刻是 Minecraft 的巅峰,Notch 退出得很及时。卖掉 Minecraft 之后的 Notch 经历了怎样的一段过渡期;为何在《Minecraft: The Story of Mojang》纪录片[1]中还是在 Minecon 与粉丝见面时给人的感觉都是平易近人的他,在推特上却常常出言惊人;Notch 是否还有在做些什么游戏;以及他平时有喜欢玩什么游戏。也许你也会与我一样有一些这样的疑惑。

\n

本文是人物访谈《The Tao of Notch - Beyond Twitter》的译文版本,原文作者 Brad Glasgow,于 2016 年 8 月 4 日发布在 The Escapist 网站上。[2]本人对此进行了翻译,断断续续耗时近 5 个月,文中涉及大量需要翻查各类资料后才能理解的游戏相关或非游戏相关的内容,比如詹代法则、游戏门事件与女权主义、瑞典文化、楚门的世界、以及各种美国俚语、游戏梗等等。译者翻译能力有限,如果你在阅读期间遇到难以理解的部分,可以参考英语原文进行对照阅读。同时如果你有更好的理解与翻译或者有纠错,非常欢迎(在 GitHub 仓库中)向本译文提交你的意见,感谢。鉴于翻译随时可能有改动,为保持内容一致性,本文未经本人允许不得转载。

\n

全文总计 35000+ 字符,15000+ 汉字,图片 20+ 张。建议阅读时间至少 30 分钟。

\n

正文

\n

公众最近已较少听到著名游戏 Minecraft 的创造者“马库斯·佩尔松”相关的消息。在出售了 Mojang 与购买 7000 万美元贝弗利山庄巨型豪宅之后,他曾接受过一些采访,但自那以后他一直都很沉默…… 除了在推特上。

\n

推特上的马库斯·佩尔松一直是多个论战的中心,不仅引起过一大批与他意见不一的人的愤怒,也造成过在游戏媒体中出现过多篇因为他的观点而抨击他的社论。每当他在推特上发表一个观点,一个新的社论似乎就诞生了。这些愤怒被整整齐齐地装进了网络文化大战的弹药当中。

\n
\n

但在所有的这些社论之中,任何的澄清,甚至一次与马库斯·佩尔松本人对话的尝试,你都很少能看到。而这就是为什么我清楚我得去采访他。如果说每次当他发布一个 140 字的重磅炸弹,一页又一页的网页就会产生的话,我想有个机会能与在这些争议推文背后那位真实的马库斯·佩尔松,来一次谈话,只为了解其中的背景。

\n

说服他接受我的采访并不容易。马库斯·佩尔松的观点引起过大量的社论,他对记者如人所料地持着谨慎与怀疑的态度。然而,在我们开始交谈后,我发现他很友善、坦率,甚至有些潇洒。他会很认真地听,很爽快地笑。我们在 Skype 上聊了将近 90 分钟,在结束时,我感觉这不像是在采访一位自以为是的亿万富翁,而更像是一场极客之间有趣迷人的谈话。

\n

这次采访使我想起了良好谈话的价值,这是广泛使用的社交媒体永远无法复制的。

\n
\n

The Escapist 游戏媒体(下称媒体):你想念 Minecraft 吗?

\n

马库斯·佩尔松(下称佩尔松): 完全没有。在我出售公司前的一段时间,我就已经停止了在 Minecraft 上的工作,到我决定出售公司大概有半年了吧,所以当时看起来我不像是在工作的样子。我觉得我已经把火炬传给了延斯·伯根斯坦(Jens Bergensten)[3]。当我要卖掉公司的时候,我担心着我要如何进入我下一阶段的生活之类的事情。但在签完字之后,我就立即感觉到了解脱。我从来没打算过成为一名企业家,我只是想写代码,不想建立一个企业。不过我对此并没有感到不满。只在极少的时候,我会打开游戏看看,“哇哦,这些是我们创造的?”(笑)

\n
\"Notch(左)与
Notch(左)与 Jeb_(右)
\n

媒体:所以你还有玩吗?

\n

佩尔松: 很少很少。每隔一段时间当它从某个游戏列表中蹦出来时我会点开它,只是看看它现在变成啥样了。

\n

媒体:自出售公司后,你已经坦言过关于突然富裕的经历。十年前你可能是中产阶级,而现在你是出名的有钱人了。

\n

佩尔松: 在我父母离婚后,剩下一位当护士的单亲妈妈与她的两个孩子。那会儿有几个月,我记得至少一个月,她不能确定我们能否在整个月内都买得起食物。后面她让我知道了这事,但在这之前她会把事藏着并装作喜欢煮那糟糕的芬兰食物。“啊我们太穷了”,这不是说说而已,是已经成了一个家庭问题。

\n

媒体:你在推特上说过感到孤独,你说很难搞清楚谁是你的朋友谁又只是想打你的钱主意的人。你说过你如何如何喜欢拉斯维加斯,因为你知道在那里的每个人都盯着你的钱。

\n

佩尔松: 这好像是一年前的事了?

\n

媒体:是的。

\n

佩尔松: 在那之后我基本上已经完全摆脱了那个状态了。我清楚,我真的是一个性格内向的人。我感觉我以前就有过这个问题,这一直也是我一生的问题。所以我不一定需要有很多的朋友。而当你卖掉了你的公司,得到了很多钱,其实没有比继续学习、结识朋友以及探索真实世界更有趣的事了,只是这真的是一个很巨大的变化。我放弃了全部的东西,成了一个古怪的瑞典人,于是很容易变得不再想社交。

\n

媒体:这似乎给你塑造了一个网络形象,人们认为你是一个孤独沮丧、无所事事的有钱人。

\n

佩尔松: 是吧,我就是那样,那是我的文化观念。

\n

媒体:这是你的真实写照?

\n

佩尔松: 我的意思是,我花了很多时间去独处,我感觉那样我才过得最高效与快乐,这不该当作我很孤独。比如我单独编了几个月的程,当然我会打算出去走走看看朋友。我会花一些时间进行学习与编程,比如玩玩 WebGL,然后用大概一个月的时间去参加很多社交活动,比如聚会,来回做这些事。我喜欢聚会聚餐。我正在尝试做一件不可能的事:学习如何欣赏红酒。我喜欢红酒,但我总是记不住它们,比如那些老法国城堡酒庄的名字。

\n
\"拉菲·罗斯柴尔德酒庄\"
拉菲·罗斯柴尔德酒庄
\n

媒体:那现在你能说出便宜的红酒与昂贵的红酒之间的区别吗?

\n

佩尔松: 我会假装知道!如果你在做事时充满自信那你就可以做任何事,这是让你像是知道自己在做什么的方法。只要你愿意,你就能像已经做过一百次那样将冰块放入你的咖啡里。我不知道有多少人喝红酒时只是做个样子,亦或者他们真的可以欣赏出那些细微的差别。

\n

媒体:嗯,我最近阅读时看到说专家们不知道白酒其实是用红色食物色素染色做成的。(注:Snpoes[4] 证实了那是假的。)

\n

佩尔松: (笑)。我往往会去拆解与过度分析许多事情。但我会试着不去做太深的拆解,我感觉经历得差不多了,那可能就差不多了。我正在开始去尝试黑麦威士忌,因为我从未有喜欢过一种威士忌。我会说出各种各样的话,比如“啊这回味有点涩”或什么的,不过我不确认我是因为我享受它而说出来的,还是实际上感受到而说出来的。

\n

媒体:我们谈谈瑞典吧。在颂扬炫耀财富的贝弗利山庄中生活必然会有点不和谐,在瑞典可是非常注重谦虚的。

\n

佩尔松: 是的,也就是詹代法则[5]。我觉得詹代法则已经变得更完善了,我们非常自豪在瑞典能有这样一个东西,所以我们谈论它谈得挺多的。它绝对是社会的一部分。如果有一位厨师来我(瑞典)的公寓里为我做饭,对我而言真的很奇怪。我不会想这样做的。但在贝弗利山庄如果你没有厨师,那么从另一个角度来看就显得奇怪。这就像那些关于我进行编程和进行社交的评论。

\n
\"Markus
Markus Persson
\n

当我在瑞典时,我只想搞我的编程。当我在编程时,我不想让任何人来这里做饭,因为我需要、喜欢我的编码空间。当我在美国进行着旅游签证时,我不会做任何工作上的事情。因为我必须去真正地进行度假,参加社交活动,这样对我才有好处。显然(贝弗利山庄)那所房子只是具备某种不寻常的纪念意义的房子。人们去往洛杉矶,为的是想遇见其他人,其他因相同目的前往洛杉矶的人。这有点像是探索者与想遇见探索者的人的汇聚点。

\n

在洛杉矶做事也相对容易些。在瑞典,大多数人在整个星期内都进行朝九晚五的正常工作,然后在周末才可能做其它事情。所以在瑞典如果你有社交的心思的话,这会让你很懊恼的,因为每天真的没什么事情做。但是在洛杉矶,像我认识的在音乐界的人,他们的时间基本上是相反的,他们在周末会很忙。

\n

媒体:你觉得你在瑞典的时候和在贝弗利山庄的时候有不同吗?在瑞典时会寻常些?

\n

佩尔松: 是的,早期确实这样。那个时候可能正是我在推特上抱怨变化太龃龉的时候。知道了自己的归宿,知道了谁与你站同一边,这些都很不寻常。那会儿大概是我刚刚开始过渡期吧。现在我感觉在两个地方都挺正常的,这就像我的不同方面。我很幸运,在我生活的大部分时间里,我已经有了内向阶段和外向阶段的一个循环。经过一些调整之后,现在也就那样了。

\n

媒体:作为一个美国人,我看到詹代法则里说“不要以为你很特别。”会觉得很奇怪,因为每个美国人都会觉得我们很特别。你来美国之后,也会有这种感觉吗?

\n

佩尔松: 有一点。但詹代法则这话绝对是有道理的。我就是这样的人,在清洁工人正在过来时,我会预先做些清理;在厨师过来时,如果我知道我很高几率会在最后一刻决定要与某个人吃饭,那么我会预先提醒他们,这样最后我外出吃饭了也不至于让他们失望。但是这并不是因为我觉得不适应之类的,而是瑞典传统中有趣的部分。算是一种有趣的小文化吧。

\n

媒体:你觉得你推特上的争论是文化差异的结果吗?

\n

佩尔松: (引起)推特上大多数争论的原因在于我真的搞不懂人们是否想过他们正在干些什么。我觉得大多数人其实都想达到相同的目标,只是有些人选择了一些显然不是很有效的方式。你想试着在推特上(与他人)进行微妙的对话几乎是不可能的。所以我便想着开始有意识地变得直言不讳。我看过一部名为《This Is Phil Fish[6]》的纪录片,它真的帮助我内化接受了我的自我与公众眼中的我之间的区别。我意识到这一点之后,便不再打算开任何公司、售卖任何游戏——我意思是我可能在未来的某个时候在卖游戏,但这不再会是我的主要驱动力。我想通了,我真的不在乎别人怎么看我。不管网上的人怎么说,我知道我自己是谁,我的朋友知道我是什么样的人。所以我才将推特作为一个强大的临时演讲台。

\n
\"FEZ:
FEZ: Phil Fish 的成名作
\n

媒体:现在的你已经相当富裕了,在卖掉 Minecraft 之后,你有感觉到一定的自由了吗?我就不能在推特上畅所欲言,因为我会担心出版社怎么想,但似乎你拥有这些他人没有的自由。

\n

佩尔松: 某种程度上吧。更多的是有时候我会跟一些私下找我的人交流,比如一些职业人士,他们会说“谢谢你能把这些讲出来,但我们不能(公开)支持你”。也有少部分私下联系我的人会说“嘿,虽然我还是你的朋友,但是你看起来像个白痴”。不过私下联系我的人中绝大多数都是认同我的。所以我才觉得,这也许不是我的责任,而是一个机会,去表明实际上是有可能在推特上发表意见而不用作出牺牲的。

\n

媒体:但有些人觉得你就有这个责任,他们批判你在推特上反应过度。说某个只有几百粉丝的人推上说了你一句混蛋,你给那个人回了句婊子(cunt)……

\n

佩尔松: 要说一下,我之前并不知道这个词原来这么刺耳!我经常在 Twitch 上看的一位澳洲朋友就经常说 cunt 这个词。感觉像是一个 cunt 抵过了八个 fuck 什么的。我会更少地用这个词吧,但是我依然坚持我说过的话。

\n

媒体:这是你在美国能说的最糟糕的一个词了。

\n

佩尔松: 文字本身并不是魔咒,因为沟通是围绕着你知道或相信你的听众会以相应的意思倾听你而进行的。如果你说出“cunt”这个词时已经知道这个词很无礼,那么当你说出口时你的意思就是为了冒犯他人。这就是文字给你的反馈循环,而且会愈发极化。我不常在推特上骂人。我不避讳骂人,至少我以前在现实生活中就做过挺多的,不过最好还是少点使用。“cunt”这个词确实是太强烈了。不管怎样,反应是过度了……

\n

媒体:你在推特上拥有 380 多万粉丝,这个数字有带给你一种别人没有的责任感吗?

\n

佩尔松: 并没有。对此我的回答是不要去得罪比你来头大的人。这是让我保持中立的方法策略之一——这里不仅指我。我感觉像“啊,你不能向我发起你的粉丝攻势,我只有 200 个粉丝,而你有 700 万”这样的指责,已经成了过去几年来的一种趋势。所以这是一个只能单向进行的对话么?其实如果只是给我一个私信,我会尽量不跟他们较劲,除非是我真的很生气亦或是被嘲讽了。但如果是公开地说我事并且已经将事情传开了,那毫无疑问我会同样公开地去回应。我感觉有时候他们是故意诱导我的,然后他们就可以抱怨我如何把我的粉丝攻势压到他们身上。

\n

媒体:我们聊聊你推特上一些具体的争论吧。我想从“直男癌(mansplaining)”争论开始。你说这是一个带性别歧视的词。我相信有两大篇(社论)文章是因为这事而写的。

\n

佩尔松: (笑)

\n
\n

媒体:你认同直男癌这一回事吗?你是否认同男性会过分解释事情或利用太多权威去解释事情?

\n

佩尔松: 是的,而且我肯定见过这类事。我的观点是鱼与熊掌不可兼得。我们必须互相平等,要把每个人都视为个体对待。你不能随便就以“男性在谋杀案中的代表性过高”来认为每一个男性都是凶手。我们说的是谋杀(murder)而不是男性谋杀(man-killing)。自以为是(condescending)已经是一个很好的词,然后你又搞一个直男癌出来,本质上就是性别歧视。不过对于男性来说,这个性别歧视似乎没什么大不了,难道是因为我们掌握着权力等东西?

\n

媒体:你还提过“ovary-acting”这个词。(译注:词发音通 over-acting,即反应过度,ovary 意子宫;该词特指女性反应过度。)

\n

佩尔松: 那个应该是其他人提的,我提过的是“cunt-fusing”。(译注:词发音通 confusing,即混淆,cunt 意婊;该词特指女性混淆事情,与直男癌有类似效果。)

\n

媒体:噢?是吗?

\n

佩尔松: 是的,那时我还不知道 cunt 这个词这么糟糕,这个双关语不太好。ovary-explaining 会是更好的词,我当时应该用这个的。(译注:词发音通 over-explaining,即过分解释,ovary 意子宫;该词比起 cunt-fusing 更加能与 mansplaining 有类似的声形意效果。)

\n

媒体:Destructoid[7] 网站还因为这个写了一篇只能说是有抹黑之意的文章吧,宣称你“受到了女性的压迫”。

\n

佩尔松: 我并没有觉得受到了女性的压迫。

\n

媒体:(Destructoid)他们有尝试过联系你吗?

\n

佩尔松: 没有任何人联系过我。这是一个有争议的问题,我大概也没必要跟他们对话,不过我记得的确是没有任何人联系过我。还有一点就是,我真的不太想那些想采访我的人联系我。

\n

媒体:那你有读过那篇文章吗?

\n

佩尔松: 我读了开头的部分,后面的简单扫了一遍。我通常不会看关于我的文章,即使是说好的方面的,因为看这些会让我不停地自我怀疑。我觉得在阅读时得克制住自己,这样才能看出他们在用什么奇怪的角度来评论,然后我才能予以回应。在某种意义上这样也算是一种自我释怀吧。我明白发生了这种事情实际上并没有什么改变。

\n

媒体:没有改变是指什么方面?

\n

佩尔松: 我实际的日常生活。我依旧可以和我的朋友玩玩棋类游戏,可以不去上网就只玩棋类游戏。在这些事发生之前,我会想“上帝保佑,希望不要出现诋毁之事”什么的。而在发生后,我觉得“哦,还好吧”。而且在推特上关注我的大多数人似乎是站我这边的。

\n

媒体:我们谈谈关于审查的争论吧。你谈过关于自我审查的事。在 Reddit 上你参与过关于有玩家希望任天堂将林克设定改为女性的讨论。那些要求林克设定为女性的玩家是何以(自我)审查的?

\n
\"《塞尔达传说》主角林克\"
《塞尔达传说》主角林克
\n

佩尔松: 你的用词表达是正确的。你刚刚说“要求”设定为女性,这也是对他们为自己的艺术表现作出牺牲的要求。(这事)教知人们社会上正在发生的问题,我觉得这是非常好的。即使他们(游戏角色)不是真实的,但如果你认真了,那就很重要。很久以前我就没再用“他(he)”来指代一个未知人物,我会说“他们(they)”。这对我来说很有意义,因为我清楚他们想要那样做(要求林克为女性)的原因。然而对于我而言,《塞尔达传说》并不是一个关于性别的游戏,所以翻转性别对我一个玩家来说真的没什么意义。我明白他们为什么想要这么个象征形象,但是要求别人代表你这样做就显得有些奇怪。我觉得将塞尔达和林克的身份对调会更加有意思,有一个女主角和一个被困在魔王加农的城堡里的男性角色之类的。身份的翻转使得在游戏里会有一些新的事物发生,这会变得非常有趣。

\n

媒体:所以总的来说如果玩家要求更多女主角,你觉得这是没问题的吧?

\n

佩尔松: 嗯,如果是关于这事的良好谈话或者是一些公论都是挺好的。只是问题在于这整个讨论就像被感染了一样,像《守望先锋》猎空的那事[8],其实原来的帖子并不像是要求些什么,并没有要求进行调整,只是说那个姿势对于猎空这个俏皮女生角色太过性感显得有些奇怪,开发商认同了这个不适而已。可是有玩家不想开发商调整猎空性感的姿势,然后舆论就爆炸了。实际上原帖说的并没有那么糟糕,只是被(怨气)感染了,导致很难有任何良好的交谈。他们把猎空的姿势换成了一个真正的 pin-up 姿势,我觉得这做的非常正确。他们传递了一个明确的信息:不是想让猎空显得性感,而是想更符合她的活泼感。他们赞同了原来的姿势显得标准与一般,并把它改成了一个调皮的 pin-up 姿势。他们做出了一个完美的解决方案,令人印象深刻。

\n
\"《守望先锋》猎空的新姿势对比
《守望先锋》猎空的新姿势对比 pin-up 女郎
\n

媒体:你在推特上谈过多元交织女权主义(intersectional feminism)[9]。你说那是一个“偏见的体系”,可以说一下原因吗?

\n

佩尔松: 有些人因为他们的身体特征而比其他人有更多的特权,继而认为每个拥有这些特征的人都比那些没有这些特征的人更具特权性的话,这样的观点就是最直接的偏见。并不是每个白人男性都会比黑人女性能赚更多的钱,虽然作为一个群体平均下来的话确实这样。但这样很容易脱离概念以及忽视社会趋势,变成真正的“直男癌”。我认同直男癌是有出现的,但你却因为我有观点想要说,就利用直男癌这个说事堵住我的嘴,即使我没有摆架子。然后你又提出这么一套为一些大相径庭的东西而建立的体系,这会很容易错用来攻击个体,而非群体。

\n

媒体:多元交织女权主义者阿妮塔·萨琪西恩(Anita Sarkeesian)在你家参加一个派对时拍了一张照片,你因此受到了一些批判,一些人说你“不要屈服于女权主义!”。你有看过她的《游戏情节与女性(Tropes vs. Women in Video Games)[10]》系列视频吗?

\n
\"《游戏情节与女性(Tropes
《游戏情节与女性(Tropes vs. Women in Video Games)》
\n

佩尔松: 我看了某一集的一部分。对我而言,我对游戏与媒体产生的文化影响并不感兴趣,我更喜欢(研究游戏)物理。我知道这是一场很不错的讨论,正如我说过的,这也是在谈论这类事情时我不用“他”来指代一个未知的人物的原因。我自己看了某一集的部分。这是一个很好的话题,但真的与我不大相干。我并没有直接邀请她(参加派对),是我的一个朋友带她来的。我跟她见了个面并交流了大概 30 秒,她很客气,我也很客气。我们从未谈过我们有着不同的政治观点的事实(可能吧,因为我没看过她的视频)。对我来说就像是与普通人见面一样。你也不会跟你的父母讨论政治问题是吧,人归人,她人很好。人们喜欢说“喂,她没有被邀请,她是偷偷进来的!”。想一下,有哪个朋友的朋友真的收过邀请呢。

\n

媒体:我们谈谈社会正义战士吧。(译注:SJW,全称 Social Justice Warrior[11],亦即键盘侠)

\n

佩尔松: (笑)

\n

媒体:不好意思,我不是想在这里找你麻烦的!

\n

佩尔松: 没事,还好啦。

\n

媒体:一部分人觉得“键盘侠”这个词只是特指某一个人。他们认为键盘侠是一个贬义词,他们只不过是一些想伸张社会正义的好人。你觉得你是一个键盘侠吗?

\n
\"Youtube
Youtube 视频:What is SJW? SJW meaning and definition explained
\n

佩尔松: 是的。当然我觉得这话有点稻草人谬误[12]。比起说某个个体是或不是键盘侠,我觉得它更像是一场更广泛的运动。每个人都可以转变成键盘侠,可能取决于一天中的时间、你的心情、跟你闲逛的是谁,或者是讨论的是什么话题。对我而言,我会用键盘侠这个词,因为它可以惹怒别人,它更多代表的是那些人的烦躁与愤怒。就像建立这种文化本身一样,我们得担心我们所说的任何东西都可能得罪别人,有时候会担心到一个非常荒谬的程度。我在 Reddit 上看过说键盘侠会宁愿把楼梯给去掉也不愿意在旁边加装一个舷梯,因为他们觉得在楼梯旁边加装舷梯会显得很唐突。记得我在推特上发过这个,我觉得这样不太实际吧。我认同每个人都应该被平等对待,至少有相同的机会。如果你最终成了一个混蛋,那你就该被对待混蛋一样对待。每个人都应该有一样的机会,我们应该尝试去包容,但也不能只是一昧地去迎合大众。我们不能在彼此意见不一致的情况下进行事实交谈。也是因为这个越发苛刻的环境,导致有一帮喜剧演员不喜欢到大学校园中开演。所以说我真的不太喜欢这种像自我审查般的文化运动。

\n

媒体:有很多人在推特上公开抨击你,他们很令人讨厌。

\n

佩尔松: 是诶。

\n

媒体:这些人,就是我们正在说的,典型的键盘侠吗?

\n

佩尔松: 不不,这完全是随机的。我认为原因在于“社会正义战士 vs. 游戏门提倡者”变成了一个非常势均力敌的问题。如果你有看过 CGP Grey 的《This Video Will Make You Angry[13]》视频的话,就明白这一观点的对抗深挖下去其实就是源于一个观点和立场罢。键盘侠与游戏门之间发生了太多事情,所以搞得每一个单独的问题都会很奇怪地以某种方式与其联系上。有时候我会以一种开玩笑的口吻发一个推文表达我喜欢某种类型的音乐,比如说挪威并不存在真正的音乐形式或者爵士并不是真正的音乐形式云云,然后就会影响了一些人过来抨击你。很多情况下这只是开玩笑,虽然有时不是。我倾向于认为人是本善的,而且我清楚,在我还年轻和无名时我就一直是这样,只是想表达一下意思。这就像枕头大战一样,并不是因为你真的想要去伤害别人,更多的只是想去玩吧。

\n
\"Youtube
Youtube 视频:This Video Will Make You Angry
\n

媒体:推特上的一些人指出你有跨性别恐惧症(transphobic)[14],我必须承认我并不清楚他们是如何得出这个结论的。

\n

佩尔松: 哈哈,这只是一个容易给人贴标签的词吧,我觉得他们并不是真的这么认为。

\n

媒体:我看了你的推特和采访,并不清楚这个断言是哪来的,但就像我说的,它就是摆在那儿。如果你去搜索的话,会看到有人说你是垃圾、反跨性别者。

\n

佩尔松: (笑)我不知道那是怎么出现的。可能是因为我在某件事的某个点上拒绝了做出选择,又或者是因为我对此做出了什么反应,于是就被扣上帽子了,不清楚。我真的不在乎人们怎么做,我没有跨性别恐惧症。我只是希望人们能够去表达自己,同时不必在乎别人怎么做。我不是鼓励人去改变自己的性别,如果有人说要去变性,那么祝安好!如果你对此有话想说,我洗耳恭听。至于其它,我不在乎。

\n

媒体:如果一个男人转性成了女人,那个人现在是女人吗?你会用什么代词称呼?

\n

佩尔松: 看他们想被怎么称呼。我觉得很荒谬的是,你的身体属性必须要限制你如何表达自己,尤其是在网络上。我的意思是从生物学角度来看人是以特定方式出生的,我们不应该忽略现实存在的事实。但性别标签更多的是表意说法,尤其是在网络上。所以即使某个人并没有转性,但是希望被称呼他或者她,又何妨呢?为什么会有人在乎这个?我才不在乎你有一个蓝色的头像呢。(译注:蓝色的头像指网站默认的男性头像)

\n

媒体:好吧,我们继续谈下游戏新闻业的话题。你明确表明过无论如何你绝对不会是游戏新闻业的粉丝。你称 Kotaku[15] 是“键盘侠的传声筒,试图死守道德虚伪与权力炫耀的沉船”。

\n

佩尔松: (笑)

\n
\n

媒体:电子游戏新闻有什么问题吗?你不喜欢它的什么?

\n

佩尔松: 我喜欢,也会去读。但它只是一种流行文化,并不是新闻业。然而他们总喜欢说“对,但我是一名记者!”,好像他们在生活中有一些明显的特权一样。但这不是新闻业,他们并不是记者。他们会说“可是我们不应该去谴责一个没有女性林克角色的游戏吗?”,对此我只能说“不”,因为这明显与新闻业核心基本原则相悖。如果你认为你自己是一名新闻记者,就应该尽可能做到客观,将其视为主要特征之一。但玩家并不喜欢阅读那些冰冷的、事实性的游戏新闻报道,所以就使得这更像是……怎么说呢,所有这些报道都成了主观的文章或社论。他们自称为新闻记者,却在讨论虚拟现实里的乳摇如何奇怪,讨论如何浪费 20 分钟重新载入游戏,又或者讨论他们小时候的奇闻轶事,以及讨论枪支利弊。我是瑞典人我不喜欢枪支,但在一个关于虚拟现实的视频里谈论枪支的利弊,并不是我想看到的。

\n

媒体:你刚刚谈到了新闻业的一般性与客观性。但也有一些记者和游戏记者说客观是不可能的,最好是坦言偏见。对此你有何想法?

\n

佩尔松: 我感觉对于娱乐而言一定会有客观的余地的。一定有客观的余地,只是那些游戏记者不愿意去尝试客观。读懂那些与你意见一致的人也好,看清那些与你意见不一致的人也罢,阅读(本身)是挺有趣的。要是声称客观性是不可能的话,那科学性呢?我们——我这辈子没搞过科学,不能说“我们”(笑)——科学家们就摆脱了整个观念尝试去使得所有事情变得可度量。当然,搞硬科学比起像心理学这些更模糊的学科要更容易些,但对没错,人会抱有偏见这个还是得承认的。不过我们不应该仅仅接受这个事实,而应该尝试去编制一些工具来克服偏见。否则就会变成像《This Video Will Make You Angry》视频里说的那样,为了大声表达观点却在相互大嚷大叫。

\n
\"Gamergate\"
Gamergate
\n

媒体:你提过游戏门[16]的事,对此你是有何看法的?

\n

佩尔松: 这事发生后,我不敢相信,觉得为所有涉事的人感到羞愧。(这其中)很多人做了很多错事,但我觉得还没夸张到造成这狗屎局面的程度。关于 IGF 的评委存有偏见等的谈论,就像是一场很久没有出现过的小型竞赛。那些参评的人本身就来自社群,他们有他们自己的个人喜好这是必然的。这甚至一点都不用意外。这就好比奥斯卡,如果说某人拍了一部关于一匹马的电影,当之无愧地获得了奥斯卡奖。你可以看得出可能是因为属于他的时刻到了,(获奖)并不仅仅是因为其最佳的实际表现,在幕后可能发生了什么事情。我未实际看过《荒野猎人》不太清楚,不过你可以看得出那是属于它的时刻。这并不是宣称它是有史以来最好的电影,只是因为要庆祝它。所以我想表达的是,没错,因为你喜欢你的朋友,所以你可能会偏袒他们。你偏袒他们,是因为你真的清楚他们创作所付出的努力,尤其是其中那些相当细微的事情。

\n

媒体:一些游戏新闻记者已经在推特上公开抨击你了,比如 Rock Paper Shotgun[17] 的人说你是“混蛋”。

\n

佩尔松: (笑)他们说的没错!

\n
\n

媒体:现在他们对你的态度与三年前有不同吗?

\n

佩尔松: 额…… 是吧?只是我觉得三年后今天的环境也已经改变了。

\n

媒体:怎么改变?

\n

佩尔松: 我觉得在那时他们实际上赚到了钱。如今所有游戏门相关的东西你都得去站边这事变得越发重要了,否则其他人就会问你“你支持哪一方?!”。只有很少人能够避而不谈,在这方面 The Escapist 做得很不错。你必须得站边,自然也就同时选择了你在“游戏新闻业”——这里有个很大的双引号,中的其他朋友。因为你就是在这样的文化中成长的,这是你的文化。而不是些什么邪恶的阴谋。

\n

媒体:所以你认为游戏新闻业在这场文化大战中已经占有一席之地了吗?

\n

佩尔松: 不,并不是全部吧。像 Rock Paper Shotgun 我以前挺喜欢的,现在……呃。还有 Polygon,感觉是不是他们已经不喜欢游戏了?

\n

媒体:我见你说过一下那个关于 Polygon 游玩 DOOM 的视频的事[18]

\n
\"DOOM\"
DOOM
\n

佩尔松: (笑)事实上,对于那个视频他们不是用“不好意思我今天不太高兴,好吧这太搞笑了”之类的解释拥抱玩家,却用“不,我们只是写游戏文章的人,不是游戏专家!”这么个荒诞的借口。我想说,体育评论员是不一定是世界上最好的运动员,但是如果你是评论足球的,你就得知道怎么踢足球。如果你是评测游戏的,当然你就得懂怎么玩游戏。

\n

媒体:你已经说过很多次在业内有许多人不能公开地支持你,只在私下对你表示支持。其原因在何?

\n

佩尔松: 因为他们不想卷入其中,不想惹来关注。也许是他们觉得我所做的对他们来说不太重要,他们不想他们的声誉被玷污,不愿意 VICE 上有写抹黑他们的文章。而我也清楚为什么会出现这些抹黑诋毁的文章,原因是他们(媒体)想确保(公开支持)这种行为会收到惩罚。然而幸运的是,我并不在乎。

\n

媒体:这就是我们刚刚谈过的自由吧。

\n

佩尔松: 我也认识到事实上这只是我的事情。我不是企业家,我只想待在家里了解(游戏)物理如何工作。

\n

媒体:这些人没有走上台支持你,你有觉得难过吗?

\n

佩尔松: 不,并没有。其原因我完全能理解,这也没什么。人们只是在网络上有政治观点而已,又不是真的快要饿死的情况。

\n

媒体:推特上的论战有令你在人际关系方面失去过什么吗?

\n
\"玩过以撒或者节奏地牢的玩家都熟悉的
玩过以撒或者节奏地牢的玩家都熟悉的 D 胖
\n

佩尔松: 我感觉有一部分人挺荒诞的,他们声称支持我但其实并不是,然后却反过来想我去支持他们。之前唯一一次我跟其他人说过这事是跟 Danny Baranowsky[19],他为《节奏地牢(Crypt of the Necrodancer)[20]》创作了非常棒的游戏音乐。我很喜欢他,虽然他并不认同我。我们在今年三藩市的 GDC[21] 上碰了面,他对我说了声“嘿,恭喜啊!”的话,因为我拿了个奖,是大使奖还是什么来着——啊我应该记住我拿了什么奖的(笑)(注:其实是先驱奖)。他知道我们在不同事情上有不同的观点,但不管怎么说,他还是祝贺了我。我知道他不认同我,但很高兴他祝贺我了,我尊重他。

\n

媒体:你在游戏行业的人脉呢?他们通常是怎样的么?对于你在推特上的论战他们能应付得来吗?

\n

佩尔松: 也许吧。

\n

媒体:他们中有人给你发过私信告诉你可能有些东西你不该说吗?

\n

佩尔松: 早些时候在我谈论一些事时有人联系我,最近没那么多了。我忘了那时我说了什么,他们联系了我跟我说“不,这个问题事实上比你想象的要严重的”,因为他们一直在接近那些人。感谢他们告诉我吧,虚心学习。我遇上太多屁事了,人们给我发威胁邮件什么的。这些似乎在女性那边更加糟糕。

\n

媒体:关于推特的论战就谈到这吧。在出售 Minecraft 之后,你在告别信中说“如果我偶然间再做了一些看起来有吸引力的东西,我会马上放弃它”。现在的你还是这样想的吗?

\n

佩尔松: 现在不一定了。我是害怕再对一款游戏担负起责任,因为一旦这样你会被诱使一直做下去,粉丝们的即时反馈是有点令人上瘾的,你会不想让粉丝们失望。现在想起来还挺有意思的。这也难免让我觉得我好像无意地陷进了一段感情中,如果让所有人失望了,压力会很大。

\n
\n

媒体:你说过这也是你出售 Minecraft 的原因之一。是粉丝们的意见与要求给你带来了负担?

\n

佩尔松: 不,根本不是这样的,我还是会想做出我能做的最好的游戏,亨利·福特不是说过一句话嘛,“每当我问顾客需要什么的时候,他们总是会说需要跑得更快的马”[22]

\n

媒体:嗯嗯。(注:看来历史上一直误认为是福特说过这句话。)

\n

佩尔松: 我感觉这情况对很多游戏开发者来说还挺常见的,不过不是以这么一个束缚的方式出现。没错你得去倾听玩家说他们想要什么,但是你才是做游戏的人。你了解游戏,可能玩过很多游戏,知道怎么去创新,更加清楚怎么发展它。所以不是说玩家要求游戏怎么怎么样,而是更多的是一份责任,去提炼出玩家真正想要什么,或者是他们对哪部分存有疑惑。我是想做出我能做的最好的游戏的,因为乐趣就在于做出一款伟大的游戏呀。

\n

媒体:我看过在推特上有个人跟你有一个对话,说你是第一个发布 Alpha 版游戏的人,掀起了一股趋势:人们开始发布一些未完成的、充满 BUG 的烂游戏。那个人说你对此有责任。Minecraft 似乎是第一个如此成功的游戏,你觉得你有责任吗?

\n

佩尔松: 不,我这么做是因为看到《表层指挥(Cortex Command)[23]》是这么做的,并且他们也是从其他地方学来的。我思考过为什么会有那么多独立游戏开发者破产倒闭。我开始也想过我将会怎么做,该如何做游戏,因为我从来没拿过一款(未完成的)游戏实际去收费。我希望能出售的是一个成品,能以之为荣。而在我见识到《表层指挥》如何获得社区的参与支持之后,我就想如果我早一点开始收费也许能成吧。事实证明这是可行的。如果我没有早点开始收费,我觉得我会完成不了 Minecraft。现在开发者们能有这么一条出路,我觉得是很好的。如果有吸引人的地方,人们还是会买单的,尽管有过一些失败的例子。我所知道最好的例子就是 FTL 了,《超越光速(Faster Than Light)[24]》。

\n
\"2001
2001 年开始开发,2012 年才登陆 STEAM 的《表层指挥》
\n

媒体:我见你说过这个游戏很多次了。

\n

佩尔松: 它是一款相当可爱的小棋盘游戏……

\n

媒体:这游戏伤我太深了!

\n

佩尔松: 哈哈,在 Twitch 上你会看到有人在玩无暂停的困难模式。这游戏的氛围和音乐做得真的是淋漓尽致,对发行商来说这些是很难(做到)的。

\n

媒体:FTL 里面所有的飞船你都解锁了吗?

\n
\"好评如潮的类
好评如潮的类 Rogue 式太空飞船模拟游戏 FTL
\n

佩尔松: 没呢。最早我是在 PC 上玩的,之后是用 iPad 玩的,感觉更赞。后来由于我的 iPad 丢了就换了一台 iPad,大概解锁了 4 个飞船吧。最近我没怎么玩了,现在买了新的 iPad 又得重新来过。

\n

媒体:好吧。接下来问一个最重要的问题:你目前正在做什么吗?

\n

佩尔松: 我正在做一些东西,但这个会尽量不让任何人知道。

\n

媒体:是新游戏?

\n

佩尔松: 哈哈,做游戏是我觉得最有趣的事了。玩家抱怨我用 Java 写的 Minecraft,这个新东西是用 JavaScript 写的,我在努力。(笑)

\n

媒体:这一定很有趣。

\n

佩尔松: 是一个关于要找到最长可能路径的荒谬性的东西。很有趣!

\n

媒体:前面我们谈到过关于你在出售公司之后对于后续生活的理解。这个你已经想透了吗?还是说正在这个过程中?

\n

佩尔松: 还没,不过我觉得我已经习惯了不用再去想通这事了。当你可以做任何你想做的事情时,你已经失去了一部分东西。人们往往享受扮演惯常的角色,因为已经习惯了知道自己该做什么。不过只要你愿意接受的话就挺好的,这只是 1% 的人会埋怨的事情。但你必须运用不同的技能来驱动你自己,这样你才不会一个星期穿着内衣坐着只是在打代码,令一切变得糟糕。你不能依靠闹钟响来驱使你早上去上班,需要去学习各种新的技能。去习惯不用知道自己要做什么。

\n

媒体:许多人好像非常关心你正在做什么事,是否还有生活目标。福布斯杂志有一篇文章说你“已经到头了”,认为你没有目标,没有项目。你觉得你需要定一个目标或项目吗?还是说你接受了这番话?

\n
\"1998
1998 上映的《楚门的世界》,金·凯瑞主演
\n

佩尔松: 我感觉这有点像《楚门的世界[25]》里面的结尾,当楚门最后穿过拍摄场地时,所有的事情变得完全不一样了。我是虚无主义者,并不认为这一切都是真实的。我觉得“真实”是一个捏造出来的词,因为它只是意味着我们有一个主观现实,我们是这个主观现实的组成部分。显然,所有事物都是这样的。但这并不意味着我们比其它任何数学概率显得要真实。我不认为任何事情的发生都是有目的性的。大概还可以说我是无神论者吧?我在尝试坚持“尽可能创造出更好的故事”的生活模式,因为当我离开人世后,剩下的只会是那些发生过的为人所知的事情。所以如果我有试图去创造一个有趣的故事的话,那我认为我已经尽力了。我不觉得有什么是我要做的。当没有了日常生活的框架去认知你该做什么的时候,你很容易会变成去放纵看完《绝命毒师》,而不是去做一些能创造更好故事的事情。所以,我是不是已经到头了我并不清楚。但我已经成功放弃了一家公司和它的员工,因为我意识到我从来就没有真正想过得到那些。只是因为 Minecraft 变得庞大了,我才必须去做这些事。至于编程?我一直都有在做。

\n

媒体:好吧,接下来我们进入限时抢答环节吧!

\n

佩尔松: 喔不。

\n
\n

媒体:你有吃过鲱鱼罐头吗?

\n

佩尔松: 在我还是小孩的时候吃过,鲱鱼罐头本应是挺恶心的,我不记得那时我是真讨厌它还是假装讨厌它了。在我们出售公司之后,雅各布(Jakob Porser[26])还想让我再吃一次。我的反应是觉得他很无聊,因为我已经基本上什么东西都吃了。

\n

媒体:挪威有多糟糕吗?

\n

佩尔松: (笑)前些年是我们分离成两个国家的 100 周年纪念,文档里说我们进行了一百年的暂时分离,之后会重新谈判。其实并没有人关心这个,那时人们只是觉得“无所谓啊,你的国家是你的国家,为什么还要提这事呢”。我在想“他们有很多石油啊”。其实我真的挺喜欢挪威的。

\n

媒体:这真是一场伟大的对抗。

\n

佩尔松: 我认为这跟詹代法则有点联系。其实不管是瑞典人抱怨挪威还是反过来挪威人抱怨瑞典都无可厚非。但如果有人去说挪威的话我会觉得不高兴。

\n

媒体:一个富有的人会知道贫穷是什么样的。如今当看着物品的价格时你还会带着贫穷的心态吗?仍会觉得“什么那份牛排要 200 美金!”?

\n

佩尔松: 会的会的。这不是因为我觉得我买不起,而是感觉像是被骗了。如果真的有一位非常优秀的推销员向我推销牛排的话,我可能会尝尝:“好啊,来跟我说说这牛排到底有多好”。如果不是美味势不可挡的话我想我不会再去吃了。我比想象中要更关注商品的实际价格。我会将“我知道一条面包的价格吗?”作为现实检验的方法之一,结果就是我会跟踪一些价格动向。

\n

媒体:你会烹饪吗?

\n

佩尔松: 不会。主要是我觉得烹饪很无聊,做饭比吃饭要花更多时间。对于烹饪我没有任何真正的想象。就类似于室内装饰,你问我“你想要什么样的椅子呢?”,我会说“不知道呀,不知道呀,有什么样的椅子吗?”。烹饪就跟这个一样,你问我“你在做什么食物吗?”,我会说“我不知道呀。”,然后做了一个很不错的卡布纳拉意面。

\n
\"去过
去过 IKEA 应该都吃过里面餐厅的肉丸吧
\n

媒体:那瑞典肉丸呢?

\n

佩尔松: 我可以买冷冻的,然后把它们放进锅里煮到不再冷。很美味!

\n

媒体:你喜欢电子音乐,这是众所周知的。你有不喜欢的音乐流派吗?有哪些音乐是你不能忍受的?

\n

佩尔松: 唔……

\n

媒体:乡村音乐?

\n

佩尔松: 这可能是离我最遥远的音乐之一了,还有我开过玩笑的爵士。不过我并没觉得这些流派有任何问题,只是我从来就没有对它们大加赞赏。如果我喝醉了我可能会欣赏任何类型的音乐,酒精最大的一个作用是能让音乐变得美妙。记得我在克里夫兰的一家酒吧里和一群拉着小提琴、吹着口琴等搞演唱会的人在一起庆祝圣帕特里克节,喝得酩酊大醉的人们中夹着奇妙的音乐,很棒的氛围。

\n

媒体:你接触过许多大明星,其中有让你特别追崇的吗?

\n

佩尔松: 最强烈的大概是约翰·卡马克[27]了。

\n

媒体:那可真是极客啊!

\n

佩尔松: (笑)小时候我有几年梦想在做 DOOM 引擎(好长的一个梦!)。不过不是梦想发明了它,而只是想去理解它并把它重建出来。这件事成为了我的依托。在只查看文件格式没有看源代码的情况下,我想我已经从头写过两次这个引擎了。遇到约翰确实很是深刻。

\n

媒体:是时候找下你麻烦啦。PC 和主机你更喜欢哪个?

\n

佩尔松: 我会选择 PC。我觉得如果你有几个好基友、几份爆米花和啤酒的话,那么你可能会选择主机。记得我曾喝醉了在(主机上)玩《基友大合体(Mount Your Friends)[28]》,非常有意思,但这在 PC 上则很难操作。对于我来说,我会更喜欢呆在房间里,坐在一台电脑前面,对着我的耳麦说话。

\n

媒体:你有玩过多人游戏吗?比如《火箭联盟(Rocket League)》?

\n

佩尔松: 我试玩过《火箭联盟》……

\n

媒体:现在所有人都去玩《守望先锋》了。

\n

佩尔松: 是的,我之前还玩《军团要塞 2》,现在在玩“军团要塞 3”了(注:佩尔松以此称《守望先锋》)。

\n

媒体:你在《军团要塞 2》里用什么兵种?

\n

佩尔松: 主要用的是士兵(火箭兵)。Valve 为我的所有角色做了一个立方体像硬纸板箱子一样的自定义帽子(头套)。所以其他玩家能认出我。我还获得了 2~3 个口袋间谍和口袋医生(饰品),有点感觉我跟其他玩家玩的不是同一款游戏。我太相信人了,不会做检查间谍(Spy check)。我喜欢发射火箭,擅长发射火箭来背刺别人。

\n
\"阀门为
阀门为 Notch 特制的《军团要塞 2》 Top Notch 头套
\n

媒体:你会玩火箭跳吗?

\n

佩尔松: 哈哈,肯定呀。这也是为什么我会喜欢《守望先锋》里面法拉的设计,因为她跟火箭兵相似,像是一个飞行着的高贵的骚扰者。在游戏中我会试图保持高度优势,这很有趣。但是她的大招是定在地上发射非常不准的火箭。我觉得如果她的大招能多一点移动性的话会更加有趣。像我会建议大招是一个地面猛击,从越高的地方冲下来,落地时的攻击力和击退就越高。相当于用高度换取了击退与攻击力,然后(后摇)卡在地面一会。做成像是——“现在,我要下来了”,然后使用大招,或者是在更高的地方使用——“我要把他们都撞倒!”。这样比定在地上射击,会更加符合这个角色吧。

\n

媒体:有哪个你最喜欢的游戏是现在正在玩的?

\n

佩尔松: 我已经有点厌倦《守望先锋》了,目前在重玩《GTA V》。他们做了个迷幻仙人掌的彩蛋,吃下后会变成大脚怪。在 Reddit 上还有玩家在讨论关于千年山秘密的事,试图去揭秘这些阴谋论。(知道这些后)我感觉“卧槽,这游戏藏得很深呐”。

\n
\n

媒体:你对车感兴趣吗?

\n

佩尔松: 我以为在我有钱之后我会买一辆豪车,于是在一年半前我去考了驾照。然而在我拿到驾照后,我只开了大概最多八个小时。我认识到其实我不怎么喜欢开车。

\n

媒体:于是你可以在《GTA V》里面开车。

\n

佩尔松: 是的,在《GTA V》里没有限制只能右转弯,你不必忍受交通堵塞。而在斯德哥尔摩,所有街道都是单向的。在《GTA V》里你可以在马路中央的分隔线起动,这很荒谬但也很有趣。

\n

媒体:在《GTA V》里你有帮会吗?以及有玩过抢劫模式吗?

\n

佩尔松: 没有。我第一次玩《GTA V》时还没有抢劫模式,我们只有一个很小的帮会,里面大部分是 Mojang 的成员。后面玩抢劫模式两三次后发现要更多的队友,然后每一次玩的时候匹配到的人好像都是 Polygon 的员工(译注:嘲讽匹配到的都是不会玩的)。

\n

媒体:你觉得虚拟现实是未来趋势还是昙花一现?

\n

佩尔松: 必然是未来的趋势。我在生活中初次使用时(就觉得它)已经足够实际应用了。

\n
\"于
于 2014 年被 Facebook 以 20亿美元收购的 Oculus
\n

媒体:HTC Vive 和 Oculus,所有这类设备你都用过吗?

\n

佩尔松: 我之前用的是 Oculus Rift DK2。我知道他们说打算给众筹者们送出正式版的产品,但如果他们不这么做,我也不会介意的(笑)。因为 Facebook (收购的事)真特么吓到我了,以及我也不想虚拟现实被……

\n

媒体:用来挖掘你的数据?

\n

佩尔松: 是的,我不想它监控我的电脑并把信息发给 Facebook,这个我想想都害怕。而 HTC 做事对比之就好得多。Vive 是有点重,带在头上挺沉的,但它有几乎和头显一样大的控制器。玩家拿着控制器就会感觉很直观,不会觉得只是有多个显示面。非常棒。

\n

媒体:你有想过做 VR 的开发吗?

\n

佩尔松: 有的,我之前在第一版的 Oculus 上用 Unity 做过一些实验,了解为什么玩家会产生作呕等等的问题。之后我打算等它更好的版本出来,从 DK1 到 DK2 的进步很惊人。后来我想过去继续这个项目,但我却转去玩 WebVR 了,这东西虽然有点天马行空,但胜在能用,它的 API 非常简单。

\n

媒体:你的 PC 呢?是你自己组装的吗?

\n

佩尔松: 没,大概 10~15 年前我就没那么做了。以前我很热衷于这个,每隔几年出来的 CPU 等产品我都会很清楚。直到后来我发现比起硬件我对软件的兴趣更高。现在我不再了解我的 PC 里具体有什么了,因为我有朋友会推荐这么一套 PC 架构,并且做一些个性化来适应你的需求。我会跟他说“整得很高大上我才能向人们装逼啊”云云,不过他基本上会认为你只是在为了烧钱而烧钱,并且会帮你进行缩减。于是我有了一台很棒的个人电脑,让我挺高兴的。

\n

媒体:你是某些物品的收藏家吗?

\n

佩尔松: 不算吧。我确实有存一些旧 PC 游戏的盒子,因为挺有意思的,但不会说我是收藏家。我不会去拍很多的照片,不会多愁善感,我更愿意活在当下。我从来不会去看(旧)照片,不过我会去看别人拍的一些食物照片,会觉得(食物)更加美味。

\n

媒体:真的吗?

\n

佩尔松: 是的,就像有个很好的侍酒师在给你描述酒,向你宣传,给你建立了预期一样,你会觉得酒更好喝。

\n

媒体:你有养宠物吗?

\n

佩尔松: 没有。我对猫和狗过敏,而且养宠物你得多到处走动。

\n

媒体:还有哪些我没有提到的你想说的吗?任何想让全世界知道的事?

\n

佩尔松: 我觉得我真没到能这种影响(全世界的)程度吧。人们能更加明白名人其实也是人这一点就好。他们(名人)并不是表面那样的,只是选择了想怎么展现。我认为跟一位你对他有成见的人、亦或是跟一个人的表象人格进行互动交流,是完全没问题的,而不是为了一些虚假的事物去攻击别人。比如说我有跨性别恐惧症,拜托,我从来没说过跟那相关的话好吧。你这是试图在网上发表什么声明罢。虽然我觉得这并不会有什么改变,但人们能够学会这些就好。

\n

媒体:好的。感谢您抽出时间接受采访,愿您愉快!

\n

佩尔松: 非常谢谢你!非常有趣,真的。

\n

全文完

\n
\n
\n
    \n
  1. Minecraft: The Story of Mojang 纪录片(B站 中文) ↩︎

    \n
  2. \n
  3. The Tao of Notch - Beyond Twitter ↩︎

    \n
  4. \n
  5. Jens Bergensten - Minecraft Wiki ↩︎

    \n
  6. \n
  7. Snopes.com,国外最早的在线事实查核网站,因验证和揭露美国流行文化都市传说而出名 ↩︎

    \n
  8. \n
  9. 詹代法则(Jante Law)为什么会成为斯堪的纳维亚国家(丹麦,瑞典,挪威等)的主流价值观? ↩︎

    \n
  10. \n
  11. 《This Is Phil Fish》纪录片(Youtube 英语) ↩︎

    \n
  12. \n
  13. Destructoid: 美国一家游戏博客媒体(Wikipedia 英语) ↩︎

    \n
  14. \n
  15. 猎空的\"背影“胜利姿势将被替换(NGA 论坛翻译) ↩︎

    \n
  16. \n
  17. 什么是多元交织女性主义(USATODAY 英语) ↩︎

    \n
  18. \n
  19. 【JoinFeminism字幕组】游戏情节与女性:落难甜心(上篇) 【双语字幕】(B站) ↩︎

    \n
  20. \n
  21. 社会正义战士(维基百科 中文) ↩︎

    \n
  22. \n
  23. 稻草人谬误:那些没能说出口的话,该怎样理解? ↩︎

    \n
  24. \n
  25. 【中字】这个视频会让你生气This Video Will Make You Angry@阿尔法小分队(A站) ↩︎

    \n
  26. \n
  27. 跨性别恐惧症(维基百科 中文) ↩︎

    \n
  28. \n
  29. Kotaku: 美国一家游戏博客媒体(维基百科 中文) ↩︎

    \n
  30. \n
  31. 国内有 Gamergate 事件的消息吗?(知乎) ↩︎

    \n
  32. \n
  33. Rock Paper Shotgun: 美国一家电脑游戏新闻网站(维基百科 中文) ↩︎

    \n
  34. \n
  35. Polygon 不懂得如何玩 DOOM 的原视频(Youtube 英语) ↩︎

    \n
  36. \n
  37. Danny Baranowsky 创作的游戏音乐(网易云音乐) ↩︎

    \n
  38. \n
  39. 《节奏地牢(Crypt of the Necrodancer)》STEAM 商店页 ↩︎

    \n
  40. \n
  41. 游戏开发者大会(Game Developers Conference)(Wikipedia 英语) ↩︎

    \n
  42. \n
  43. 关于亨利·福特是否说过这句话国外一直有讨论(Quora 英语) ↩︎

    \n
  44. \n
  45. 《表层指挥(Cortex Command)》STEAM 商店页 ↩︎

    \n
  46. \n
  47. 《超越光速(Faster Than Light)》STEAM 商店页 ↩︎

    \n
  48. \n
  49. 楚门的世界 The Truman Show (1998)(豆瓣) ↩︎

    \n
  50. \n
  51. Jakob Porsér - Minecraft Wiki ↩︎

    \n
  52. \n
  53. 第一人称射击游戏教父,首款3D游戏的开发者,传奇程序员——约翰·卡马克 ↩︎

    \n
  54. \n
  55. 《基友大合体(Mount Your Friends)》STEAM 商店页 ↩︎

    \n
  56. \n
\n
\n", "url": "https://www.h404bi.com/blog/2018/01/the-tao-of-notch-beyond-twitter", "title": "推特背后的 Notch 之道", "summary": "公众最近已较少听到我的世界作者 notch 相关的消息。在出售 Mojang 与购买豪宅之后,他曾接受过一些采访, 但自那以后他一直都很沉默。本文是一篇关于 notch 的人物访谈,试图了解 notch 为什么离开等内容。", "date_modified": "2019-04-06T14:34:56.000Z", "date_published": "2017-12-31T17:26:18.000Z" }, { "id": "/blog/2017/12/nintendo-switch-unboxing-and-simple-review", "content_html": "

恭喜任家的 Switch 销量突破千万!在任天堂宣布 Switch 历时九个月全球销量突破 1000 万的双十二当天,我咬咬牙,也成了千万分之一员。友人说我充值了信仰,其实我大概也不是 Nintendo 的热衷粉丝,不然估计早早就收入囊中。只是今年 NS 确实是够火热,这不其独占的《塞尔达传说:荒野之息》才拿下了 TGA 年度最佳游戏。

\n

而我又对其中的数款独占游戏颇有想游玩一番的意思。于是便拿着“根据游戏选平台”的思路,入手了人生的第二台掌上游戏机(第一台?GameBoy,也是老任家的,巧了)。继而写下这么一个记录与分(shai)享(dan),来一份多图的常规开箱,再附一个简单的短评。

\n
\n

\"There are many unboxing and review articles, but this is mine.\"

\n
\n
\"本图来源于网络\"
本图来源于网络
\n
\n

开箱

\n

购于某宝,顺丰同城次日达,双十二也没便宜多少。拿到后其实先开了看了几遍,后又封了箱,下班回家才仔细研究了下,所以算是个伪开箱。

\n
\n

收到的快递箱子比预想中的要大一些,两掌长,掌半宽高。预计实物也会比预想大一点。

\n
\n

买的是标准的红蓝手柄款,预期先入手一款游戏,配了《超级马里奥:奥德赛》。配机买一个游戏的话,估计不少人会在绿帽子塞尔达与红帽子马里奥之间选一个吧。既然塞尔达能拿下 TGA 年度最佳游戏,说明还是更热门一筹的。但我似乎没还玩过塞尔达系列的其它游戏(听过但真的没玩过),便选了更为熟悉的“8-4关”红帽子。除外则是店家送的赠品。

\n

图集:

\n
\"盒子正面\"
盒子正面
\n
\"盒子背面\"
盒子背面
\n
\"盒子侧面\"
盒子侧面
\n
\"盒子前面说明\"
盒子前面说明
\n

都有些什么基本上是一目了然了。

\n
\"盒子后面说明\"
盒子后面说明
\n

没有国行,我买的是港版。Switch 没有锁区,数字版游戏可以随意切换区域购买,所以选哪个版本大概是看个人喜好了。

\n
\n

打开上盖后,盒内正前方还有醒目的说明提示,有点意思。第一层就是两个有多种使用方法的 Joy-Con 手柄与掌机本体。

\n
\"底层是配件、保修证及说明书\"
底层是配件、保修证及说明书
\n

盒子为各种配件做了刚好适配的槽位,给人一种包装扎实的感觉。

\n
\"港版保修证及英文说明书\"
港版保修证及英文说明书
\n
\n

拿开包装。最原始的样子,两个手柄与主机分离。(刚收到打开把玩时先贴了店家送的硬贴膜)

\n
\"主机背面\"
主机背面
\n

背面正中央大 LOGO,下方左右两个扬声器,左侧是支架,打开可以立起主机,里面藏有 SD 卡槽,可用于存储扩展。(有看到 MADE IN CHINA 字样嘛 😄)

\n
\"立起来的样子\"
立起来的样子
\n

感觉背后的支架打开还是有一点虚呀,估计用久了就会松动。

\n
\"顶部右侧
顶部右侧 GAME CARD
\n

主机顶部右侧是卡带插槽、耳机插孔及散热孔,左侧是电源开关与音量调节按钮。

\n
\"主机底部,Type-C
主机底部,Type-C 快充
\n
\"两个
两个 Joy-Con 手柄
\n

手柄颜色上,红蓝款是标准款,除此外还有全黑的、奥德赛捆绑的全红、DIY 全蓝的等等。摘下来拿在手上的握感很不错。对比常见的手柄的话,醒目的是在下方左手有一个截图键,右手则有一个 HOME 键。按下一些按键时侧边会有跑马灯提示,手柄的几种使用模式下都会有这个提示。

\n
\n

配件:充电器、HDMI 数据线、拓展坞底座、手柄握把以及手柄手绳。

\n
\"突然想起《Plug
突然想起《Plug & Play》游戏...
\n

港版的充电器是欧标的插头,需要转接,用过港版电子产品的应该都不会陌生,如港版 Macbook 也这样。

\n
\"Nitendo
Nitendo HDMI
\n
\"底座正面,左下角提示灯\"
底座正面,左下角提示灯
\n

这底座还挺沉的……

\n
\"底座侧面\"
底座侧面
\n

侧面有两个 USB 接口,唔还没想到外接什么用途。

\n
\"底座背面\"
底座背面
\n
\"可打开后盖\"
可打开后盖
\n
\"底座背部接口\"
底座背部接口
\n

背部有三个接口,分别是一个 Type-C 电源接口,一个 USB3.0 以及一个 HDMI 输出。

\n
\"底座中部\"
底座中部
\n

中部一个 Type-C 接口,对应主机底部的口。哈哈,像一个表情……

\n
\"组装起来静放\"
组装起来静放
\n

据网上的其他评测与玩家体验,说底座的设计有些拙计,放入主机时容易磨花屏幕,不利于散热等等。于是衍生出 Type-C 延长线用法,各种第三方的底座等。感觉掌机的话,还是拿在手里的时间更多些吧,当然家里有大电视可能不一样……

\n
\"组装手柄握把\"
组装手柄握把
\n
\"手柄握把背面\"
手柄握把背面
\n

组装起来后成功变成一个“常规的手柄”,受限于本身的两个 Joy-Con 手柄,造型上有点奇怪。似乎短小了一些,握起来手大的话可能感觉会缺点什么,但我感觉还行。

\n
\"手柄手绳模式\"
手柄手绳模式
\n

两个手柄配两个手绳。手绳是没有左右之分的,可以将任意一个手绳用在左手柄或者右手柄上。

\n
\"手绳模式下的提示灯\"
手绳模式下的提示灯
\n
\"手绳
手绳 LOCK 开关
\n

需要注意的是,手绳的底部有一个防滑出锁定开关,除了按住手柄背部的释放按钮外,还要先打开开关才能拆下手绳。我第一次操作时没看到,差点就暴力乱来了……

\n
\"开机看看\"
开机看看
\n

运行后,从散热口出来的热风,会带着一股不知道怎么解释的味道。“新电子产品的硬件味道?”,这也太浓了吧……虽然有点奇怪,但感觉有点沉迷无法自拔……

\n
\n

Switch 本体部分看完了,接下来是游戏。

\n
\"《超级马里奥:奥德赛》正背两面\"
《超级马里奥:奥德赛》正背两面
\n
\"背部外层贴纸的香港总代说明\"
背部外层贴纸的香港总代说明
\n
\n

普通版打开里面就是一个卡带了,没有什么其它东西。

\n
\"卡带,Odyssey,
卡带,Odyssey, ya see!
\n
\"金手指\"
金手指
\n

好像真有人舔金手指,然后说苦的,哈哈哈……咱们还是别了。

\n
\"卡带上机\"
卡带上机
\n

除了实体卡带版本外,还能在 Nintendo 的 eShop 上购买数字版的游戏。不过实体卡带版本大概会更多人选择,因为除了有实物感外,玩通了还可以二转手。但有一些游戏像 Minecraft 的 Switch 版,只有数字版没有出实体卡带版,就只能在 eShop 上购买下载了。

\n
\"开机联网就要升级系统..\"
开机联网就要升级系统..
\n

作为掌机,整机的大小比起我预期是大了一些,但还能接受,外出带上的话是会有一点点难受。

\n
\n

好了,开箱大概就是这样。

\n
\n
\"奥德赛的抓拍截图\"
奥德赛的抓拍截图
\n

关于简评:

\n

纯用来玩游戏的游戏机,到入手 Switch 这个阶段,我只真正拥有过 3 款。第一个是小时候的《小霸王学习机》,说是学习机,当然是用来学习玩游戏啦。长大后才知道是山寨 FC 的,那是童年,也就那样吧。第二个则是本文开头说的 GameBoy,最初用的是“砖头机”,后面换了个透明壳的,电池用了不少。那时有《口袋妖怪》、《牧场物语》、《洛克人》等游戏玩,真的是太棒了。然后就是 Switch 了。当然期间多少有接触下 PS1、PSV 等产品,不过那都是“接触”过。

\n
\"本图来源于网络\"
本图来源于网络
\n

这次之所以选择 Switch,有两个原因。

\n

其一是,在这个平台上,有数款我想玩的游戏,这也是主要原因。除了最想玩的奥德赛与塞尔达外,喷射战士2、ARMS 等游戏也在愿望单中。有人问我 PS4 和 NS 或者其它游戏机哪个好?我通常都会反问一下“在这些平台中,哪个平台上有的游戏是你比较想玩又是独占的?哪个平台上有更多这样的游戏?”回答出来了,结果也就有了。“根据游戏选平台” 是我觉得很重要的一个观点。

\n

其二是 Switch 给我的感觉。Switch 这个词本身就是“交换、切换”的意思。家里大电视、外出、朋友家里等多种模式的无缝切换,内置的截图功能与社交分享,双手柄可拆卸分享游戏的设计,以及卡带的交换(当然这里不指那些所谓的会员服务交换卡带的商业行为)等等。这大概是它的一个概念吧——“随时随地的游戏与分享”。当然手机游戏盛行的当下,第二点都有,这就回到了第一点上了。

\n

最后,如果有想加我 Switch 好友,可以通过 Friend Code: SW-2151-0400-3751 找到我。

\n", "url": "https://www.h404bi.com/blog/2017/12/nintendo-switch-unboxing-and-simple-review", "title": "Nintendo Switch 开箱与简评", "summary": "在双十二这天,我咬咬牙买下了任天堂 Switch 和马里奥奥德赛。在进行 NS 开箱后写下这边文章作为记录, 记录一下 Switch 港版开箱含哪些配件等信息,简述一下 Switch 到底值不值得买。", "date_modified": "2017-12-16T10:04:00.000Z", "date_published": "2017-12-15T14:28:04.000Z" }, { "id": "/blog/2017/02/a-brief-history-of-minecraft-modding", "content_html": "

前言

\n

本文是 Minecraft 文章 A Brief History of Minecraft Modding 的译文版本,原文作者 Aaron Mills,原文于 2015 年 6 月 3 日发布在 Packt 出版社网站 PacktPub 上。[1]

\n

This article is a zh_CN translation of the Minecraft article \"A Brief History of Minecraft Modding\", which was originally published on PacktPub at June 03rd, 2015, the original author is Aaron Mills.

\n

挺早前就看过这篇文章,作者作为一位过来人为我们不简略地叙述了一遍 Minecraft Modding 的已有“简史”。至少这是目前网络上为数不多的,能让像我这样的一些在 Minecraft 非早期就加入社区的玩家,相对清晰地了解至今整个 Minecraft Modding 历程的文章了。很是喜欢,当时就有翻译下来的打算,现在填坑了。原文发布于 2015 年年中,时间节点也就到这个点。所以社区其后的发展,比如 Spigot、Sponge 的活跃等就没有提及。译文对比原文,加入了一些可能有助于内容理解的链接引用。

\n

正文

\n
\"cover
cover from PacktPub
\n

几乎从 Minecraft 诞生以来,modding 就一直在进行着。在过去的那段时间里,Minecraft modding 已经经过了数次变革,或者说,走过了数个“时代”。那些早期的日子以及早期的 mods,与现在比起来,有着巨大的区别。我初次涉足 modding 社区是在 Minecraft 的 Beta 中期阶段,所以在这之前发生的所有事情都是第二手的见闻。不过正如接下来我们将探讨的那样,虽然在时间的流沙中,大量的印记已经丢失,但是沿途重要的驿站却被记住了。

\n

这些年来,Minecraft 经历了数个发展阶段[2]。有趣的是,Minecraft Modding 的各个“时代”也正正对应着这些发展阶段。在 Classic 阶段,Minecraft 生存模式以生存测试(Survival Test)的形式首次出现,接着再次出现在了 Indev 阶段,随后到了 Infdev 阶段,在经过 Alpha 和 Beta 阶段后才到达正式版本。而这一切便从 Classic 开始。

\n

Classic 在 2009 年 5 月开始发行,其开发持续到了当年 9 月。Classic 阶段引入了生存模式与多人模式。在 Minecraft 历史上的这一时期,当时的 modding 正处于起步阶段。一方面,随着数个不同的服务端 mods 的出现,服务端 modding 在这一阶段开始繁荣起来。(后面我们会谈及 Bukkit,而这些 mods 是 Bukkit 的前身)这些 mods 的目的,普遍是提供给服务器管理员更多的工具来维护他们的服务器。而在另一方面,以增加新内容为目的的客户端 mods,直到 Alpha 阶段才真正开始出现。

\n

Alpha 在 2010 年 6 月开始发行,并在这一年的余下时间里持续。Alpha 阶段之前,从 Indev 到 Infdev,没有太多的证据表明这一时期出现有 mods,可能是 Indev 和 Infdev 阶段缺少多人模式的缘故。Alpha 阶段重新加入了多人模式,这一时期里,简单的客户端 mods 首次出现了。最初的这些 mods 只是对已有内容进行简单的修改:加入高清材质的支持、增加新类型的箭、修复 bug、修改指南针等等,简单且小巧。

\n

然而,随着 Minecraft Coder Pack[3](后改名为 Mod Coder Pack,即俗称的 MCP)的问世,一切开始发生变化。(MCP 的一位主要创始人,Michael 'Searge' Stoyke,现正在 Mojang 工作。)2010 年年中的某个时候,第一个 MCP 版本 Alpha 1.1.2_01 发布。Minecraft 的代码是混淆过的,虽然很容易被反编译。混淆的意即把代码中所有有意义名字和单词替换成人类不可读的无意义字词。这对于人类来说很难受,但对计算机来说却仍然感觉良好。MCP 正是通过映射有意义的名字到代码中,使得 modding 变得相比以往更加容易。

\n

与此同时,服务端 mod hMod[4] 正在另一边厢里完全独立地发展着,为服务器管理员提供一些简单而又必不可少的工具。可是,hMod 遇到了主要开发者“玩失踪”的问题。这一情况最终造成了 Bukkit[5] 的诞生,一个全新设计的服务器 mod,支持“插件(plugins)”并且可以完成一切 hMod 不能完成的事。创造 Bukkit 的一行人最后也被招安到了 Mojang:Nathan 'Dinnerbone' Adams,Erik 'Grum' Broes,Warren 'EvilSeph' Loo,以及 Nathan 'Tahg' Gilbert。Bukkit 而后成为了可能是有史以来最受欢迎的 Minecraft mod。事实上许多人认为,Minecraft 在线服务器普及的主要原因,就是因为 Bukkit 的出现。然而,一段时期内,它与客户端 mod 在很大程度上不兼容。

\n

客户端方面不甘落后,在 2010 年的年底迎来了另一重大发展:Risugami 的 ModLoader[6]。ModLoader 是变革性的。在 ModLoader 出现以前,如果你想使用两个 mods,你就需要自己逐行手动合并它们的代码。因为在不编辑 Minecraft 的基础代码的情况下,许多共同的任务不能一起完成,比如增加新方块和新物品。而 ModLoader 通过建立一个框架来改变了这种情况,那些简单的 mods 可以 Hook 进 ModLoader 的代码中,执行一些此前需要修改基础代码的共同任务。简单的 ModLoader 最后没有在其原有范围外继续进行扩展。不过,它却将 modding 带入了一个新的时代。

\n

Minecraft Beta 在 2010 年的圣诞节前开始发行并持续到了 2011 年,许多人称这一时期是 modding 的“黄金时代”。Beta 阶段涌现了许多在今天仍被认可且熟悉的 mods,其中包括我的 mod,Railcraft(铁路 RC)[7]。在这一时期,IndustrialCraft(工业 IC)[8]、Buildcraft(建筑 BC)[9]、Redpower(红石力量 RP)[10]以及 Better than Wolves(比狼好 BTW)[11]也都迎来了开端。它们都是些往 Minecraft 中加入许多新方块和新特性的主要 mods。此外,最近进行重制的巨型 mod,Aether(以太)[12][13],也是在 Minecraft Beta 阶段开始发布的。这些 mods 与其它更多 mods 一起,算是重新定义了“Minecraft Mods”。以一个全新的高度存在着,它们有时候彻底改变了游戏。可是这仍有缺陷。Mods 的创造和使用仍旧是令人痛苦的。你不能同时使用 IndustrialCraft 和 Buildcraft,因为它们对同一些基础文件做了太多的修改。ModLoader 只涵盖了对最常见的基础文件的修改,几乎没有接触(深层)代码,这对一个主要 mod 来说是不够的。而且,你仍然需要手动往 Minecraft jar 文件中插入代码来使用一个 mod,这一工程将许多玩家隔离在了 modding 之外。

\n

看着他们自己的 mods 不能被一起使用,各个主要 mods 的作者于是联合起来启动了一个新的项目。他们称之为 Minecraft Forge[14]。Forge 由 Redpower 的 Eloraam 和 Buildcraft 的 SpaceToad 发起,很快就被当时许多主要的 mods 采用。Forge 构建于 ModLoader 之上,极大地扩展了基础钩子(Hook)的数量,相比以往,提供了允许更多的 mods 一起工作的可能。这一时期,modding 迎来了它真正的“黄金时代”,一直从 Minecraft Beta 阶段持续到了正式发布。

\n

预示着 Minecraft“官方”正式版本的 Minecraft 1.0 在 2011 年 11 月发布。与此同时,客户端 modding 正经历着转变。包括整个 Forge 团队在内,许多著名的开发者开始转去做其它事情去了。大部分他们的 mods 在没有作者维护的情况下“生存”着,而部分则有。举个例子,Redpower 在 2012 年末停止了所有的开发。Eloraam,SpaceToad 和 Flowerchild 则将 Forge 的接力棒交给了在当时还相对不出名的 LexManos。“黄金时代”告一段落,但是取而代之的是新 mods 的爆发,modding 变得比以往更加受欢迎。主要包括 LexManos 和 cpw 在内的新 Forge 团队,为 modding 带来了许多创新。最终他们甚至开发出了 Risugami 的 ModLoader 的替代品 ForgeModLoader[15],并整合进了 Forge 中。用户安装 mods 时不再需要徘徊游荡在 Minecraft 的内部。创新一直持续到今天,Minecraft mods 也已数不胜数。

\n

然而,服务端 mods 的情况却没有那么乐观。长期占据支配地位的服务端 mod Bukkit,在 2014 年遭受了致命打击。原作者与维护者之间发生了许可冲突(licensing conflicts),基本上是围绕着在主要维护者离开后,谁“拥有”这个项目的问题。最终,一位最多产的维护者利用一个技术手段作废了 Bukkit 项目使用他贡献的代码的权利[16],有效地杀死了整个项目。替代品还没被开发出来,只留下整个服务端社区在日渐过时的代码中蹒跚前行。不过,不必对未来太过担心。过去也曾有挑战,但几乎每有一个项目死去,很快就会被更好的东西取代。

\n

Minecraft 有着一个有史以来最大、最有活力、最主流的 modding 社区。它有着悠久的历史,而这些只不过是 Minecraft 文化沧海中的一粟。还有更多的,是大大小小的帮助塑造了整个社区的事件。愿 Minecraft 的未来依旧那么得有趣。

\n

关于作者

\n

Aaron Mills 出生于 1983 年,生活在太平洋西北地区,一个知识、树木与雨水富饶的地方。他在温哥华华盛顿州立大学学习并获得计算机科学学士学位。他最著名的是他在 Minecraft mod Railcraft 上的工作,但同时也对 Forestry 和 Buildcraft 两个 Minecraft mod 有着突出的贡献,同时也为 Minecraft Forge 项目做出了部分功勋。

\n
\n
\n
    \n
  1. A Brief History of Minecraft Modding ↩︎

    \n
  2. \n
  3. http://minecraft-zh.gamepedia.com/版本记录 ↩︎

    \n
  4. \n
  5. http://www.modcoderpack.com ↩︎

    \n
  6. \n
  7. https://github.com/traitor/Minecraft-Server-Mod ↩︎

    \n
  8. \n
  9. Bukkit Forums ↩︎

    \n
  10. \n
  11. Risugami's Mods - Updated. ↩︎

    \n
  12. \n
  13. Railcraft Blog | Redefine your Rails ↩︎

    \n
  14. \n
  15. Industrial-Craft-Wiki ↩︎

    \n
  16. \n
  17. BuildCraft ↩︎

    \n
  18. \n
  19. Eloraams Blog ↩︎

    \n
  20. \n
  21. Better Than Wolves Wiki ↩︎

    \n
  22. \n
  23. Aether ↩︎

    \n
  24. \n
  25. Aether II ↩︎

    \n
  26. \n
  27. Minecraft Forge ↩︎

    \n
  28. \n
  29. FML ↩︎

    \n
  30. \n
  31. http://dl.bukkit.org/dmca/notification.txt ↩︎

    \n
  32. \n
\n
\n", "url": "https://www.h404bi.com/blog/2017/02/a-brief-history-of-minecraft-modding", "title": "Minecraft Modding 简史", "summary": "这是目前网络上为数不多的,能让一些在 Minecraft 非早期就加入社区的玩家,相对清晰地了解至今整个 Minecraft Modding 历程的文章", "date_modified": "2017-02-22T05:22:19.000Z", "date_published": "2017-02-20T16:02:45.000Z" }, { "id": "/blog/2017/02/henet-6in4-ipv6-tunnel-on-openwrt", "content_html": "

之前还在大学时,除开锐捷,由于内网的原因,要玩 IPv6 的话就只能用六飞之类的工具。工作后,发现在住所报装的网络,居然给(是的,长这么大第一次在家用宽带得到)了公网 IP。刚开始时想过利用这个公网 IP 来搞个 Minecraft“家庭服”,对小伙伴们开放。但折腾下来发现上传太可怜了,还是不祸害小伙伴了。

\n

就这样过了许久。突然心血来潮,看能不能试试在校时想搞的 he.net 6in4 隧道,发现配置下来还挺简单的。因为这个玩法其实已经有好多人实践过了[1][2][3][4],我也就是搜搜折腾记录下。

\n

创建 HE 6in4 隧道

\n

支持 IPv6 以及 6in4 的 Openwrt 路由器是前提了。到 https://tunnelbroker.net/ 注册一个新帐号。登录后,点击左侧的 User Functions 中的 Create Regular Tunnel 创建新的隧道。

\n
\n

在 Ipv4 Endpoint 中填入路由器 wan 口的公网 IP。然后在下面的 Available Tunnel Servers 选择一个 he 的 6in4 隧道服务器。列表有显示地区和服务器的 IPv4,可选择一个连接速度较快延迟较低的(提示:并不是亚洲区就最快,建议本机 ping 一下看看,我选的就不是亚洲区)。最后点击 Create Tunnel 便创建了一个 6in4 隧道。

\n
\n

其中 IPv6 Tunnel Endpoints 部分是这个 6in4 隧道两端的 IPv4 和 IPv6 地址。Server 是 HE 的隧道服务器,Client 是我们的路由器或计算机。下方的 Routed IPv6 Prefixes 是该隧道可用于分配的 IPv6 地址段,可为路由器背后的内网机器都分配上唯一的 IPv6 地址。

\n

Openwrt 配置 HE 6in4

\n

在 Luci 界面中,依次点击“网络”-“接口”-“添加新接口”创建新接口。接口名称随意,这里为方便辨认以 HENET 为例,协议选择 IPv6-in-IPv4 (RFC4213),然后提交。

\n
\n

接着“基本配置”。“本地IPv4地址”留空,“远程IPv4地址”填写上面创建的 HE 6in4 隧道中的“Server IPv4 Address”,“本地IPv6地址”填写隧道中的“Client IPv6 Address”,“IPv6 routed prefix”填写隧道中的“Routed /64”。

\n

然后勾选“启用HE.net动态终端更新”,填写相应的“隧道ID”,“HE.net用户ID”,“HE.net密码”。这里注意“HE.net用户ID”提示说“这是32 byte hex编码的用户ID,不是登录名”,也即不是注册时的用户名,这个值可以点击左侧的 Main Page 中找到。

\n
\n

接着在防火墙设置页中,确保防火墙区域跟 wan 的相同。最后保存应用,到此配置就完成了。剩下的就是测试了。看下网卡能否正常获得 IPv6 地址,到 http://ipv6-test.com/ 检查一下 IPv6 状态。访问 https://ipv6.google.com/ 试试,可用!聊胜于无,哈~

\n
\n
\n
\n
    \n
  1. 使用HE的6in4隧道来访问ipv6 ↩︎

    \n
  2. \n
  3. Openwrt配置6in4访问ipv6网络 ↩︎

    \n
  4. \n
  5. OpenWrt配置he.net的6in4隧道访问IPv6 ↩︎

    \n
  6. \n
  7. 在OpenWRT上配置HE IPv6隧道的正确姿势 ↩︎

    \n
  8. \n
\n
\n", "url": "https://www.h404bi.com/blog/2017/02/henet-6in4-ipv6-tunnel-on-openwrt", "title": "Openwrt 配置 he.net IPv6 隧道", "summary": "本文将介绍关于 OpenWrt IPv6 He.net 相关的内容,记录如何利用 he.net 在 Openwrt 配置 IPv6 隧道,以及配置完成后进行 ipv6 测试验证, 确定 Openwrt 6in4 的可用性。 ", "date_modified": "2017-02-12T12:44:53.000Z", "date_published": "2017-02-12T12:44:53.000Z" }, { "id": "/blog/2017/01/2016-2017", "content_html": "

新的一年,还是捡捡(又?)荒废了近一年小站吧。改改主题,写写回顾,看看过去一年自己都经历了些什么。

\n

1月:实习结束。也是无法想象能作为半个月 Python 新鸟入职,然后接坑微信开发。。。跟着 JS-SDK 走了一遍,入门了 Flask。因为想花点时间搞搞毕设,提前离了职。

\n

2月:问答系统,自然语言处理方向的毕设课题,完全下不了手,还是先过年吧。港澳通行证 get。

\n

3月:恶补毕设课题知识。

\n

4月:完成了毕设程序[1],用了实习学到的 Flask,现学现用 scikit-learn、Word2Vec、LTP。整个系统最初设计是我负责问题分类,队友负责问题解答,但最终还是没有和队友的程序组合到一起。没有被选上答辩(队友上了 lol)。

\n
\"桂林西站\"
桂林西站
\n

5月:毕业游,桂林。找工找房。

\n

6月:Offer 到手,一毕业就“转行”。Hong Kong 游一日(天气不好,鲜虾云吞真大粒)。离校。眼科中心验光,发现大学搞了四年电脑近视没变化。

\n

7月:转正。观《大鱼海棠》。《Pokermon GO》“昙花一现”。

\n

8月:才确定新窝的网络,发现有公网 IP,不过没什么卵用,压根儿没上行。

\n

9月:入手第一台相机 EOS M3。微单,还不是索尼大法?。

\n

10月:去了趟漫展,见识到拉拉人的可怕(梦回十月三.jpg)。

\n

11月:又拔了智齿,至此 4 个仅剩 1 个了。花时间做好了想整理想了一年的歌单[2]

\n

12月:观《你的名字》。STEAM 圣诞特惠居然没剁手(才怪,剁在升等级了,果然上班后咸鱼了)。

\n

毕业年确实有太多的改变,2016 我的年度文字应该当属字吧。

\n
\n
\n
    \n
  1. Wende ↩︎

    \n
  2. \n
  3. Monty Hancock's Emotional ↩︎

    \n
  4. \n
\n
\n", "url": "https://www.h404bi.com/blog/2017/01/2016-2017", "title": "2016。2017,", "date_modified": "2017-01-30T00:00:00.000Z", "date_published": "2016-12-31T16:50:25.000Z" }, { "id": "/blog/2015/10/dot-im-domain-renewal", "content_html": "

去年十月,也不知道是哪根经出错了,剁了个 .im 域名。在域名怪兽买入的,当时 checkout 时才知道仅支持 CC 及 CC through Paypal 付款。

\n

学生狗没有 CC,域名很想买,又要省钱。于是就用了很多人都想到或用过的 VCC。那时错过了财付通的运通卡,了解了各种 VCC 后就选了全球付。扣了不少转换费手续费后买下了域名。

\n

然后今年续费的麻烦事来了,爽后擦屁股。

\n

八月份就开始想着怎么续费。因为全球付不实名账户最低充值 100 元,我没实名。于是为了尽量一次用完充入的钱,我就想着能不能一次续几年。然后发 ticket 询问被告知只能续一年。而且续费间隔被限制在到期前六个月。

\n
\"到期续费提醒\"
到期续费提醒
\n

我不是很清楚域名注册的相关规定,但是据我所知某些后缀的域名是可以一次购买或续费好几年,又或者通过多次续费(没有续费间隔限制)延长时间的。.me 好像就是吧,之前了解到有人多次续费弄了好几年,好像有优惠什么的。

\n
\"各大域名商
各大域名商 .im 价格
\n

既然不行那就看看其它注册商。.im 最便宜无疑是域名怪兽家(9 刀),不然我也不会在那买。name.com 家的话是 13 刀,好像可以 Paypal 确认支付,其实还可以接收。但发现在它家 .im 不能开隐私保护,这在域名怪兽那可是免费的(对,就是免费的,文末再介绍一下),于是就犹豫了。至于其它注册商全然没看,太贵无视(普遍 20 刀)。

\n

回到域名怪兽家,既然不能续多年,那问问还有没有其他支付手段吧,尽量避免用全球付。跟客服来来回回十几封邮件,最终被告知除了网站标出的方式,最多只能用银行转帐(bank transfer)方式付款,还要等数天确认。期间还被建议先往 Paypal 里充值再下单,天知道在天朝不能充值 PP。(无奈脸

\n
\n

我想想这比全球付还麻烦,就硬着头皮往全球付打了钱,然后续了费。发现全球付收费规则改了,算算也没多扣多少,不过钱放里面总觉得哪天悄悄给你扣钱,找机会赶紧用掉。

\n

然后就没有然后了。

\n

说到域名,不知道从何时开始,各种后缀的域名如雨后春笋般涌出,什么 .website .xxx .xyz .xxoo 这个好像没有,眼花缭乱。大公司有钱任性,购买各种后缀的域名来保护产品没得说。但有时候觉得个人注册这些五花八门后缀的域名,真的是交学费吧。什么 .photography 的,真拿来做站也没什么人愿意好好地往浏览器里键入域名吧,而且又容易打错。其实也就图个个性,自己想注册的域名要有 .com 后缀,谁还愿意折腾其它后缀呢?

\n

最后再说说域名怪兽,就是 Domainmonster.com 了,英国服务商(所以 .im 才会那么便宜吧...)。在这家能注册的后缀非常多,有多少我就不数了。而且提供多种 Domain Services,其中最值的是免费的隐私保护,无论是新老域名。

\n
\n

付款方式前面已说,目前仅支持 CC 及 CC through Paypal 付款,所以没 CC 会比较麻烦。跟客服通邮件时已经建议其考虑下支持支付宝,至于后面到底如何,不报任何希望哈哈。

\n", "url": "https://www.h404bi.com/blog/2015/10/dot-im-domain-renewal", "title": ".im 域名续费一记", "date_modified": "2015-10-05T06:30:54.000Z", "date_published": "2015-10-02T14:07:48.000Z" }, { "id": "/blog/2015/09/new-mac-env-bootstrap", "content_html": "

入坑 Mac OS X,写点 note (nonsense) 以备玩坏系统重装时翻查。

\n

Command Line Tools for Xcode

\n

OS X 系统不像 Ubuntu 等发行版,系统默认是不包含编译工具链的(因为不是每位用户都需要吧,人性化?)。所以在使用时如果执行到含有诸如 gcc、make 等命令时,就会出现以下情况:

\n
\"提示需要命令行工具\"
提示需要命令行工具
\n

这时就需要安装苹果提供的命令行工具包(Command Line Tools,下称 CLT)了。安装 CLT 有几种方法:

\n

1. 通过 Xcode 安装

\n

for Xcode 嘛,当然能通过 Xcode 安装了,只不过没有安装 Xcode 亦可使用。所以如果你有安装 Xcode 的话,直接通过 Xcode 安装就好了。(我自己并没有安装 Xcode,因为暂无打算学习 Mac 相关的开发,所以私以为没必要耗费几个 G 的硬盘空间塞下 Xcode 吧, MacBook 的硬盘寸寸金啊。。。)。

\n

2. 通过终端安装

\n
$ xcode-select install

或者输入 gcc 触发前文所提到的情况(见前文图)亦可。

\n

3. 通过离线安装包安装

\n

如果用前面的方法安装不成功的话,可到 Apple 下载中心获取离线安装包进行安装。(认准苹果官网)

\n
\n

https://developer.apple.com/downloads (需要使用 AppleID 登录)

\n
\n

安装 CLT 后就可以使用工具链编译安装软件了,这是 Bootstrap A New Mac 的第一步。

\n

Where is the package manager of OS X?

\n

用 Mac 之前我还真没想过 OS X 有没有包管理工具。初次用了一会儿后,总觉得好像少了些什么,又说不出来。后在 Win 机上 Xshell 管理 VPS 时,才猛然想起:OS X 下用什么管理软件包?!Where is the package manager of OS X? 检索后才知道 OS X 不止默认不带 toolchains,还没有 package manager。带着使用 Linux 发行版心态的我不免有点失望。

\n

Homebrew

\n

官方没有社区有。强大的 Mac 社区造就了各种易用的工具。软件包管理工具就各式各样。其中最出名的两个是 MacportHomebrew。二者有着截然不同的理念,并且越来越多用户选择了 Homebrew。下面进行 Bootstrap A New Mac 的第二步。

\n
$ ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"

OS X 自带 ruby,难怪 ruby 社区一股 Macbook 风气。

\n

然后就可以像用 apt-get install/update 那样 brew install/update 了,更多用法参见 Doc

\n

Homebrew-Cask

\n

介绍了 Homebrew 就不得不说 Caskroom 了。Homebrew 掌管了各种 CLI 软件包的管理,App Store 提供各种 GUI 应用,这 Cask 又是什么?Cask 其实是 Homebrew 的一个扩展,能让 brew 支持安装和管理 GUI 应用。能在 App Store 获取到的应用当然最好在上面下载安装了,但有些应用程序是没有上架 App Store 的(比如 IntelliJ IDEA),得去程序的官网各种点击下载安装。于是不甘这样的 Mac 社区 Geek 们搞了个 Homebrew-Cask,然后就能打开终端一句指令愉快地安装 GUI 应用了,比如:brew cask install intellij-idea-ce。安装 Cask 只需:

\n
$ brew install caskroom/cask/brew-cask

题外话:Cask 开发者们最近在 GitHub 上热论着一场改革[1],说是要改变 Cask 目前的行为,以更贴合 regular usage,不过不能完美过渡的话会不会让用户感觉混乱。。

\n
\n
\n
    \n
  1. Homebrew-Cask issue #13201 ↩︎

    \n
  2. \n
\n
\n", "url": "https://www.h404bi.com/blog/2015/09/new-mac-env-bootstrap", "title": "Newbie Mac Bootstrap", "date_modified": "2015-09-20T09:28:19.000Z", "date_published": "2015-09-20T09:28:19.000Z" }, { "id": "/blog/2015/08/use-scoop-to-enhance-windows-powershell", "content_html": "

关于 Scoop 的新文章

\n

一本道

\n

软件包管理工具想必大家已经很清楚并且使用过。Debian/ Ubuntu 的 apt-get,\nArch Linux 的 Pacman,就连本身并无自带包管理工具的 Mac 都有了 Macports\n和极其好用的 Homebrew。至于 Windows 下,\nGeek 们也生产出各式各样的工具以贴合他们的 *nix 使用习惯。其中软件包管理工具中比较出名的就是 chocolatey 了。

\n

然而本文并不细谈 chocolatey,而谈的是一个叫做 Scoop\n工具。官网上的描述是“A command-line installer for Windows”,其实说白了,就是和 chocolatey 同属一种东西,也就是 Windows 下的软件包管理工具,但其并没有 chocolatey 出名与强大。

\n

那我为什么要用 Scoop 而不是 chocolatey?一正是 chocolatey 够强大,但其实我一开始并没打算折腾 Powershell,因为已经在用 Git Bash / MSYS2,所以我无需使用太过庞大的工具;二是 scoop 有吸引我的地方,它能把 Powershell\n弄得看起来像 Linux shell 的样子,这也是为什么我要折腾 PS 的促因。

\n

看 Scoop 主页的 Demo 视频,你会发现视频里的 PS 用起来很简约,而又是更方便了,不仅能安装运行各种 GNU 工具(curlvim 等),而且 $PS1 看起来像是 Linux 下的终端,还能显示 git 仓库的分支信息,简直 Geek 范十足。虽说已有 MSYS2 这种更集成的 *nix 环境,但既然看到了 Scoop 又挺不错的于是就折腾下呗。毕竟是 Windows 内置的嘛,还能 Win + R powershell 快速打开,有时候打下指令(ipconfignslookup 什么的)还是会用到的呢。

\n
\"配置
配置 Scoop 后的样子
\n

正题

\n
    \n
  1. \n

    确保你已安装 Powershell 3(其实 Windows7+ 应该都已经集成了),然后 WIn + R 输入 powershell 打开 PS,一句命令安装 scoop:

    \n
    iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
  2. \n
  3. \n

    安装完成后输入 scoop help,如果报错则需要允许 PS 提供脚本执行权限,执行:

    \n
    set-executionpolicy unrestricted -s cu
  4. \n
  5. \n

    然后就可以像 apt-get 那样 install/uninstall 软件包了:

    \n
    scoop install pkgname

    用 scoop 安装软件包时不会弹出 UAC 要求提权,因为软件包是安装在当前用户的 appdata 下的,并通过 shims path 管理调用执行文件,而不是将每个执行文件的路径都加到 path 中。

    \n
  6. \n
  7. \n

    开始美化控制台显示样式(★)首先 scoop install concfg 安装 concfg,然后导入 Solarized 主题concfg import solarized small(concfg 支持多种主题,详见 concfg/presets),期间会提示你替换了哪些控制台(其实也就 CMDPS)的样式。然后 scoop install pshazz 安装 pshazz,当安装完后马上就能看到 shell prompt 发生变化了,而且 cd 到一个 git 仓库还能看到分支信息,还支持 git auto-completion 呢。

    \n
  8. \n
  9. \n

    然后还可以安装使用 touchcurlvim 等更多的 GNU 命令行工具。\nscoop 官方的 Packages 是 bucket,如果里面没有你想安装的工具你还可以自定义 bucket创建一个 package

    \n
  10. \n
  11. \n

    最后还能用 scoop 进行开发语言环境的多版本控制呢,比如 scoop install python27 python 同时安装 Py2.7 和 Py3,然后 scoop reset python27 选择 Py2.7,scoop reset python 则设置为 Py3。

    \n
  12. \n
\n

至于更详尽的使用方法请 scoop help 或访问 Scoop Wiki 咯。

\n

总结:所以说这种人就只能为他们的这种“如此难以伺候”而不断地折腾自己的电脑,折腾自己。这就是所谓“生命不息,折腾不止”吧哈哈哈。。。卒

\n", "url": "https://www.h404bi.com/blog/2015/08/use-scoop-to-enhance-windows-powershell", "title": "用 Scoop 改善 Windows Powershell", "date_modified": "2015-09-04T09:19:38.000Z", "date_published": "2015-08-23T15:19:11.000Z" }, { "id": "/blog/2015/05/hello-world", "content_html": "

欢迎回到地球。

\n

每次在硬盘找旧文件时,总会经意或不经意地点进放有旧博客备份的目录。然后心里想什么时候再处理下这些博文数据呢?等到终于解压博客档案,导入 SQL 后,发现也没什么值得转换的。既然都打开了,还是截些图纪念一下吧。以后应该就不会再打开了,当然数据还会留档。

\n
\"Old
Old blog
\n

自建博客以来见过不少次 Hello World 了,说不定现在的这里又会是未来哪个时候嘴里说的“黑历史”呢,哈哈!...

\n", "url": "https://www.h404bi.com/blog/2015/05/hello-world", "title": "Hello World", "date_modified": "2015-09-09T13:32:27.000Z", "date_published": "2015-05-20T12:28:19.000Z" } ] }