black and white penguin toy

如何处理 Github Action 报出的 remote: Permission to xx x denied to github-actions[bot] 问题

在帮 @MikeyWei 搭建 Beyond-the-World 的网站时,他希望我能够实现 Hexo 自动的部署能力,这样作为一个写作者,他可以只关注于写作(只需要复制粘贴 Markdown)本身,不需要去处理 Hexo 本身的配置问题。所以我便借助 GitHub Action 来实现自动部署,帮助他实现想要的目标。

不过,在执行过程中遇到了一个问题,Github 提示 remote: Permission to xx x denied to github-actions[bot]

d2b5ca33bd970f64a6301fa75ae2eb22 20
GitHub 提示

但我使用的是 Github 默认的 Secret Token ,并没有手动配置,所以并没有发现有配置权限的地方。而过去同样方式又是可以的,所以可能的问题便是 Github 提供了新的配置,导致这个 Token 默认没有权限了。

d2b5ca33bd970f64a6301fa75ae2eb22 21
我的配置文件

仔细研究后发现, Github 的确是新增了一个配置,在项目的 Settings - Actions - General 当中,新增了一个选项 workflow permissions。你可以通过直接修改这个选项,来为你的 Flow 提供默认的读写权限。

d2b5ca33bd970f64a6301fa75ae2eb22 22

不过,由于我不是组织的管理员,所以没办法设置,所以我选择了另外一个方式,在 Action 的 yaml 中添加了 permission 的描述,为这个 Job 新增了写权限,默认的 Token 便拥有了写权限。

d2b5ca33bd970f64a6301fa75ae2eb22 23

延展阅读

https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token

man in black jacket sitting on white chair

ChatGPT 与聊天软件的结合

ChatGPT 与聊天软件的结合会是一个不错的爆点。因为机器人的出现,可以让你在不丢失上下文的同时,完成你的工作,这样的形态会帮助 ChatGPT 快速的完成拓展。

网页版的 ChatGPT 虽然更强,但终归还是可以通过 API 来体验到的,但集成在各种工作的上下文当中,可以帮助机器人达成更强的能力。

对于 ChatGPT 来说,飞书、Slack、Telegram、Discord、Teams 来说,都有一定的空间可以用来做一些事情。

值得你去进行一定的投入。

man in black jacket sitting on white chair

ChatGPT,为独立开发者提供了更多可能

独立开发者很大的一个问题是能力范围有限,但有了 ChatGPT,你可以成为一个更强大的独立开发者。

自立的这条 Tweet 给了我灵感。

作为一个独立开发者,我们其实会面临很多不同场景下的需求,比如我们需要写软件的更新日志、写用户教程、做活动推广,这些对于独立开发者来说,都是需要耗费精力才能完成,有了 ChatGPT,我们(可能)可以快速获得一个80分的对应角色的人,我们可以问他们各种需要的能力,从而来提升我们做事的效率。

AI 不会让专业的人失业,但的确可能会让半吊子失去了工作。但对于 AI 的用户来说,真的是科技普惠众生了。

MacBook Pro on brown wooden table

如何解决 Gem 安装 Rails 无法执行的问题

如何解决 Gem 安装 Rails 无法执行的问题?

由于我并不在大型生产环境使用 Ruby on Rails,都是在一些自己的 Side Project 上使用 Ruby On Rails,所以一直以来,我都是使用 Homebrew 来安装最新版本的 Ruby & Gem。

最近升级了 M1 以后,重新在配置 Ruby ,突然发现之前的配置失效了。在配置 Rails 时,发现报了个错: Rails is not currently installed on this system. To get the latest version, simply type:

截图
截图

但我可以肯定的是,我已经执行过了 gem install rails,所以出问题的不可能是我没安装,唯一的可能便是我安装的 Rails 没有安装到 PATH 当中

870yd1

所以想要解决这个问题,只需要将我安装 gem 的路径添加到 path 中即可。

解决方案

1. 获取具体的 Path

执行 gem info rails 来获取到我的 rails 安装的路径,这里可以看到,被安装在了 /opt/homebrew/lib/ruby/gems/3.2.0 路径。

