标签归档:工具

npm 学习笔记

npm[1] 是 JavaScript 包管理工具,它类似 Java 中的 Maven , Gradle , Python 中的 pip 。

npm 随着 Node.js 一起发布,在安装 Node.js 的时候,npm 也会随着 Node.js 的安装一起安装到电脑上。 npm 作为一个包管理工具,其自身更新比较频繁,它的最新版本也可以独立进行更新。

# 在终端执行下面的命令即可更新到 npm 的最新版本
npm install npm@latest -g

npm 安装一个包都命令是 npm install package_name , 执行此命令后,会在当前目录安装 package_name 包,并创建一个 node_modules 的目录,下载要安装的包到这个目录中。

npm 是通过 package.json 这个文件管理包到,通过这个文件对包的信息进行定义,以便在团队协作的时候对包的使用上统一一致。使用 npm install 命令安装的是包的最新版本,我们日常在进行的项目实际上不一定总是使用最新的版本,这时候同样可以通过对 package.json 文件进行配置获取指定版本的包。

一个 package.json 至少要包括包名和版本信息。

{
    "name" : "package_name",
    "version" : "1.0.0"
}

如何创建一个 package.json 文件呢? 答案是使用 npm init 命令,然后逐一回答问题即可完成创建。如果不想回答问题,可以使用 npm init –yes 命令创建默认的 package.json ,然后再修改之。

{
    "name" : "npm",
    "version" : "1.0.0",
    "description" : "",
    "main" : "index.js",
    "scripts" : {
        "test" : "echo \\"Error: no test specified\\" && exit 1"
    },
    "keywords" : [],
    "author" : "",
    "license" : "ISC"
}

以上就是默认创建的文件。要安装包,就要有下载的地址,同样也可以在 package.json 中用字段 repository 指定。

{
    "type" : "git",
    "url" : "https://github.com/example/package_name.git"
}

还有一些其他的字段可供设置,比如主页地址,作者邮件等等。一个包的 name 命名有一定的规范,包名需要使用小写字母,不允许有空格,可以使用下划线和横线。对于常用不太变化的字段值,可进行初始化设置,这样就不用每次都输入这些信息了。

# 初始化设定作者 email
npm set init.author.email "author@example.com"
# 初始化设定作者姓名
npm set init.author.name "Eric"
# 初始化设定许可协议
npm set init.license "MIT"

在使用 npm install 命令安装包的时候,会读取 package.json 文件来安装模块。模块在有时候有两种类型,一种是面向生产环境的,另一种是面向开发环境的,这时候可通过在命令后面添加 --save--save-dev 参数指定安装。

如果要更新包,使用 npm update 命令,卸载包用 npm uninstall package_name ,如果卸载的同时想要一并删除 package.json 文件,添加参数 --save

# 卸载 package_name 包,并删除 package.json 文件
npm uninstall --save package_name

上面说了,在默认情况下,包安装命令会将包安装在当前目录下,这只能在当前目录下使用。如果要使用一些全局的包,在安装的时候可以添加 -g 参数来安装,同理更新也是如此,卸载一个全局包也是如此。

# 安装 package_name 包为全局包
npm install -g package_name
# 更新全局包
npm update -g
# 卸载全局包
npm uninstall -g package_name

如果想知道当前都有哪些包需要更新,可以使用下面的命令查看。

# 查看哪些全局包需要更新
npm outdated -g --depth=0

包(package)是一个被 package.json 文件描述的文件或目录。模块(modules)是可以被 Node.js 引用的文件或目录。一个 Node.js 模块就是一个可以发布到 npm ,供其他开发者使用的模块。

如何创建一个 Node.js 模块呢?

  • 创建一个 package.json 文件,将模块信息添加到文件中;
  • 创建一个模块被引入就加载的文件,即 main 字段中指定的文件,默认为 index.js ,在此文件中将一个函数值赋给 exports 模块。
exports.printMsg = function() {
    console.log("This is a message from the first package.")
}

npm 的配置文件是 npmrc,项目级别的在项目所在目录下 .npmrc , 用户级别的在 ~/.npmrc , 全局的在 /etc/npmrc , 内置的配置文件在 npm 安装目录下。配置信息的优先级别为命令行参数级别最高,其次是环境变量 PATH ,再次是这些配置文件,要查看 npm 的配置信息,执行如下命令即可。

npm config list -l

