Clay 的技术空间

用进废退 | 艺不压身

前言

网上各种 Hexo 站内静态搜索(全文搜索)方案,原理基本都是通过 Hexo 插件动态生成 JSON 数据文件,然后基于 JSON 数据文件,使用 JS 开发简单的搜索引擎,以此达到搜索目的。目前主流的方案是使用 NexT 主题集成的 hexo-generator-searchdb 插件,可惜该方案的 UI 代码和 JS 代码都严重耦合了 NexT 主题,对其他 Hexo 主题并不友好。由于笔者的博客使用的是 Yilia 主题,因此只能尝试其他替代方案,最终发现 Tipue Search 配合 hexo-tipue-search-db 实现的搜索效果挺不错。Tipue Search 是一款 JQuery 搜索插件,提供了基础的 UI 界面 和 JS 搜索引擎,只要浏览器支持 JQuery 就可以开箱即用,而且 UI 样式支持高度定制,非常适合对搜索界面有强自定义需求的使用场景。这里值得注意的是,上面介绍的站内静态搜索方案都存在共同的致命弱点,那就是当文章数量比较多的时候,Hexo 插件动态生成的数据文件的体积会很大(单位:MB),导致用户首次加载搜索界面时非常慢;而且由于浏览器缓存的缘故,不一定能够实时搜索到最新的文章内容。此时若想从根本上解决上述痛点,只能引入后端的搜索引擎技术,例如 Elasticsearch、Solr、Lucene 等,可这又违背了 Hexo 打造静态博客的初衷。附上本站 Tipue Search 的演示案例

Hexo 安装插件

插件安装

hexo-tipue-search-db 插件主要用来生成搜索引擎需要的 JS 数据文件(tipuesearch_content.js),默认存放的文件路径为: ${blog_root}/public/tipuesearch/tipuesearch_content.js,该插件兼容 Tipue Search 7.1 +。

1
2
3
4
5
# 进入博客的根目录
$ cd ${blog_root}

# 安装Hexo插件
$ npm install hexo-tipue-search-db --save
阅读全文 »

前言

笔者曾在文章”CentOS 7 安装常用桌面软件 “中,推荐使用 electronic-wechat 作为 Linux 微信客户端,可惜在 CentOS 7 环境下的长期使用体验比较一般,例如接收到消息时无声音提示,且微信的托盘图标不会闪烁,同时由于 electronic-wechat 是在 Web 版微信的基础上开发的,这就导致新注册的微信账号登录受限,最终无法使用。经过一番尝试,发现 CrossOver 可以近乎完美地安装微信,而且运行的是微信官方原生的二进制执行文件。本教程适用于 Debian/Ubuntu/CentOS 系的 Linux 发行版,文章末尾附有微信运行的最终效果图

软件版本说明

  • CrossOver: 19.0.0
  • 微信 PC 客户端: 2.7.1.88
  • CrossOver 容器: WinXp-64-bit
  • Linux 系统的输入法:搜狗输入法 For Linux 2.2.0.0108

CrossOver 安装运行微信遇到的坑

CrossOver 安装微信的过程中可能遇到了以下问题,本文后面会详细一一给出对应的解决方法:

  • 微信启动时偶尔崩溃
  • 启动微信提示 WeChatWin.dll 文件缺失
  • 微信的输入框无法显示光标与文字,只能复制黏贴
  • 微信屏幕截图后,无法直接发送图片
  • 微信的输入框无法使用搜狗输入法(Linux 版)输入中文
阅读全文 »

前言

本教程主要介绍如何通过 Docker 安装和使用 TesterSunshine/12306 抢票软件,并配合使用本地的打码服务。

TesterSunshine/12306 抢票软件的功能

  • 自动打码
  • 自动登录
  • 准点预售和捡漏
  • 智能候补
  • 邮件通知
  • Server 酱通知
阅读全文 »

前言

本文主要介绍 Py12306 抢票软件的手动安装和 Docker 安装过程,适用于 Centos/Debian/Ubuntu,目前主流开源的 12306 抢票软件有:testerSunshine/12306pjialin/py12306

Py12306 抢票功能介绍

  • 多日期查询余票
  • 自动打码下单
  • 用户状态恢复
  • 电话语音通知
  • 多账号、多任务、多线程支持
  • 单个任务多站点查询
  • 分布式运行
  • Docker 支持
  • 动态修改配置文件
  • 邮件通知
  • Web 管理页面
  • 微信消息通知
  • 代理池支持 (pyproxy-async)
阅读全文 »

Atom 解决在线安装或更新插件慢的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 方法一(配置代理,推荐使用)

# 配置Atom代理
$ vim ~/.atom/.apmrc
strict-ssl=false
proxy=http://127.0.0.1:8118
http-proxy=http://127.0.0.1:8118
https-proxy=http://127.0.0.1:8118

# 检查安装环境
$ apm install --check

# 更新插件,并查看使用代理后,APM发出的更新请求是否都经过了代理
$ apm update --verbose
阅读全文 »

前言

在加速百度搜索引擎收录站点方面,百度站长目前提供自动提交链接和手动提交链接两种方式,其中自动提交又分为主动推送、自动推送和 sitemap 三种形式。按百度的说法,主动推送的效果最好,百度站长平台后台提供了 CurlPHPRuby 的推送示例代码,但唯独没有提供 Python 示例代码。本文会给出现成的 Python 版本主动推送代码,系统环境依赖 Linux,软件环境依赖 Python3Curl

Python3 代码

