2023.09.14
早上起不来,感觉这一晚将将把缺失的觉给补上了。哈妹也起不来,多半是因为她一晚在大床睡的不舒服。今天是八点半才到的学校。
上午会议,BYS 加上 Sprint。下午继续完善 KML 的 workaround。傍晚带哈妹跳舞,临结束小眼也来了,结束后去吃饺子,哈妹吃很多。
哈妹带的鸡蛋和盐,是做了盐水浮鸡蛋的实验,明天要带两朵花。
早上起不来,感觉这一晚将将把缺失的觉给补上了。哈妹也起不来,多半是因为她一晚在大床睡的不舒服。今天是八点半才到的学校。
上午会议,BYS 加上 Sprint。下午继续完善 KML 的 workaround。傍晚带哈妹跳舞,临结束小眼也来了,结束后去吃饺子,哈妹吃很多。
哈妹带的鸡蛋和盐,是做了盐水浮鸡蛋的实验,明天要带两朵花。
昨晚2点才睡,有个下载的脚本没跑通,加上 Apple 秋季发布会,便晚了。说到 Apple 发布会,我现在是不怎么感兴趣了,不管是新品还是新系统。
今天早上当然起不太来,白天倒没有太困,只是到晚上9点多,给哈妹读书时才感觉到了无比的困意。
今天把 KML 解析的内容基本都跑通了,用的是 SharpKML 这个第三方库。另外,今天也在想如何给音频添加封面图和歌词,便了解到了 ID3 tags,后面看看能如何用起来。
今天起的早,5点不到便醒来且起来了,学习了第一节 fast.ai 的深度学习课程。
哈妹今天也起的早,7点不到,我买完牛奶到家,看到她在房间闲逛。
今天工作上没做成什么,尝试解析 KML 但是还没想出一个好的方案,明天继续研究一下吧。下午没去打羽球,而是总结了一下之前一直在看的 pym book。
白天重新用起来了 1001 albums generator,晚上注册使用了 claude.ai。
把这个时间写下来才发现今天是一个特别的日子呢。
早上哈妹起的很晚,但她依旧很困,困到不想上学。在一番「拉扯」中,她还是没去上学,在家待了一天。晚上回来问她时,她觉得在家待得很开心,并且,如果有的选的话,她还想在家玩儿。
白天计划的两项工作只做了一项,所幸这一项也算是做完了。中午听完了《xAI vs OpenAI 背后,揭开马斯克和 Altman 竞逐硅谷「顶流」的隐秘战争》,不仅是故事本身很有意思,播客主也把故事讲的很有趣。
晚上哈妹在家跳了会舞,早早的去完澡,然后学了字母 F。今天给她读了苏斯博士的《Green Eggs And Ham》,朗读起来很好玩儿。
今天雨终于停了。
上午带哈妹去画画,今天的主题是瓶瓶罐罐。
下午一家人去逛了阔别十年再次回归的「地坛书市」,淘了几本进口原版旧书。回来后,我狠狠的睡了一觉,到天黑。
晚上哈妹和蔻蔻姐姐打电话,两个人能聊蛮久。睡前学了字母 L,并重拾了数学。
今天大雨,到下午才小一些。
上午在家待着。下午,和几个同门,去学校看了下老师,然后一起吃了晚饭。
今天,雨,早上下,晚上下。
白天主要是在尝试如何在本地去跑 Llama,以及一些微调相关的内容。网络不太好,模型文件到下班时都还没下完。今天中午终于是把 Scoop 的博客发出来了,算是了了一件事。
下午哈妹去体验了街舞,看视频她跳着还挺开心,然后一家人去吃了烤鱼。雨一直在下,稍微等了会后,还是决定淋着雨回家。
最近在公司申请了一台新的机器,Dell Precision 5820。在新申请时,就有想法在安装软件时,尽量通过脚本来一键安装。
一开始是打算通过 Shell 脚本来做,偶然间看到 CS 自学指南里介绍的 Scoop,便决定好了在安装新机器时通过 Scoop 来完成这件事情。那,这篇文章就是对这件事情的一个总结,为装机这件事画上一个句号。
Scoop 是一款适用于 Windows 的命令行安装程序,可以帮你统一安装和管理常用的应用程序。
Scoop 就相当于 macOS 或 Linux 上的 Homebrew,这个项目本身也是受 Homebrew 的启发。有意思的一点,他们的域名也是高度一致:brew.sh vs scoop.sh
Scoop 的脚本可编程性很高,可以按需配置并能一键安装应用程序,这也是我为什么会使用它来安装常用软件的原因。
在 Windows 上,还有其他的通过命令行来完成软件安装和管理的工具,如微软出品的开源 Windows 包管理器 winget,商用的 Chocolatey。他们之间最大的区别在于 Scoop 是默认将软件安装(解压)在 ~/scoop/ 文件夹内,不需要管理员权限去修改注册表等内容,具体可以参考 Chocolatey-and-Winget-Comparison。
Scoop 依赖于 Powershell,在安装 Scoop 前需确保有最新的 Powershell。
先配置一下 Powershell 的安全模式:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
然后通过 Powershell 的 cmdlet 命令来安装 Scoop 本身:irm get.scoop.sh | iex
irm: Invoke-RestMethod 的一个别名,是 PowerShell 中用来处理 HTTP 请求的 cmdletiex: Invoke-Expression 的别名,是 Powershell 中用来识别字符串命令并运行该命令的 cmdlet安装好 Scoop 后,就可以通过 Scoop 命令来安装其他的软件了。这里列出几个常用的命令,详细的可以看 Scoop 的 Quick Start · ScoopInstaller/Scoop Wiki (github.com)
scoop help # find app scoop search curl # install app scoop install curl # update app scoop update curl # update scoop scoop update
在 Scoop 里有几个概念,其中最主要的是 apps 和 buckets。 apps 比较好理解,就是我们想要通过 Scoop 安装的软件。而 buckets 呢,是存放 apps 的仓库,是人为做好分类的一个软件集合,比如 main, extras 等。它们的关系就相当于书和书架的关系。
Scoop 网站提供了一个搜索工具来帮助我们来查找 scoop 已有的 buckets 中是否包含我们所需的软件。