默认下载包的源来自 npm 官网,如果感觉下载速度不理想,我们可以配置一些国内的镜像站点来加快下载速度。

我们可以在安装包的时候指定镜像源,也可以写到配置文件中。

# 在安装的时候指定「淘宝镜像」
npm install express --registr=https://registry.npmmirror.com
# 写到配置文件中
npm config set registry <https://registry.npmmirror.com>

# 查看配置是否成功
npm config get registry # npm info express 也可以

对于 npm 的学习暂时先告一段落,可能很长一段时间只是处于使用 npm 的阶段,了解以上的内容基本上应该可以开始使用了,使用中遇到问题随时查阅帮助解决即可。我看还涉及到发布自己的包等内容,这就是 long long after 以后的事情了。


本文中引用的资源
1:npm 的官方网站是:https://www.npmjs.com/

阅读时眼睛疲劳怎么办,或许可以让设备朗读给我们听

随着年龄的增长,眼睛在阅读东西的时候可能就有些费劲,这时候对于电子屏幕上要读的文字可能就有通过听来获取的需要。前阵子一个朋友向我询问,问这种情况有没有好的解决方法,在大概聊了一下他的使用场景之后,我给他提供了一个解决办法,基本上解决了他的日常使用。

后来我又想了想,这就是在某种场景下,有将文字转成语音作为输入的需求。也就是将信息获取的方式由视觉系统转变为听觉系统,除了视障者之外,视觉正常的人在日常很多场景下也是有这个需求的,比如在通勤的路上、在开车的途中、在家务劳作的时候等等。

对于这方面的需求,目前一方面有专门做音频内容的产品,另一方面是很早就有的将文字转换成语音进行朗读的产品,它基于文字转语音(Text-To-Speech)这个系统,属于语音合成这个范畴,我最早接触的是微软开发的,如果没记错的话在 Windows 95 系统上就有,记忆中当时听来那是相当的生硬,早期的开发中在语音播报的场景中有一些应用。

专门基于音频内容的产品其音频内容是固定的,取决于音频内容本身和你的选择,如收音机、播客或使用 U 盘拷贝的音频内容,而这些音频内容一般由真人操作,实时或提前制作好供使用者选择。而文字转语音就比较个性化了,取决于你想让它读什么文字材料,然后针对这个文字材料进行实时的语音合成,通过声音设备输出,这就像直播中的主持人,只不过真人换成了机器设备。

早些年听机器朗读特别的生硬,基本上丝毫感受不到感情,近几年倒是没有尝试,趁着这次朋友的询问机会,最近断断续续的在各个地方再次做了一番尝试,针对它们提供的服务及其效果,在此做个记录。

我尝试的设备主要有手机和电脑,这也是目前大部分人日常使用的设备。手机两部,分别是 iPhone 和华为荣耀,两台笔记本电脑,分别是 Macbook Pro 和 Windows 笔记本,这也是我自己日常使用的设备。

1. 手机

1.1 利用手机自带功能
iPhone

在 iPhone 中,如要进行语音阅读屏幕文字,可通过 设置 – 辅助功能 – 朗读内容 进行设置,有两个选择,操作如图简洁明了,如下图所示。

当打开朗读所选项和朗读屏幕这两项功能后,如下图所示,即可按照其下方的提示操作进行内容的朗读,比如在选择文本时,会出现「朗读」按钮,双指从屏幕顶部向下轻扫就开始屏幕内容朗读了,我分别进行了尝试,比以前好很多,可能还有不小的提升空间,但听起来已经可以接受了。打开这两项功能后,进一步会出现「语音控制器」和「高亮显示内容」两个选项,打开前者会在屏幕上浮动一个小按钮,可在任何想要朗读的地方使用这个按钮来操作。高亮显示内容打开后则在朗读的时候以高亮的方式告诉你当前读到哪里了。

整体来讲 iPhone 上的朗读操作起来还是比较容易的。特别提一句,在声音中可以选择不同的语言和当下语言中的声音,在这里我选择的是中文下的「Siri 声音 2(中国大陆)」,可供选择的声音还有「婷婷、语舒和 Siri 声音1」。屏幕中间的工具条是「语音控制器」浮动按钮展开后的内容,可进行翻页和调整朗读语速。

总体来说,利用 iPhone 手机系统提供的功能,还是能够很容易地操作,并朗读屏幕上的内容,听起来也还算可以,如果你有这方面的需要,可以试着把玩一番。