以下代码会读取特定域名下的 sitemap 站点地图文件,然后通过 Curl 命令将站点地图文件中合法 (结尾为 .html)的 URL 批量提交给百度站长平台,请自行替换代码中的 domaintokensite_map_url 变量值。

阅读全文 »

前言

CentOS 7 将在 2024 年 6 月 30 日停止支持。

发布时间

CentOS 8 在 2019.9.25 正式发布,提供了两个版本,分别是 CentOS 和 CentOS Streams,Linux 内核版本为 4.18。其中 CentOS Stream 是一个滚动发布的 Linux 发行版,它介于 Fedora Linux 的上游开发和 RHEL 的下游开发之间而存在。可以把 CentOS Streams 当成是用来体验最新红帽系 Linux 特性的一个版本,而无需等太久。CentOS 8 不支持 在 CentOS 7 的基础上进行大版本升级,因此 CentOS 8 只支持全新安装。截止 2020 年 12 月 9 日,CentOS 官方团队正式宣布 2021 年后将停止更新 CentOS 8,转而将更多的精力放在 CentOS Stream 上,也就是说以后不会再有 CentOS 9、CentOS 10,但 CentOS 7 的长期技术支持时间将不会改变,依旧会延续到 2024 年。

软件仓库

引入了两个新的软件仓库,分别是 BaseOS 和 AppStream,其中 BaseOS 包含所有底层 OS 包,AppStream 包含与应用程序相关的包、开发工具、数据库和其他包。换句话说,BaseOS 仓库拥有组成操作系统核心的传统 RPM 包。一旦你更新了系统,它会自动下载并安装这些包的任何新版本。然而有时候你可能不想批量升级软件,因为它可能会在你希望保持稳定的环境中导致兼容性问题(例如在测试代码时)。AppStream 是对传统 rpm 格式的全新扩展,为一个组件同时提供多个主要版本,这就是为什么新的 CentOS 8 新增了 AppStream 仓库。

软件更新

使用 YUM 包管理器 4.0.4 版本,该版本现在使用 DNF (Dandified YUM) 技术作为后端。DNF 是新一代的 YUM,且 CentOS 8 允许同时使用这 dnf 和 yum 两种工具来管理包。与 DNF 技术集成后,提高了性能,具有定义良好的 API,并支持模块化内容、云应用程序流、容器工作负载和 CI/CD。

阅读全文 »

系统环境

1
2
Fedora release 30 (Thirty)
Linux Fedora30 3.10.0-1062.1.1.el7.x86_64 #1 SMP Fri Sep 13 22:55:44 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Flatpak 安装

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装flatpak
# yum install flatpak flatpak-builder

# 添加flathub仓库
# flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# 添加GNOME稳定版的仓库(已失效)
# wget https://sdk.gnome.org/keys/gnome-sdk.gpg
# flatpak remote-add --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/
# flatpak remote-add --gpg-import=gnome-sdk.gpg --if-not-exists gnome-apps https://sdk.gnome.org/repo-apps/

# 添加GNOME每日构建版的仓库(最新)
# flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
阅读全文 »

Flatpak 介绍

Flatpak(前世为 xdg-app)是一种用于构建、分发、安装和运行应用程序的技术,类似的应用程序容器技术还有大名鼎鼎的 SnapAppImage。它主要针对的是 Linux 桌面,通过在沙箱中隔离应用程序来提高 Linux 桌面的安全性,允许应用程序安装在任何 Linux 发行版上,而且支持用户在同一个系统中安装同一应用程序的多个版本。如果需要更多的 Flatpak 应用,可以从 Flathub 应用商店直接获取。

Flatpak 安装

1
2
3
4
5
6
7
8
9
10
11
12
13
# 安装flatpak
# yum install flatpak flatpak-builder

# 添加flathub仓库
# flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

# 添加GNOME稳定版的仓库(已失效)
# wget https://sdk.gnome.org/keys/gnome-sdk.gpg
# flatpak remote-add --gpg-import=gnome-sdk.gpg gnome https://sdk.gnome.org/repo/
# flatpak remote-add --gpg-import=gnome-sdk.gpg --if-not-exists gnome-apps https://sdk.gnome.org/repo-apps/

# 添加GNOME每日构建版的仓库(最新)
# flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo
阅读全文 »

Zsh 介绍

Shell 是在开发人员与服务器间建立一个桥梁,它对外提供一系列命令,让我们得以控制服务器。常用的 Bash 就是 Shell 的一种,也是 Linux 下默认 Shell 程序。Zsh 属于 Shell 中的一种,但比 Bash 好用,而且完全兼容 Bash,拥有及其丰富的插件、强大的命令自动补全能力、以及自定义功能,可以大大提供使用 Linux 的效率。

Zsh 安装

1
2
3
4
5
6
7
8
# 安装依赖
# yum install git curl wget

# 查看是否存在zsh
# cat /etc/shells

# 如果zsh不存在,则安装zsh
# yum install zsh

本地 Shell 切换到 Zsh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 以下操作,不同的Linux用户需要单独安装或者配置(YUM操作除外)

# 查看当前shell
# echo $SHELL

# 切换shell到zsh
# chsh -s /bin/zsh

# 重启系统
# reboot

# 查看当前shell是否切换成功
# echo $SHELL

# 默认的zsh配置文件(自动生成):~/.zshrc

# 提示:切换到zsh后,以前在bash shell里添加的环境变量(~/.bashrc)可能会失效,此时需要在zsh的配置文件(~/.zshrc)中重新添加相关环境变量
阅读全文 »