软件使用技巧

Windows Shell Folder

什么是 Windows Shell

Windows Shell 是 Windows 操作系统的用户界面。具体地说,用户在登录后看到的桌面、开始菜单、任务栏,以及打开资源管理器看到的操作界面都属于 Windows Shell 的一部分。Windows Shell 实现了一套树形组织结构,称作 Shell Namespace。它包含两种基础对象,即「文件」和「文件夹」, 「桌面」是 Shell Namespace 的根对象。

文件夹是 Shell Namespace 树中的节点和容器,它可以包含子文件夹对象和文件对象。Shell Namespace 中的对象可以表示文件系统对象,也可以是虚拟对象,例如,控制面板、回收站、我的电脑(此电脑)、桌面、网络等对象。这些特殊的虚拟文件夹称作 Shell Folder。

……

汉化 foobar2000 的一种方案

PE(Portable Executable)格式是 Windows 下可执行文件的标准格式。PE 文件中包含菜单、对话框、字符串等资源数据。汉化的原理就是使用 Resource Hacker 或 eXeScope 等 PE 文件资源编辑软件,用中文替换掉资源中的英文。

然而,foobar2000 的菜单并没有使用资源的方式保存在 PE 文件中,也未使用字符串资源。除了部分对话框资源可以用资源编辑器行汉化之外,其余诸如菜单、按钮、列表等,均无法采用上面的方法进行汉化。这些用户界面上的字符串都是以静态数据的方式保存在 .rdata 节中。现在需要定位这些 PE 文件中的静态字符串。用十六进制编辑器打开 foobar2000.exe 文件,可以看到这些字符串。但是手工定位非常繁琐,可以采用 strings 命令来简化操作。

……

配置音乐播放器 foobar2000

foobar2000 是一款老牌的免费音乐播放器,作者是 Winamp 开发组 Nullsoft 的成员。它的特点是界面简洁(陋),并提供丰富的解码器和插件,可配置性高。也正因为如此,这款播放器在没有配置的情况下用起来并不趁手。虽然网上有各种爱好者发布的开箱即用的打包版本,不过出于安全性考虑,不建议使用这些第三方发布的版本。

安装播放器

官网下载地址:https://www.foobar2000.org/download,当前最新版本是 1.6.9

……

Windows 包管理工具

几乎每个 Linux 发行版都会自带包管理工具,比如 CentOS 的 yum、Debian 家族的 apt、Arch Linux 的 pacman 等;此外,FreeBSD 系统有 pkg 和 ports;macOS 上有 Homebrew。而 Windows 长久以来都是通过安装包来进行软件分发部署,官方没有提供任何包管理工具,且 Win 10 自带的微软应用商店一直被人诟病。直到 2020 年,微软通过抄袭另一款开源 Windows 包管理工具 AppGet 之后,开发出了一款叫做 WinGet 的包管理工具,但微软的这款工具只能运行在 Win 10 系统上。令人遗憾的是,由于微软的抄袭行为,AppGet 的作者已经停止维护这个项目。

……

解决 curl 无法获取本地发行者证书问题

问题

当使用 curl 命令打开 HTTPS 网站,比如:

shellcurl -sSL https://www.github.com/

显示如下错误:

curl: (60) SSL certificate problem: unable to get local issuer certificate

根据错误信息可以得知,问题是 curl 找不到本地的 CA 证书所导致。

解决方案

首先,下载 CA 证书:https://curl.se/ca/cacert.pem

  1. 不验证 TSL 证书:
    • liburl:curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    • 命令行:添加参数 -k--insecure
  2. 指定 CA 证书:
    • liburl:curl_easy_setopt(curl, CURLOPT_CAINFO, cacert);
    • 命令行:添加参数 --cacert /path/to/cacert.pem
  3. 使用环境变量(仅命令行):set CURL_CA_BUNDLE=/path/to/cacert.pem
  4. 对于 Windows 下的 curl 命令,将 cacert.pem 重命名为 curl-ca-bundle.crt,并保存到以下路径之一:
    1. curl.exe 命令所在路径;
    2. 当前工作路径;
    3. Windows 系统路径(C:\Windows\system32);
    4. Windows 路径(C:\Windows);
    5. 任意 %PATH% 路径。
    搭建 iOS 平台的个人通知推送服务

    Bark 是一款可以给 iOS 系统推送自定义通知的开源应用,用户可以通过 HTTP 接口向自己的手机或者 iOS 设备推送消息。应用内置了公共服务器,软件作者也提供了开源的服务端用于搭建个人推送服务器。此外,还可以通过 Chrome 浏览器扩展来调用推送接口。

    部署服务端

    应用内置了公共服务器,如果你没有隐私方面的需求,可以直接使用公共服务器进行推送。但是为了稳定性和私密性,建议自己搭建服务器。

    ……

      使用 GitHub Actions 自动部署 Hugo 站点

      一直使用 Hugo 来生成静态网站,并通过 Travis CI 来自动化部署到 GitHub Pages。今天偶然得知 travis-ci.org 将于五月底关闭,正好趁此机会用 GitHub Actions 来替换 Travis CI。

      创建代码仓库

      首先按照文档创建 GitHub Pages 站点。该仓库可见性必须是 Public。

      另外创建一个仓库用来存放 Hugo 的源文件,名称随意,这里假设仓库名叫 pages-hugo-source。建议将仓库可见性设置成 Private 以保护好你的源代码。

      ……

      Chrome 启用并行下载实现下载提速

      Google Chrome 浏览器默认使用单个 TCP 连接进行下载。可以在设置里启用 Parallel downloading (并行下载)选项来实现下载提速。

      1. 在 Chrome 地址栏内输入 chrome://flags/#enable-parallel-downloading 并回车;
      2. 在右侧下拉菜单中选择 Enable
      3. 点击右下角的 Relaunch 按钮重启浏览器使设置生效。
      snapshot
      不要迷信卢曼卡片盒方法和双向链笔记

      卡片盒笔记方法是一种通过扁平化的链接来组织笔记的方法。事实上,卡片盒笔记也并非完全扁平化的,也存在结构化的索引表和枢纽笔记。

      双向链就是一种 trackback。简而言之,即A通过链接连接到B,那么B将自动生成对A的反向连接关系,当用户访问B时,也可以通过反向连接关系来回溯到A,从而让笔记系统形成一个可遍历的无向图。

      graph

      ……

        笔记软件 Cherrytree 试用体验

        Cherrytree 是一款支持多平台的笔记管理软件。软件支持树状分级和标签管理,数据以 XML 或 SQLite 格式保存。

        Cherrytree

        ……