Android 系列

这个就比较遗憾了,我在我的手机中找到了系统提供的功能,但我在我的手机上并没有试出来我所期待的功能,我通过「设置」->「智能辅助」->「无障碍」->「随选朗读」进行设置,但是我设置完后始终就是不能让它能够朗读起来,遂作罢。

虽然没能体验成功,我还是浏览了一番它使用的引擎,用的是讯飞语音引擎,坊间一直有说讯飞家的语音出类拔萃,可惜未能在此体验一番。

1.2 利用手机上的 App

系统提供的是全局的功能,但在我们平常使用的时候更多的是基于一些少量的场景,对于将文字转换成语音输出的这个需求,更多的是对应一个想要朗读的文档,比如 Word、PDF 文档,或者是电子书,这时候可以通过日常使用的 App 来解决这个问题,这里我推荐微信读书这个 App,微信读书支持导入文档,支持 txt,pdf,epub,doc,docx,mobi,azw3 等格式,将这些文档导入微信读书后,在阅读的时候,手指单点屏幕中央,在弹出的功能按钮中,选择听按钮就可以开启朗读功能。

这比较适合要朗读的文档篇幅比较长,因为在导入文档到手机中时大概率要在电脑上完成,这需要额外花费一些时间,但完成后使用就比较简单了。

在手机上还有其他的 App 也提供这个功能,比如在微信中,可以通过设置「关怀模式」,然后开启「听文字消息」功能,也可以听消息。

在系统提供的屏幕朗读和微信读书的结合下,我想基本上就可以解决将文字朗读出来的需要了,当然如果有更好的 App ,如果恰巧看到这篇记录,也请留言告诉我。

2. 电脑

电脑的操作系统同样也提供朗读的系统功能,比如在 MacBook Pro 中,可以通过「系统偏好设置」->「辅助功能」->「朗读内容」 来设置。而在 Windows 系统的电脑中,比如 Windows 10 提供系统自带有屏幕朗读功能,可通过 「Windows 设置 – 轻松使用 – 讲述人」 打开讲述人即可。

对于电脑这个强大的生产力工具来说,系统提供的功能我们可能用不到就解决了我们的问题,比如我们常用的浏览器(Chrome、Safari、Edge)基本上能打开大部分格式的文本文件,而这些浏览器本身或借助系统提供朗读的功能,就能完成我们需要的朗读功能。所以在电脑上大部分的将文档朗读出来都可以采用用浏览器打开文档,然后朗读即可。

这里面最为推荐的就是 Microsoft Edge 这个浏览器,右键鼠标单击,在弹出的菜单中选择「大声朗读」,就可以听到当前打开文档的文字朗读了,这个是我听的效果最好的(如下图中我打开了鲁迅先生的《呐喊》这个 txt 文件进行大声朗读,效果不错)。在 Mac 中我用浏览器(不论是其自带的 Safari 还是 Chrome)体验的效果都不理想,在这里的体验应该是借助了系统的功能,在 Chrome 中可以通过安装朗读服务插件来提高体验,这部分我没有尝试。

另外一些专用的软件本身也提供朗读功能,比如通常用的 Word 里面就有朗读功能。

一圈体验下来,除了 Android 手机上这个用讯飞语音引擎的我没体验到之外,体验最佳的就是用 Edge 进行的朗读,这也印证了我从旁听来的评价「微软的引擎好」,我觉得也理所应当,毕竟对于一个在 20 多年前就推出了这方面产品的企业,这么多年下来的积累与沉淀,理应提供不错的体验。

对于现有的工具或产品来说,如果要在手机上想把文字朗读出来,目前我比较推荐的是将文档导入到微信读书中,然后用微信读书中的听功能来听。如果是在 Windows 电脑上,我比较推荐直接使用 Edge 浏览器打开文档,使用其提供的大声朗读功能来听。

还有没有其他的方式呢,答案是有的,如果懂得编程,动手能力又强,可以使用微软提供的文字转语音应用程序编程接口(TTS API)[1] 用程序来实现自己的需求。不过对于大部分人来说,以上提供的方法已经足够自己使用,虽然跟真人还有些差距,但在眼睛疲劳又想听一听文档时,不妨一试。


[1]: https://azure.microsoft.com/en-us/services/cognitive-services/text-to-speech/#overview


本文首发于我的微信公众账号「时间易逝」,欢迎订阅我的微信公众账号
在微信中搜索「doevents」或用微信扫描页面右上方二维码可订阅我的微信公众账号