04qwth

2. 找到 Bin 目录

使用 cd /opt/homebrew/lib/ruby/gems/3.2.0 进入到 gem 目录。你可以看到这里有个 bin 目录,bin 目录就是我们具体要用的可执行文件。

re9kwr

你可以执行 ./rails -v 来确认版本正确。

rbj0dk

3. 修改 PATH 环境变量

接下来就是修改你的 PATH 环境变量了。在你用的 Shell 的配置文件当中,加入相应的 path 配置,并重启终端,即可完成配置。

4. 验证配置

重启终端后,随便找个目录,执行 rails -v,查看其结果,来验证我们的配置已经生效。如果你可以看到类似下面的结果,则说明你的配置已经生效了~

8c0vdo

living room set with green dumb cane plant

你生活的地方,才是家

自大学以来,我便常年在外,每年回家的时间,不过是过年那七天。其他时间,我大多在一线城市奋斗。

而对于我来说,家也成了一个陌生的词汇 —— 焦作是我家,我在焦作生长,我熟悉我家附近的道路。但焦作也不是我家, 我早已不知道家门口的商铺是什么?他们在卖些什么、他们的生活里都是什么样的日常。

对于我来说,家是我生活的地方,它可能很大,如天津我租的房子一般;它可能很小,如我在深圳住的 10 平米的小隔间。

家是你生活的地方 —— 而不是家乡的地方。你在村里修建再好的房子,可那终究不是你的家 —— 那里只有一座气宇轩昂的房子,却没有你。你在城里住的再落魄,那终究是你的家,因为它有你。

那么,为什么一年只住几天的地方可以是家呢?

person using iMac

使用 Github 作为 Logseq 的数据同步

继之前体验 Obsidian ,如今我在使用 Logseq 作为我的日常信息记录:

  1. 有想法就放在 Journal 当中,并通过大纲的方式,让我的想法逐渐变得丰满。
  2. 使用 TAG 来区分不同的内容分类(比如编程、生活之类的)

在使用 Logseq 的时候,必然会涉及到需要做数据同步的问题 —— 没有同步万一跪了怎么办?

好在是 Logseq 提供了 Git 版本控制的能力,你只需要在设置当中开启 Git Commit 的能力,就可以让其自动使用 Git 来添加版本,从而实现将你的变更通过 Git 本身的能力来记录。

d2b5ca33bd970f64a6301fa75ae2eb22 16
Logseq 自带的 Git 功能

当完成了 Logseq 的 Git 初始化后,自然而然的,我们便会想 —— 我能不能将其上传到 GitHub 上来完成存储?即使不分发协作,也可以很好的用来存储。答案当然是可以的,配置版本控制之后,Logseq 的仓库就是一个标准的 Git 仓库,你直接推送即可。

当发现可以推送之后,也就不担心数据的版本化问题了。那随之而来的便是 —— 我如何做数据同步?如何不让我手动上传数据到 Github 当中?

你可以借助 Git 的 Hooks 机制来完成:Github 上的开发者 CharlesChiuGit 有一个项目 Logseq Git Sync 101,其中介绍了如何实现自动的 Git 同步。

你只需将其仓库中的 Pre-commit 和 Post Commit 两个文件放置在 Logseq 目录下的 .git/hooks 目录中,即可借助 Git 自身的 Hook 能力,实现在 Commit 前主动拉取配置,避免出现数据冲突的问题,并在 Commit 之后自动推送结果,实现数据的及时上 Github。

d2b5ca33bd970f64a6301fa75ae2eb22 17

具体操作也不复杂,只需要在 Logseq 根目录的 .git/hooks 目录下创建 pre-commitpost-commit文件即可;随后,将 Logseq-Git-Sync-101 中的文件内容复制到这两个文件中;最后执行 chmod a+x post-commit pre-commit 来实现给其添加可执行权限,即可实现在 Logseq 当中执行操作提前推送一次更新 & 拉取一次内容。

