digital

把 github pages 的 cname 问题解决了,以前每次 deploy 以后自定义域名就失效,原来是必须要 CNAME 是大写才行。而如果上传了小写的,再改成大写重新部署也不行,因为 win 识别不出来大小写是否有变化。
于是先删除 cname push 一次,再重新把大写的 CNAME 放到 source 目录重新部署一次,就解决了。

又把 hexo 的 permalink 都改了一下,原来的直接就是http://blog.website.com/post-name/ 现在改成了 http://blog.website.com/post/post-name/,不光视觉上对齐了,repo 里的目录格式也整洁多了。

还把过去文章的分类也加上了。

这些相关概念有:

  1. netlify、vercel 部署托管服务⬆️
  2. (github\cloudflare pages 静态网页托管)⬆️
  3. github forked repo(forked的别人的库)⬆️
  4. github action⬆️
  5. github upstream repo(别人的源代码库)⬆️

我现在使用 vercel 的流程就是,github 上游的代码一更新,action 就会定时将其同步到我自己 forked 的 repo. 然后 netlify、vercel 这类部署服务自动检测到代码有修改,就会重新部署。然后网站就自动更新了。

github 和 cloudflare 的 pages,类似 vercel,就是将仓库里的静态文件传输到一个 http 服务器并为它分配一个可以公开访问的域名(也可以自定义拥有的域名)。区别就是 pages 只能部署纯静态文件,而 vercel 则能编译(build)较复杂的 js 框架。

hexo 这类静态博客,往往都是自己在本地搭建构建环境,每次写完就生成静态文件上传到 github 仓库,然后 pages 将仓库的更新同步到到静态网页 http 服务器。

cloudflare worker 则是只负责托管 http 请求的服务,连静态文件都不需要。

vercel部署的脚本,dns服务器是cf,本来设置的解析到某个ip,dns check和17ce.com都没问题,但是今天quantx打开发现被解析到另外一个cf海外ip,导致墙内不能直接访问。

quantx设置了好几个dns服务器,不想手动检测,搜了一下发现这个脚本,批量处理多DNS多域名的nslookup解析

前两天用gpt的时候,装好了python环境,这下试试能不能自己应用一个脚本解决实际问题。

代码很简单,就是新建一个csv文件,填好内容,然后执行就行了。ide用了最近很火的cursor,虽然我现在的编程程度其实连ide是什么意思都不清楚。

遇到报错,一直提示没有domain字段,翻来覆去地检查,明明没有问题啊,用cursor的提示找到了思路,把它的编码修改了,重新保存,再执行命令,就没问题了!可能是从网页直接复制代码到cursor的过程中编码变了。

update:还是有问题,导出的csv后面是乱的,

后来我干脆换了个思路,直接告诉cursor,我想做啥,让它从头写代码。

结果太吃惊了,只用了三个提示词,就完美达成了效果。现在的版本还只是gpt3.5啊!

提示词:

1、利用

1
2
3
import subprocess
import csv
import time

用指定的多个dns,遍历解析指定的域名(逐个执行nslookup命令)并将结果导出csv。

2、执行过程中要有提示:比如正在使用哪个dns服务器、解析哪一个域名

3、在输出的csv文件中,增加一个列:域名列

cursor最后生成的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import subprocess
import csv
import time

dns_list = ['8.8.8.8', '8.8.4.4', '208.67.222.222', '208.67.220.220']
domain_name = 'example.com'
output_file = 'dns_results.csv'

with open(output_file, 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['Domain Name', 'DNS Server', 'IP Address']) # added 'Domain Name' column

for dns in dns_list:
print(f"正在使用DNS服务器: {dns}")
print(f"正在解析域名: {domain_name}")
command = f'nslookup {domain_name} {dns}'
result = subprocess.run(command, capture_output=True, text=True)
ip_address = result.stdout.split('Address: ')[-1].split('\n')[0]
writer.writerow([domain_name, dns, ip_address]) # added domain_name to the row
time.sleep(1) # to avoid overwhelming the DNS servers

执行命令:

执行解析后,自动生成的表格如图:

一个不懂编程的人,就这样完成了一个程序,代码量比网上搜到的方案还少。这个能力真的太恐怖了。

继续尝试,这个脚本还是有点小问题:1、如果解析失败,csv文件里的ip会显示为dns服务器的ip。2、如果有多个解析结果,只会显示第一个。