Trello 从使用到放弃

我比较喜欢尝试通过各种途径发现的各种软件工具,这也算是计算机软件使用这个范畴中「差生文具多」的一种表现,Trello 就是其中一个软件工具。我在维基百科上查了一下,Trello 初始版本在 2011 年 9 月 13 日发布,在 2014 年 7 月将 Trello 独立为单独的公司,2017 年 1 月被 Atlassian 收购。

从现在的记忆中回顾,最初我对它的了解是它是一款看板软件,是由比较有名的「Joel Spolsky」创建的,就是写了《软件随想录》 这本书的那个被称为「程序员部落酋长 Joel 」的那位,当然他也写博客,而且开设博客的时间还相当的早,他还是在程序员中被广为使用的 Stack Overflow 这个问答 「拷贝粘贴代码库」 社区的创建者之一,更多的关于他的信息可以去他的网站 Joel On Software 上寻找。

我很早就注册了 Trello 这个工具的账号,应该在 2015 年或更早些时候,但真的开始用的时候就比较晚了,大概在 2020 年初的时候,我准备尝试用一下,一边摸索一边将数据迁移到 Trello 中,一直用到 2021 年 10 月份,就放弃了,现在来看,放弃主要有如下的几个原因。

  • 在其自身账号跟 Atlassian 整合后使用它越来越慢了,常常在正常情况下打不开;
  • 几个移动设备上的 App 在升级后就不太能好好用了;
  • 整合账号后在需要重新验证身份的时候需要输入两次密码;
  • 有新的在尝试的工具,比如 Notion.

截张图,做个纪念,并简单记录一下自己的日常使用。

尽管对它的最初认识是一款看板软件,但我在尝试的过程中却打算用它把自己的内容也管理起来,然后针对一部分内容建立行动过程,也即看板,再然后还可以试试协作。

当时为什么想要试试 Trello ,现在实在是想不起来,很大可能是当时看到了某些有关它的信息,然后想着自己也有账号,接下来由于喜欢尝试的毛病发作,就试起来了,官方和使用者多把这个软件产品定位为项目协作与目标管理工具,我用它主要想试试看能否将内容管理起来,在此基础上对于手头上要做的项目进行一些任务分解与跟踪。

我是通过具体的看板进行分类,有了类别之后,在此基础上进行按类别的管理,这种想法根植于从小到大的经验与不断的练习,在日常中我们总是用类别来归纳一些事,以便简化我们应对和认知事物。

而对应到 Trello 中,不同的看板可以看作不同的类别,而看板中的卡片可以看作不同内容的承载容器,可以进一步在卡片上记录对应的内容,在看板和卡片之间可以建立列表进行进一步的分类,以「阅读」看板为例,如下图。

这里在「阅读」看板中建立了 4 个列表,分别是书库、待读、阅读中以及读完,而列表下的每张卡片则代表了每本书以及每本书在不同状态下的不同内容。

在书库这个列表中,每张卡片代表一本书,我在每张卡片中记录了书的一些概要信息,并使用标签来标注书的介质和来源,比如电子书的微信读书,Kindle , PDF , iBook 以及纸质书。然后将计划阅读的放到待读这个列表中,在阅读中列表中放入当前正在读的书,并伴随阅读记录阅读笔记,最后读完一本书整理到读完列表中。

其实 Trello 提供的看板及其卡片还是蛮不错的,卡片的内容支持 MarkDown 以及待办清单,可以通过建立不同的标签进行标注,进一步的分类与组织内容。在卡片的每次操作,都会以讨论的方式进行记录,这样也就留下了针对这张卡片的历史操作记录,当然作为一个协作工具,还可以邀请朋友来共建内容「将看板设置为公开的,并邀请朋友共同参与」,总体下来用的过程中还是比较简单的,而且使用也挺流畅。唯一美中不足的是每个卡片在不同的状态下基本上是基于状态隔离的,但实际上这些卡片中的内容存在一定的连接性,这就需要进一步的整理加工,然后增加新的卡片或者归档到另外一个工具中,当然在 Trello 中也可以通过附件来做到卡片之间的链接,这算是在内容上一层级的链接,略微有些欠缺,不知道现在的版本是否有新的改变,从软件的出发点及整体架构上来说,这样的变更比较困难。