d2b5ca33bd970f64a6301fa75ae2eb22 18
tree 效果

有了 Git Sync 101 ,我几乎可以不用担心同步数据了 —— 毕竟做研发的人,谁电脑上还能没有个 Git 了?

man in gray shirt sits on cliff

汝之蜜糖,彼之砒霜

不同的人性格是不同的。

以我为例,是一个偏社牛的性格,什么活动总想去凑一下。什么样的事情都希望去了解一下,因此也造就了我什么都知道一点的习惯。对于这样性格的我来说,参与社交活动是一种享受。

而对于社恐来说,我所做的一切,可能都是令他反感的。

而现实生活中可能并不一定能总能如愿,比如可能社牛并不会被邀请到活动当中,而社恐则总是被带到各种不同的场合当中去锻炼。

社牛和社恐都不能如愿,这大概就是社会与个人预期的错配。

d2b5ca33bd970f64a6301fa75ae2eb22 15

生活好物:小厨宝

来天津租房住以后,租房的成本下降了不少,在深圳同样的房租,我可以租到接近两倍面积的房子。而在这个过程中,也发现了一些不错的生活好物,其中我首先推荐的便是 — 小厨宝。

这个东西我之前是不知道的,因为我家过去在老房子的时候,使用的是电热水器(那种巨大的一个储水箱的),而搬到新家后,则是燃气热水器。在深圳的时候也基本上是燃气热水器和电热水器交替着使用。

d2b5ca33bd970f64a6301fa75ae2eb22 14
大家伙电热水器

电热水器的好处是储水量较大,所以一般来说都装在厕所,可以用来洗澡。但由于没有全屋 0 冷水系统,所以厨房用水常常是凉水。这就导致我一直以来对于洗碗不是很有好感。特别是冬天洗碗。

而小厨宝则算是一个很适合放在厨房或者是做老房子改造的设备。和电热水器原理类似,都是通过电能转化成热能来加热水。不同的是小厨宝突出的是一个小字,可以方便的藏在厨房的柜子当中,从而实现给厨房供给用于刷碗的热水。

d2b5ca33bd970f64a6301fa75ae2eb22 15

而且,其小巧的大小可以储存 5 ~ 6L 的水,日常洗碗用水完全没问题。对于环境来说,要求也不高,有个三通管道,配合一个三相插座,即可完成安装,如果你是老房子,也可以比较轻松的达成安装的条件。

小厨宝算是我最近发现的一个不错的生活好物,推荐给你 — 如果你需要给家里的老人做适老化改造,不妨从小厨宝开始。

d2b5ca33bd970f64a6301fa75ae2eb22 12

PayJS 测试二维码生成工具

简要描述

这个工具主要用于生成 PayJS 的测试支付订单,在 PayJS 官方不提供测试订单工具之后,可以使用这个工具来生成测试订单,简化操作。

下载地址

截图

d2b5ca33bd970f64a6301fa75ae2eb22 12
未生成二维码效果
d2b5ca33bd970f64a6301fa75ae2eb22 13
生成二维码效果

更新日志

0.0.3

  • 设置 key 为密码类型,保护信息安全。

0.0.2

  • 支持 payjs 生成 1 分钱订单,并展示二维码。
8ec24eb1d2165bf6f329b41438de1442

投资领域的 Alpha 收益和 Beta 收益

最近币圈复苏,各种新的 Token 出现,让不少人一夜暴富。自然也就有人来写 —— 我是如何获得这个 Alpha 收益的?

那问题来了,什么才是 Alpha 收益?

Alpha 收益可以理解为是由人为因素所影响的部分,我们希望提升的收益,往往也是因为 Alpha 收益带来的。但同样的, Alpha 收益的提升也是困难的,你需要对抗市场,在市场当中总结出自己的经验,并发现其中的收益点。

Beta 收益则是那些无需手动操作就可以享受的收益 —— 比如国家的发展、时代的变化,都是可以为我们带来 Beta 收益的事情。对于绝大多数的普通人来说,都可以相对简单的获得 Beta 收益 —— 比如购买大盘的指数基金。