debug半天没有完全修复。试着用英文提问,再次重新码。又经过很久的调试,现在的解决几乎完美:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import csv
import os

dns_servers = ['1.0.0.1','8.8.8.8','119.29.29.29','1.12.12.12','233.5.5.5','9.9.9.9','208.67.222.222']
domains = ['imfine.eu.org'] # list of domains to lookup

results = [] # list to store results

for domain in domains:
for server in dns_servers:
print(f"\n等待DNS服务器:【{server}】 解析域名:【{domain}】")
response = os.popen(f'nslookup {domain} {server}').read() # run nslookup command
ip_address = response.split('addresses:')[-1].strip() # extract IP address from response
results.append([domain, server, ip_address]) # add result to list
print(f"解析结果: {ip_address}\n") # print IP address

# write results to csv file
try:
with open('dns_results.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Domain', 'DNS Server', 'IP Address'])
writer.writerows(results)
print('DNS lookup complete. Results saved to dns_results.csv')
except Exception as e:
print(f"Error occurred while writing to csv file: {e}")
raise e


这个问题困扰我很久了,网上根本搜不到相关的信息。

Question:

那么我明明设置了有效的tls\doh上游, 但是adguard home的dns查询页面,加密DNS的图标始终是灰色的,显示协议:无加密DNS,以及,我只是让adguard home充当dns客户端,为什么开启加密功能还要设置ssl域名证书?既然让adguard home充当dns客户端不需要设置ssl域名证书,那为什么日志里显示还是非加密协议?

Answer:

AdGuard Home 在显示 DNS 查询日志时,加密 DNS 的图标可能是灰色的,因为它显示的是客户端与 AdGuard Home 之间的连接协议,而不是 AdGuard Home 与上游 DNS 服务器之间的连接协议。 实际上,AdGuard Home 可能已经在与上游 DNS 服务器使用加密协议(如 DoT 或 DoH)进行通信,但客户端与 AdGuard Home 之间的连接仍然是基于传统的、未加密的 DNS 协议。
关于设置 SSL 证书的问题,当 AdGuard Home 作为 DNS 客户端时,确实不需要设置 SSL 证书。SSL 证书的设置主要用于 AdGuard Home 作为 DNS 服务器时,允许客户端通过加密协议(如 DoT 或 DoH)与其通信。这种情况下,AdGuard Home 需要证书来验证其身份,以确保客户端与服务器之间的通信安全。
综上所述,AdGuard Home 的 DNS 查询日志显示为“无加密 DNS”,是因为它展示的是客户端与 AdGuard Home 之间的连接协议。而实际上,AdGuard Home 可能已经在与上游 DNS 服务器使用加密协议进行通信。在 AdGuard Home 作为 DNS 客户端时,不需要设置 SSL 证书。SSL 证书的设置主要用于 AdGuard Home 作为 DNS 服务器,允许客户端通过加密协议与其通信。

后来还发现那个小锁一样的图标,其实是关于dnssec的,本来也和dot\doh无关…

  1. 先通过这几个网站查询是否能被正常访问。
  2. 如果网站服务器本身没有问题,通过多个dns服务器查询网站ip
  3. 如果只有一个ip(没有CDN的网站一般是这样),检查和本机nslookup的ip是否一致,判断是否被污染。

1、先提问一个引导词让AI自己回答

什么是小红书式的语言

它的回答大概是:

小红书是一个主打时尚美妆、旅行和生活方式的社交平台,小红书的用户群体主要是年轻女性,因此小红书的语言风格也有一些独特的特点。
小红书式的语言通常是比较随意、轻松的,充满了年轻人的俚语和网络用语,同时也包含了一些不太正式的表达方式和拼音缩写。此外,小红书上的语言风格也比较亲切、友好,常常使用一些粉色、可爱的元素来渲染氛围,这些特点也让小红书的语言风格显得比较独特,深受一些年轻用户的喜爱。

2、紧接着再回复第二句prompt:

那么请你用小红书式的语言改写这段话: [之前AI生成的语言]


一个例子,原本的AI生成的文本:

非常感谢你的意见和建议,我很感激你和我进行友好的讨论。我想说的是,尽管我们不能达成完全的一致,但是我们可以通过倾听和尊重他人的看法,让自己变得更加开放和包容。谢谢你和我分享你的观点,让我们互相学习,共同成长。