由于其协作性,在进行项目管理时,有关这些看板和卡片都可以通过 关注和 @某人 连接相关的参与者,以得以使得成员协作开展工作,我在这部分没有使用多人模式,仅仅是把我自己独立完成的项目管理了起来,包括任务分解、描述以及人员的指派等都是我自己,由于没有多人的实际尝试,这部分就不多说了,但这部分内容是团队使用 Trello 的精髓所在,毕竟它是一款团队协作工具。特别要注意的是如果团队本来在使用看板,比如在很显眼的地方放一大块白板,上面贴满一个项目各个成员的任务进度,那么可以试试这个工具,而如果你的团队没有使用过这种管理方式,那么这个工具实际上并不一定就能让你的团队适应看板这种项目管理方式,当然可以尝试。

以上大概就是我使用 Trello 的一些回顾,有两个计划,其一是打算丰富一下书库的内容,然后邀请朋友共同探索一下内容的共建与协作;其二是在我自己做的项目中,准备把甲方相关人员拉进来,试试项目过程中的协作,包括项目的整体进度、需求讨论、原型及反馈等,但随着使用越来越慢而且几番更新后手机上经常无法使用,这个想法也就不了了之了,最终就彻底放弃。

最后说说对 Trello 的理解。

基本上 Trello 可以整理生活与工作中的任何资料,可以把它看作是一大块白板,使用它的人可以在这块白板上建立无数个列表,要整理什么资料或者要开展某项工作,都可以在这块白板上创建,当然可以对这块白板进行升级,比如变成好多块白板。在这些白板上使用者可以自由书画,拖拽排序,列表可以按照阶段建立,可以按照流程建立,也可以按照使用者的分类建立,当然自由建立也是完全可以的。

承载内容的是列表中的一个个卡片,卡片同样可以是一个任务,一本书,一份资料,一个想法,一个问题与讨论或一个投票等等,这些卡片可以是动态的(比如按照阶段划分的任务随着任务完成的状态游走在列表中),也可以是静态的(它就是一份资料)。一眼望去是你自己熟悉的分类,展现种种的内容,一览无余。卡片为不同的内容提供多样性的属性,链接、文字图片、待办清单、附件、起始日期、标签、颜色等等,不但丰富卡片的内容,而且提供了进一步的管理。

整体操作比较简单,大量的拖拽操作就跟在板板上移动便利签一样,这大大减低了团队使用的门槛,支持多端多系统,即时同步,多人协作,在多人协作时,每个进入到能进入的看板时,能一眼就看出每个人都在做什么,做的怎么样,以及我该做什么。

搜索功能也还算可以,能够检索到你搜索的内容,Trello 还提供了一些类似于插件的功能,比如投票、日历等等。

整体上来看,Trello 对于本身就使用看板的团队开展工作还是不错的,而且免费的功能足以应付日常大部分的工作,当然其还提供付费的版本,比如对于附件大于 10M 的支持就需要付费。当然对于个人来说,如果把自己的日常生活的琐事用它管理起来也能让事情井然有序,如果感兴趣可以试试。不太理想的地方是随着它被收购越来越重了,而且越来越慢了,慢这个事情也不太好说,Notion 也存在慢的问题,这既跟网络相关,也跟内容存储主体与服务所在地有关,这部分不可言说。类似这样慢的或者访问不友好的产品或服务,要看它们提供的价值是否要大于解决网络访问的成本以及你的兴趣。

本文首发于我的微信公众账号「时间易逝」,欢迎订阅我的微信公众账号
在微信中搜索「doevents」或用微信扫描页面右上方二维码可订阅我的微信公众账号

MacBook Pro 自行更换鼓包电池及升级存储小记

我的这台 MacBook Pro (Retina, 15-inch, Mid 2014) 是在 2015 年上半年买的,它是 2014 款,继上次屏幕涂层脱落(花屏)免费给更换屏幕后,又用了 4 年。对我来说,如果它不出问题应该可以一直用到我不想用为止,因为它基本上还能继续满足我编写程序及日常工作的需要。

可是它就出了问题,最近发现电池鼓包,而且鼓包应该已经有段时间。我是发现上盖合不严,没有以前合上时吸附的那股急于挣脱你手的力量,我从支架上拿下来放到平面时,四个立足点已经不能在桌面保持平衡了。在手机上进行了维修预约,然后在网上进行一番搜索,搜到的电池鼓包解决方案还不少,电池鼓包现象同样也是苹果电脑比较常见的现象,我决定还是先去苹果店看看再说,因为在第一时间我更愿意先看看专业人士的意见是什么。