在安装应用程序时,一定要利用上 aria2 这个工具,能让你的安装速度快上好多好多倍。aria2 是一款轻量级的多协议、多源、跨平台下载工具,采用命令行方式运行,其特点就是主打一个超快。
scoop install aria2 scoop config aria2-warning-enabled false
因为可以通过命令行来完成安装,那么我们就可以尝试把这些命令行放在一起,来完成批量安装了。
在 Scoop 的帮助页面有一个示例的脚本,通过这基本就能知道怎么去定制化自己的安装脚本了。
这里有几个需要注意的点:
在这次安装新机时,我也把自己在 Windows 上使用过的软件做了一个整理,并尝试制作了自己的 Scoop 脚本。
# filename: my-windows-apps.ps1 (can be run via Powershell)
# setup examples: https://github.com/ScoopInstaller/Scoop/wiki/Example-Setup-Scripts
# search apps from https://scoop.sh/#/
# check if scoop is installed
if (-Not (Get-Command scoop -ErrorAction SilentlyContinue)) {
Write-Host "Scoop is not installed, we're installing it."
# install scoop
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# if you want to use a proxy that isn't already configured in Internet Options
[net.webrequest]::defaultwebproxy = new-object net.webproxy "http://proxy.esri.com:8080"
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
# irm get.scoop.sh | iex
} else {
Write-Host "Scoop is installed already."
}
## preparation of requirements
scoop install main/git
# a workaround for bucket add with proxy
# scoop config proxy ':@proxy.example.org:8080'
scoop bucket add extras
scoop bucket add versions
scoop bucket add sysinternals
# change to use the proxy normally
# scoop config proxy proxy.example.org:8080
# utilize aria2 to use multi-connection downloads
scoop install aria2
scoop config aria2-warning-enabled false
# utils
scoop install 7zip curl sudo git openssh coreutils grep sed less wget
# programming languages
scoop install dotnet-sdk extras/windowsdesktop-runtime extras/vcredist2022
scoop install python ruby go
# install nodejs with nvm
scoop install nvm
nvm install lts
nvm list
# scoop config rm proxy
# programming editors
scoop install neovim extras/vscode extras/sublime-text
# programming tools
scoop install extras/snoop extras/postman extras/linqpad extras/winscp extras/sqlitebrowser
# my utils - first
scoop install extras/irfanview extras/quicklook extras/listary sysinternals/zoomit
# my utils - second
scoop install extras/notion extras/logseq extras/obsidian
scoop install extras/qtranslate extras/ditto
# Failed in my last installation
scoop install extras/googlechrome
# my utils - third
scoop install extras/spotify extras/discord
scoop install extras/mypaint extras/gimp extras/inkscape
scoop install vlc extras/obs-studio extras/handbrake extras/screentogif ffmpeg
# console theme
scoop install concfg pshazz
concfg import solarized small
# vim
scoop install vim
'
set ff=unix
set cindent
set tabstop=4
set shiftwidth=4
set expandtab
set backupdir=$TEMP
' | out-file ~/.vimrc -enc oem -append
有一些软件并没有在 Scoop 提供的 buckets 中,目前我自己是手动安装的那些软件。完全可以自己做一个 app manifest 来完成那些不在 buckets 中的软件,这暂且作为我的一个作业吧。
首先,很开心有了新电脑,也为自己能有这样的尝试感到高兴。在制作自己的脚本过程中,也用到了一点 Powershell 脚本相关的东西,而这也是我接下来要去学习的内容。
我还要继续去研究 Scoop,尝试更深入的了解它,并推广开来。
早上的 Speak 内容对哈妹有点难,她对我说:「你白天晚上就是要惹我生气」。因为,她念了几遍不太对有点「生气」了,加上昨天想给她读 《Brown Bear...》但是她十分抗拒。
我今天工作比较专注,连着解决了好几个 Style 相关的问题。上午看了部分 Starfall 的 Homeschoolers’ Guide - Read Me First,有很多可以照着去准备的。
下午带哈妹去跳舞,到教室后老师跟我们说怎么这么早就来了,一番交谈后才知道原来是又改回原来的时间了。我和哈妹便去吃了个披萨,再去跳舞了。跳完正好小眼也回来了,一起吃完饺子,然后在河边散了下步。
七点半才起来,八点二十到学校,九点半到公司。
背完单词后工作,今天在处理的一个新内容是 MultilayerSymbol,这一天也就做了这一件事情。
小眼晚上跟同事在外面吃,哈妹和外婆在琉琉家玩,我回来煮了包泡面。