因为电脑空间告警,所以用 Clean Me 这个应用对系统进行了一次清理,没想到的是,可能在我误操作的情况下把我系统的设置和全部软件的设置都给清空了。我所有的系统配置都恢复了初始的状态,让我使用起来非常变扭,我在之前有写过一篇 MacBook 初始化和应用安装 的文章,但是那篇文章写的比较啰嗦,索性就重新整理一下。
下面的内容会按照常用的功能来划分。
首先在 Input Sources 中添加 Rime 输入法。
Touch Bar 设置成默认 Fn 键
Touch Bar shows -> F1, F2, etc. Keys
在 Shortcut 中将 Spotlight 的快捷键取消,因为我使用 [[Raycast]]。
在设置 Desktop & Dock 设置的时候看到了一个新的设置 Stage Manager,查了一下是 macOS 最早在 iPad 上引入的多窗口管理方式。
Stage Manager 基本是一个单窗口模式,点击一个应用就会集中到该窗口上,其他的应用会被移动到左边。用户可以将应用拖入到当前的工作区中,然后形成多个应用窗口的组合。
说实话我不知道 Apple 在 macOS 桌面版引入这样的窗口管理模式的目的,只是为了配合 iPad 触摸屏的操作方式?虽然我承认 macOS 上的窗口切换本来就有很多问题,我是通过
过去的一个月里面 EV Hosting 陆陆续续更新了共享主机服务,域名注册服务,现在因为我自己使用域名邮箱一直也在使用域名邮箱,所以现在也推出了域名邮箱服务。
很早之前就想给自己的网站弄一个自定义的域名邮箱发发验证码,邮件通知之类的,就了解了一下域名邮箱的服务。我自己之前就尝试过国内的一系列的域名邮箱,但后来这种限制(绑定电话,限制发件)就不再使用了,之前的网站我是自己注册了一个 Gmail SMTP 发件,虽然没遇到什么大的问题,但 Gmail 还是有一些发件限制的(每 24 小时不能超过 500 封)一旦超过,可能 Gmail 收发件都会收到影响。另外我还调研 了其他的一些邮件发送服务,但是最开始的时候,我就没有想使用大公司的服务(虽然 AWS 好像提供一个月上万的邮件发送额度,我还是没有考虑)。中间还考虑过自建域名邮箱 Mailu, Mailcow 对于接受邮件来说没有任何问题,但是对于发信来说,还是依赖于服务器的 IP 地址的权重,所以最后我还是将发信迁移到了 MXRoute,我体验了一段时间之后觉得不错,所以也申请了一个转售,现在在 这里 购买使用 EV_MAIL 折扣码可以获得 6 折优惠,最低 30 元一年。后台使用的 DirectAdmin 面板,购买后配置几条 DNS 记录就能直接开始用了。注意不要发送垃圾邮件。另外每小时发送 300 封的限制只存在每个邮箱,也就是注册邮箱,通知邮箱可以单独开来以提升发件的限制,这对于我来说以及完全足够了。
为了让大家快速体验这个域名邮箱托管服务,现在设置了一个体验套餐 只需要 24 元就可以购买入门的套餐,包含 500 MB 空间,一个域名,一个子域名,每个邮箱可以享受每小时 300 封邮件的发信。
共享的域名邮箱服务由 [[MXRoute]] 提供服务,使用 [[DirectAdmin]] 控制面板,在购买之后会收到一封叫做「您的自定义域名邮箱帐号信息」其中包含了使用该邮箱的具体信息。
使用自定义域名邮箱一般需要设置几条 DNS 记录。
所有具体的配置教程 可以参考 EV Hosting 的知识库 所有配置的详情都可以从收到的邮件中获得。
当完成配置之后,就可以在 DirectAdmin 界面中创建邮箱,然后进行邮件的收发了。
在写这篇读书笔记的时候去豆瓣看了一眼,我才发现我已经将这一本书加入待看列表,将近 10 年了,早已经忘记了当时是怎么知道的这一本书,又是为何把这本书加入到了待看清单。
在进入《非暴力沟通》之前要先了解什么是暴力,认识暴力,有助于理解非暴力。
我们常常认识不到自身的暴力,常常以为只有打人、鞭挞、杀人以及战争才算是暴力。相比于身体上的暴力,造成精神伤害的,那就是「隐蔽的暴力」。而隐蔽的暴力往往更加伤害更大。
非暴力主张积极进取,而非消极无为。
非暴力意味着让爱融入生活。让尊重、理解、欣赏、感激、慈悲和友情,而非自私自利、贪婪、憎恨、偏见、怀疑和敌意,来主导生活。
非暴力生活的关键就是感激生活的赐予,而不贪心。
非暴力沟通让我们转变谈话和聆听的方式。
四个要素(表达自己):
当我们说「我觉得」,常常并不是在表达感受,而是在表达想法。
建立表达感受的词汇表。
一旦人们开始谈论需要,而不是指责对方,就可能找到办法来满足双方的需要。
请求和命令的区别在于,请求没有满足时,提出人如果批评和指责,那就是命令
如果一个人想要别人了解他的处境,听到的却是安慰和建议,那么就有可能觉得不舒服。
就像在看新闻的时候去区分事实和观点一样,看完这一本《非暴力沟通》,我对书中阐述的非暴力沟通四要素倒是没有太多的关心,但是作者在行文过程中将影响这四个要素的一些细微的差别说了出来。区分观察和评论,区分感受和想法,区分请求和命令
不懂得如何表达的人。
Drift 是一个可以自行架设的 Gist 代替。使用 [[Next.js]] 13 和 React Server Components 编写。
Drift 发布了一个官方的 Demo
分享的文件页面内容
目前官方还没有发布编译好的 Docker 镜像,需要自己编译部署。但是也非常简单。
拉取官方的代码
git clone https://github.com/MaxLeiter/Drift.git
cd Drift
docker-compose build
目前为止因为项目还在开发过程中,编译过程可能会出现一些问题。
编译完成直接运行下面的命令即可。
docker-compose up -d
虽然我把其他服务陆陆续续从 Google 迁移出来,但 Google Analytics 一直都运行良好所以也没有怎么管,但 Google Analytics 到今年年中的时候会强行升级 GA4,看了一下升级的过程和 Google Analytics 的操作实在太复杂,就诞生了迁移出 Google Analytics 的想法。简单地了解了一下目前的 Google Analytics 的代替品,收费的,自行架设的还很多选择。这篇文章就简单地对比一下。
主要还是分成两个部分来划分搜罗的产品,可以自行托管的,和商用的。看过我之前文章的小伙伴应该知道,我个人会偏向于开源,可自行托管的服务。即便这个服务还在初始阶段可能还比不上某个商业化的服务,但我依然会选择开源的那个,比如我会选择 [[Wallabag]] 更甚于 [[Pocket]] 和 [[Instapaper]],我会选择 [[miniflux]] 更甚于我过去常常推荐的 InoReader。如果实在找不到合适的开源的,我会优先选择数据归属权在于个人的服务(比如数据不联网,存在本地,可以使用纯文本或有格式的类型导出数据),比如 Obsidian 更甚于 [[Notion]] 和 [[Roam Research]] 以及一切基于网页的笔记应用。
可 Self-hosted:
不可自架,闭源
下面就重点介绍一下我准备去试试的几个服务。
Umami 是一个可以自托管的数据统计服务,可以用来代替 [[Google Analytics]]。 “Umami”,源于 “Umai”,在日语里是“美味、鲜味”的意思。
Matomo (原名 Piwik)是一款使用 PHP 编写的网站访问统计分析工具,开源,可自行架设,可以很好的代替 [[Google Analytics]] ,Matomo 使用 PHP 和 MySQL 实现,已经被超过 100 万网站所使用 。
Matomo 非常强大,并且只需要一来 PHP 和一个数据库,并且其报表分析非常强大。
Fathom Analytics 是一个 [[Google Analytics]] 的代替。Fathom Analytics 是一个基于加拿大的团队推出的服务。
Fathom Analytics 是一个官方推出的 SaaS 平台,是一个收费的商业服务。如果不想使用官方的,也可以利用 Fathom Lite 自己搭建服务。
Fathom Lite 主要是使用 Go 语言 和 JavaScript 编写。Fathom Lite 和 Analytics 的区别可以参考这里。
Plausible 是一个简单的 [[Google Analytics]] 代替。Plausible 是使用 [[Elixir]] 语言编写的,我最早知道这个服务是在 Twitter 上偶然之间看到了创始人分享如何想要找到一个 Google Analytics 代替,然后自己做,最后到如何打造成为一个 SaaS 产品,支撑自己的全部生活的成功故事。
shynet 是一款使用 Python 编写的网站流量分析工具。
Ackee 是一个关注隐私的开源(基于 MIT 协议)网页分析工具,采用轻量级的 Node.js 和 MongoDB 架构,接口使用 [[GraphQL]]。
Ackee 界面简洁美观,采用匿名数据采集的方式,分析你网站的流量并在最小的界面中提供有用的统计信息。对于不需要像 Google Analytics 或 Matomo 这样的全功能营销分析平台的个人来说,是一款非常不错的工具。
除了浏览了一下官网和 GitHub 页面,没有对这些产品更进一步的了解了,但是我个人感觉 Umami 还不错,页面简洁,功能也满足我的使用。然后后端数据库支持 PostgreSQL 和常用的 MySQL,并且浏览了一下帮助文档,发现还支持 PlanetScale ,并且资源消耗也比较小,所以立马 Docker 搞起,创建数据库连接字符串,然后直接拉取镜像就能起来,配合 HestiaCP 申请一个 SSL 证书很快就搞定了。
it-tools 是一个使用 [[Vue.js]] 和 TypeScript 编写的常用 IT 工具的集合。
it-tools 项目中集成了如下的工具:
使用 Docker 镜像可以很快的安装上。更加具体的 docker-compose.yml
可以见这里
git clone https://github.com/einverne/dockerfile.git
cd dockerfile/it-tools
docker-compose up -d
it-tools 也可以作为一个很好的学习 Vue 和 TypeScript 的项目,给这个项目贡献一个常用的工具库,用 Vue 绘制界面可以很好的上手 Vue 的使用。
EV Hosting 上线了域名注册服务,现在可以在 EV Hosting 选购超过 20 种的域名后缀,包括了常见的 .com, .org, .me, .info 等,还上线了 .fun, .life, .studio, .store 等等新的顶级域名。域名的价格在不同时期会略有不同。
在目前阶段,.fun, .pw, .life, .shop, pics, .studio, 等等域名只需要 20~30 元不等就可以购买一年。但是域名的续费一般会比较贵,可以酌情考虑不同的域名后缀。EV Hosting 也会在不同时间提供最优惠的域名注册服务。
请注意购买域名之前,保证自己的注册邮箱是能够接收邮件的,在注册完成之后会受到一封验证邮件,域名注册局在第一次购买时需要验证该邮箱的使用。
在下一个页面中进行支付。
完成付款之后在「我的域名」中就能看到购买的域名。
在 EV Hosting 中,点开对应的域名,可以在侧边栏中修改 NS 名称服务器(Name Server)。
本站提供的四个名称服务器可以在这里 查看(仅注册用户可见)。
更推荐将域名添加到 Cloudflare 后台进行管理,访问 Cloudflare 后台,然后将域名添加到 Cloudflare。使用 Cloudflare 可以免费享受其提供的 CDN,还能隐藏背后服务器的 IP 地址。现在就介绍一下如何将 EV Hosting 购买的域名添加到 Cloudflare 。
首先要有一个 Cloudflare 的账号,进入账号之后,点击 「Add a site」,然后输入自己购买的域名。
然后再下一步中选择 Free,使用免费套餐。然后 Cloudflare 会自动对域名进行扫描,自动找到域名的 DNS 记录,点击导入。然后 Cloudflare 会给出两个 Name server 的地址,将这两个服务器配置到 EV Hosting 域名管理后台的名称服务器中。
完成配置之后,等待一段时间 NameServer 生效,点击页面中的 「Done,check nameservers」。Cloudflare 会自动检查 DNS 是否生效,如果检查通过,会发一封邮件到 Cloudflare 的邮箱中。
添加到 Cloudflare 之后就可以使用 Cloudflare 的 DNS 管理,添加 [[A 记录]], [[TXT 记录]], [[CNAME 记录]] 等等了。
[[Ansible]] 是使用 Python 开发的自动化运维工具。它可以配置管理,部署软件并编排更高级的任务,例如持续部署或零停机滚动升级。Ansible 可以用来管理 crontab。[[Crontab]] 是一个用于在 Unix 和 Unix-like 操作系统上执行定期任务的工具,它允许用户在预定的时间间隔内自动运行命令或脚本。Crontab 是 Cron Table 的缩写,Cron 是一个用于定时执行任务的守护进程。
Crontab 使用一个称为 crontab 文件的特殊文件来定义定期任务的计划。每个用户都可以拥有自己的 crontab 文件,其中包含一系列命令或脚本以及与之关联的时间规则。更加详细的 cron 使用可以参考之前的文章
借助 Ansible,用户可以轻松地创建、修改和删除 crontab 条目,自动化 Crontab 任务的管理。
在没用使用 Ansible 之前,都是通过 crontab -e
手动对 cron 任务进行管理,通常的任务就是备份与同步。但是随着要管理的机器和需要定义的脚本内容越来越复杂,手工编辑 crontab 就无法维护了。
另外在学习 Ansible 之后,了解了「Infrastructure as Code」概念,通过配置文件来定义所有的配置修改是一个不错的解决方案。这样一方面不用自己备份所有的脚本内容,也不用每一次都临时创建。在系统初始化的时候,直接通过 Ansible 就能纳入管理。
首先,确保你的系统上已经安装了 Ansible。你可以使用包管理器来安装它。例如,在 Ubuntu 上,你可以运行以下命令:
sudo apt update
sudo apt install ansible
下面是一些使用 Ansible 管理 crontab 的常见任务示例:
使用 Ansible 创建 crontab 条目非常简单。你可以编写一个 Ansible playbook 文件,其中定义了你要创建的 crontab 条目。以下是一个示例 playbook 文件的内容:
---
- name: Manage crontab
hosts: your_target_hosts
tasks:
- name: Add crontab entry
cron:
name: "rsync backup"
minute: "0"
hour: "2"
job: "/path/to/your/backup_script.sh"
在这个示例中,your_target_hosts
是你要管理 crontab 的目标主机的列表。name
字段是 crontab 条目的名称,minute
和 hour
字段是定时任务的执行时间,job
字段是要执行的脚本或命令。
保存以上内容到一个 YAML 文件(比如 crontab.yml
),然后运行以下命令来执行 playbook:
ansible-playbook crontab.yml
将在目标主机上创建一个新的 crontab 条目。
要修改或删除现有的 crontab 条目,你可以使用 Ansible 的 cron
模块的 state
参数。以下是一个示例 playbook 文件,演示如何修改和删除 crontab 条目:
---
- name: Manage crontab
hosts: your_target_hosts
tasks:
- name: Modify crontab entry
cron:
name: "My cron job"
minute: "30"
hour: "3"
job: "/path/to/your/updated_script.sh"
state: present
- name: Remove crontab entry
cron:
name: "My cron job"
state: absent
在这个示例中,state: present
表示修改 crontab 条目,state: absent
表示删除 crontab 条目。保存以上内容到一个 YAML 文件,然后运行 ansible-playbook
命令来执行 playbook。
Stock Event 是一款投资组合追踪器,股票市场和股息追踪器,Stock Event 可以追踪的内容包括股票、ETF、加密货币、指数、外汇、大宗商品、各地交易所等等。Stock Event 最亮眼的一个功能就是可以追踪公司的分红日期,通过图表视觉化的追踪给用户提供了最详细的分红数据。另外加入 Pro ,就可以查看包括各地失业率在内的更多数据。同样使用 Pro 可以解锁无限制的关注数量,可以自定义收藏,并且连接个人日历,获取即将上市的 IPO 信息。
在首页中非常清晰地绘制了当前持仓的涨跌幅,以及投资组合的股息。
在四个标签中的最后一个「收藏」中能看到 Stock Event 给出的一些组合,可以点进这些分类然后关注。
在首页的收藏中 Stock Event 提供了几种分类,包括:
时间线界面中展示了当前用户关注列表中的公司(标的)的重大新闻时间线。
虽然我个人并不喜欢这样大面积留白的设计,我觉得信息展示的效率太低了,但至少也还能做一下参考。
第三个标签页是搜索和新闻的界面,可以在这个界面里面寻找自己关心的标的添加关注,也可以在这个界面中查看相关的新闻。
第四个标签页就是最基本的关注列表。基础账号最多可以添加 15 个关注,如果使用我的链接 注册,可以再永久获得 5 个关注位置。
界面简洁,非常适合我这样不经常进行交易,只想快速在几秒钟的时间内了解一下当下行情的人。Stock Event 适合作为交易所软件的一个补充,交易软件比如 富途,老虎,华泰,长桥等,通常在交易软件中就会不自觉地进行操作(买卖),但是大部分的股票我是不会进行短期的买卖的,但如果常常打开股票交易软件就会控制不住自己的手。这个 Stock Event 就只是作为一个追踪器,并且可以在一个应用中查看股票,加密货币,就大大操作。Stock Event 操作起来也比交易所软件简单很多。
Stock Event 所提倡投资方法其实在其应用的设计中就能体现出来,Stock Event 将高股息,除息日都设计得非常直观,并且 Stock Event 还会推荐[[市盈率]]比较低的标的,让我们可以快速地获取价值投资中说的那样,找到高价值低价格的内容,然后长期持有。
如果看到这里了,那么可以使用我的邀请链接 注册,你我都可以在免费版的基础上增加 5 个关注列表。另外我还有一个专门写投资的博客,如果关注港股,美股和加密货币,也可以去看看。
Hestia Control Panel ([[HestiaCP]]) 是一个免费开源的 Web 服务器控制面板,它提供了一个易于使用的 Web 界面来管理 Web 服务器和网站。Hestia CP 支持多种 Linux 发行版,包括 Ubuntu、Debian、CentOS 等,可以安装和配置 Apache 或 Nginx、PHP、MySQL 等常见的 Web 服务器和数据库软件。Hestia CP 还提供了一些额外的功能,如邮件服务器、防火墙、文件备份和恢复等。
open_basedir
是 PHP 的一个安全特性,用于限制 PHP 脚本能够访问的文件系统路径。它指定了一个或多个目录的列表,PHP 将只允许访问这些目录中的文件。这可以帮助防止恶意脚本访问系统中的敏感文件。
open_basedir
最主要的功能就是隔离站点能访问的内容,而从不至于让站点之间相互影响。
如果要禁用这个功能,需要修改 PHP 的配置,访问
cd /usr/local/hestia/data/templates/web/php-fpm/
文件夹下有安装的 PHP 版本不同的配置。比如说 PHP 8.0 的配置模板文件,就是 PHP-8_0.tpl
打开该文件,然后找到下面一行
php_admin_value[open_basedir]
然后在这一行前面加上 ;
注释。
;php_admin_value[open_basedir]
或者如果熟悉命令行的话,可以直接使用 sed -i
行内替换
sed -i 's/php_admin_value\[open_basedir\]/;php_admin_value\[open_basedir\]/g' /usr/local/hestia/data/templates/web/php-fpm/PHP-8_0.tpl
修改文件之后需要重启 PHP 8.0 的服务
/etc/init.d/php8.0-fpm restart
完成设置之后,就可以使用 phpinfo.php
来查看 open_basedir
的设置,应该会看到 no value
的字样。