在等待预约的期间我先把数据做了一下整体的备份,然后把自力更生解决问题相关的文档都看了个遍,我其实比较倾向自己进行更换,然后顺道更换一下存储(由于穷,在购买的时候买了 256G 的存储),存储空间在日常使用中实在是捉襟见肘,所以顺道搜索了一番,把更换存储以及存储选用的文档也浏览了一遍,关于这些解决方案文档在这里就不做具体的推荐了,只要上网一搜都能搜到,在最后我会放上我看的一些文章链接。

在约定的时间去店里,完成签到后在等待的区域,发现来处理鼓包的朋友算上我有 4 个,我的电脑时间最老,苹果售后效率还是挺高的,略微的等待之后过来一个美女,她负责这次的售后服务,完成信息的核对后开始检查电脑,对我的电脑的检查其实挺简单,电池鼓包这事一眼望去就很明了了,美女直接给我说解决方案,大概意思是电脑比较老,没有现成的备件,需要下新订购单,大概需要 7 天到半个月,还不一定能有货,并告诉我更换电池会连键盘和触摸板整体一起换掉,费用大概不到 1500 ,当然这费用仅仅是电池的费用,其他不收费「键盘、触摸板」,并说很大可能是没有货,电脑时间有些太长了,2014 年的电脑都 7 年了,并建议应该考虑换电脑了。之后问我的意见如何,需要不需要让她下单订购。在听取了专业人员的建议后,综合了之前我浏览的各种自力更生方案,我决定自己试试,感谢了美女之后,我拿起电脑返回家中,开始订购需要更换的物件。

  • 电池
  • 1T SSD 存储
  • 存储转接(卡)头

以上就是需要采购的物件。

电池我是在京东采购的,根据电脑背后的型号先咨询卖家客服,然后下单订购,电池产品中包括更换的工具以及更换说明书,客服也会给你一个如何更换的视频,服务其实挺到位的,价格也比较便宜,电池适配型号,选择上只是选择品牌,这个没什么太多要说的,选择一个经营年限长一些的品牌即可,我在更换后使用良好,截止到目前并没有发现问题。

SSD 存储这个让我有些选择困难,内心是比较倾向于选择三星的,笔记本本身的 SSD 就是三星生产的,可是能用在 2014 年生产的苹果电脑上的三星 SSD 目前没货「停产」,几经考虑最终选择了西数的,主要是我用西数的移动硬盘比较多,也是大厂。选择移动 SSD 要根据电脑,以及参考有过往经验人的推荐,这个可以在购买转接头的时候向客服咨询一下,看看他们的具体推荐,毕竟他们的推荐都是有案例支持的。最终在京东采购了西数的 SN550。

苹果笔记本的 SSD 接口和通常的 SSD 接口不同,需要加装一个转接头「卡」才行,转接头在淘宝搜一下「苹果转接头」,选择买一个就可以,这个比较便宜,选择一个销量多评价不错的即可。

京东的快递效率一如既往的高效,第二天电池和存储就到了,转接头多用了一天,等货到齐之后准备更换,下面是到货后的图片。

一定要注意的是在更换之前要备份数据、备份数据、备份数据,重要的事情说三遍,可使用「时间机器」进行备份,需要准备一个移动硬盘来接纳备份数据。在备份数据这方面多说两句,别忘了在使用时间机器备份的同时,将数据库「比如 MySQL」备份一下,否则数据库就需要从数据文件目录中恢复,这要远比用备份文件恢复复杂和耗时。

电池和 SSD 更换只要胆大心细,千万不能有大力出奇迹的想法,防止静电「电池中有防静电手套」,一般按照操作步骤都是没有问题,我在更换中没有出现问题,顺利完成更换。在更换电池的时候,在拿出老电池的时候要有些耐心,要等溶胶剂充分跟胶接触,不要猛拽,也要小心扎破鼓包的电池。SSD 和 转接头都要推到底,一般会有「咔」的微小声响。

剩下的就是恢复系统了,我没有按照网上说的要用一个 U 盘做一个系统,而是直接使用联网的方式来恢复。同时按住「电源+command+option+R」这四个键等待屏幕上出现一个黑白的地球图标后松手,然后在过程中选择 Wi-Fi,并输入密码,系统就会进行联网恢复,这个过程需要一段等待时间,直到出现「macOS 实用工具」界面。