用小红书提示词改写后的AI文本:

哇塞,感谢你的宝贵建议啊!真的非常感激你愿意和我进行这样友好的讨论呢!也许咱们不能够完全达成一致,但正如你所说的那样,我们依然可以透过倾听,尊重他人的不同看法,来增加更多的开放和包容心,不是吗?感谢你和我分享你的见解,因为有你的想法,让我们都能够获得更多的学习机会,也能够在那个话题上一起成长。所以,真的再次谢谢你的想法和建议,期待有更多机会和你深入交流哦~

OpenAI通过LLM大语言模型训练,「涌现」出的语言能力,其可怕之处在于,它能完成任意语言至任意语言的精准翻译。
中英互译完全不足以测出它的完整翻译能力,毕竟有大公司投入巨量人力物力在这一领域。而小语种的在线翻译则不如中英互译那么好用。
下面摘取了哆啦a梦日语版维基百科的一段话,对比google、chatgpt的翻译结果。很显眼,后者的翻译更流畅、准确。

22世紀の未来からやってきたネコ型ロボット・ドラえもんと、勉強もスポーツも苦手な小学生・野比のび太が繰り広げる日常生活を描いた作品である。基本的には一話完結型の連載漫画だが、ストーリー漫画形式となって日常を離れた冒険をする「大長編」シリーズもある。一話完結の基本的なプロットは、「ドラえもんがポケットから出す多種多様なひみつ道具(現代の技術では一部を除き実現不可能な機能を持つ)で、のび太(以外の場合もある)の身にふりかかった災難を一時的に解決するが、道具を不適切に使い続けた結果、しっぺ返しを受ける」というものが多く、前作の「ウメ星デンカ」のストーリー構図をほぼそのまま踏襲しており実質的な後継作品ともいえる。このプロットは、作者の藤子・F・不二雄が自身のSF作品で描いた独自定義「すこし・不思議」(Sukoshi Fushigi)[注 3]という作風に由来し、当時の一般SF作品の唱える「if」(もしも) についての対象を想定した回答が反映されている。

todo: 尝试了把日语原文先后翻译至意大利语、俄语、、日语,最后再翻译成汉语,比较一下经过多重转译后,最后文本的“失真”程度。

ME:想要把.bat命令封装成win服务,有什么小巧软件

ChatGPT:您可以尝试使用 NSSM(Non-Sucking Service Manager)。NSSM 是一个小巧的软件,可以将任何可执行文件封装成 Windows 服务。它不需要安装,只需要将可执行文件复制到某个目录,并使用命令行工具来创建服务即可。NSSM 支持许多高级特性,如自动重启、日志记录和进程监视等。

一个类似SrvanyUI的小软件。NSSM的好处是可以设置日志,查看exe文件的报错等信息。

cpu和内存占用率都不高,但电脑卡顿了一天,打字都一顿一顿的,把所有程序都关了也一样。
磁盘也整理碎片了,坏道也检测了,读写速度也测试了,都没问题。
最后在系统设置,电源设置里,把电源模式从平衡改为高性能,问题解决了。

为啥突然出现这个情况,因为我今天在另一个电源设置(电源计划)里把最大处理器状态从100%改成99%了。
改之前,我发现CPU频率竟然锁在100,怪不得老是风扇这么响。改完以后就变成自动睿频了。

但后来才出现的打字都卡顿了。
改成高性能以后,现在既不锁频,也不卡顿了。Perfect.

之前装一个chatgpt翻译的包,提示node版本低,于是升级了最新的,还要npm一起升级了。

结果我的hexo博客主题就显示的怪怪的,最大的bug是搜索栏,整个页面的html/css渲染完全出现了问题。

一开始还以为是我修改了主题的某些设置导致的,各种控制变量法排查了半天,发现和主题没关系。

那问题出在哪了,搜索的时候发现我用的hexo主题的github页有一个 issue,就是和我一样的问题,从这里我定位到了是node-sass的版本跟不上了。

本来这里就应该很好解决了,但之前升级node导致不知道怎么环境变量除了问题,从一开始修复的过程中npm就一直报错,我废了好多功夫才明白问题出在环境变量上。现在终于全解决了。

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×