从实用工具界面选择「磁盘工具」,继续后在磁盘工具左边栏中选择新换的 SSD 硬盘,把它先格式化了,选择 APFS 格式,名称建议跟以前的一样,如果没改就是 Macintosh HD ,分区选择 GUID ,完成后关闭磁盘工具,选择「从时间机器恢复」,在网上的各种说法中有能从这里恢复的,有不能的,不能的居多,一般碰到不能的都是采用 U 盘的方法,我同样也碰到了不能通过「从时间机器恢复」的提示,可是我并没有做 U 盘,我选择「重新安装 macOS Big Sur」完成了从网上的安装,从这点看时间机器在向新硬盘上恢复系统可能多少还有些问题。

安装完毕系统后,然后再用「迁移助理」完成备份的恢复,按照提示并经过等待以后,整个系统顺利完成了恢复,我这里除了 MySQL 数据库和一些服务器的配置之外其他的一切都跟以前一模一样,包括之前所有打开的应用,所不同的是硬盘足够用了,并且速度要比之前快很多,电池也不鼓包了,那久违的上盖吸附力又回来了,也没有碰到网上说的硬盘休眠的问题,又能再战不少年了。

这次更换整体上比较顺利,也有一些失误,总结一下:

  • 应该在采购的物件中增加两项「压缩空气」和毛刷,用于清除灰尘,用的时间长以后多少还是有些灰尘的,我用气筒吹了吹,清理的不是很干净。
  • 数据库要提前备份一下,要不恢复比较耗时,远比从备份中恢复花的时间要长。

最后列一下我在发现电池鼓包以后在网上阅读的一些文档:

  • 换个SSD再战3年,15款MacBook Pro升级1TB SSD,附13-17款升级指南https://post.smzdm.com/p/a783vk9g/
  • Macbook pro 15’ late 2013(A1398型)硬盘升级https://zhuanlan.zhihu.com/p/144419054
  • 15款 MacBook Pro 更换硬盘https://zhuanlan.zhihu.com/p/79265981
  • MacBook 升级 SSD 硬盘指北https://juejin.cn/post/6901549087221514247
  • 从“时间机器”备份恢复 macOS 服务器https://support.apple.com/zh-cn/HT202406

另外 ifixit.com 是个不错的网站,各种拆修可谓之详细至极,可惜不太能友好的访问,除此之外关于换电池的文章主要是在 B 站的视频和油管(访问亦不友好)的视频,这里就不多列了,其实买电池的客服给的视频和电池中的操作说明已经非常详细了,你只是需要确定好自己的电脑型号就行。

在高度集成模块化,并且设备越来越小的现在,动手比起之前越来越少了,于是觉得在为数不多的动手之余应该做个记录,做个留念,这篇记录写完很久了(去年九月中旬),没有放出来是想看看是否运行稳定,是否会出现网上所说的更换后的种种小毛病,比较幸运的是均没有出现,如今差不多换完有半年了,运行良好。

在这期间同学有一台 HP 的笔记本在我的建议下也把机械硬盘更换为 SSD,并且把内存扩至 16 G,按照他的日常使用范畴,继续用个几年是不成问题的,同时也锻炼了他自己的动手能力。这让我想起了很早以前的事情,那时会时不时的去市场转转,然后给台式机升个级,现在想来也是蛮有趣的事情。如今越来越集成的笔记本等电子设备可能不再能很容易的升级了,这可能也少了一些乐趣,不过更多的给人动手锻炼的开发板套件倒是比以前多了很多,也挺好玩,喜欢这方面的朋友可以试试。

本文首发于我的微信公众账号「时间易逝」,欢迎订阅我的微信公众账号
在微信中搜索「doevents」或用微信扫描页面右上方二维码可订阅我的微信公众账号

电子书合集拆分

有些实体书会以套装来售卖,比如在常见电商平台上售卖的《中国科幻基石丛书:三体(套装1-3册)》,也有些在做活动的时候把相关领域内的书集合起来成套出售。在电子书中也是如此,在阅读电子书的时候,我们常常会碰到很多电子书的合集,比如下图的《外研社百科通识文库(世界万象大套装)》,这个套装是由 114 本书组成的电子书合集。

从上面的图片我们可以很容易看到合集的优势:多。当然在多的基础上价格在大多数时候总是会比每一本单独购买少一些,买起来比较实惠。

但这么多本书构成的电子书合集尺寸太大了,像上面这套电子书合集的尺寸大概不到 120 兆(M)的样子,当然还有更大尺寸的(G 级别的)。这在阅读的时候会带来一定的问题,比如在导入阅读工具的时候那是出奇的慢,如果阅读工具容纳不了这么大尺寸都无法导入,有些阅读软件可能还会频繁出现闪退的现象,而且多本书在一起阅读的体验也不好。

既然能够制作成电子书合集,那也应该能按照自己的阅读需要进行拆分,我平常使用的 calibre 这个软件就能轻松完成电子书合集的拆分。先简单介绍一下 calibre 这个软件,这是一款开源并且完全免费的电子书管理软件,在其产品的网站上的介绍是「calibre is a powerful and easy to use e-book manager」,大概意思是说它是一款功能强大且易于使用的电子书管理器。在我看来这个软件基本上提供了针对电子书管理与操作的整体解决方案,能对电子书管理中的方方面面的需求提供支持,而且它支持所有的平台,它在 Windows 平台下运行后是下面这个样子。

日常使用到电子书并且需要管理的朋友不妨下载安装来试试。它的官方网站是(https://calibre-ebook.com),软件提供了很多功能,可在使用中慢慢摸索。我们来看看如何使用它来进行电子书合集的拆分。

拆分书需要在 calibre 中安装一个插件,这个插件名叫 EpubSplit ,安装插件选择上方的按钮菜单「首选项」,在弹出的子菜单中选择「获取用于增强 calibre 功能的插件」。

在弹出的用户插件界面中,在右上角「按名称过滤」中输入 EpubSplit ,就会找到这个插件,双击这个插件进行安装,我这里已经安装,安装完毕后软件会提示重启,重启后就会在上方菜单中看到 EpubSplit 这个插件,它以一个菜单按钮呈现在工具条上。

插件安装完毕后就可以拆分电子书了,这里要注意的是,这个插件只能拆分 epub 格式的电子书,看它的名字也是这样,好在对于其他格式的电子书(azw3、mobi……)可以通过 calibre 这个软件轻松完成转换,这里就不具体说怎么转换了,使用「转换书籍」按钮菜单就能完成各种转换。

选中要拆分的电子书,比如我们这里的外研社 114 本合集这个,然后点击「EpubSplit」按钮,耐心等待拆分界面打开,打开会比较慢,打开后的界面会显示当前选中书籍的所有章节条目,如下图。

我们要做的就是找到你想拆分出来的书的所有条目,然后把它们全部选中,这里以要拆分里面的《建筑与文化》为例,用鼠标左键选中「part0001.xhtml」结尾的条目,滚动鼠标向下或者拖动右边的滚动条,到「part0013.xhtml#CHP11」时,按住键盘「Shift」键的同时鼠标选中它,如下图。

做完以上操作后,选中下方的「New Book」按钮,弹出新生成电子书元数据编辑界面,如下图。

我们可以根据需要填写一些新生成书的信息,比如书名、作者等,填写完信息后选择「确定」就完成了电子书的拆分,拆分出来的这本电子书会保存在 calibre 的书库,下图显示了拆分出来的《建筑与文化》,重复操作就可以把合集中的每本书提取出来。

这里简单的填写了一下书名和作者,简单的随机生成了一个界面,如果要信息更丰富和精准,可对书进行编辑,选择「编辑书籍」按钮即可启动书籍的修改,我修改封面,填写了这本书的概要简介等等,最后我修改完后显示如下面两图。

我选择演示的这个电子书合集比较容易看出每本书都包含哪些条目,这样选择起来相对比较轻松,对于有些电子书合集来说,选出每本书所包含的条目有时候是比较困难的,但仔细观察鼠标放到上面的提示会对我们的选择有所帮助,在条目不是很明朗的时候,我们尽可能的多选择一些条目,然后在编辑的时候在删除掉多余的条目就好了。

使用这个插件拆分电子书其实还是相对很容易的, epub 格式其实就是一个压缩文件,以前我多半会使用解压缩软件,把电子书解压缩后,半手动来完成电子书的拆分,有这个插件方便了许多,如果你有这方面的需求,不妨一试。


本文首发于我的微信公众账号「时间易逝」,欢迎订阅我的微信公众账号
在微信中搜索「doevents」或用微信扫描页面右上方二维码可订阅我的微信公众账号