阅读视图

端午节包粽子

昨天周五下班后,准备食材包粽子,迎接端午节的到来。

主材料:粽叶、糯米 馅料:五花肉、豆沙、咸蛋黄、蜜枣

由于是第一次包,我跟女朋友一边看教程一边学习,刚开始用的一张叶子,总包不好,后面换成两张叶子,发现越来越得心应手。

模样不算太好看,但是都是真材实料,且没有露馅。但是好像是酱油加的有点少了,所以导致不够咸,总体偏淡,但是口感也是可圈可点,是我喜欢的馅。

后面还有一盆糯米,准备改进一下,多加点酱油,手法上也有所进步了,再接再厉!

分享几张图。

食材
食材

炖锅的五花肉
炖锅的五花肉

下锅的粽子
下锅的粽子

  •  

两天一夜象山赶海之旅

五一刚回来有些忙,推迟了好几天,终于可以闲下来写写游记了。

五一出去象山玩了几天,出发前一周已经做好了攻略,包括路线、时间、住宿哦、饮食等个各方面,但计划赶不上变化。最开始预估的最多三个小时就能到达目的地,结果硬是在高速跑了五六个小时,基本 2/3 的时间都在堵,特别是宁波嘉兴段高速,走走停停,不过还好带了小零食,跟对象说说笑笑就过去了,也不会枯燥。

点赞余姚服务区,跑一半小累下去休息一下,超市价格跟杭州差不多,没有额外涨价,短暂休整后继续驾车前行。一个小插曲,中间大概有几十公里的路程,高速播报允许小汽车在应急车道通行,我犹豫了一下然后果断走了应急通道,非常爽很畅通,虽然车道有些略窄,但是走的很爽没有停下来过,看旁边堵的熙熙攘攘,这也是我第一次走应急通道,不错的体验。

越靠近海边环境越好,空气也很舒服,同时也感叹临海城市天气莫测,刚下象山收费站下起了大雨,然后走了一两公里后,又是大晴天,烈日当空,打开窗户吹吹风,小小的享受了一下。

入岛
入岛

第一站打算去山顶看看大风车,路途经过一个小村庄,整洁的街边道路两旁,一栋栋精致的民居让人向往,羡慕浙江本地人了,家家户户都盖着小别墅,门前几乎都自己修建了小花园,可以养养花逗逗鸟。

到半山腰发现一个露营地,稍作休息,顺便放出无人机看看周围的情况,发现风景也就一般,跟对象商量直接去下一个景点,当时已经是下午三点多了。

沿着公路一直前行,路过有“小赛里木”之称的湖泊,其实就是一个人工湖,看到有很多人在露营烧烤,然后中间有一段管控,不让开车进,很多人都把车停在门口,我带着对象下来散散步、拍拍照,湛蓝的天空伴着习习微风,令人心旷神怡。

短暂休息后,我们决定前往沙滩游玩,就继续出发一路边走边玩,有说有笑,最后导航来到白沙湾沙滩,路两边也是停满了车,一下车女朋友就很兴奋,我也换上了短裤和人字拖,沙滩度假标配,瞅了一下,人不多还挺宽敞的,沙子也比较干净,基本都是一家三口带着小孩来玩,我们俩也去海水泡泡脚,不过傍晚那段时间海水挺黄的,也正好快赶上涨潮。

夕阳和沙滩
夕阳和沙滩
海边的风景
海边的风景

简单玩了一会,我们又去把帐篷从车上拉下来,带了不少东西,因为是第一次露营过夜,也是尽量准备周全一点,准备了防潮垫之类的东西,然后带了一个空调被,事实证明这远远不够,靠近海边还是有点冷,温度不高,比正常睡觉偏凉一些。晚上的话就使用自己带的食材美美的吃了一顿,有火锅底料、毛肚、肥牛、金针菇等,刚好吃饭的时候对面还放起了烟花,非常享受。

露营火锅
露营火锅

出去露营一定要收集好自己的垃圾,我专门准备了几个袋子收拾垃圾使用,打包好扔到附近的垃圾桶,之后就是洗漱完躺着享受夜晚,第一次在帐篷过夜,体验很不错。

本来打算第二天下午就回去的,但是早上起来发现空气很好,天空很蓝,海水很清,和傍晚完全不同,就决定多住一夜。早餐就热一下来之前准备的三明治,又是一顿美美的早餐,之后就是常规的拍照打卡环节,早上八九点几乎没什么人,和女朋友漫步在海边,看着照样吹吹清晨的海风,颇有一番滋味。

海边日出
海边日出

还在美团下单了一些小铲子等,挖挖贝壳,堆堆沙子,彷佛回到了童年。累了就躺帐篷里休息,休息好了继续出去玩,除了太阳有点大,其他并无不适,还好带了防晒喷雾,这两天下来也没有晒黑,不过忽略了一件事,身上防晒做好了,但是忽略了脚,因为穿着人字拖,一天下来好像有些晒伤,还好缓了几天就缓过来了,下次一点要注意这点。

堆沙子游戏
堆沙子游戏

不过等到晚上的时候,倒是发生了一些突然状态,没有看天气预报,入夜的时候风越来越大,因为在海边有些担心,就跟对象商量了一下放弃过夜的想法,收拾了一下行李装车离开,和来时完全不同,路上几乎没有一辆车,打开窗户慢慢开,注意到了之前没有注意的一些东西,象山的路边交通很像之前看过的台湾偶像剧里面的建筑,可能因为都毗邻海边的缘故,建筑风格也很像,和对象嘻嘻笑笑的踏上了回杭的旅程。

总结下来,对这次旅行还是比较满意的,除了开始的时候在高速堵车,其他时候还是很畅通的,风景吃喝都没有委屈自己,非常棒!完结撒花!

开心的下午茶时光
开心的下午茶时光

  •  

第一个 Github 千星项目

今天中午吃完饭闲来无事,准备上 GitHub Explore 看看有没有新的开源项目推荐。

发现我的一个项目,居然成功达到了 1k star,记录一下,虽然是一个很简单的工具,但也算解决了部分用户的痛点。

已经迭代了 170+ 个 releases 版本,功能不断更新,解决了 110+ Issues,合并了 20+ Pull requests。

GitHub: https://github.com/dlzmoe/linuxdo-scripts

LinuxDo Scripts
LinuxDo Scripts

  •  

我和 AI 的这几年

这几年最火的事情莫过于 AI,也有可能是幸存者偏差的原因,当然这暂表不提,只谈谈我和 AI 相处的这几年,我是如何利用这个工具,提高我的工作效率,以及在生活,兴趣爱好等层面和谐融入

2022 年底 的时候,我初步接触 gpt 3.5,给我带了极大的震撼,我没想到,AI 已经进化到如此的地步,可以智能对话,处理代码逻辑,进行文字撰写工作。以现在的目光看来它很傻,但是在当时那个环境下,给我的工作和学习带来了极大的帮助。

现在翻阅和 gpt 的历史聊天记录,可以看出我当时对它还是抱有很大的热枕,可以帮我总结繁杂的 json 数据并重组数据结构。还可以通过一些特殊的 Prompt 让它解锁图片生成,虽然很生成的图像很拙劣,但我玩的很开心。

后来随着这个领域发展的突飞猛进,Claude 横空出世,开始在上下文限制上领先 gpt,但是 OpenAI 毕竟占据先发优势,仍然是我主用的模型。可随着时间的推移,Claude 开始崭露头角,在代码领域展现出断层式的领先,尤其是在前端代码生成方面,非常符合我的需求,所以后来我的使用就变成了 Claude 写代码,gpt 日常使用。

可以给我生成一些文档,比如开发某个项目,要写开发文档,说明书之类的,程序员最厌恶的两件事情。一是让我写文档,二是别人不写文档。而 AI 恰好可以完美处理这个问题,虽然刚开始比较笨拙,但在我不停的投喂资料下,也是可以逐渐生成可上生产环境的文档,当然了最后还是需要我来 review code。

后来谷歌也陆续推出了什么 Bard 模型,现在改名叫 Gemini,质量也是非常不错,不过我用的比较少。通过前面的介绍也大概知道,AI 领域前期一直是国外遥遥领先,虽然我也希望国产 AI 可以崛起。

但是在 2024 年年末的时候,DeepSeek 横空出世,在 AI 圈掀起了轩然大波,当时深度求索推出两款模型一个是 deepseek-chat 也就是现在的 deepseek-v3,还有一个就是现在的深度思考模式 deepseek-reasoner。也是带起了大模型引入思考的风潮。

记得在还没过年之前,DeepSeek 小火了一段时间,我也是频繁使用,代码质量、文本质量完全可以称得上一线水平,官网速度也很快,应该是因为人流量还未彻底爆发,深度思考模式基本都是秒出。后来代码一经开源,直接引起热潮,官网流量爆炸,至今任伟恢复到巅峰时期,不过这也说明了 deeseek 的全民热潮。

后面各家大厂也都部署了 deepseek 全血版,我比较推崇火山方舟和阿里云百炼旗下的 deepseek 模型,质量和速度也都在前列,我 90% 在使用火山方舟的。

其实阿里旗下的 QWen 模型也一直发展的风生水起,不过我是个人用习惯了前面说的那些,所以 QWen 也很少用,不过非常推荐大家使用。

所以我目前对 AI 模型的使用如下,DeepSeek + GPT 处理日常文字工作,图像生成,以及繁琐的数据重组等,Claude 负责处理逻辑复杂的代码开发,然后掺杂着 Gemini 以及其他新兴模型作为测试。


其他文章我可能或多或少使用 AI 进行润色,但这篇文章完全 0 AI 痕迹,算是对这方面的个人总结吧。如名词错误情况或其他错误请指出,完全是有感而发思绪很快,键盘敲个不停。

  •  

Cherry Studio 接入高德地图 MCP 示例

本教程使用环境 Cherry Studio 1.1.17.

最近 Cherry Studio 也接入了 MCP 服务器,闲着无聊准备尝试一番,就拿最简单的高德地图来做演示,刚好最近高德也支持了 MCP 服务。

需要申请高德开发者账号,这个就不赘述了。在高德开发者控制台找到 应用管理>我的应用,点击创建新应用,类型名称随便填一下,绑定服务要选择 Web服务,然后不要限制 IP,最后会生成一个 key。

配置 Cherry Studio 的 MCP 服务器

拿到高德地图的 key 后,在 Cherry Studio 的 MCP 服务器设置填入,有两种方法。

  1. 方法一:直接导入配置(推荐)

在右上角 编辑 MCP 配置 中直接将下面的配置复制进去,改一下 AMAP_MAPS_API_KEY

{
  "mcpServers": {
    "@amap/amap-maps": {
      "name": "@amap/amap-maps",
      "isActive": true,
      "command": "npx",
      "args": [
        "-y",
        "@amap/amap-maps-mcp-server"
      ],
      "env": {
        "AMAP_MAPS_API_KEY": "xxxxxxxxxxx"
      }
    }
  }
}
  1. 方法二:手动填写配置

在 Cherry Studio 中打开 MCP 服务器设置界面,按以下参数填写:

名称:@amap/amap-maps
命令:npx
参数:-y @amap/amap-maps-mcp-server
环境变量:添加 AMAP_MAPS_API_KEY 并填入您的 Key。

保存配置后,系统会自动加载高德地图的 MCP 服务。

会在下方显示高德地图支持的工具,就是 AI 模型可以调用的工具。

启用 AI 模型的函数调用功能

使用方法也很简单,需要 AI 模型支持函数调用,以火山引擎作为示例,我使用了 DeepSeek-R1 模型,默认是没有函数调用的(会显示那个小扳手),需要在设置中手动开启

这样在聊天框下方会出现一个 MCP 的标志,勾选后可以直接跟模型进行对话,可以输出天气地点等信息,如果再搭配你的 prompt,可以直接规划公交地铁线路等。

测试 MCP 对话效果
### 🧑‍💻 User

规划一下这周清明节在杭州出去玩的攻略。

---

### 🤖 Assistant


根据杭州清明节期间的天气情况,我为您规划一份兼顾自然风光与文化体验的 3 日游攻略,天气友好且行程灵活:

---

**🌿 清明小长假 3 日游行程推荐(4 月 3 日 -5 日)**  
*注:4 月 2 日周二为工作日,建议提前抵达杭州做准备*

---

**Day1(4 月 3 日·晴转多云|7-19℃)**  
**主题:西湖经典文化线**  
☀️ 上午  
7:30 乘摇橹船游「乌龟潭路线」  
(郭庄码头→茅家埠→曲院风荷,避开人潮享樱花碧水)  
9:30 步行至「岳王庙」拜谒民族英雄  

🌤️ 下午  
13:00「中国茶叶博物馆(双峰馆)」  
(亲手体验龙井茶炒制,观千亩茶田)  
15:30「茅家埠黛色参天」古风摄影  
(黛色牌坊 + 睡莲初绽,汉服出片胜地)  

🌙 夜晚  
19:00「西湖音乐喷泉」灯光秀  
(提前占位,夜赏湖滨灯光璀璨)  

---

**Day2(4 月 4 日·多云|12-26℃)**  
**主题:春日野趣轻徒步**  
🌸 上午  
8:00「九溪烟树」溯溪徒步  
(穿越迷雾森林,十八涧水映杜鹃)  
11:00「龙井村」茶农家访  
(品明前龙井,尝茶香土鸡汤)  

🌿 下午  
14:00「云栖竹径」洗肺之旅  
(千年古树 + 竹林秘境,电影《卧虎藏龙》取景地)  
16:30「梅家坞」茶园骑行  
(租电动车漫游茶山,俯瞰层叠青绿)  

🍵 傍晚  
18:30「茶人村」晚餐  
(百年老宅尝桂花藕韵、茶香虾)  

---

**Day3(4 月 5 日·小雨转晴|13-25℃)**  
**主题:运河文艺漫游**  
🌧️ 上午(微雨意境)  
9:00「桥西历史街区」  
(逛刀剪/伞/扇博物馆,体验非遗手作)  
11:00「小河直街」咖啡探店  
(推荐河下咖啡·《人间草木》主题书咖)  

☀️ 下午(放晴后)  
14:00「拱宸桥」乘漕舫船  
(水路穿越古今,听评弹吴侬软语)  
16:00「富义仓艺术中心」看展  
(旧粮仓改造的先锋艺术空间)  

🎑 夜晚  
19:30「胜利河美食街」夜宵  
(推荐老头油爆虾、脆皮大肠)  

---

**⚠️ 出行贴士**  
1️⃣ 穿衣:洋葱式穿搭(薄毛衣 + 防风外套),备晴雨伞  
2️⃣ 交通:西湖景区周末单双号限行,推荐地铁 + 共享单车  
3️⃣ 预约:岳王庙/茶叶博物馆等需提前 1 天在「掌上西湖」预约  
4️⃣ 备选:若遇大雨可调整为「浙江省博」+「南宋官窑博物馆」室内游  

清明时节的杭州既有烟雨江南的朦胧美,又有春和景明的清朗,建议随身带本《杭州记事》手账,在各景点盖限定章留念哦~ 🌸
  •  

通过 AI 实现自动生成 SEO TDK

感谢博友的文章,《AI 实践|零成本生成 SEO 友好的 TDK 落地方案》

昨天晚上刷到一篇文章,通过 AI 自动化生成网站 SEO 的 TDK,他这个方法有两点比较繁琐的地方。

  1. 文章内容需要手动替换到脚本中
  2. 生成的 TDK 需要手动加入数据库

我针对第一点略微做了一些调整,可以直接查找当前脚本目录下的文件夹,在文件的 62 行,稍后我会把源码贴在文章最下方。

https://github.com/dlzmoe/blog/blob/main/aitdk.py

# aitdk.py
def main(file_name, api_key, api_url, model, debug=False):
    current_dir = os.path.dirname(os.path.abspath(__file__))
    file_path = os.path.join(current_dir, 'content', 'blog', file_name)

这里的目录 /content/blog 可以自由修改,换成你本地的格式。

使用方法也很简单,在 aitdk.py 同级目录下新建一个 .env 环境变量文件,内容如下:

OPENAI_API_KEY=sk-xxx
OPENAI_API_URL=https://api.openai.com/v1
OPENAI_API_MODEL=gpt-4o-mini

然后安装一下依赖。

pip install markdown beautifulsoup4 openai==0.28 python-dotenv

运行命令,xxx.md 就是你的文件全名。

py aitdk.py xxx.md

生成的结果就如下,对于 SEO 质量还是不错的。

aitdk.py 源码
import os
import json
import markdown
from bs4 import BeautifulSoup
import openai
from dotenv import load_dotenv
import argparse

# 加载环境变量
load_dotenv()

def extract_text_from_markdown(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        md_content = file.read()
    
    html_content = markdown.markdown(md_content)
    soup = BeautifulSoup(html_content, 'html.parser')
    text_content = soup.get_text()
    
    return text_content

def generate_seo_content(text, api_key, api_url, model, debug=False):
    openai.api_key = api_key
    if api_url:
        openai.api_base = api_url

    prompt = f"请根据文章内容从 SEO 友好的角度提取出标题、关键词和描述:\n\n{text}\n\n请以 JSON 格式输出,包含 slug、title、keywords 和 description 字段。"
    
    try:
        response = openai.ChatCompletion.create(
            model=model,
            messages=[
                {"role": "system", "content": "你是一个 SEO 专家,擅长提炼文章的核心内容并生成优化的元数据。"},
                {"role": "user", "content": prompt}
            ]
        )
        
        content = response.choices[0].message['content']
        # 只在 debug 模式下输出 API 响应
        if debug:
            print("API Response:", content)
        return content
    except Exception as e:
        print(f"Error calling OpenAI API: {e}")
        return None

def parse_seo_content(content):
    try:
        # 尝试直接解析 JSON
        return json.loads(content)
    except json.JSONDecodeError:
        # 如果直接解析失败,尝试提取 JSON 部分
        try:
            start = content.index('{')
            end = content.rindex('}') + 1
            json_str = content[start:end]
            return json.loads(json_str)
        except (ValueError, json.JSONDecodeError):
            print("无法解析 API 返回的内容为 JSON 格式")
            return None

def main(file_name, api_key, api_url, model, debug=False):
    current_dir = os.path.dirname(os.path.abspath(__file__))
    file_path = os.path.join(current_dir, 'content', 'blog', file_name)
    
    if not os.path.exists(file_path):
        print(f"错误:文件 '{file_path}' 不存在。")
        return

    text_content = extract_text_from_markdown(file_path)
    seo_content = generate_seo_content(text_content, api_key, api_url, model, debug)
    
    if seo_content:
        seo_data = parse_seo_content(seo_content)
        if seo_data:
            print(json.dumps(seo_data, ensure_ascii=False, indent=2))
        else:
            print("无法生成有效的 SEO 数据")
    else:
        print("生成 SEO 内容失败")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="从 Markdown 文件生成 SEO 内容")
    parser.add_argument("file_name", help="Markdown 文件名称 (位于 content/blog/目录下)")
    parser.add_argument("--api_key", default=os.getenv("OPENAI_API_KEY"), help="OpenAI API 密钥")
    parser.add_argument("--api_url", default=os.getenv("OPENAI_API_URL"), help="OpenAI API URL")
    parser.add_argument("--model", default=os.getenv("OPENAI_API_MODEL"), help="OpenAI 模型名称")
    parser.add_argument("--debug", action="store_true", help="开启调试模式,显示 API 响应")
    
    args = parser.parse_args()

    if not args.api_key:
        print("错误:未提供 API 密钥。请在命令行参数中指定或在.env 文件中设置 OPENAI_API_KEY。")
    else:
        main(args.file_name, args.api_key, args.api_url, args.model, args.debug)
  •  

径山寺看雪:杭州周边雪景游记

周五无意在小红书上刷到说杭州周边的山头都开始下雪,立刻打开“天文通”APP 查看,确实下雪了。

立刻喊上女朋友开始规划周六的行程。

早上 9 点左右出门,到达时 10:30 左右,将车停在了径山集散中心附近,然后乘坐景区免费的接驳车前往山顶的径山寺。

这里表示非常好评,提供了免费的接驳车,省去了自己开车的麻烦。一路上盘山公路弯弯绕绕,差点给我坐晕了,上山单程大概 25-30 分钟,这还是在不堵车的情况下。

刚开始还是淅淅沥沥的小雨,大概快到山顶的时候飘起了雪花,快两年没看到雪了。

顺便在雪上写字打卡留恋一下,字丑勿怪,女朋友还很喜欢。


值得一提的是今天运气特别好,大概一点多准备下山的时候,坐到半山腰时发现上山的路都被堵住了。根本不知道今天来了多少人。

后面听说不少上山的车打滑,撞了不少栏杆和围墙,想想就很危险,幸好没有开车上山。

由于雪越下越大,估计也是怕出现意外,执勤交警已经封了后半段路,并且从集散中心上山的接驳车也全面停运。

现在唯一上山的方式就是自驾到径山桐桥停车场,然后沿径山古道上山,这个停车场是距离山顶最近的地方,但是场地不大,很难停车。好处是路线比较友好,没有太大的难度,大概一个小时左右就可以。

  •  

Cloudflare 上部署 Twikoo 服务时报错

GitHub: https://github.com/twikoojs/twikoo-cloudflare

Twikoo 支持通过 Cloudflare Workers 进行部署服务和数据库,GitHub 仓库地址如上。

但是部署文档中有一点小坑需要注意一下,官方没有进行标注,我不清楚是只有我遇到这个问题还是怎么样,记录下来以防有其他人遇到这个问题,在搜索引擎可以看到这篇文章而解决。

由于 Cloudflare Workers 的免费套餐对捆绑包大小有严格的 1MiB 限制,因此我们需要手动删除一些包以使捆绑包保持在限制范围内。由于 Cloudflare 工作线程的 Node.js 兼容性问题,这些包无论如何都无法使用。

因为上面那个问题,所以需要把这几个文件清空,(不能删除会报错),但是这个指令存在问题,会把文件格式转为 utf-16,如果不处理它的话就会导致最后部署的时候报错,如下图所示。

解决方法也很简单,只需要在 vscode 中找到这三个文件。

把编码格式改为 utf-8,然后清空乱码即可。

  •  

奇趣周刊 - 第 82 期

奇趣周刊,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

祝大家新年快乐,大吉大利!在新的一年里,事业节节高升,财源滚滚。

1. barba.js - 一个让网站平滑跳转的库

https://barba.js.org/

这个库的功能与 pjax 类似,但是更轻量、易用,本站已经引入该库实现平滑跳转。它使网站像 SPA(单页应用程序)一样运行,并有助于减少页面之间的延迟、最大限度地减少浏览器 HTTP 请求并增强用户的 Web 体验。
可以进入官网体验这种效果。

2. RetroUI - 一个复古风格的 UI 组件库

https://retroui.dev/

这是一个基于 Tailwind CSS 的复古风格 UI 库,与现代化千篇一律的样式不同。

3. 字节跳动出品的 Trae

https://www.trae.ai/

对标 Cussor,可以用 claude3.5,限时免费。Trae 是一个人工智能集成开发环境(IDE),旨在通过人工智能与开发者的协作,提高开发效率和项目构建速度。

4. Github 官方的 css 组件

https://primer.style/css/storybook/?path=/docs/gettingstarted--docs

无意中发现 GitHub 居然有一个官方提供的 UI 组件库,但是似乎维护的不是很上心,不过单纯使用 css 的话还是会跟 GitHub 网站保持一样的风格,感觉还不错,支持 cdn 直接引入、或者 npm 包导入。

  •  

奇趣周刊 - 第 81 期

奇趣周刊,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Monkt - 将文件和网页转换为支持 AI 的 Markdown 或 JSON

https://monkt.com/

将 PDF、Word、PowerPoint、Excel、CSV、网页或者网页链接转换为支持 AI 的 Markdown 或 JSON 格式。

2. Grok Button - 一键向 Grok 进行提问

https://grokbutton.com/g/

Grok Button 通过扩展将 Grok 的强大功能带入您的浏览器。直接在浏览器栏中输入“grok {您的问题}”向 Grok 提问。

3. 将现实世界在 Minecraft 中生成

https://github.com/louis-e/arnis

一个非常有意思的项目,可以通过在现实地图中选择区域,然后渲染到 Minecraft 中生成对应的地图,水平非常高很细节。创建 3D 结构、道路、自然形态等。

4. 一键自动将内容保存到 Google 表格

https://www.addtosheets.com/

一个 Chrome 扩展,可让将网络上任何位置的文本、链接、图像 URL、页面链接等内容保存到 Google 表格电子表格中,而无需切换选项卡,兼容 Brave 和 Microsoft Edge。

5. 一键保存文章

https://packpack.ai/

一个浏览器扩展,可以保存网页、文章、图像、PDF、视频、音乐、播客等,支持同步。

6. Notion Faces - 官方的头像生成网站

https://faces.notion.com/

“Notion Faces” 是 Notion 官方提供的个性化服务,可以随机生成 Notion 风格的头像。

7. Plyr - 一款轻量的 HTML5 播放器

https://github.com/sampotts/plyr

Plyr 是一个开源的媒体播放器,支持 HTML5 视频和音频,以及 YouTube 和 Vimeo 平台的内容。它提供了一个简洁的界面,并且可以通过自定义来适应不同的需求。

8. 模糊处理截图中的敏感数据

https://blurdata.app/

BlurData 是一款专为 macOS 设计的自动模糊敏感信息的工具,能够快速识别并隐藏截图和 PDF 文档中的敏感数据,如电子邮件地址、姓名、金额等,提供免费试用和付费订阅两种使用方式。

  •  

奇趣周刊 - 第 80 期

奇趣周刊,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

说明:调整后降低一下周刊发布的频率,由原来的每周四发布,改为现在的每半个月发布一次,也就是 1 日、16 日,希望为大家带来更优质的内容。

1. LinuxDo Scripts 扩展

专为 linux.do 论坛设计,给 linux.do 用户提供了一些增强功能。

https://github.com/dlzmoe/linuxdo-scripts

2. 图片压缩

https://compressimage.cn/

网站提供的是一款本地隐私图片压缩工具,能够实现高达 95% 的压缩率,支持多种图片格式,保证压缩过程中的隐私安全,并提供批量处理功能。

3. GPT 降智检测

https://github.com/KoriIku/chatgpt-degrade-checker

此工具可帮助检测 ChatGPT 是否因“高风险”IP 指定而通过降级服务来限制对您帐户上某些功能的访问。遇到无法使用 GPT-4 生成图像、网络搜索访问受限或 GPT-3.5 的简化响应等问题的用户可能会受益于运行此脚本来识别潜在的降级。

4. 在线模拟器游戏网站

https://www.emu666.com/

一个在线模拟器游戏网站,无需下载打开即玩,有很多怀旧的游戏,合金弹头、拳皇、三国战记等等。

5. 高颜值的跨平台桌面端视频资源播放器

https://github.com/Hiram-Wong/ZyPlayer

一款采用现代化技术栈开发的高颜值媒体播放器,它基于 electron-vite 框架,集成了 TDesign UI 组件库与 Vue3 全家桶,以清新的薄荷绿为主题,旨在为用户提供流畅的跨平台娱乐体验。

6. 一键保存网站上的视频、音频和 GIF

https://cobalt.tools/

7. 小红书博主都在用的红薯编辑器

https://reditorapp.com/

笔记编辑、排版、内容检测、效果预览,一站式搞定。帮助你在潜移默化中掌握小红书笔记创作底层逻辑!

8. 生成你的 2024 GitHub 总结

https://rendley.com/wrapped

GitHub Wrapped 2024 使用 Rendley SDK 提供了一种生成个性化视频摘要的方式,展示用户在 GitHub 上的年度成就和亮点。

34mb 视频,正在加载

  •  

上海特种兵一日游 | 亲密旅行与城市探索

周五晚上下班和对象临时决定做一回特种兵,极限旅游。

各自回家收拾一下,开车凌晨出发,一点多到达杭州南站。因为买了一班七点半到达的火车,怕早上起不来所以直接在火车站睡了。

然后火车上又睡了俩小时,之所以坐火车是想感受一下烟火气息,比高铁慢一些但是感受不错。

七点半准时达到,精神状态良好。除了走在路上风有点大,温度倒是不冷。

第一站武康大楼,标准的网卡打卡点。但不得不说还挺好看咧。

遇到不少打卡的,以及网红拍摄。

然后来到城隍庙、豫园老城区这边逛逛,顺便吃点早餐。

逛完之后就顺着路线走到黄埔江边外滩看看东方明珠,以及各种民国时期的建筑。

逛累了之后就坐轮渡过黄浦江来到东方明珠脚下,顺便看看网红打卡三件套。

六点多都逛完之后,坐上了回家的火车结束这趟旅程,到家 8 点正好休息(其实也不算特种兵了)。开着小米运动一天走了 17 公里,3w 步,但是并没有感觉到累,可能两个人比较放松吧,拍拍照打打卡还是蛮舒服的。

感叹不愧是大都市,消费都比杭州高了一个档次。

  •  

使用 wxt 框架开发浏览器扩展时遇到的问题解决方案

最近在使用 wxt 框架开发浏览器扩展,记录一些问题。

https://wxt.dev/

1. 隔离脚本与网站本身的样式

使用 Shadow Root,可以不让 content-scripts 侵入式影响网站本身,然后引入并渲染 App.vue 组件。

import './style.css';
import { createApp } from 'vue';
import App from './App.vue';

export default defineContentScript({
  matches: ['https://google.com/*'],
  cssInjectionMode: 'ui',

  async main(ctx) {
    const ui = await createShadowRootUi(ctx, {
      name: 'example-ui',
      position: 'inline',
      anchor: 'body',
      onMount: (container) => {
        const app = createApp(App);
        app.mount(container);
        return app;
      },
      onRemove: (app) => {
        app?.unmount();
      },
    });

    ui.mount();
  },
});

2. 在 config.js 中配置

import { defineConfig } from 'wxt';
import pkg from './package.json';

// See https://wxt.dev/api/config.html
export default defineConfig({
  extensionApi: 'chrome',
  modules: ['@wxt-dev/module-vue'],
  manifest: {
    name: 'xxx',
    version: pkg.version,
    description: ...,
    permissions: ['storage', 'scripting'] // 存储、插入脚本
  },
  hooks: {
    'build:manifestGenerated': (wxt, manifest) => {
      if (wxt.config.command === 'serve') {
        manifest.content_scripts ??= [];
        manifest.content_scripts.push({
          matches: ['https://google.com/*'],
          js: ['content-scripts/content.js'],
          css: ['content-scripts/content.css']
        });
      }
    }
  }
});
  •  

我的 2024 年度总结

时间过的很快,又到了一年结束的时候。今年还算过的充实,不管是生活还是工作中,也是符合我的预期了。

上半年公司开发了新项目,连续加班几个月身心疲惫,好在后期补充新人,我也转战别的业务不再疯狂加班,不然真的有些熬不住…

那段时间过后感觉身体都有些不舒服,因此也发掘了一些新的爱好约上三五好友。

比如说露营,开始还不太了解,跟着朋友参加了几次露营活动,觉得很有意思,后面也自己买了一堆设备,帐篷、桌椅、小推车、烤炉等,不过近期天气转凉没有机会出去玩,打算等开春温度上去了再重新带着女朋友去露营。

然后又玩起了无人机,虽然我技术比较菜,但也玩的挺开心,出去爬山或者哪里的时候都会带着,看看不一样的角度挺有意思,感兴趣的可以去翻阅我之前发的一些文章有航拍记录。

然后就是日常开着车在杭州周边溜达了,也写了不少文章都有发布的摄影照片。


并且在开源之路继续前行,下半年来到 LinuxDo 社区开发了一款插件,不到半年时间也是收获了 500 多的 star,得到不少用户好评,截止到现在已有 530+ .

做开源也是一件很有成就感的事情,看到 Issues 被一一解决,合并热心网友的 Pr,也望自己再接再厉。


希望明年心态还能一如往常,保持平淡的饮食习惯,注重身体健康,多爬山多运动。

  •  

奇趣周刊 - 第 79 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

本期是 12 月份最后一期,最近有些事情处理,请假一个月暂时调整,2025 年 1 月 1 日重启。


1. 浮图秀

谷歌扩展

帮助用户快速查看页面中缩略图对应“大图”的浏览器插件,对于所支持的网站,用户鼠标悬停在缩略图时即可看到相应的高分辨率图片。目前支持的网站包括京东、天猫、淘宝、知乎、微博等 270 余个网站/域名并在不断扩展中。

1732591965522

2. PDFMathTranslate - PDF 科技论文翻译

PDF 科技论文翻译及双语比较,保留公式、图表、目录和注释,支持多种语言,多样化的翻译服务,提供命令行工具、交互式用户界面和 Docker。

1732684486199

3. 竹白百科

https://www.zhubai.wiki/

竹白百科网页是一个专注于优质内容的平台,展示了各类作品和创作者的最新动态,提供了一个发现和分享优秀博客、设计素材、技术文章等内容的空间。

1732686226541

4. 帮我寻找 AI 工具的搜索引擎

https://www.raghut.com/

通过描述可以得到想要的 AI 工具,比如“我需要一个编写 PPT 的 AI 工具” ,然后它就会搜索出可以满足你需求的工具,非常好用。

1732766033976

5. AI 海报生成器

https://postergenerator.online/

1732773092481

6. 给网页设置简单的表情 ico

https://fav.farm/

不用再费劲思考设置什么样的 ico 图,直接使用一行链接设置表情 ico。

1732786866829

7. Discover Random Websites - 随机网站跳转

https://random-websites.com/

Discover Random Websites 网站提供了一个平台,允许用户通过单击按钮来发现互联网上的有趣网站,并且可以提交自己喜欢的网站供社区探索。

  •  

奇趣周刊 - 第 78 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 橘猫起始页

https://jvmao.net/

一个浏览器新标签页插件。

1732093218545

2. 发票排版助手

https://fapiao.365yhb.com/

支持 PDF、PNG、JPG,拖拽排序,批量排版,100% 数据安全,免登录免费使用!作者是linux.do论坛的一位朋友。

1732149602670

3. 正则表达式在线调试网站

https://regex101.com/

1732181207881

4. 程序员应该访问的最佳网站中文版

https://github.com/tuteng/Best-websites-a-programmer-should-visit-zh

在学习 CS 的时候有一些你必须知道的有用的站点,来提升你的技术储备和学习新知识。

5. 可以改变图像上文字的工具

https://fal.ai/flux-tools

1732254206573

6. 海底电缆图

https://www.submarinecablemap.com/

海底电缆地图是来自 TeleGeography 的免费且定期更新的资源。

1732255451354

7. Twitter MBTI 收据

https://twi.am/

通过 Twitter 个人公开数据,分析个人的 MBTI 性格,还是挺好玩的,项目已开源可自部署。

1732512715625

8. iansui - 一套开源的繁体中文字型

https://github.com/ButTaiwan/iansui

基于 Fontworks 的 Klee One 衍生的开源繁体中文字型。

1732586740448

  •  

奇趣周刊 - 第 77 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Screenity - 屏幕录像和标注工具

https://screenity.io/

一款 Chrome 扩展,支持在屏幕的任意位置进行精彩的录制和信息标注,您可以同时录入清晰的麦克风音频或系统内部音频,并且还可享受便捷的点击高亮效果。此外,录制的视频能够轻松导出为 MP4、gif、webm 等多种流行文件格式,并且还提供简单易用的视频编辑功能,让您的创作更加完美!

1731374637523

2. 仿 GitHub 可视化的显示地球

https://github.com/janarosmonaliev/github-globe

Github 主页上的地球仪是用 ThreeJS 实现的,具有漂亮的阴影。

1731374922890

3. 适用于 Google Chrome 的简单记事本扩展程序

谷歌扩展

一个基于 Chrome 浏览器的扩展,可以用来临时记笔记。

1731383557534

4. 识别图片中的表格并转成 excel 文件

https://toexcel.zhiyakeji.com/

图片转 excel 使用了先进的 OCR 识别技术,能够精准的识别图片中的表格和文字,并将其还原并转成可编辑的 excel 文件。

1731394888134

5. 免费的在线记事本

https://hypernotepad.com/

免费在线记事本,可即时共享,无需安装,点开即可使用。

1731648894276

6. 检测网站嵌套能力的神器

只需输入目标网址,点击检测,即可快速获知该网址是否支持 iframe 嵌套。

https://iframecheck.online/

1732008068528

7. Awesome Bilibili Extra

https://github.com/HCLonely/awesome-bilibili-extra

Bilibili 脚本合集,收集一些让我们在使用 B 站时更加方便的浏览器扩展/脚本/程序。

8. Coolshapes Demo

https://github.com/realvjy/coolshapes-demo

该代码库包含一个简单的演示项目,用于检查来自 coolshapes-react 包的所有形状。

1732074351175

  •  

奇趣周刊 - 第 76 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Web Archive - 基于 Cloudflare 的网页归档工具

https://github.com/Ray-D-Song/web-archive

Web Archive 是基于 Cloudflare 的免费网页归档和共享服务,将网页保存为单个 html 文件并上传到服务器,服务器接收浏览器插件上传的 html 文件,并存储到数据库和存储桶中,最终在 Web 客户端显示这些文件。

1730192134470

2. CSS3 剪贴路径 (Clip-path) 在线生成器

https://www.techbrood.com/tool?p=css-clip-path

可以在线通过拖拽画幅节点,利用 Clip-path 属性剪切各种形状的图形,非常好用的工具。

1730335974148

3. danmu - 一个简单的弹幕插件

https://github.com/imtaotao/danmu

danmu 是一个在 GitHub 上开源的弹幕项目,提供了碰撞检测和高度自定义的弹幕屏幕样式,旨在为用户提供一个轻量级、高度可定制且易于集成的弹幕解决方案。

1730708232790

4. 浏览器扩展管理器

https://github.com/JasonGrass/auto-extension-manager

auto-extension-manager 是一个开源的浏览器扩展管理器,支持自定义规则自动启用或禁用扩展,提供多种匹配条件和动作,以及批量导出 / 导入扩展功能,同时支持多语言和丰富的配置选项。

1730710186460

5. EXIF 查看器

https://viewer.chuhai.tools/

优雅的查看照片的专业信息 EXIF,本地运行不上传云端,还是比较安全的。

1730776779737

6. 在线糖豆人游戏

https://passer-by.com/pacman/

经典街机糖豆人游戏在线版本。

1730869754508

7. 美观的代码截图工具

https://ray.so/

1730951631263

8. Blinko - 开源的个人笔记项目

https://github.com/blinko-space/blinko

Blinko 是一个创新的开源项目,专为那些想要快速捕捉和组织转瞬即逝的想法的个人而设计。Blinko 允许用户在想到想法的那一刻就无缝地记下想法,确保不丢失任何创造力的火花。

1731374393763

  •  

Lobechat 使用 Webdav 同步数据的研究

1. 前言

Lobechat 就不做过多介绍了,一个开源、现代设计的人工智能聊天框架。

今天就来聊聊同步的问题,Lobechat 分为社区版和正式版,正式版需要付费订阅套餐,支持全局云同步,但是最便宜的套餐都要 4.9 刀,这让我 API 用户感觉有点难以接受。因为我需要的功能社区版都已经满足了,并不打算单独对云同步付费。

官方之前有通过 WebRTC 同步数据的方案,但在某个版本被废弃了,其实我也能理解,WebRTC 同步方案太过麻烦,且具有不稳定性,必须保证同时两台设备在线,而且实现原理让我感觉有一丝不安全性。

对 WebRTC 概念感兴趣的话可以看下官方的一篇文章:
https://github.com/lobehub/lobe-chat/discussions/368


其实除了正式版之外,还有服务器自建数据库等同步方法,但都需要一定的成本和技术壁垒。

因此我在社区版的基础上构思了一个脚本,通过 Webdav 技术实现对话记录、设置等同步。此方案成本基本为零,坚果云免费额度都绰绰有余。

2. Webdav / Tampermonkey

但研究开始之前,有两个概念需要先了解一下。

  1. Webdav

大多数网盘都支持通过 Webdav 技术进行同步,网盘会提供一套账号密码以及服务器地址,在前端调用 API,能够实现增删改查等操作。

  1. 油猴管理器(Tampermonkey)

油猴管理器(Tampermonkey)无疑是浏览器插件的伟大创作之一,可以对网页注入 js 脚本来实现一些功能。

3. 那么如何获取 Lobechat 数据呢?

我研究过 Lobechat 源码,它数据都存放在本地的 IndexedDB 数据库中,这是浏览器的一个存储机制,可以存放大量的数据,显示则是以数据库的格式。

1731404378265

然后我先手动导出一份 json 格式的全局数据(社区版只支持手动导入导出文件),拿这份文件跟 IndexedDB 数据库 做对比,发现字段基本保持一致,数据格式也不用转,全部都在其中。

于是我翻阅了一下官方文档,有可以利用的 API,操作查询这些数据,下面是我的一些思路。

先声明我想要拿到的数据,这些都在上面的截图中存在。

const dbName = "LOBE_CHAT_DB";
const storeNames = ["messages", "sessionGroups", "sessions", "topics", "users"];
let request = indexedDB.open(dbName);

request.onsuccess = (event) => {
  const db = event.target.result;
  let state = {
    messages: [],
    sessionGroups: [],
    sessions: [],
    topics: [],
    users: [],
  };

  let pendingStores = 0;

  storeNames.forEach((storeName) => {
    if (db.objectStoreNames.contains(storeName)) {
      pendingStores++;
      const transaction = db.transaction([storeName], "readonly");
      const objectStore = transaction.objectStore(storeName);
      const allRecords = objectStore.getAll();

      allRecords.onsuccess = (event) => {
        const result = event.target.result;
        state[storeName] = result;
        pendingStores--;

        if (pendingStores === 0) {
          /*
          * 整个数据库的数据都可以导出
          * 在此回调执行操作
          */ 
        }
      };
    } 
  });
};

4. 操作流程原型

既然可以查询,就可以覆盖,同样也有 API 支持,所以我就构思了一下流程,利用 Webdav 的增删改查,把这些数据传到网盘中,然后在另一台设备拉取,最后优化一下整个流程,让它更加可视化。

大致原型如下:

1731404855162

点击同步到云端,会通过 Webdav API 在网盘创建一个指定的文件夹 lobechat-webdav-backup(我自己随意命名的),在本地程序中生成一个 json 文件,IndexedDB 数据会被放入该文件中,然后通过 Webdav API 传输到网盘中。

点击下载到本地,会先通过 Webdav API 获取lobechat-webdav-backup下的 json 文件内容,利用 IndexedDB API 覆盖在浏览器 IndexedDB 数据库中。


在实际体验中,可以随时保存本地数据到云端,下载数据到本地,同步就很方便,使用了三天,没有出现同步出错的问题,脚本很稳定。

最终我把该脚本发布到 Greasyfork,可供大家直接使用,代码也已开源。

  •  

大慈岩悬空庙

大慈岩位于浙江建德,半山腰有一座悬空庙,同时也是庆余年 2 的取景地,今天来到这里爬爬山打打卡。

用无人机拍出了全貌,地势也是十分惊险。

1731162547427 1731162534022 1731162501463

依山而建。

1731162559523

“重岩叠嶂。”

1731162269639

  •  

奇趣周刊 - 第 75 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Obsidian 官方剪藏插件

https://obsidian.md/clipper

安装浏览器插件后,在需要剪藏的文章页面打开扩展即可,可以自定义文档属性等功能。

1729757360814

2. PDF 文件生成播客

https://github.com/YOYZHANG/PodCastLM
https://ai.podcastlm.fun/

通过处理 PDF 的内容,生成适合音频播客的自然对话,并将其输出为 MP3 文件。

1729774232662

3. 检测页面是否能使用 iframe 嵌入

https://iframetester.dev/

4. 把 GitHub 链接转换成 LLM 可阅读格式的工具

https://githubtollm.replit.app/

支持整个项目、文件夹或单个文件,比如,你想用 LLM 阅读分析 GitHub 上的代码时,不用手动复制粘贴代码来转换了,直接输入 GitHub 地址它可以自动转换。

1729754968989

5. QtScrcpy - 小巧的 Android 投屏工具

https://github.com/barry-ran/QtScrcpy

支持通过 USB 或 WIFI 一键连接 Android 设备到电脑,实现屏幕显示和控制,无需 root 权限。并提供了丰富功能,包括实时屏幕显示、键鼠控制、屏幕录制、截图、批量操作、文件传输、剪贴板同步等。

1729834423650

6. 点开即玩的赛车小游戏

https://drive-mad.cc/

1729909199188

7. 在线棋类对战游戏

https://papergames.io/

1729941288376

8. 好玩的头像生成器

https://animate-avatar.netlify.app/

能够生成头像绘制过程的动画,而且也可以将动画 svg 导出,直接应用在博客或各种社交平台上。

1730166216144

  •  

盐官古城

今天带着小外甥出去晒晒太阳补补钙,去了盐官古城。

刚开发到一半就开放运营了,门票 60,有一大半区域还在施工,景点基本是没有的,也没有太多的商家入驻,只看到了一家全家便利店,其他的都是又口味一般又没听过的“特色美食”,就餐环境也不是很好。

据便利店员工聊天所知,景区不允许便利店售卖过多的快餐等食物,只有少量的面食(几盒),以恶意揣测是怕抢别的当地的饭馆生意。

但即使是这样,看别的餐馆也是仅有几桌,都没有坐满。

就当是散步了,不适合抱着游览景点的心态前往,同时也不太建议带小孩去,路面不平台阶多、桥多,不合适推车,每次路过都要抬着小推车挺麻烦的,并且里面实在没有什么玩的地方。

风景呢,也只有游客中心大门门口还算好看点,里面也挺一言难尽的,建议去其他古镇,比如:南浔、乌镇、塘西等。

随便放几张航拍的吧,权作纪念。

1730638302085

1730638295397

  •  

秋日良渚

经历了一周的降雨,整个人都发霉了,刚好看到周末两天天气非常棒,很适合出行,前往良渚踏青。

1730637844468

1730637807151

1730637824025

1730637834768

其实我也没太搞懂这几根柱子有什么历史含义,只感觉有种巨石阵的意味了。

  •  

OpenAI 发布 ChatGPT Search 谷歌扩展

2024 年 11 月 1 日,OpenAI 在谷歌扩展商店发布了一款插件 – ChatGPT search。

下载地址:https://chromewebstore.google.com/detail/ejcfepkfckglbgocfkanmcdngdijcgld

功能是接口浏览器默认的搜索,只需要在谷歌浏览器地址栏中输入内容再回车,可以直接跳转到 ChatGPT 官网使用 SearchGPT 功能进行聊天搜索,并且支持联网搜索。

挺实用的一个工具,特别是针对像我这样深度的 GPT 系列工具用户来说,极大优化了访问和使用流程。

1730443764168

1730443887430

仅个人感受,无数据支撑,感觉 SearchGPT 的质量要优于 Google 搜索,也有可能是我用习惯了的原因。

  •  

奇趣周刊 - 第 79 期

奇趣周刊,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

本期是 12 月份最后一期,最近有些事情处理,请假一个月暂时调整,2025 年 1 月 1 日重启。


1. 浮图秀

谷歌扩展

帮助用户快速查看页面中缩略图对应“大图”的浏览器插件,对于所支持的网站,用户鼠标悬停在缩略图时即可看到相应的高分辨率图片。目前支持的网站包括京东、天猫、淘宝、知乎、微博等 270 余个网站/域名并在不断扩展中。

2. PDFMathTranslate - PDF 科技论文翻译

PDF 科技论文翻译及双语比较,保留公式、图表、目录和注释,支持多种语言,多样化的翻译服务,提供命令行工具、交互式用户界面和 Docker。

3. 竹白百科

https://www.zhubai.wiki/

竹白百科网页是一个专注于优质内容的平台,展示了各类作品和创作者的最新动态,提供了一个发现和分享优秀博客、设计素材、技术文章等内容的空间。

4. 帮我寻找 AI 工具的搜索引擎

https://www.raghut.com/

通过描述可以得到想要的 AI 工具,比如“我需要一个编写 PPT 的 AI 工具” ,然后它就会搜索出可以满足你需求的工具,非常好用。

5. AI 海报生成器

https://postergenerator.online/

6. 给网页设置简单的表情 ico

https://fav.farm/

不用再费劲思考设置什么样的 ico 图,直接使用一行链接设置表情 ico。

7. Discover Random Websites - 随机网站跳转

https://random-websites.com/

Discover Random Websites 网站提供了一个平台,允许用户通过单击按钮来发现互联网上的有趣网站,并且可以提交自己喜欢的网站供社区探索。

  •  

奇趣周刊 - 第 78 期

奇趣周刊,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 橘猫起始页

https://jvmao.net/

一个浏览器新标签页插件。

1732093218545

2. 发票排版助手

https://fapiao.365yhb.com/

支持 PDF、PNG、JPG,拖拽排序,批量排版,100% 数据安全,免登录免费使用!作者是linux.do论坛的一位朋友。

1732149602670

3. 正则表达式在线调试网站

https://regex101.com/

1732181207881

4. 程序员应该访问的最佳网站中文版

https://github.com/tuteng/Best-websites-a-programmer-should-visit-zh

在学习 CS 的时候有一些你必须知道的有用的站点,来提升你的技术储备和学习新知识。

5. 可以改变图像上文字的工具

https://fal.ai/flux-tools

1732254206573

6. 海底电缆图

https://www.submarinecablemap.com/

海底电缆地图是来自 TeleGeography 的免费且定期更新的资源。

1732255451354

7. Twitter MBTI 收据

https://twi.am/

通过 Twitter 个人公开数据,分析个人的 MBTI 性格,还是挺好玩的,项目已开源可自部署。

1732512715625

8. iansui - 一套开源的繁体中文字型

https://github.com/ButTaiwan/iansui

基于 Fontworks 的 Klee One 衍生的开源繁体中文字型。

1732586740448

  •  

奇趣周刊 - 第 77 期

奇趣周刊,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Screenity - 屏幕录像和标注工具

https://screenity.io/

一款 Chrome 扩展,支持在屏幕的任意位置进行精彩的录制和信息标注,您可以同时录入清晰的麦克风音频或系统内部音频,并且还可享受便捷的点击高亮效果。此外,录制的视频能够轻松导出为 MP4、gif、webm 等多种流行文件格式,并且还提供简单易用的视频编辑功能,让您的创作更加完美!

1731374637523

2. 仿 GitHub 可视化的显示地球

https://github.com/janarosmonaliev/github-globe

Github 主页上的地球仪是用 ThreeJS 实现的,具有漂亮的阴影。

1731374922890

3. 适用于 Google Chrome 的简单记事本扩展程序

谷歌扩展

一个基于 Chrome 浏览器的扩展,可以用来临时记笔记。

1731383557534

4. 识别图片中的表格并转成 excel 文件

https://toexcel.zhiyakeji.com/

图片转 excel 使用了先进的 OCR 识别技术,能够精准的识别图片中的表格和文字,并将其还原并转成可编辑的 excel 文件。

1731394888134

5. 免费的在线记事本

https://hypernotepad.com/

免费在线记事本,可即时共享,无需安装,点开即可使用。

1731648894276

6. 检测网站嵌套能力的神器

只需输入目标网址,点击检测,即可快速获知该网址是否支持 iframe 嵌套。

https://iframecheck.online/

1732008068528

7. Awesome Bilibili Extra

https://github.com/HCLonely/awesome-bilibili-extra

Bilibili 脚本合集,收集一些让我们在使用 B 站时更加方便的浏览器扩展/脚本/程序。

8. Coolshapes Demo

https://github.com/realvjy/coolshapes-demo

该代码库包含一个简单的演示项目,用于检查来自 coolshapes-react 包的所有形状。

1732074351175

  •  

奇趣周刊 - 第 76 期

奇趣周刊,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Web Archive - 基于 Cloudflare 的网页归档工具

https://github.com/Ray-D-Song/web-archive

Web Archive 是基于 Cloudflare 的免费网页归档和共享服务,将网页保存为单个 html 文件并上传到服务器,服务器接收浏览器插件上传的 html 文件,并存储到数据库和存储桶中,最终在 Web 客户端显示这些文件。

1730192134470

2. CSS3 剪贴路径 (Clip-path) 在线生成器

https://www.techbrood.com/tool?p=css-clip-path

可以在线通过拖拽画幅节点,利用 Clip-path 属性剪切各种形状的图形,非常好用的工具。

1730335974148

3. danmu - 一个简单的弹幕插件

https://github.com/imtaotao/danmu

danmu 是一个在 GitHub 上开源的弹幕项目,提供了碰撞检测和高度自定义的弹幕屏幕样式,旨在为用户提供一个轻量级、高度可定制且易于集成的弹幕解决方案。

1730708232790

4. 浏览器扩展管理器

https://github.com/JasonGrass/auto-extension-manager

auto-extension-manager 是一个开源的浏览器扩展管理器,支持自定义规则自动启用或禁用扩展,提供多种匹配条件和动作,以及批量导出 / 导入扩展功能,同时支持多语言和丰富的配置选项。

1730710186460

5. EXIF 查看器

https://viewer.chuhai.tools/

优雅的查看照片的专业信息 EXIF,本地运行不上传云端,还是比较安全的。

1730776779737

6. 在线糖豆人游戏

https://passer-by.com/pacman/

经典街机糖豆人游戏在线版本。

1730869754508

7. 美观的代码截图工具

https://ray.so/

1730951631263

8. Blinko - 开源的个人笔记项目

https://github.com/blinko-space/blinko

Blinko 是一个创新的开源项目,专为那些想要快速捕捉和组织转瞬即逝的想法的个人而设计。Blinko 允许用户在想到想法的那一刻就无缝地记下想法,确保不丢失任何创造力的火花。

1731374393763

  •  

Lobechat 使用 Webdav 同步数据的研究

1. 前言

Lobechat 就不做过多介绍了,一个开源、现代设计的人工智能聊天框架。

今天就来聊聊同步的问题,Lobechat 分为社区版和正式版,正式版需要付费订阅套餐,支持全局云同步,但是最便宜的套餐都要 4.9 刀,这让我 API 用户感觉有点难以接受。因为我需要的功能社区版都已经满足了,并不打算单独对云同步付费。

官方之前有通过 WebRTC 同步数据的方案,但在某个版本被废弃了,其实我也能理解,WebRTC 同步方案太过麻烦,且具有不稳定性,必须保证同时两台设备在线,而且实现原理让我感觉有一丝不安全性。

对 WebRTC 概念感兴趣的话可以看下官方的一篇文章:
https://github.com/lobehub/lobe-chat/discussions/368


其实除了正式版之外,还有服务器自建数据库等同步方法,但都需要一定的成本和技术壁垒。

因此我在社区版的基础上构思了一个脚本,通过 Webdav 技术实现对话记录、设置等同步。此方案成本基本为零,坚果云免费额度都绰绰有余。

2. Webdav / Tampermonkey

但研究开始之前,有两个概念需要先了解一下。

  1. Webdav

大多数网盘都支持通过 Webdav 技术进行同步,网盘会提供一套账号密码以及服务器地址,在前端调用 API,能够实现增删改查等操作。

  1. 油猴管理器(Tampermonkey)

油猴管理器(Tampermonkey)无疑是浏览器插件的伟大创作之一,可以对网页注入 js 脚本来实现一些功能。

3. 那么如何获取 Lobechat 数据呢?

我研究过 Lobechat 源码,它数据都存放在本地的 IndexedDB 数据库中,这是浏览器的一个存储机制,可以存放大量的数据,显示则是以数据库的格式。

1731404378265

然后我先手动导出一份 json 格式的全局数据(社区版只支持手动导入导出文件),拿这份文件跟 IndexedDB 数据库 做对比,发现字段基本保持一致,数据格式也不用转,全部都在其中。

于是我翻阅了一下官方文档,有可以利用的 API,操作查询这些数据,下面是我的一些思路。

先声明我想要拿到的数据,这些都在上面的截图中存在。

const dbName = "LOBE_CHAT_DB";
const storeNames = ["messages", "sessionGroups", "sessions", "topics", "users"];
let request = indexedDB.open(dbName);

request.onsuccess = (event) => {
  const db = event.target.result;
  let state = {
    messages: [],
    sessionGroups: [],
    sessions: [],
    topics: [],
    users: [],
  };

  let pendingStores = 0;

  storeNames.forEach((storeName) => {
    if (db.objectStoreNames.contains(storeName)) {
      pendingStores++;
      const transaction = db.transaction([storeName], "readonly");
      const objectStore = transaction.objectStore(storeName);
      const allRecords = objectStore.getAll();

      allRecords.onsuccess = (event) => {
        const result = event.target.result;
        state[storeName] = result;
        pendingStores--;

        if (pendingStores === 0) {
          /*
          * 整个数据库的数据都可以导出
          * 在此回调执行操作
          */ 
        }
      };
    } 
  });
};

4. 操作流程原型

既然可以查询,就可以覆盖,同样也有 API 支持,所以我就构思了一下流程,利用 Webdav 的增删改查,把这些数据传到网盘中,然后在另一台设备拉取,最后优化一下整个流程,让它更加可视化。

大致原型如下:

1731404855162

点击同步到云端,会通过 Webdav API 在网盘创建一个指定的文件夹 lobechat-webdav-backup(我自己随意命名的),在本地程序中生成一个 json 文件,IndexedDB 数据会被放入该文件中,然后通过 Webdav API 传输到网盘中。

点击下载到本地,会先通过 Webdav API 获取lobechat-webdav-backup下的 json 文件内容,利用 IndexedDB API 覆盖在浏览器 IndexedDB 数据库中。


在实际体验中,可以随时保存本地数据到云端,下载数据到本地,同步就很方便,使用了三天,没有出现同步出错的问题,脚本很稳定。

最终我把该脚本发布到 Greasyfork,可供大家直接使用,代码也已开源。

  •  

大慈岩悬空庙

大慈岩位于浙江建德,半山腰有一座悬空庙,同时也是庆余年 2 的取景地,今天来到这里爬爬山打打卡。

用无人机拍出了全貌,地势也是十分惊险。

1731162547427 1731162534022 1731162501463

依山而建。

1731162559523

“重岩叠嶂。”

1731162269639

  •  

奇趣周刊 - 第 75 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Obsidian 官方剪藏插件

https://obsidian.md/clipper

安装浏览器插件后,在需要剪藏的文章页面打开扩展即可,可以自定义文档属性等功能。

1729757360814

2. PDF 文件生成播客

https://github.com/YOYZHANG/PodCastLM
https://ai.podcastlm.fun/

通过处理 PDF 的内容,生成适合音频播客的自然对话,并将其输出为 MP3 文件。

1729774232662

3. 检测页面是否能使用 iframe 嵌入

https://iframetester.dev/

4. 把 GitHub 链接转换成 LLM 可阅读格式的工具

https://githubtollm.replit.app/

支持整个项目、文件夹或单个文件,比如,你想用 LLM 阅读分析 GitHub 上的代码时,不用手动复制粘贴代码来转换了,直接输入 GitHub 地址它可以自动转换。

1729754968989

5. QtScrcpy - 小巧的 Android 投屏工具

https://github.com/barry-ran/QtScrcpy

支持通过 USB 或 WIFI 一键连接 Android 设备到电脑,实现屏幕显示和控制,无需 root 权限。并提供了丰富功能,包括实时屏幕显示、键鼠控制、屏幕录制、截图、批量操作、文件传输、剪贴板同步等。

1729834423650

6. 点开即玩的赛车小游戏

https://drive-mad.cc/

1729909199188

7. 在线棋类对战游戏

https://papergames.io/

1729941288376

8. 好玩的头像生成器

https://animate-avatar.netlify.app/

能够生成头像绘制过程的动画,而且也可以将动画 svg 导出,直接应用在博客或各种社交平台上。

1730166216144

  •  

盐官古城

今天带着小外甥出去晒晒太阳补补钙,去了盐官古城。

刚开发到一半就开放运营了,门票 60,有一大半区域还在施工,景点基本是没有的,也没有太多的商家入驻,只看到了一家全家便利店,其他的都是又口味一般又没听过的“特色美食”,就餐环境也不是很好。

据便利店员工聊天所知,景区不允许便利店售卖过多的快餐等食物,只有少量的面食(几盒),以恶意揣测是怕抢别的当地的饭馆生意。

但即使是这样,看别的餐馆也是仅有几桌,都没有坐满。

就当是散步了,不适合抱着游览景点的心态前往,同时也不太建议带小孩去,路面不平台阶多、桥多,不合适推车,每次路过都要抬着小推车挺麻烦的,并且里面实在没有什么玩的地方。

风景呢,也只有游客中心大门门口还算好看点,里面也挺一言难尽的,建议去其他古镇,比如:南浔、乌镇、塘西等。

随便放几张航拍的吧,权作纪念。

1730638302085

1730638295397

  •  

秋日良渚

经历了一周的降雨,整个人都发霉了,刚好看到周末两天天气非常棒,很适合出行,前往良渚踏青。

1730637844468

1730637807151

1730637824025

1730637834768

其实我也没太搞懂这几根柱子有什么历史含义,只感觉有种巨石阵的意味了。

  •  

OpenAI 发布 ChatGPT Search 谷歌扩展

2024 年 11 月 1 日,OpenAI 在谷歌扩展商店发布了一款插件 – ChatGPT search。

下载地址:https://chromewebstore.google.com/detail/ejcfepkfckglbgocfkanmcdngdijcgld

功能是接口浏览器默认的搜索,只需要在谷歌浏览器地址栏中输入内容再回车,可以直接跳转到 ChatGPT 官网使用 SearchGPT 功能进行聊天搜索,并且支持联网搜索。

挺实用的一个工具,特别是针对像我这样深度的 GPT 系列工具用户来说,极大优化了访问和使用流程。

1730443764168

1730443887430

仅个人感受,无数据支撑,感觉 SearchGPT 的质量要优于 Google 搜索,也有可能是我用习惯了的原因。

  •  

奇趣周刊 - 第 74 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. PDF 文档 OCR 工具

https://getomni.ai/ocr-demo

对于混乱糟糕的 PDF 文档,可以利用这个在线工具进行在线提取内容,可以保留原有的格式。

1729244265340

2. Surya - 文档 OCR 工具

专注于文档图像的处理与分析,能够精确到行级文本检测和识别,支持 90 多种语言,包括中文、英文、日语等。支持文档布局分析,包括表格、图像、标题等,精确识别表格中的行和列内容,还能支持阅读顺序检测。

1729244366069

3. 如何提出好问题?

https://jvns.ca/blog/good-questions/

在人际沟通中,“善于提问”是一种顶级技能(评级:SSR✨)。在关键时刻提出一个好问题,能让沟通事半功倍,事情水到渠成。

1729244538878

4. Epublifier - 将网站转换为 epub 格式的浏览器扩展

https://github.com/maoserr/epublifier

该工具允许您从网站提取 html 页面列表并将其编译成 ePub 图书,以便导入到您选择的电子阅读器中。对于可以编写 javascript 的高级用户,您可以添加额外的解析器定义来自定义任何站点的解析。

5. Google 谷歌翻译自动中英互译 - 油猴脚本

https://greasyfork.org/scripts/378166

Google 翻译没有百度、有道翻译那样的 “中英互译” 功能,需手动切换输出语言。这个脚本实现 “中英互译” 功能,帮您自动切换输出语言,当且仅当 “输入语言” 被设置为 “自动检测” 时有效。

6. Geekits - 极简工具箱

https://geekits.ygeeker.com/

极简,强大,高效的在线工具箱,遵循 MD 设计规范,这是一个使用 MUI、TypeScript、Next.js 和许多其他技术精心构建的渐进式数字工具箱。

1729664960449

7. 一个导出推特推文、书签、列表的油猴脚本

https://github.com/prinsss/twitter-web-exporter

从 Twitter(X) 网络应用程序导出推文、书签、列表等。 (推文/书签/收藏/列表导出工具)

1729665694847

8. WebStorm 对非商业用途免费

https://blog.jetbrains.com/zh-hans/blog/2024/10/24/webstorm-rider/

JetBrains 宣布 WebStorm 和 Rider 对于非商业用途免费提供,旨在支持开发者社区,尤其是学习、开源项目开发、内容创作和业余爱好开发等场景。

  •  

奇趣周刊 - 第 73 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

2024 年 10 月 22 日,多名俄罗斯籍 Linux 内核代码贡献者被社区除名,并表示是由于某些合规性要求,Linus Torvalds 随后公开支持此行动,并表示不会恢复。

很显然这是一件明显带有政治倾向的行动,虽然说技术无国界,但技术者有国界,望未来众多社区贡献者好好思考此次事件。

1. JavaScript Guidebook - JavaScript 知识体系文档

https://tsejx.github.io/javascript-guidebook/

JavaScript Guidebook 网站提供了一个全面的 JavaScript 知识体系,包括基础语法、内置对象、核心模块、面向对象编程、浏览器对象模型(BOM)、文档对象模型(DOM)、计算机网络、设计模式等内容,旨在帮助开发者系统化学习并在日常开发中查阅具体技术细节。

1728962674004

2. Cloud Document Converter - 下载飞书文档

https://github.com/lujunji4113/cloud-document-converter

Cloud Document Converter 是一个 Chrome 扩展,支持下载、复制飞书云文档为 Markdown。

3. Twitter 视频下载器

https://twitterxz.com/

一个可以免费下载 Twitter 视频,Gif 的在线工具,在这里可以方便的下载 Twitter 中的 视频 和 GIF。

1729079420860

4. 食物热量卡路里查询

https://www.boohee.com/food/search?keyword=%E9%B8%A1%E8%9B%8B%E7%81%8C%E9%A5%BC

超过 100 万种食物数据,食物营养查询,吃适合的食物。

1729137310555

5. 九宫格图片分割器

https://imagesplitter.vip/zh

一键分割、快速下载、轻松创作:为社交媒体、电商展示和创意拼图转换您的图像。

1729147527370

6. LLM API Showdown - 大模型对决

https://llmshowdown.vercel.app/

快速查找某个指定的大模型 (LLM) ,价格最便宜以及最快的平台。

1729214128182

7. 在线批量导出微信公众号文章

https://github.com/jooooock/wechat-article-exporter

在线批量导出微信公众号文章,支持内嵌的音视频导出,无需搭建任何环境,可 100% 还原文章样式,支持私有部署。

8. 字节跳动大模型训练被实习生攻击,涉事者已被辞退

https://t.me/jike_collection/10287

来自即可精选的新闻。

  •  

嘉兴神仙湖露营

周六,天气很凉爽,虽然下了点小雾雨,但是依旧无法影响出行游玩的欲望,出去露营,地点是嘉兴市神仙湖生态公园。

不知道为什么手机导出无人机拍摄视频,再到微信保存之后这么模糊,下回买个读卡器直接导出试试看。

1729427796583

1729427808428

1729427833378

烧烤则是找了三块石头垫起来,防止高温损伤草坪。

1729427822253

1729427841382

1729427849744

  •  

奇趣周刊 - 第 72 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. SpaceX 星舰第五次发射回收成功

周日早上,Space X 成功捕获了 20 多层楼高的火箭助推器。

Elon Musk explains exactly how Space X's Mechazilla can catch the Super Heavy booster.

On Sunday morning, Space X successfully caught a 20+ story tall rocket booster.

"This is a custom-built tower with arms that are designed to catch the largest flying and heaviest flying… pic.twitter.com/7rwHnXDk2d

— Collin Rugg (@CollinRugg) October 13, 2024

1728867783841

2. YouTube 高清视频下载

https://youtube.iiilab.com/

在 YouTube APP 或网站上,找到想要下载的视频,复制视频页面链接,将复制的链接粘贴到下面的输入框,点击解析视频按钮,稍等几秒,解析成功后会返回高清视频地址和视频封面,点击下载即可。

3. 渐变色系集合

https://gradients.app/zh/mesh

1728539878844

4. AsrTools - 智能语音转文字工具

https://github.com/WEIFENG2333/AsrTools

智能语音转字幕文本工具,内置剪映、快手、必剪接口。对比 Github 目前多数的音频转换文字项目(通过调用 Wishper 等模型),本项目最大区别和优势就是调用大厂接口来云端处理,无需 GPU 和繁琐的本地配置。接口与官方体验一致,稳定快速且可靠。

1728867863154

5. 生成 emoji 的 AI 网站

https://emojis.sh/

几秒钟内将您的想法变成表情符号,只需一键点击即可生成您最喜欢的 Slack 表情符号。

1728868095229

6. eSearch - 一个不错的屏幕工具

https://github.com/xushengfeng/eSearch

支持截屏、离线 OCR、搜索翻译、以图搜图、贴图、录屏、万向滚动截屏、屏幕翻译等。

1728868303334

7. Markdown 生成简单的简历

https://resume.todev.cc/

可以在网页上使用 Markdown 语法编辑简历,然后导出为 PDF 格式,非常简单好用。

1728869173358

8. Inbox Zero - 借助 AI 帮助你对邮件进行归类、过滤、处理

https://github.com/elie222/inbox-zero

Inbox Zero 是一款开源电子邮件应用程序,其目标是通过 AI 辅助对邮件进行归类、过滤、处理。

1728870167946

  •  

西湖徒步 - 九溪满觉陇

(多图预警)

虽然因为上周国庆假期导致周六调休,但是丝毫不影响我周日的热情,邀请了几位朋友一起去西湖徒步。

从九溪公交站出发,爬五云山,看真际寺,经十里锒铛,下龙井村,绕满觉陇,赏桂花,最终满载而归。

前半程路线还比较空旷,路人并不多,到达满觉陇后震惊,人山人海,刚好赶上九月底杭州桂花开满全城的季节,而满觉陇更是每年都爆满的路段,也是走的很辛苦。不过,总的来说,旅程还是很充实,有一群共同爱好的朋友,路上并不孤单。

中途发现了一些村落坐落在群山中,非常有意境,又加上天气非常棒,今日满意度直接拉满了。

1728821742655 1728821827294 1728821720683 1728821730237 1728821753601 1728821778276 1728821812687 1728821764198 1728821844388 1728821855326 1728821692553 1728821836797

  •  

奇趣周刊 - 第 71 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

Jonas Hietala 博客已经连续运营了 15 年,他通过博客记录个人项目、分享兴趣,并逐步成为一名更好的写手和开发者。

https://www.jonashietala.se/blog/2024/09/25/why_i_still_blog_after_15_years/

1. 在线检测本机是否使用 Clash

https://mikewang000000.github.io/ClashScan/

1727682725990

2. 自托管文件共享平台

https://github.com/stonith404/pingvin-share

集轻盈与美观于一体的自托管文件共享平台,完美实现无缝高效的文件共享。

1727682840776

3. 用中文读科技新闻

https://zeli.app/zh

旨在帮你快速挑选感兴趣的文章来读,来自 v2ex 帖子分享。

1728365087172

4. UptimeFlare - 基于 Cloudflare Workers 驱动的监控程序

https://github.com/lyc8503/UptimeFlare

更先进、无服务器、免费的正常运行时间监控和状态页面解决方案,由 Cloudflare Workers 提供支持,并具有用户友好的界面。

1728397906271

5. Follow it later - 将页面发送到 Follow 收件箱

谷歌扩展

一个 chrome 插件,可以发送页面到 Follow 收件箱以便稍后阅读和订阅。

1728467350769

6. WebChat - 匿名聊天浏览器扩展

https://github.com/molvqingtai/WebChat
谷歌扩展

这是一个匿名聊天浏览器扩展,是去中心化和无服务器的,利用 WebRTC 进行端到端加密通信。它优先考虑隐私,所有数据都存储在本地。目的是为任何网站添加聊天室功能,从而实现随时随地的实时消息传递。

比如有多个人同打开了 GitHub 网站,并且安装了该插件,就可以端到端加密聊天。

1728481353045

7. Track Stargazers - 每日获取 GitHub 仓库 Star 新增数量

https://github.com/Leizhenpeng/TrackStar

一个 GitHub Actions 工作流,用于跟踪和记录仓库的 Stargazers(加星用户),并将每日新增关注者发送到指定的飞书群。

1728521874543

  •  

奇趣周刊 - 第 70 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

Meta 因用纯文本存储 6 亿用户密码被罚 1.015 亿美元。

https://yro.slashdot.org/story/24/09/27/2226229/meta-fined-102-million-for-storing-600-million-passwords-in-plain-text

1. 纯前端检测 OpenAI API 是否可用

https://github.com/QAbot-zh/query-key

支持 oneapi/newapi/.. 等中转 openai 格式的 api 测活,纯前端版本,不再担心网关超时,数据安全有保障,测活数据完整,响应时间、模型一致性直观,本地一键运行,同时支持 pages 在线托管。

2. OpenFreeMap - 一个开源的地图组件

https://github.com/hyperknot/openfreemap

OpenFreeMap 是一个开源地图服务,提供高质量的地图瓦片和样式,适用于网站和移动应用程序。它基于 OpenStreetMap 数据,支持通过 MapLibre GL JS 和 MapLibre Native 进行集成,适合需要自定义地图样式和功能的开发者。用户可以选择默认样式或使用 Maputnik 编辑器进行个性化定制。OpenFreeMap 还支持自行托管,为用户提供了下载预处理的全球地图数据的选项。此外,项目鼓励社区成员通过 GitHub Sponsors 资助,以帮助维持服务器和项目的持续发展。

1727402772894

3. 开源许可证选择器

https://open-source-license-chooser.toolsnav.top/zh/

为你推荐适合你项目的开源许可证,通过娱乐的方式选择你想给予的权限,然后会给你推荐相对应的开源协议。

1727406706471

4. 微信公众号转 PDF 插件

https://greasyfork.org/scripts/510683

支持在微信公众号文章页面,点击直接保存为 PDF 格式文件。灵感来源自己想留存一下记录,就写了个导出为 PDF 的油猴插件,比较方便。

5. 天涯神贴备份网站

https://tianya.at

1727587404152

6. 生成插画风格的动画效果

https://2019.makemepulse.com/

非常酷的生成插画风格的动画效果的小工具,可以使用鼠标进行交互。

1727588963030

7. SHELL - 强大、免费、开源的上下文菜单管理器

https://nilesoft.org/

Shell 是一个上下文菜单自定义程序,可让您手动选择要集成到 Windows 文件资源管理器上下文菜单中的项目,创建自定义命令来访问所有您喜爱的网页、文件和文件夹,并直接从上下文菜单启动任何应用程序。

1727658244176

8. 一个免费可商用的插画库

https://vectorcraftr.com/

总共有 698 种插图供用户选择,包含多种分类,如商业、角色、极简主义、食物等。提供 SVG 格式。

1727658813564


周刊导航: 上一期(#69) | 下一期(#71)

  •  

奇趣周刊 - 第 69 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

本周,Cloudflare 推出十四周年,发布了博文,在文中反思了公司的发展和互联网的现状,强调了其对互联网的承诺和对原创内容创作者的支持,以及在面对互联网自由和安全性挑战时的责任!

https://blog.cloudflare.com/cloudflare-2024-annual-founders-letter/

1. Follow - 下一代信息浏览器

https://follow.is/

DIYgod 主导开发的下一代信息浏览器 Follow,可以将任何你想查阅的信息整合成信息流,包括不限于文章、社交媒体、图片、视频、播客、通知信息等,一切你可以想象到的信息流都可以在这里订阅。并且还拥有其他丰富的功能,如 AI 总结、自定义规则等,接入了区块链代币,可以进行打赏激励信息来源者,目前采用邀请制,暂未开放公测。

1726793406239

2. 真实地址生成器

https://github.com/Adonis142857/Real-Address-Generator

这是一个基于 Cloudflare Workers 的真实地址生成器。您可以生成不同国家地图上真实的随机地址。在线使用:https://realaddress.fuyiran.com/

1726629208310

3. TTSMaker - 免费的在线配音工具

https://ttsmaker.cn/

TTSMaker(马克配音)是一款免费的文本转语音工具,提供语音合成服务,支持多种语言,包括中文、英语、日语、韩语、法语、德语、西班牙语、阿拉伯语等 50 多种语言,以及超过 300 种语音风格。您可以用它制作视频配音,也可用于有声书朗读,或下载音频文件用于商业用途(完全免费)。作为一款优秀的 AI 配音工具,TTSMaker 可以轻松地将文本转换为语音。

1726652740086

4. Frame0 - 一个 UI/UX 工具

https://frame0.app/

Frame0 是一个帮助设计师快速轻松创建手绘风格的线框图的工具,旨在减少设计压力,提高设计效率,允许用户通过手绘风格的线框图来表达和传达他们的应用程序想法,而不需要花费大量时间和精力。

1726710154442

5. NPM Chart - 将 npm 下载量转换为图表

https://npm.chart.dev/

将 npm 下载量转换为神奇的动态图表,可以保存 PNG 或 SVG 分享。

1726715147578

6. Cherry Studio - 一个颜值相当高的 LLM 客户端

https://github.com/kangfenmao/cherry-studio

Cherry Studio 是一款桌面客户端,支持多个 LLM 提供商,可在 Windows、Mac 和 Linux 上使用。

1726794353781

7. Mintlify - 一个搭建文档的工具

https://mintlify.com/

一个便捷的文档搭建工具,只需轻轻点击几下,便可快速生成一个美观大方的文档网站!它不仅支持自定义域名,还允许您在 web 后端直接编辑,所有文档以 mdx 文件的形式优雅地存放于您的 Github 仓库中,让您的文档管理变得无比轻松与高效。

1727253463857

8. 宝可梦精灵生成器

https://randompokemongenerator.me/

使用 AI 生成宝可梦风格的精灵,输入你想要的精灵能力以及图片风格,即可生成很多不错的精灵。

1727254637279


周刊导航: 上一期(#68) | 下一期(#70)

  •  

奇趣周刊 - 第 68 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

2024 年 9 月 12 日,OpenAI 推出了新的 OpenAI o1 系列 AI 模型,专门用于解决复杂问题,并提高了 AI 的推理能力和安全性。

https://openai.com/index/introducing-openai-o1-preview/

1. 开源 PDF 在线工具

https://github.com/Stirling-Tools/Stirling-PDF

一个很强大的开源 PDF 在线工具,拆分 PDF,压缩 PDF,PDF 转换等等,支持 docker 自部署。

1725788411241

2. 自定义配置 tailwindcss 变量的网站

https://customizer.railly.dev/

想要自定义 tailwindcss 变量可以试试这个网站,一次性配置好。

1725862606485

3. 一个二维码生成网站

https://www.qrcode-tiger.com/

最先进的带有在线徽标的二维码生成器。

1725948167790

4. 一个免费制作 logo 的网站

https://icon.kitchen/

它可以直接生成 android、ios 和 web 三端的 logo,你可以从图标、文本、图片去生成 logo,支持设置背景、纹理、字体等。

1726018963937

5. 有趣的在线制作简历

https://rxresu.me

填写基本信息后,利用模板即可生成美观的简历,简洁大方,非常好用。

1726022119578

6. 一则 Twitter 消息

在马克思 200 年诞辰之际,德国发行了价值 0 欧元的纪念币。 pic.twitter.com/QWDrsN8lFc

— Morris (@Morris_LT) September 11, 2024

7. 汉语新解

https://hanyuxinjie.com/

将一个汉语词汇进行全新角度的解释,使用 gpt 生成,关于 prompt 的描述。

1726206015149

8. 网络测速工具

https://zhale.me/

全球 1000+ 网络拨测节点,模拟用户访问域名/IP,实用小工具,运维必备。

1726478473414


周刊导航: 上一期(#67) | 下一期(#69)

  •  

记一次露营

国庆跟朋友约着出去露营,环境还不错,温度也挺凉快的,天气晴朗,有蓝天白云。

1728010590666

1728010662246

1728010675279

1728010701317

1728010719949

1728010746414

1728010756057

1728010765556

1728010775667

  •  

奇趣周刊 - 第 67 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

2024 年 9 月 6 日,telegra.ph 网站限制一切 api 上传媒体文件。很多绕过 telegraph 的项目上传图片的图床项目,生命因此走到了终结,不过这也在意料之中,白嫖不是长久之计,不过之前已经上传的媒体文件并不会受影响。建议平替到 CloudFlare R2,毕竟是正经的本地存储功能,且背靠互联网大厂信誉很不错,还是值得使用的。

1. Git 客户端

https://ugit.qq.com/

腾讯为数不多的良心软件,自研 Git 客户端,便捷的大文件管理,快速提交,检出子目录,使用很流畅,可以替代 GitHub Desktop。

1725505460403

2. 杂交版植物大战僵尸官网

https://pvzgame.net/

植物大战僵尸杂交版是由 B 站(哔哩哔哩)UP 主潜艇伟伟迷以个人兴趣和创意开发的一款植物大战僵尸同人游戏,完全免费且不涉及商业利益​ ​。这个版本包含了大量新设计的僵尸和植物,以及许多新机制和挑战,玩家可以在不联网的情况下离线进行游戏​。

3. 火烧云分析与记录

https://sunsetbot.top/

国内自然气候爱好者的小众记录网站,主要内容就是火烧云分析与记录。

1725513913681

4. Virtual Try-On Chrome Extension

https://github.com/shyjal/visual-try-on

基于快手 Kolors 图像模型开发,可在任何电商网站上,上传一张自己照片,即可一键让自己试穿喜欢的衣服。

查看插件的演示视频:https://www.youtube.com/watch?v=1LQ2345lANM

1725550106946

5. Logoly —— Pornhub 风格的标志生成器

https://www.logoly.pro

一个简单的在线徽标生成器,适合想要轻松设计徽标的人们,生成类似 PornHub 或 OnlyFans 的徽标,支持下载 PNG/SVG 格式的图片。

1725583704258

6. 文颜 - 多平台写作,一键排版美化。

https://yuzhi.tech/wenyan

「文颜」是一款全自动的文章排版美化工具,专为简化您的内容发布工作而设计。它可以将 Markdown 格式的文章快速转换为适合微信公众号、今日头条、知乎等平台的排版格式,从而省去因平台差异带来的繁琐调整。

1725584932468

7. 动态文档计算器

https://www.inkandswitch.com/potluck/demo/?openDocument=math-pack

可以一边写文档,一边进行计算。

1725607705140

8. 一个可以下载书的网站

https://24hbook.store/

1725635616415


This message is used to verify that this feed (feedId:55064361156653076) belongs to me (userId:54877812003614720). Join me in enjoying the next generation information browser https://follow.is.

This message is used to verify that this feed (feedId:52896630195224576) belongs to me (userId:54877812003614720). Join me in enjoying the next generation information browser https://follow.is.


周刊导航: 上一期(#66) | 下一期(#68)

  •  

Python + GPT 自动翻译 README 文档

在开发个人项目时,写 README 文件一直是一件很头疼的事情,所幸辛苦写完了,想做个多语言版本更头疼,为了解决整个痛点,写了个 python + GPT 脚本,将这一切自动化处理了。

源码:https://github.com/dlzmoe/translate-README

在根目录下新建俩文件 .envtranslate_md.py

OPENAI_URL=https://api.openai.com/v1/chat/completions
API_KEY=your_api_key_here
MODEL=gpt-4o-mini
INPUT_FILE=README.md
OUTPUT_FILE=README_EN.md
TARGET_LANGUAGE=en

个人是比较喜欢 gpt-4o-mini 这个模型,功能足够覆盖我日常使用,生成速度快,对 token 的消耗也比较低,作图生文、理解性也都是前排水平。

# translate_md.py
import os
import requests
from dotenv import load_dotenv

# 加载 .env 文件中的环境变量
load_dotenv()

# 配置选项
OPENAI_URL = os.getenv("OPENAI_URL")
API_KEY = os.getenv("API_KEY")
MODEL = os.getenv("MODEL")
INPUT_FILE = os.getenv("INPUT_FILE")
OUTPUT_FILE = os.getenv("OUTPUT_FILE")
TARGET_LANGUAGE = os.getenv("TARGET_LANGUAGE")

def read_markdown_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        return file.read()

def write_markdown_file(file_path, content):
    with open(file_path, 'w', encoding='utf-8') as file:
        file.write(content)

def translate_text(text):
    headers = {
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }
    
    prompt = f"Translate the following text to {TARGET_LANGUAGE} Markdown syntax is not preserved :\n\n{text}"
    
    data = {
        "model": MODEL,
        "messages": [{"role": "user", "content": prompt}]
    }
    
    response = requests.post(OPENAI_URL, headers=headers, json=data)
    
    if response.status_code == 200:
        return response.json()['choices'][0]['message']['content']
    else:
        print(f"Error: {response.status_code} - {response.text}")
        return None

def main():
    if not os.path.exists(INPUT_FILE):
        print(f"Input file {INPUT_FILE} does not exist.")
        return
    
    # 读取 Markdown 文件
    markdown_content = read_markdown_file(INPUT_FILE)
    
    # 去除头尾的 ``` 语法
    # 这里假设 markdown_content 的开头和结尾没有其他内容,只是代码块
    if markdown_content.startswith('```'):
        markdown_content = markdown_content[3:].strip()
    if markdown_content.endswith('```'):
        markdown_content = markdown_content[:-3].strip()
    
    # 翻译文本
    translated_content = translate_text(markdown_content)
    
    if translated_content:
        # 写入翻译后的内容到输出文件
        write_markdown_file(OUTPUT_FILE, translated_content)
        print(f"Translation completed. Output saved to {OUTPUT_FILE}.")
    else:
        print("Translation failed.")

if __name__ == "__main__":
    main()

文件创建完成后安装一下依赖:

pip install requests
pip install python-dotenv

直接运行即可:

py translate_md.py
  •  

有趣的 Vue 版本号名称

虽然本文是有关 Vue 的内容,但是可以作为一件奇闻轶事来阅读,因此放在了随笔分类中。

2024 年 9 月 1 日,Vue3.5 发布,命名为 “Tengen Toppa Gurren Lagann”,因为之前没有特别关注过,所以对这个名称有些好奇,翻译成中文是天元突破红莲螺岩,来源于一部日本动漫《天元突破红莲螺岩》(天元突破グレンラガン)。

继续查阅 Vue 官方博客,发现一件有趣的事情,几乎每个大版本更新都会有一个代号,并且大多都是与动漫或影视作品有关的。花了点时间,查看 https://blog.vuejs.org/ 以及网络上零散的数据,将其整理成以下表格。

按照版本号排序,注意 3.0-3.2 发布时间比 2.7 要早,其实 Vue2 和 Vue3 本质上可以算是两个项目了,常说的 v2 通常指代 Vue2.7。

版本号(发布时间) 代号 来源
3.5(2024.09.01) Tengen Toppa Gurren Lagann 天元突破红莲螺岩
3.4(2023.12.28) Slam Dunk 灌篮高手
3.3(2023.05.11) Rurouni Kenshin 浪客剑心
3.2(2021.08.05) Quintessential Quintuplets 五等分的新娘
3.1(2021.06.07) Pluto PLUTO 冥王
3.0(2020.09.18) One Piece 海贼王
2.7(2022.07.01) Naruto 火影忍者
2.6(2019.02.04) Macross 超时空要塞系列
2.5(2017.10.13) Level E 灵异 E 接触
2.4(2017.07.13) Kill la Kill 斩服少女
2.3(2017.04.27) JoJo’s Bizarre Adventure JoJo 的奇妙冒险
2.2(2017.02.26) Initial D 头文字 D
2.1(2016.11.22) Hunter X Hunter 全职猎人
2.0(2016.09.30) Ghost in the Shell 攻壳机动队
1.0(2015.10.27) Evangelion 新世纪福音战士
0.12(2015.06.12) Dragon Ball 龙珠
0.11(2014.11.07) Cowboy Bebop 星际牛仔
0.10(2014.03.23) Blade Runner 银翼杀手
0.9(2014.02.25) Animatrix 黑客帝国动漫
0.6(2013.12.08) VueJS
  •  

子舒的博客

GitHub (dlzmoe) Email (anghunk@gmail.com) 1.Personal introduction const author = { name: '子舒', create_date: 1998, tags: ['前端程序员', '独立博客作者', '骑行爱好者', '摄影爱好者', 'INFJ 人格'], adress: '杭州', email: 'anghunk@gmail.com', github: 'https://github.com/dlzmoe', blog: 'https://zishu.me', description: '喜欢折腾技术,研究各种奇怪的程序和网站,喜欢户外运动,热爱生活。' } 如果想要添加友链,可以使用以下信息 (click me) title: 子舒的博客 author: 子舒 url: https://zishu.me avatar: https://imgurl.zishu.me/author.webp description: 喜欢折腾技术,研究各种奇怪的程序和网站,喜欢户外运动,热爱生活。 我的 计划单。 同时将周刊一起发布到了本网站,督促自己多扩展眼界,获取更新的知识,不管是技术类型还是娱乐,让自己的容量不断 +1. 提供一些免费服务。 2.Friendly links 有时候就会遇到一些文章写的不错的博主,于是就记录在这里了。 余果的博客 // 涛叔 // 江卮可乐 // 东东博客 // Leon Fong // 卢涛南博客 // Airing 的博客 // Jiang’s Blog // ImQi1 的博客 5.Copyright statement 本站文章所有版权均归本人所有,未经允许,不允许转载。
  •  

奇趣周刊 - 第 66 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 同 wifi 下穿文件

https://localsend.org/

将文件分享到附近的设备,免费、开源、跨平台。

1724895945853

2. 生成 GitHub 仓库贡献名单图

https://contrib.rocks/preview

1724898917324

3. 通过关键词搜索小图标的网站

https://emojispark.com/

1724994855626

4. 查看 GitHub 仓库第一个 commit

https://initcommit.info/

一个好玩的工具,可以查看 GitHub 仓库第一个 commit 并生成分享卡片。

1724995095031

5. API key 连通性检测

可以检测 openai 第三方 api key 是否存活,以及可使用的模型和额度。

https://mykey.zeabur.app/

6. 一个基于 vite 的 electron 模板

https://github.com/alex8088/electron-vite-boilerplate

使用 Vue3 + Vite + TypeScript 的 Electron 应用程序。

1725351816029

7. prompt 提示词汇总

https://agicto.com/prompt

一个 prompt 提示词汇总网站,还挺全面的,可以学习一下。

1725431053881


周刊导航: 上一期(#65) | 下一期(#67)

  •  

记录 vite 中引入 tailwindcss

安装依赖并生成 tailwind.config.jspostcss.config.js

yarn add -D tailwindcss postcss autoprefixer
npx tailwindcss init -p

注意,配置中要使用 ES6 模块语法 export default

// tailwind.config.js
export default {
  content: [
    "./index.html",
    "./src/**/*.{vue,js,ts,jsx,tsx}",
  ],
  theme: {
    extend: {},
  },
  plugins: [],
};

添加 Tailwind 的 CSS 文件。

/* src/index.css */
@tailwind base;
@tailwind components;
@tailwind utilities;

main.js 中引入。

// main.js
import './index.css';
  •  

奇趣周刊 - 第 65 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 微信公众号文章导出工具

https://github.com/jooooock/wechat-article-exporter

微信公众号文章导出工具,100% 还原原文样式。

2. Ludusavi - PC 游戏存档备份工具

https://github.com/mtkennerly/ludusavi

Ludusavi 是一个用于备份 PC 游戏存档数据的工具,它是跨平台的,支持多个游戏商店如 Steam、GOG、Epic、Heroic、Lutris 和其他游戏库,能够备份超过 19,000 个游戏。

3. Logo.surf - 文本转标志与网站图标生成器

https://github.com/airyland/logo.surf

使用静态 html 构建,可以随意找个平台进行托管,GitHub Pages、CloudFlare Pages、Netlify 等。

1724850071501

4. 集成 Vue 功能组件和主题美化的 VitePress 插件

https://github.com/Theo-Messi/tools

支持自定义主题配色,根据需求调整主题颜色方案,通过简单配置切换主题。包含增强的 Vue 组件,提供更丰富的功能和更好用户体验,易于集成到 VitePress 项目中,提升开发效率和页面质量。

1724849525904

5. Rspack 1.0 发布

https://github.com/web-infra-dev/rspack

Rspack 1.0 正式发布,作为一个基于 Rust 的高性能 JavaScript 打包工具,它兼容 webpack API 和生态,提供了显著提升的构建性能,并在性能、兼容性、包体积优化等方面进行了多项改进和增强,支持了 Module Federation 2.0,同时推出了 Rstack 技术栈,为开发者提供了更丰富的工具和更好的开发体验。

1724852520815

6. AI 版答案之书

https://book-of-answers-ai.vercel.app/

1724853510545

7. 在推特上看到一个笑话

1724850310979


周刊导航: 上一期(#64) | 下一期(#66)

  •  

Github 仓库同步到 Cloudflare R2

我在 GitHub 搭建了一个图床,用于小量存储博客图片,为了稳定安全考虑,决定备份到 Cloudflare R2 存储桶一份,R2 默认有每月免费的 10G 存储、100 万次 A 类操作、1000 万次 B 类操作,备份完全足够了。

说到备份肯定是越自动化越好,手动上传是不可能的,因此我决定利用 GitHub Actions 执行自动任务。

话不多说,开始操作。

1. 建立 Cloudflare R2 存储桶

在 R2 页面新建一个存储桶,名称可以随意,就叫做 github-sync-imgurl,默认不公开就行了,这个不用调整。

1724553937361

然后在管理 R2 API 令牌中,创建一个新的 API 令牌,权限设为 管理员读和写,其他不用管默认设置,保存即可。

会生成一个 KEY_IDACCESS_KEY,这俩等会要用到,先记录一下。

2. GitHub 仓库设置

来到你需要备份的仓库,打开 Setting > Actions > General,勾选这两个设置然后保存,这个是必须的,否则 GitHub Actions 无法自动运行。

1724554184492

然后来到 Setting > Secrets and variables > Actions,点击 New repository secret 按钮开始创建密钥,按照下面的命名开始依次操作:

CLOUDFLARE_ACCOUNT_ID         #你的 Cloudflare 账户 ID
CLOUDFLARE_ACCESS_KEY_ID      # Cloudflare R2 的访问密钥 ID
CLOUDFLARE_SECRET_ACCESS_KEY  # Cloudflare R2 的秘密访问密钥
CLOUDFLARE_BUCKET_NAME        # 你在 Cloudflare R2 上的存储桶名称

图示如下:

1724554376324

最后在 Actions 中新建一个新的任务,可以直接复制代码使用,无需修改,保存后运行即可。

name: Sync to Cloudflare R2

on:
  schedule:
    - cron: '0 16 * * *'  # 每天的16:00 UTC 时间触发(相当于东八区的 00:00)
  workflow_dispatch:  # 允许手动触发

jobs:
  sync:

    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Install AWS CLI
      run: |
        sudo apt-get update
        sudo apt-get install -y awscli        

    - name: Configure AWS CLI for Cloudflare R2
      run: |
        aws configure set aws_access_key_id ${{ secrets.CLOUDFLARE_ACCESS_KEY_ID }}
        aws configure set aws_secret_access_key ${{ secrets.CLOUDFLARE_SECRET_ACCESS_KEY }}
        aws configure set default.region auto        

    - name: Sync repository to Cloudflare R2
      run: |
        aws s3 sync . s3://${{ secrets.CLOUDFLARE_BUCKET_NAME }} --endpoint-url=https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com --delete --exclude ".git/*"        
      env:
        CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}

由于使用了 aws s3 sync 命令,它会进行增量同步,这意味着它只会上传有变化的文件,而不会每次都重新上传整个仓库,避免消耗无用的 Cloudflare R2 流量。

  •  

奇趣周刊 - 第 64 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. FList - 一个简洁的在线文件列表

https://github.com/jianjianai/FList

将 GitHub Releases,Hugging Face,文件 url 等,渲染成类似网盘的文件列表显示在网页上,方便用户下载开源软件。支持视频、音频、图片、PDF 等文件的在线预览。

1723624791333

2. 盘友圈 - 网盘资源搜索工具

https://panyq.com/

找资源更方便,很好用的一个工具。

1723647365081

3. vmail - 基本 Cloudflare 实现的临时邮箱服务

https://github.com/oiov/vmail
https://vmail.dev/

使用 Cloudflare email worker 实现的临时电子邮件服务,只需一个域名部署临时邮箱,支持多域名后缀,密码找回。

1723692452740

4. FlClash - 多平台代理客户端

https://github.com/chen08209/FlClash

一款基于 ClashMeta 的多平台代理客户端,简单易用,开源无广告。速度很快,非常好用。

5. moffee - 一个开源的 markdown 幻灯片制作工具

moffee 是一个开源幻灯片制作工具,可将 Markdown 文档转换为干净、专业的幻灯片。

1723793044394

6. podStation - 一个可以听国外播客的浏览器插件

谷歌扩展商店

podStation 是一个简单的 RSS 播客聚合器,一个适用于 Chrome 的自由/开源(FLOSS)播客聚合器,只需在主页面上添加您的订阅源或使用搜索工具。

7. AI 去水印工具

https://www.watermarkremover.io

非常好用,可以自己选择去除的地方。

8. AI 生成的 111 种风格图片生成网站

https://chatgptimage.org/

使用 gpt 生成 111 种风格图片的网站,可以调节参数,描述等,生成的效果还是不错的。

1723854133873

9. 社交媒体视频下载器

https://cobalt.tools/

可以下载绝大多数的社交媒体的音视频资源,比如推特、YouTube 等,支持自定义下载格式。

1724138111375


周刊导航: 上一期(#63) | 下一期(#65)

  •  

逃离杭州随想

标题有些危言耸听了,只是刚好最近遇到了一些事,一些朋友的事,内心有些惆怅。

时代的一粒沙落到个体头上,都是非常沉重的代价,随着年纪的增长,越发感受到这句话。这也可能是自身能力不足的一种推辞,但真真切切落在自己头上,是一种无能为力的苦涩。

我的朋友,暂且称呼他为小 H,我们是 21 年认识的,一起骑过车,爬过山,吃过饭,也算是比较熟络了,出去玩的时候聊天,能感受到小 H 是一个内心想法很丰富的人,他老家是某个省会的,也是 20 年左右来到杭州工作的,比我时间略久一些。我觉得小 H 很厉害,可以很有主见的做一些事情,默默的,闷声办大事。前两天突然得到他的消息,已经回到老家定居,工作生活都安排好了。我瞬间觉得很震惊,缓过一会又觉得很正常,这是他的风格。

经常听他讲起老家的事,希望回到父母身边,对生活的规划和对未来的期翼,我很认同他的观点,有父母在的地方才是家,杭州没有归属感。能感受到他现在心情还是很积极的!

想到我自己,虽然家人都在杭州生活,但是说实话我对未来的期待值很低,想不到有什么能提起精神的地方,每天上班下班打卡,周末出去逛逛,给自己找点事情做。

  •  

vite 配置相关笔记

一、配置 route 路由

使用 vite + vue 构建项目默认是没有 route 的,所以需要手动引入。

1. 基础配置

# 建立一个 vite 项目
npm create vite@latest
yarn create vite

# 安装 route 依赖
npm install vue-router@4
yarn add vue-router@4

接下来,需要在项目中配置 Vue Router。首先在 src 目录下创建一个 router 目录,并在该目录下创建 index.js,并配置路由。

src/
  ├── router/
  │   └── index.js
// src/router/index.js
import { createRouter, createWebHistory } from 'vue-router';

const routes = [{
    path: '/',
    name: 'Home',
    component: () => import('@/views/Home.vue')
  },
  {
    path: '/login',
    name: 'Login',
    component: () => import('@/views/Login.vue')
  }
]

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes
})

export default router

main.js 声明一下 route 文件。

import { createApp } from 'vue';
import App from './App.vue';
import router from './router';

const app = createApp(App)
app.use(router)
app.mount('#app')

并且在 App.vue 中要使用 router-view 来显示当前路由对应的组件,所以修改下文件。

<template>
  <div id="app">
    <router-view></router-view>
  </div>
</template>

<script>
export default {
  name: 'App'
}
</script>

2. 添加多路由

要添加更多的页面或动态路由,可以继续在 routes 数组中添加配置。例如:

{
  path: '/user/:id',
  name: 'User',
  component: () => import('@/views/User.vue')
}

这样,访问 /user/1 就会加载 User.vue 组件并显示相应内容。

二、配置 @ 路径别名

注意,vite 默认是没有配置路径别名 @ 的,所以要手动添加,配置如下:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { fileURLToPath, URL } from 'node:url'

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  }
})

配置完别名后,就可以在项目中使用 @ 来代替 src 目录的路径,从而简化模块引用。

三、dev 时自动访问本地服务

open: true 表示当你运行 vite 或 vite dev 时,开发服务器将自动在浏览器中打开本地服务器的 URL(例如 http://localhost:5173)。你也可以指定一个具体的 URL,例如:

// vite.config.js
export default defineConfig({
  server: {
    open: true, // 自动打开浏览器并访问本地服务器网址
    open: 'http://localhost:5173', // 在浏览器中打开指定的路径
  },
});

四、允许本地 ip 访问 local

// vite.config.js
export default {
  server: {
    host: true, // 允许使用本地 IP 访问
    port: 3000 // 可以根据需要修改端口
  }
}

vite.config.js 配置集合

// vite.config.js
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import { fileURLToPath, URL } from 'node:url';

// https://vitejs.dev/config/
export default defineConfig({
  base: '/single-template/', // 设置打开目录
  plugins: [vue()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)) // 允许使用 @ 别名
    }
  },
  server: {
    host: true, // 允许本地 ip 访问
    open: true, // 自动打开浏览器并访问本地服务器网址
    // open: 'http://localhost:5173', // 在浏览器中打开指定的路径
  },
})
  •  

奇趣周刊 - 第 63 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 可视化股票 + 投资 + 财务分析神器

https://github.com/bklieger-groq/stockbot-on-groq
https://groq-stockbot.vercel.app/

由 Groq 提供支持的 StockBot:通过实时交互式股票图表、财务信息、新闻、筛选器等作出响应的闪电般快速的人工智能聊天机器人。由 Groq 上的 Llama3-70b、Vercel AI SDK 和 TradingView Widgets 提供支持。

2. 缤纷快传 - 无需登录的隔空投送工具

https://send.bitiful.com/

基于 Bitiful S4 对象存储的“Simul-Transfer(即传即收)”技术实现的大文件实时多人分享,Wetransfer 或 奶牛快传 的相似开源替代品。

1723423555335

3. 精致的图标制作工具

https://ray.so/icon

可以生成精美的网站图标或者 logo,可上传自己的图片然后调整,但是无法自定义文字,对于这点我还是有需求的。

1723423784939

4. Github 搜索净化插件

https://github.com/BonjourFeng/Github-Search-Purification

净化 Github 搜索页,在搜索结果中屏蔽 CiroSantilli 和 wumaoland 等 400+ 人的敏感仓库,还你一个清净页面。

5. PDF 在线转换工具

https://qwerpdf.com/zh-cn/

所有工具都是 100% 免费使用。使用 Word 在线编辑器将 PDF 转换为 Word(DOCX) 和 Excel(XLSX),合并、拆分和添加水印 PDF,支持多语言。

1723445024260

6. VideoTogether - 一起看视频的浏览器插件

https://github.com/VideoTogether/VideoTogether

和你的家人朋友一起在线看视频,无论相隔多远,在任何设备上都可使用,支持所有的在线视频网站和本地视频。

7. 基于 Github 的简单网站框架

https://github.com/qiayue/GitBase

GitBase 是一个没有传统数据库的开源动态网站解决方案,使用 Next.js、Tailwind CSS 和 Shadcn/UI 构建。它利用 GitHub 作为内容管理系统,提供创建和管理网站内容的无缝方式,可以在 Vercel 上一键部署。

8. 飞书文档批量导出脚本

https://github.com/xhnbzdl/feishu-doc-export

一个支持 Windows、Mac、Linux 系统的飞书文档一键导出服务,仅需一行命令即可将飞书知识库的全部文档同步到本地电脑。支持导出 markdown,docx,pdf 三种格式。导出速度嘎嘎快,实测 700 多个文档导出只需 25 分钟,且程序是后台挂机运行,不影响正常工作。

9. 用中文浏览国外社交媒体里的热门讨论

https://www.buzzing.cc/

用中文浏览国外社交媒体里的热门讨论,母语快速导读,感兴趣再进原文深度阅读。

1723514959171


周刊导航: 上一期(#62) | 下一期(#64)

  •  

serve00 如何登录?

很多人在申请完 serve00 后无法登录,简单的介绍一下,首先会收到一封邮件,上面有:

Login: xxx
Password: xxx
SSH/SFTP server address: xxx

打开一个终端工具,比如 xshell

1723687086327

然后点击【用户身份验证】,选择 password,将账号密码输入,

1723687094941

点击连接后,会出现一个 SSH 身份验证,Keyboard Interactive(l) ,然后把 password 填入即可。

1723687097371

  •  

奇趣周刊 - 第 62 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 将您的 Telegram 频道变成微博

https://github.com/ccbikai/BroadcastChannel

该项目支持在 Cloudflare/Netlify/Vercel 上部署,无需任何学习成本即可部署成功,支持自定义域名和 RSS,并提供自定义社交媒体等功能。

1722953452305

2. Cloudflare Proxy Sites - CF 镜像地址

https://github.com/seadfeng/cloudflare-proxy-sites

一款基于 Cloudflare Workers 的强大且易于使用的网站镜像工具。

3. 基于 vite 的油猴开发模板

https://github.com/lisonge/vite-plugin-monkey

一个 vite 插件,用来辅助开发 Tampermonkey, Violentmonkey, Greasemonkey, ScriptCat 等脚本引擎的脚本,支持热更新。

4. 一个有趣好用的工具站

https://cn.piliapp.com/

里面包含了各种有趣的项目。

1722994469820

5. 一个美观的 chrome 起始页

https://chromewebstore.google.com/detail/ddeaekifelikgnaacipabpmjpffgifek

1722996248006

6. AI 专辑封面生成器

https://remusic.ai/en/ai-album-cover-generator

用于生成艺术作品的封面图,输入提示,选择输出的图像大小,然后等待生成即可,每天有 10 次免费生成额度。

1722999313155


周刊导航: 上一期(#61) | 下一期(#63)

  •  

奇趣周刊 - 第 61 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 一款高颜值 Docker 管理面板

https://github.com/lllllllillllllillll/DweebUI

DweebUI 是一个用于管理容器的 WebUI,简单的设置、动态更新的仪表板和多用户权限系统。

1721709404188

2. 一个图鉴网站(宝可梦肉鸽 PokeRogue)

https://pokeroguegame.net/zh-cn

PokéRogue 是一款由粉丝制作的网页游戏,灵感来自 roguelike 类型游戏。潜入随机生成的冒险中,与来自九代所有宝可梦战斗。每次运行都是独一无二的,具有随机布局和对手。

1721792701268

3. 一个简约舒适的网站统计

https://seline.so/

Seline 是一个简单且私人的网站和产品分析,无 Cookie、轻量级、独立,不过免费额度只有 3000 次。

1721870813861

4. 一个简单的海报生成工具

https://slogan.ishell.online/

1721877716083

5. 一个代码分享工具

https://showcode.app/

ShowCode 是一款让代码变得绚丽多彩的神奇工具,可以将其转化成绝美的图片与他人分享。不仅支持多种代码类型,还可以通过调整相关参数进行个性化设置,拥有多个迷人的主题供您选择。愿您尽情打造属于自己的视觉编码之旅!

6. 做旧 PDF

https://zh.lookscanned.io/

Look Scanned 是一个能够让 PDF 看起来就像是扫描件一样的纯前端网站。你再也不需要麻烦地打印之后扫描了,你所需要的就是鼠标点几下。

1721885342636

7. 在线生成带样式的 console.log 代码

https://www.v2ex.com/t/1060031

允许自定义 console 的样式并直接在浏览器或终端中测试其输出。

1721894262913

8. 高颜值的视频压缩工具

https://tools.rotato.app/compress

基于 FFMpeg 的 H264 压缩标准,实现压缩 90% 的视频大小。

1722397873506

炸裂!💥🔥 《硅谷》压缩技术好像现世了!!!将视频压缩 80~90% 几乎不损失效果?

基于 FFMpeg 的 H264 压缩标准,实现压缩 90% 的视频大小,作者制作了一个小工具 👉https://t.co/WncP6MpQ2K

我体验了一下... 确实离谱😂 pic.twitter.com/gAmGA1JMJB

— Tom Huang (@tuturetom) July 31, 2024

周刊导航: 上一期(#60) | 下一期(#62)

  •  

马家坞看日出

多图警告,加载缓慢。

(查看时建议点击图片查看全图~)

台风过去后据说日出特别好看,刚好赶到周日,我在凌晨 2 点定了个闹钟,驾车前往马家坞观景平台,停车还挺方便的,路边可以免费停车。

路程半个小时,又花了半个小时爬山,途中遇到很多同行的人,背着大包小包,摄像机。

大概在凌晨 3 点钟到达。

解锁了新的生活方式,不要被时间和距离束缚了灵魂。


杭州夜景。

1722166489590

小米 13 超级月亮模式,个人感觉有些算法模拟出来的效果,不过拍着还是很过瘾的。

1722166516417

俯瞰观景台,人还是蛮多的。

1722166795273

凌晨已经可以看到一些余晖了。

1722166761293

火烧云。

1722166771106

日出。

1722166779957

1722166787393

  •  

奇趣周刊 - 第 60 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. GitHub 源码搜索引擎

https://grep.app/

通过关键词进行搜索,响应速度相当快可以在 1s 内返回结果,比官方搜索快多了,不清楚是如何做到的。

1721267596927

2. css 可视化使用 clip-path 裁剪属性

https://bennettfeely.com/clippy/

1721287688606

3. 网易云自动签到接口

https://github.com/chaunsin/netease-cloud-music

网易云音乐 Golang API 接口 + 命令行工具套件 (签到 + 音乐合伙人 + 云盘 + 下载 Hi-Res 音质 + 刷歌等) + 一键完成任务。

4. 前端面试题目清单

https://github.com/pwstrick/daily

一份搜集的前端面试题目清单、面试相关以及各类学习的资料(不局限于前端)。

5. Windows 下的最佳文件管理器

https://files.community/

Files 是一个现代文件管理器,可以帮助用户组织他们的文件和文件夹。

1721378265867

6. 设计师的 UI 库

https://www.eldoraui.site/

使用 React、Typescript、Tailwind CSS 和 Framer Motion 构建的开源动画组件,100% 开源,可定制。

7. 发现流行软件的开源替代品

https://openalternative.co/

OpenAlternative 是社区驱动的专有软件和应用程序的开源替代品列表,可替代日常使用中所需的软件。

1721614934771

8. 网页开发占位图

https://temp.im/

顾名思义,使用如下:

<img src="https://temp.im/300x300/eeeeee">

temp.im

9. 基于 FunASR 和 Qwen2 构建的音视频转结构化笔记系统

https://github.com/harry0703/AudioNotes

能够快速提取音视频的内容,并且调用大模型进行整理,成为一份结构化的 markdown 笔记,方便快速阅读。

FunASR: https://github.com/modelscope/FunASR

Qwen2: https://ollama.com/library/qwen2

10. 复古的 css 框架集合

https://github.com/matt-auckland/retro-css

里面包含中了各种 95、98 时期 UI 风格的 css 框架。

1721868692737


周刊导航: 上一期(#59) | 下一期(#61)

  •  

杭州国家版本馆文润阁

多图警告,加载缓慢。

(查看时建议点击图片查看全图~)

场馆

1721475405497

1721475210796

古籍

《史记》 1721475004284

《永乐大典》 1721476025056

《万国舆图》 1721475073950

《本草纲目》 1721475173976

《天工开物》 1721475185270

《传习录》 1721475242242

器物

1721475265445

1721475313698

1721475332460

1721475345181

1721475356078

1721475370584

  •  

奇趣周刊 - 第 59 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 简约的白噪音网站 - FreeMind

https://freemind.fit/

以大自然的声音为灵感,轻松创建专注或放松的音乐氛围。

1721090792886

2. 基于 Python 和 React 的高仿 ChatGPT UI 项目

https://github.com/orglen/gunara

基本的对话功能,支持自定义模型。

1721195213698

3. 精选的 Cloudflare 工具开源项目

https://github.com/zhuima/awesome-cloudflare

精选的 Cloudflare 工具、开源项目、指南、博客和其他资源列表。

1721195374810

4. 一个简洁且全面的 icon 图标站

https://icones.js.org/

包含各种类型的图标,支持搜索,支持在各个框架中以组件形式调用,或者生成下载各种格式的图标文件,非常简洁全面。

1721221718165

5. 互联网上最佳开源项目清单

https://oss.gallery/

网站风格简洁实用,汇集了大佬们提交的各种最佳开源项目,每个项目都添加了详细的统计信息,你可以通过这个网站发现许多有趣的开源项目。

1721222876407

6. 收录商用免费汉字字体

https://github.com/jaywcjlove/free-font

1721223238389


周刊导航: 上一期(#58) | 下一期(#60)

  •  

西溪湿地随手拍

设备太差劲了,高倍变焦拍摄荷花高糊,有些不堪入目就放在最后了。

(查看时建议点击图片查看全图~)

1720962023228

1720962096325

1720962111313

1720962223523

1720962133210

  •  

奇趣周刊 - 第 58 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 开源、简洁、可自部署的 RSS 翻译器

https://github.com/rss-translator/RSS-Translator

翻译标题或内容,双语显示,订阅翻译后的 RSS/JSON,支持多种翻译引擎,每个源都可以指定一个翻译引擎,控制翻译源的更新频率和查看翻译状态,缓存所有翻译内容,尽可能减少翻译费用,可查看每个源所花费的 Token/字符数,AI 内容总结获取全文。

2. STranslate 划词翻译

https://github.com/ZGGSONG/STranslate

STranslate 是一个开源的、即用即走的翻译和 OCR 工具,使用快捷键非常方便,响应速度相当快,支持各种配置,目前我已经安装上了,在电脑上深度使用中。

1720169550613

3. 豆包,浏览器 AI 助手

谷歌扩展

字节旗下的产品豆包所衍生的浏览器插件,拥有各种功能,ai 问答,网站总结,划词翻译,文字重写等,操作非常方便。

4. 在 Chrome 浏览器里如何拿到用户最真实的 CPU 和其他硬件信息

chrome.runtime.sendMessage('nkeimhogjdpnpccoofpliimaahmaaome',
{method: 'cpu.getInfo'},
response => console.table(response));

在使用 chromium 内核的浏览器中,打开谷歌系网站(*.google.com),然后在控制台运行上面的代码。

1720590570736

5. 经济学人、纽约客等英语外刊杂志下载

https://github.com/hehonghui/awesome-english-ebooks

经济学人 (含音频)、纽约客、卫报、连线、大西洋月刊等英语杂志免费下载,支持 epub、mobi、pdf 格式,每周更新的 GitHub 仓库。

6. 静态书签站点生成器

https://pintree.io/

在几分钟内将您的浏览器书签变成漂亮的导航网站。

1720621790994

7. 批量查询域名是否被注册

https://query.domains/

支持自定义域名后缀,输入前缀时可以自动查询是否被注册,以及其他公开的 WHOIS 信息。

1720658734997


周刊导航: 上一期(#57) | 下一期(#59)

  •  

奇趣周刊 - 第 57 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Navicat Premium Lite 17 数据库管理和开发工具

https://www.navicat.com/en/download/navicat-premium-lite

Navicat 提供的免费版本,功能非常全面,适合个人开发者。

1719455709413

2. 将网页转为安卓/IOS 应用

https://median.co/

一个功能强大的网站,可将 PC 网站转为手机安卓或 IOS 软件,对于只会前端,但又有做成 APP 需求的朋友是一个不错的方案。

1719455737455

3. aria2 下载器

https://ariang.mayswind.net/

AriaNg 是一个现代 Web 前端,使 aria2 更易于使用。AriaNg 是用纯 html 和 javascript 编写的,因此它不需要任何编译器或运行时环境。您只需将 AriaNg 放入您的网络服务器并在浏览器中打开它即可。AriaNg 使用响应式布局,并支持任何桌面或移动设备。
官方演示地址:https://ariang.mayswind.net/latest/

4. css 三角形生成器

http://tool.uis.cc/sjmaker/

前端同学可太需要这个工具了,在线生成想要的三角形的 css 代码。

1719883156229

5. CSS 奇技淫巧

https://github.com/chokcoco/iCSS

本 Repo 围绕 CSS/Web动画 展开,谈一些有趣的话题,内容天马行空,想到什么说什么,不仅是为了拓宽解决问题的思路,更涉及一些容易忽视或是十分有趣的 CSS 细节。

6. 生成音频 AI

https://fish.audio/zh-CN/text-to-speech/

提供丰富的音频资源使用 AI 进行合成,可玩性和效果很不错!

1720076433152


周刊导航: 上一期(#56) | 下一期(#58)

  •  

奇趣周刊 - 第 56 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. FileWorker - 在线文件管理和剪切板

https://github.com/yllhwa/FileWorker

FileWorker 是一个轻量级的文件管理和在线剪贴板,基于 Cloudflare Pages 和 R2。

2. 一个可交互的动态网站

https://grantkot.com/ll/

试着调整浏览器的尺寸,真的很酷!

3. 一个好用的工具站

https://sinqi.tools/

满足罕见的和不常见需求的工具,简介无广告,本地优先。

1719221469568

4. 上网时间记录工具

https://github.com/sheepzh/timer

一个浏览器扩展,追踪你每天花在每个网站上的浏览时长,提供多方位的数据查询。分析不同时段的浏览习惯。已开源,可以通过 Chrome、Edge 和 Firefox 应用商店下载安装。

5. 图形编辑工具

https://www.drawio.com/

免费的图形编辑工具,本地优先,也可以通过各种云同步,包含协同功能,非常简介好用,无广告。

1719391733585

6. Claude 官方 prompt 提示库

https://docs.anthropic.com/zh-CN/prompt-library/library

探索针对各种商业和个人任务优化的提示,来自 Claude 官方,可以参考着将 prompt 复刻到 GPT 中。

1719400642659

7. 自动生成精美的 GitHub 个人主页

https://github.com/said7388/github-portfolio

只需要在配置文件中修改自己的 GitHub 用户名,并填写相关信息,即可通过 GitHub pages 生成一个精美的个人主页。

1719400943902

8. 阻止机器人抓取网站内容用于模型训练

CloudFlare 的又一壮举,支持在 Security 中设置一个自动程序,阻止机器人抓取网站内容以用于模型训练等 AI 应用程序。

1719401373680

9. 3D 语音对话模型网站

https://vidol.lobehub.com

由 lobehub 开发的网站,通过与 AI 对话,生成语音和模型,提供多种模型切换,与虚拟偶像一起玩。

1719402597578


周刊导航: 上一期(#55) | 下一期(#57)

  •  

奇趣周刊 - 第 55 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 随机阅读一篇小说

https://cantsleepreads.com/

打开这个网址,每次都会随机刷新一篇短篇小说,很有意思的网站。

1717657068303

2. 自由的旅行指南 Wikivoyage

https://www.wikivoyage.org/

可以快速了解一个城市的区域环境,景点,饮食,住宿,夜生活等,方便前往游玩做攻略。

1718271427811

3. Google AI for Developers 弃用 Gemini 1.0 Pro Vision

自 2024 年 6 月 12 日起,Gemini 1.0 Pro Vision 模型将从 Google AI 服务和工具中弃用。7 月 12 日之后,在 Google AI Studio 中使用 Gemini 1.0 Pro Vision 保存的提示将切换为使用 Gemini 1.5 Flash。指定 Gemini 1.0 Pro Vision 的 API 调用将失败。

4. 一个在线的 AI 抠图网站

https://removerized.pages.dev/

可以进行在线抠图,消除背景只保留主体部分。

1718271408388

5. GitZip for github

https://chromewebstore.google.com/detail/ffabmkklhbepgcgfonabamgnfafbdlkn?utm_source=ext_app_menu

在网站上可视化下载 GitHub 单文件夹的扩展。

1718271389508

6. CF-Workers-docker.io:Docker 仓库镜像代理工具

https://github.com/cmliu/CF-Workers-docker.io

这个项目是一个基于 Cloudflare Workers 的 Docker 镜像代理工具。它能够中转对 Docker 官方镜像仓库的请求,解决一些访问限制和加速访问的问题。

7. 网站在线 PDF 文件查看器

https://github.com/mozilla/pdf.js
https://mozilla.github.io/pdf.js/web/viewer.html

PDF.js 是使用 HTML5 构建的便携式文档格式 (PDF) 查看器,基于 Web 运行,非常便捷,支持查看本地 PDF 文件,进行标记重新导出。

1718420707636

8. AI 肖像生成器 - OmniZero

https://omnizero.net/

生成独特的 AI 风格化肖像。可以完全指定风格,脸,和姿势!支持多语言。

1718675356735

9. 基于的 HTML 的极简列表看板

https://github.com/apankrat/nullboard

Nullboard 是看板/任务列表管理器的极简风格,设计紧凑、可读且易于使用。单页 Web 应用程序 - 只有一个 HTML 文件、一个古老的 jQuery 包和一个 webfont 包,可以完全离线使用。

1718775225814


周刊导航: 上一期(#54) | 下一期(#56)

  •  

奇趣周刊 - 第 54 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 在浏览器中运行的 3D 场景

https://github.com/brunosimon/my-room-in-3d
https://my-room-in-3d.vercel.app/

纯前端实现的 3D 动画效果,可简单交互,可通过面板手动调节光影参数。

2. smartup 在谷歌商店被禁用

https://github.com/zimocode/smartup

在之前的周刊中,推荐过一款 chrome 手势扩展非常好用 — smartup。在 6 月 3 日被谷歌扩展商店禁用,目前原因不明,其实早在 2024 年 3 月 16 日 GitHub 仓库已经进入归档状态。smartup 已经无法从商店下载使用,但是可以 fork 一份源码到本地下载打包使用。

3. 看看你的扩展访问了哪些权限 - WhoUsesCookies

https://github.com/sshallow/WhoUsesCookies

近日,chrome 扩展商店下架了一批插件,可能是由于 manifest v2 引起的,因为 chrome 官方逐步减少对 v2 的支持,建议开发者使用 v3,同样能使用的权限也将会被严格限制,所以导致有些高权限的插件被检测出风险,其中最危险的是获取 Cookie 的权限,这个插件可以检测出你的浏览器中的扩展使用了哪些权限,并可以随时关闭它。

4. VSCode 插件 - Tailwind Fold

https://marketplace.visualstudio.com/items?itemName=stivo.tailwind-fold

可以通过这个插件折叠过长的 Tailwind 类名,告别混乱难读的 HTML 标签,提高代码的可读性。

5. 一个显示所有时区精确时间的网站

https://time.is/

Time.is 以 57 种语言显示所有时区(涵盖超过 7,000,000 个地区)精确的官方原子钟时间。

6. 3D 视差悬停效果

https://atroposjs.com/

Atropos 是一个轻量级、免费的开源 JavaScript 库,用于创建令人惊叹的触摸友好 3D 视差悬停效果,可用于 JavaScript、React、Vue 组件。

7. V2EX 正式上线 vxna

https://www.v2ex.com/xna

vxna 是 V2EX 网站中用于聚合优质博客、播客、期刊的栏目,上周从灰度转为正式上线。


周刊导航: 上一期(#53) | 下一期(#55)

  •  

奇趣周刊 - 第 53 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Old Twitter Layout

谷歌扩展

一款可以恢复旧版 Twitter 外观的扩展。

1716441616747

2. 极客时间电子书

https://github.com/it-ebooks-0/geektime-books

3. 城市租房生存指南

https://zufang.ababtools.com/

租房小白修炼手册,掌握租房硬核知识,找到理想住所!

1716460786429

4. Interface UI

https://github.com/interface-ui/interface-ui

Interface UI 是一个 Vue3 组件库,简洁、优雅、美观,帮助你快速构建网站,包含中英文文档。

1716467704731

5. 批量为视频生成字幕

https://github.com/buxuku/video-subtitle-master

批量为视频生成字幕,并可将字幕翻译成其它语言。这是在之前的一个开源项目 VideoSubtitleGenerator 的基础上,制作成的一个客户端工具。

1716519626044

6. AI 将照片转换为动漫风格

https://www.phototoanime.com/

1716540900212

7. Sink - 基于 Cloudflare 带访问统计的短链系统

https://github.com/ccbikai/sink
https://sink.cool/

具有分析功能的简单/快速/安全的链接缩短器,100% 在 Cloudflare 上运行。

8. Kimi Copilot - 网页总结助手

谷歌扩展

支持总结公众号文章,微信读书等网站,非常强大的一款免费插件。

1716601403777

9. 伟大思想家的名言

https://glasp.co/quotes

收藏了上千段名人名言。

1716775168161


周刊导航: 上一期(#52) | 下一期(#54)

  •  

奇趣周刊 - 第 52 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 网盘搜索项目

https://github.com/unilei/aipan-netdisk-search

该项目是一个基于 vue、nuxt.js 的网盘搜索项目,可以在 vercel 上自部署。

1716166508927

2. 天涯神贴收藏

https://github.com/jiji262/tianya-docs

收集全网爆火的天涯神贴 200+ 篇,全部为不带水印的原始版本,并且包含了地产预言大神 kk 的全集。

3. 简约翻译

https://github.com/fishjar/kiss-translator

一个简约、开源的 双语对照翻译扩展 & 油猴脚本。

4. Vite & uni-app 快速启动模板

https://github.com/uni-helper/vitesse-uni-app

由 Vite & uni-app 驱动的跨端快速启动模板

5. 利息计算器

https://ic.yolo.blue/

可查询多种利率的历史走势。

1716339287076

6. 宣布 Xshell、Xftp 和 Xmanager 8 公开测试版

https://www.xshell.com/zh/version-8-open-beta/

1716349565078

7. PC 微信读书显示评论的浏览器插件

https://github.com/my19940202/wx-read-comment-extension

一个让网页微信读书页面显示评论的插件,了解他人的见解,解答阅读中的困惑,不做一个孤独的阅读者。请求微信评论接口数据,侧边栏渲染评论数据,支持评论引用原文的展开和收起。

1716376894935


周刊导航: 上一期(#51) | 下一期(#53)

  •  

奇趣周刊 - 第 51 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 将任何链接转换为友好的 markdown 文本

https://r.jina.ai/

例如 https://r.jina.ai/https://zishu.me/blog/weekly-50.html,就可以把文件重新排版成 markdown 格式文本。

1714785313326

2. 摄影景深模拟器

https://jherr.github.io/depth-of-field/

1714808380459

3. 通过 Front Matter 直接在 Vscode 中运行 CMS 的扩建

https://github.com/estruyf/vscode-front-matter

如果使用 Vscode 管理你的静态博客文件,并且博客程序使用的是 Hugo、Jekyll、Hexo、NextJs、Gatsby 等框架,那你可以试试这款插件,他是运行在 Vscode 中的 CMS 管理面板,可以进行内容、数据和媒体管理,搜索、过滤、排序等你的所有内容。

1714872642827

4. 免费和公共 api 目录

https://publicapis.io/

发现 700 多个公共和免费 API 的大量集合来增强您的项目!兼容 JavaScript、PHP、Ruby 和其他语言。

1714881113522

5. 浏览器扩展开发模板

https://github.com/cezaraugusto/extension.js

🧩 即插即用、零配置、跨浏览器扩展开发工具。


周刊导航: 上一期(#50) | 下一期(#52)

  •  

奇趣周刊 - 第 50 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

上周因为工作问题暂停更新一周,十分抱歉,继续更新。

1. 将任何网页转换为干净的 Markdown 文本

https://markdowndown.vercel.app/

可以清理和转换任何网页为 Markdown 格式,具有删除非内容元素、下载图片和应用 GPT 过滤器进行最终编辑等功能。

1713337780088

2. 一个将文本转为手写体的网站

https://www.beautifulcarrot.com/

在线生成模拟手写文稿,让打印的字看起来和手写的一样,看颇有一些市场,对于我这种写字难看的懒人还有些作用。🧐

1713510788010

3. 一个可以生成可爱 logo 的网站

https://www.logocook.shop/

1714122692241

4. 网页版黑洞吞噬游戏

https://hole-io.com/

玩家控制一个黑洞,不停的吞噬,支持多人在线,非常好玩的网页游戏。

1714227693329

5. 一个开源的生成贴纸的网站

https://aistickergenerator.net/

1714350582314

6. vitepress 插件 - 自动生成左侧菜单

https://github.com/QC2168/vite-plugin-vitepress-auto-sidebar

通过扫描目录自动生成侧边栏数据的 vite 插件,基于 vitepress,每次新加 .md 文件时避免手动在 config.js 中手动修改左侧目录。

7. 接入 AI 的搜索引擎 globe

https://explorer.globe.engineer/

以嵌套网页形式展示搜索结果的产品 globe,层层嵌套,加载速度居然跟不上生成速度,简直离谱。


周刊导航: 上一期(#49) | 下一期(#51)

  •  

黄公望隐居地

坐标:富阳 - 黄公望隐居地,也是富春山居图的实景地点。

从市区开车过去一个小时左右,路上的风景也非常棒,吹着风。

如果有无人机设备的话,从这个角度俯拍,实现的效果将会非常好。

1714569463737

  •  

vue 中配置 env 文件

.env 命名规则。

# 开发环境 .env 文件名
.env.development

# 开发环境 .env 文件名
.env.production

在 vue-cli 中,要求环境配置文件必须以 VUE_APP 开头,如下:

# .env
VUE_APP_BASE_URL = http://0.0.0.0

# 使用
const baseURL = process.env.VUE_APP_BASE_URL;

修改 package.json 文件,在运行指令后加上 --mode 标识。

// package.json
"scripts": {
  "dev": "vue-cli-service serve --mode development",
  "build": "vue-cli-service build --mode production",
}
  •  

奇趣周刊 - 第 49 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 网页图片翻译扩展

https://chromewebstore.google.com/detail/dlilbookfdhgpflfgpbdfhnejmcngeeg

一个 chrome 扩展,可以直接翻译网页上的图片中的英文,下载尝试了一下,效果出人意料的好。

这是官方演示:

2. 屏蔽 chrome 快捷键的扩展

https://chromewebstore.google.com/detail/aidbmcboeighgdnilpdljbedbbiocphj

在日常使用 chrome 过程中,因为开发习惯,会经常误触 ctrl+s 快捷键,然后弹出一个大大的保存页面,让人很烦躁。这个扩展可以解决这个问题,可以直接屏蔽在网页中的 ctrl+s 快捷键,使用起来体验很好。

3. 一个将 Web 保存到 Notion 的扩展

https://chromewebstore.google.com/detail/ldmmifpegigmeammaeckplhnjbbpccmm

支持保存文档,推文,帖子,电子邮件等各种信息到 Notion 中,响应速度很快,弹窗也很美观,可以自由拖拽,不用担心点击网页时 popup 消失的问题。

1712818264212

4. 三维可视化项目快速落地的开源框架

https://github.com/hawk86104/icegl-three-vue-tres

5. Windows 文件夹着色工具

https://github.com/kweatherman/Folcolor/

Folcolor 可以在 Windows 上给文件夹着色,对于区分不同类型很有帮助。仅 1M 的小工具,已开源。

1712908756603

6. 网页版文字游戏

https://www.myworldsai.com/

基本 AI 构建的网页版文字游戏,剧情自由度极高。

1712914789231

7. 开源的表单构建工具

https://github.com/heyform/heyform

HeyForm 是一个开源的表单构建工具,使用它你可以轻松创建问卷调查、测验、投票、报名等表单内容,并实时查看数据报表,是真正免费的 Typeform 平替。

1712915077743

8. 在线擦除图像网站

https://hapusobjek.com/

在线擦除照片上不需要物体的网站。

1713316138395

9. 微信公众号文章批量下载工具

https://github.com/qiye45/wechatDownload

一款可以批量下载微信公众号文章内容的小工具,无需安装证书,支持下载微信公众号的历史消息,可以保存文章为 html/md/pdf/docx 文件。

1713322168998


周刊导航: 上一期(#48) | 下一期(#50)

  •  

青龙湾游湖

坐标安徽宁国。

这两天公司出去团建了,到了一些风景秀美的地方,有山有水,烟雾缭绕,颇有意境。

图一是皖南川藏线起点,在酒店的附近,两者相距很近。

早上起来,湿气很重,雾气弥漫。

1713097071969

图二是青龙湾湖面。

1713097731957

1713097129624

图三是乘坐游艇在湖面拍摄。

1713097144520

  •  

奇趣周刊 - 第 48 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Python 现在可以用于 Cloudflare Workers

https://blog.cloudflare.com/python-workers

Cloudflare Workers 现在支持 Python,使用 Pyodide 和 WebAssembly 直接集成了 Python 实现。首日即支持所有绑定,包括与 Vectorize、Workers AI、R2、Durable Objects 等的绑定。Python Workers 可以导入流行的 Python 包的子集,包括 FastAPI、Langchain、Numpy 等,没有额外的构建步骤或外部工具链。

1712108541000

2. Master Plan, Part Deux

https://www.tesla.com/blog/master-plan-part-deux

Musk 在八年前写的关于特斯拉的未来规划。

3. 推文/书签/收藏/列表导出工具

https://github.com/prinsss/twitter-web-exporter

将任何用户的推文、回复和点赞、书签等导出为 JSON/CSV/HTML,具体支持导出的内容可以关注GitHub仓库。

1712462582742

4. 游戏存档管理器

https://github.com/mcthesw/game-save-manager

这是一个简单易用的开源游戏存档管理工具。它可以帮助你管理游戏的存档文件,并且以用户友好的图像化窗口对你的存档进行描述、保存、删除、覆盖等操作。当前版本已经支持了云备份(WebDAV)、快捷操作等功能,且考虑到玩家的性能需求,该软件后台占用极小。

5. 一个精美的个人主页

https://aximoris.com/

1712566690798

6. 运行在 cloudflare 上的流量分析工具

https://github.com/benvinegar/counterscale

Counterscale 是一个类似 Umami,不过目前它还在开发阶段,可自行托管在 Cloudflare 上,可以使用 Cloudflare 的免费套餐,对小开发者用户来说非常友好。

1712629325057

7. 有关 4.8 腾讯云大故障的分析文章

https://mp.weixin.qq.com/s/PgduTGIvWSUgHZhVfnb7Bg

2024 年 04 月 08 日,腾讯云出现了一场全球性的大故障。这是一篇分析文章,从事发及过程,一直到结束,暴露出了一些问题,包括不限于掩盖真实故障范围,status 未同步,也有一种说法叫 status 造假,等等一系列问题,感兴趣的可以看下这篇文章。

8. Github 个人数据分析工具

https://gitroll.io/

一个有意思的工具,通过 Github 个人数据分析自己的技能等等。

1712759822365

9. 一个动漫角色图片生成工具

Github:https://github.com/makegirlsmoe/makegirlsmoe_web 网站:https://make.girls.moe/

一个动漫角色图片生成工具,你可以选择发色、发型、眼睛和皮肤色调,微笑和风格等,创造属于你的梦中二次元形象。

1712738393920


周刊导航: 上一期(#47) | 下一期(#49)

  •  

严州古城

假期出行,前往距离杭州 160km 的严州古城,比较小众的景点,但是人并不少。

体验还是不错的,推荐前往。

1712409843872

1712409686821

1712410039316

  •  

奇趣周刊 - 第 47 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. xz 被攻击的时间线

https://research.swtch.com/xz-timeline

在两年多的时间里,一名名为“Jia Tan”的攻击者作为 xz 压缩库的勤奋、有效的贡献者,最终获得了提交访问和维护的权限。利用该访问权限,他们在 liblzma 中安装了一个非常微妙的、精心隐藏的后门,liblzma 是 xz 的一部分,也恰好是 Debian、Ubuntu、Fedora 和其他基于 systemd 的 Linux 系统上 OpenSSH sshd 的依赖项。

该后门监视攻击者在 SSH 会话开始时发送隐藏命令,使攻击者能够在不登录的情况下在目标系统上运行任意命令:未经身份验证的、有针对性的远程代码执行。

2. 网页版 2048 小游戏

https://2024-game.net/

娱乐解压的网页小游戏,记录保存在浏览器本地存储中,关闭网页下次可以接着玩。

3. 开源、简洁、可自部署的 RSS 翻译器

https://github.com/rss-translator/RSS-Translator
https://rsstranslator.com/

1711943874345

4. 使用 React 构建的 Win95 风格网站

https://github95.vercel.app/

1711959243065

5. 面向初学者的生成式人工智能课程

https://microsoft.github.io/generative-ai-for-beginners/#/translations/cn/

通过微软云技术布道师团队提供的十二章系列课程,了解构建生成式 AI 应用程序的基础知识。每章都涵盖了生成式人工智能原理和应用程序开发的一个关键方面。在整个系列课程中,我们将建立我们自己的生成式人工智能初创公司,以便您可以了解如何实现您的想法。

1712024751483

6. 4 月 1 日 vue3 官网改名“威优易”

4 月 1 日 vue3 官网 改名“威优易”,这是一个愚人节玩笑。😂

1711935455188

7. Load Balancing 负载均衡

https://samwho.dev/load-balancing/

一篇分析负载均衡的文章,介绍负载均衡的原理、不同的负载均衡算法以及如何实现负载均衡。在结尾有一个相关的演示小游戏,觉得很有意思,分享出来。

1712027475429

8. 基于 Web 的 PDF 工具

https://pdf.datapipe.top/

本地部署的一站式服务,满足您的所有 PDF 需求,拥有大量的 PDF 相关功能。

1712030109178

9. chatGPT 官网无需登录即可使用

4 月 2 日,chatGPT 官网 https://chat.openai.com/ 无需登录即可使用,这不是灰度,是正式版本,进一步降低了使用者的门槛,不过之前也可以直接使用 Gmail 账户登录。

1712025831054


周刊导航: 上一期(#46) | 下一期(#48)

  •  

奇趣周刊 - 第 46 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 小米汽车 SU7 的非官方介绍网页

https://gamemcu.com/su7/

非官方的小米汽车宣传页,特效真的酷爆了!极具艺术感,基于 Three.js,全部由 canvas 绘制而成,前端与前端的区别就是这么大。

1711506431108

2. Suno - 文字生成歌曲

https://app.suno.ai/

一个相当有意思的 AI 工具,可以通过文字生成一首歌,AI 编曲等,比如我上传一首诗就会输出美妙的音乐。

下面是我上传李商隐的《锦瑟》而生成的,可以欣赏一下。

3. Node.js 官网正式改版

3 月 20 日,全新的 Node.js 官网正式上线。

1711091488825

4. X-Hiring - 使用 AI 整理招聘信息

https://x-hiring.hehehai.cn/

每日最新招聘信息,网站数据来源于 V2EX 和电鸭社区,对招聘信息使用 Google Gemini 做摘要处理。

1711093694572

1711093694876

5. 丑丑头像生成器

https://txstc55.github.io/ugly-avatar/

一个非常搞笑的头像网站,会生成丑出天际的头像。😂

1711551392143

6. Node.js 纪录片 | 起源故事

https://www.bilibili.com/video/BV1Mj42197E4/

这应该是目前第一部以 Node.js 为主题的纪录片了,通过该纪录片深入了解 Node.js 的起源,认识一些最早的贡献者,主要包括 Ryan Dahl(Node.js 的创始人)、Isaac Schlueter(NPM 的创始人)等。

1711551476060


周刊导航: 上一期(#45) | 下一期(#47)

  •  

樱花飞舞的初春

樱花飞舞的初春,半空中落英缤纷,蓝紫色桔梗似将画面停顿。

正是满城花开时。

1711446202384

  •  

奇趣周刊 - 第 45 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1710550769638 原图地址:https://www.nasa.gov/wp-content/uploads/2024/03/flight-3-liftoff-20240314-001195.jpg

北京时间 3 月 14 日 21 点 25 分左右,马斯克旗下的 SpaceX(太空探索技术公司)在自家的星舰基地成功发射了“星舰”,并成功达到了太空,完成了该火箭的第三次关键试飞。

1. 开源的图片编辑器 - fabritor web

https://github.com/sleepy-zone/fabritor-web

纯浏览器端操作;操作自动保存到本地,数据不丢失,导出到剪贴板,导出 JPG、PNG、SVG 和模板(JSON),基于 JSON 可以构建模板库。

1710322343949

2. 一款精美的截图美化工具

https://www.photor.fun/

使用漂亮,简单强大,多种尺寸导出,截图、编辑到导出,完全运行本地浏览器中。

拥有 chrome,edge 插件,可以实现快速截图美化。

1710322417161

3. Image preview - 在代码中预览图像的 vsc 扩展

https://marketplace.visualstudio.com/items?itemName=kisstkondoros.vscode-gutter-preview

前端开发比较实用的插件,在代码中鼠标悬浮在图片链接上时,可以直接预览图像信息,不用打开文件夹查看,可查看的信息包括尺寸,内存大小,图片预览,还可以自由设置预览的窗口大小。

1710465713232

4. 自动总结文章的 chrome 扩展

https://chromewebstore.google.com/detail/ipnlcfhfdicbfbchfoihipknbaeenenm

Elmo 可以自动总结当前网站页面文章,速度快总结效率好,点击图标即可在侧边栏生成内容。

1710489652116

5. 开发人员参考备忘清单 (速查表)

https://github.com/jaywcjlove/reference

为开发人员分享快速参考备忘清单,包含各种常用的编程语言,指令,方法等,非常方便,可以 fork 一份自己部署以提高加载速度。

1710923626795

6. 马斯克开源 3140 亿参数的 Grok 模型

马斯克最近开源了一个具有 3140 亿参数的人工智能模型,名为 Grok。这个模型是由他领导的公司开发的,代表了当前人工智能技术中的一个重大突破。这个模型的规模和复杂度让它在处理自然语言理解、生成以及其他复杂任务时表现出色。

开源这个模型意味着研究人员、开发者和企业可以自由使用和修改 Grok,以探索和实现更多的应用可能性。这种开放的做法有助于加速人工智能技术的发展,通过共享知识和技术,整个社区都可以从中受益。

对于感兴趣的技术人员和公司而言,这是一个研究和应用最新人工智能技术的绝佳机会。可以期待在不久的将来,基于 Grok 模型的应用将会出现在各个行业和领域,从而推动整个社会的进步。


周刊导航: 上一期(#44) | 下一期(#46)

  •  

奇趣周刊 - 第 44 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. semi design - 抖音团队设计出品

https://semi.design/

由抖音前端与 UED 团队维护,易于定制的现代化设计系统,帮助设计师与开发者打造高质量产品,适用于 react 框架,决策 不准备支持其他框架版本 , 比如 Vue 等。

1709459376922

2. 来自世界各地的公开 IPTV 频道集合

https://github.com/iptv-org/iptv

1709468139089

3. Latent Cat - 给页面添加 WebGL 动态背景

GitHub 源码:https://github.com/latentcat/uvcanvas/ 在线演示:https://uvcanvas.com/

一键给页面添加动态背景,动画很精美,仅支持 react。

1709533555295

4. Office Viewer(Markdown Editor)

https://marketplace.visualstudio.com/items?itemName=cweijan.vscode-office

一款 vscode 插件,支持预览各种形式的文件,比如 Excel,Word,markdown(目录,预览等)。

1709546012602

5. 多功能远程调试工具

https://github.com/HuolalaTech/page-spy-web

基于封装本地 Web API,当调用时,它会过滤和转换本地方法的参数,并将其转换为特定格式的消息,以供调试器客户端使用。调试器在接收到消息数据后,以类似于交互式开发工具的方式呈现用户界面,以便于查看。

1709865745093

6. 在浏览器中的互联网操作系统和桌面环境

https://github.com/HeyPuter/puter/
https://puter.com/

Puter 是一个先进的开源桌面环境,设计用于在浏览器中使用,功能丰富,速度异常快,可高度扩展。

它可以用于构建远程桌面环境,或作为云存储服务、远程服务器、Web 主机平台等的接口。

1709949260881

7. 一款开源的油猴翻译插件

https://github.com/Bistutu/FluentRead

拥有基于上下文语境的人工智能翻译引擎,为网站提供更加友好的翻译,让所有人都能够拥有基于母语般的阅读体验,目前在 GitHub 上拥有 400+ star,使用效果还是非常不错的。

程序开源、免费,代码接受审查、不收集任何用户信息,保证数据安全,支持常见国外或国产 AI 大模型,支持 chatGPT 自定义 API 接口地址,支持使用国内代理访问。

8. Hacker News API

https://github.com/HackerNews/API

Hacker News 新闻的公开 API,支持 Android、iOS 和 Web 的访问,可以利用 API 开发第三方 Hacker News 服务,目前没有速率限制。

支持文章,问答,评论,工作,投票,用户查询,以及热门最新最佳等列表,API 形式如下:

https://hacker-news.firebaseio.com/v0/item/8863.json?print=pretty

9. 深入架构原理与实践

https://www.thebyte.com.cn/

这是一本关于架构设计的开源书籍,整个系列的内容主要集中在 网络、集群以及服务治理、FinOps 这三个主题,这也代表着基础架构的几个核心:稳定、效率、成本。作者尝试使用费曼学习法把这些东西体系化地总结输出。一方面是加深自我的学习认识,另一方面也希望这些输出对其他人有所帮助。

1710294706423


周刊导航: 上一期(#43) | 下一期(#45)

  •  

奇趣周刊 - 第 43 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 部署可订阅微信公众号的 rss 源 - WeWe RSS

https://github.com/cooderl/wewe-rss

免费、开源的微信公众号订阅方式,支持私有化部署、微信公众号 RSS 生成。部署文档暂不完善,期待中。

1709169596260

2. Simple Resume

https://github.com/LynanBreeze/simple-resume

一个简约的简历,可自部署,基于 vite 开发。

1709175395345

3. LeapSearch

https://chromewebstore.google.com/detail/lapaieaegaclofackbjhjhbhfiplcgki

高效地在不同搜索引擎之间切换,是一个不错的小工具。

1709191697179

4. ChatGPT-Next-Web

https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web/
https://app.nextchat.dev/

一键拥有你自己的跨平台 ChatGPT/Gemini 应用。

1709303249373

5. Node.js 官网设计草案

https://beta-node-js-org.vercel.app/
https://github.com/nodejs/nodejs.org/pull/6369

Node.js 官网重新设计,目前还只是一个草案,好像出自 vercel 团队,期待正式上线。

1709305320717

6. 文章同步助手 Wechatsync - chrome 扩展

https://github.com/wechatsync/Wechatsync

一键同步文章到多个内容平台,支持今日头条、WordPress、知乎、简书、掘金、CSDN、typecho 各大平台,一次发布,多平台同步发布,解放个人生产力。

1709305604810

7. 一位博主分享自己环游中国的体验

https://twitter.com/ezshine/status/1763538685159465250
https://www.youtube.com/watch?v=STZkkKE8zfc

去年的今天(3 月 1 日),给 5 岁的女儿办理了幼儿园退学,我们开始一家三口房车环游中国的旅行。计划用 180 天的时间,走遍所有省份,打卡所有的 985 大学和博物馆美术馆(因为这些地方都不用花钱买门票)

开一个帖,重新分享一下这一路的经历和见闻。https://t.co/YsnLSrQKGU

— 大帅老猿 (@ezshine) March 1, 2024

8. 生成 YouTube 视频摘要

https://summarize.ing/

当您被大量内容淹没时,Summarize.ing 在这里助您一臂之力。它是一个 AI 驱动的 YouTube 工具,能在科技、营销、经济、时事或健康等领域中精准地抓取关键见解。

1709391257952

9. 有道灵动翻译 - chrome 扩展

https://magicfanyi.youdao.com/

功能和【沉浸式翻译】基本一致,速度也挺快的,但整体的体验还有待提高,比如翻译的样式,暂无 YouTube 视频翻译。

但是有道灵动翻译有一个不错的功能,支持图片翻译,如果图片中包含英文可直接翻译,省去了 ocr 的步骤,这点跟微信的图片翻译类似。

这两者应该算是同一赛道的产品,希望功能越做越好。

1709391669335


周刊导航: 上一期(#42) | 下一期(#44)

  •  

值传递和引用传递、深拷贝和浅拷贝

vue 把一个值赋给两个变量,修改一个变量时,另一个变量也会修改。

原因分析

this.a = res.data;
this.b = res.data;

同时给两个变量 a 和 b 赋值时,修改 a 的内容,打印 b 结果是一样的,因为这里的赋值是属于引用传递的,把 res.data 这个地址赋给 a 和 b,当修改 a 时,res.data 会同步变动,导致 b 也发生了改变。

这种赋值方式也被称为浅拷贝,当我们把一个对象赋值给一个新的变量时,赋的其实是该对象的在栈中的地址,而不是堆中的数据。也就是两个对象指向的是同一个存储空间,无论哪个对象发生改变,其实都是改变的存储空间的内容,因此,两个对象是联动的。

解决方案

this.a = JSON.parse(JSON.stringify(res.data));
this.b = JSON.parse(JSON.stringify(res.data));

使用 JSON.parse 和 JSON.stringify,将他变成一个常量值,这时再赋值给 a 和 b 的时候,就属于值传递了,这种赋值方式也叫做深拷贝,每个对象都对应一个新的空间,和其他对象互不影响。

  •  

wewe-rss 项目部署

1709203891809

Github 仓库:https://github.com/cooderl/wewe-rss/

免费、开源的微信公众号订阅方式,支持私有化部署、微信公众号 RSS 生成,部署问题也可以提 issues。

在线感谢 @潇潇 !!

部署的一些流程,仅供参考。

在服务器 /data/ 目录下新建 rss 文件夹,新建 docker-compose.yml 文件。

xx.xx.xx.xx 是你服务器的 ip。

# /data/rss/docker-compose.yml
version: '3.9'

services:
  server:
    image: cooderl/wewe-rss-server:latest
    ports:
      - 4000:4000
    depends_on:
      db:
        condition: service_healthy
    environment:
      # 数据库连接地址
      - DATABASE_URL=mysql://root:123456@db:3306/wewe-rss?schema=public&connect_timeout=30&pool_timeout=30&socket_timeout=30
      # 服务接口请求授权码
      - AUTH_CODE=123567
      # 自动提取全文内容
      - FEED_MODE=fulltext
      # 服务接口请求限制,每分钟请求次数
      - MAX_REQUEST_PER_MINUTE=60
      # 外网访问时,需设置为服务器的公网 IP 或者域名地址
      - SERVER_ORIGIN_URL=http://xx.xx.xx.xx:4000/

  web:
    image: cooderl/wewe-rss-web:latest
    ports:
      - 3000:3000
    environment:
      # 同 SERVER_ORIGIN_URL
      - NEXT_PUBLIC_SERVER_ORIGIN_URL=http://xx.xx.xx.xx:4000/

networks:
  wewe-rss:

运行 docker 指令

docker-compose up -d

在服务器运营商处给服务器防火墙放行端口 3000, 3307, 4000。

1709203859913

  •  

奇趣周刊 - 第 42 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Google 推出 Gemma 开放模型

https://ai.google.dev/gemma

一个系列轻量级、先进的开放式模型,采用与创建 Gemini 模型相同的研究和技术构建而成。

1708564997440

2. chinese-poetry: 最全中文诗歌古典文集数据库

https://github.com/chinese-poetry/chinese-poetry

最全中华古诗词数据库,唐宋两朝近一万四千古诗人,接近 5.5 万首唐诗加 26 万宋诗。两宋时期 1564 位词人,21050 首词。

为什么要做这个仓库?古诗是中华民族乃至全世界的瑰宝,我们应该传承下去,虽然有古典文集,但大多数人并没有拥有这些书籍。从某种意义上来说,这些庞大的文集离我们是有一定距离的。而电子版方便拷贝,所以此开源数据库诞生了。此数据库通过 JSON 格式分发,可以让你很方便的开始你的项目。

1708572403880

3. 2024 年的 JavaScript

https://tonsky.me/blog/js-bloat/

Niki 详细研究了 2024 年各种网站的 JavaScript 膨胀问题,比较了不同的网站(包括社交网络、电子邮件、音频/视频流应用、交互式应用等)的 JavaScript 虚拟大小。结果表明,许多网站的 JavaScript 论述过于庞大,不仅对网页的加载速度产生影响,也严重影响了浏览器必须解析、存储和执行的代码加载。Niki 指出,一个博客发布的内容可能只有 10k 字符,但却需要 1000 倍以上的 JavaScript 来呈现,我们需要避免不必要的代码膨胀,以提高网页性能和用户体验。

4. 一款精美的在线简历网站

https://www.resumeis.com/

1708915491077

5. vue-quill-editor

Github 源码:https://github.com/surmon-china/vue-quill-editor 在线演示:https://github.surmon.me/vue-quill-editor

基于 quill 并且适用于 vue2 框架的富文本编辑器(不适用 vue3 版本)。

6. notion-api-worker

https://github.com/splitbee/notion-api-worker

在 cloudflare workers 上部署 notion api,更快更轻松的访问 notion 内容。


周刊导航: 上一期(#41) | 下一期(#43)

  •  

无法从非 EcmaScript 模块导入命名导出

https://github.com/markdown-it/markdown-it

markdown-it 是一个基于 vue 的解析 markdown 语法的库。

在 vue 中引入 markdown-it 模块时遇到一个问题,dev 开发运行时报出以下错误,无法从非 EcmaScript 模块导入命名导出。

# shell
 error  in ./node_modules/markdown-it/lib/common/utils.mjs
Can't import the named export 'P' from non EcmaScript module (only default export is available)
 error  in ./node_modules/markdown-it/lib/index.mjs
Can't import the named export 'decode' from non EcmaScript module (only default export is available)
 error  in ./node_modules/markdown-it/lib/index.mjs
Can't import the named export 'decode' from non EcmaScript module (only default export is available)
 error  in ./node_modules/markdown-it/lib/common/utils.mjs
Can't import the named export 'decodeHTML' from non EcmaScript module (only default export is available)
 error  in ./node_modules/markdown-it/lib/rules_inline/entity.mjs
Can't import the named export 'decodeHTML' from non EcmaScript module (only default export is available)
 error  in ./node_modules/markdown-it/lib/index.mjs
Can't import the named export 'encode' from non EcmaScript module (only default export is available)
 error  in ./node_modules/markdown-it/lib/index.mjs
Can't import the named export 'format' from non EcmaScript module (only default export is available)
 error  in ./node_modules/markdown-it/lib/index.mjs
Can't import the named export 'format' from non EcmaScript module (only default export is available)
 error  in ./node_modules/markdown-it/lib/index.mjs
Can't import the named export 'parse' from non EcmaScript module (only default export is available)
 error  in ./node_modules/markdown-it/lib/index.mjs
Can't import the named export 'parse' from non EcmaScript module (only default export is available)

导致 import 该库出现错误,解决方案需要修改 vue.config.js

// vue.config.js
module.exports = {
  configureWebpack: {
    module: {
      rules: [{
        test: /\.mjs$/,
        include: /node_modules/,
        type: "javascript/auto"
      }]
    }
  },
};

参考文献:https://github.com/vuejs/pinia/issues/675

  •  

奇趣周刊 - 第 41 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. OpenAi 推出 Ai 视频模型 Sora

https://openai.com/sora

Sora 是一个人工智能模型,可以根据文本指令创建逼真而富有想象力的场景。其主要目标是教会 AI 理解并模拟现实世界的运动,进而帮助人们解决需要真实世界互动的问题。Sora 可以根据用户的提示,生成长达一分钟的视频,同时保持视觉质量和对用户提示的遵守。

2. 图解 react 源码

https://github.com/7kms/react-illustration-series

react 源码,基于 react@17.0.2 (尽可能跟随 react 版本的升级,持续更新). 用大量配图的方式,致力于将 react 原理表述清楚。

1708263270282

3. 使用 cloudflare 免费服务,搭建临时邮箱

Github 源码:https://github.com/dreamhunter2333/cloudflare_temp_email
在线演示:https://temp-email.dreamhunter2333.xyz/

1708392368444

4. 一个基于 Cloudflare 的临时邮箱工具 (未开源)

https://email-once.com/

  • 基于 Cloudflare worker/pages/D1/R2 实现
  • 风格极简
  • 用完即清除数据,或者 24 小时自动清除
  • 支持大附件

1708334903364

5. 放大图片的网站 - Bigjpg

https://bigjpg.app/

将模糊的图片放大到清晰,可以选择倍率,UI 不错的工具。

1708400085251

6. Bard 更名 Gemini

https://gemini.google.com/app
https://blog.google/products/gemini/bard-gemini-advanced-app/

Gemini 是 Bard 的新名称,旨在提供最先进的 AI 模型。便捷的手机应用使协作变得更简单。今天推出的 Gemini Advanced 提供 Ultra 1.0,这是目前最大且最先进的 AI 模型,其在盲评中相较于其他聊天机器人获得了最高的青睐。Gemini Advanced 可以处理更复杂的任务,并提供更长、更详细的对话,能更好地理解前面的提示的上下文。此外,新推出的 Gemini 应用和其高级版本设有 Android 和 iOS 的应用。

1708405699686

7. Web 浏览器登录 Telegram

Github 源码:https://github.com/morethanwords/tweb
Web 网站:https://web.telegram.org/k/

基于 Webogram 源代码,用 TypeScript 重写,进行了修补和改进。

8. Github 个人主页信息图表

https://github.com/lowlighter/metrics

信息图表生成器,具有 30 多个插件和 300 多个选项,可显示有关您的 GitHub 帐户的统计信息并将其呈现为 SVG、Markdown、PDF 或 JSON!

1708485933827

9. 适合每个 GitHub 用户的自动作品集构建器

https://github.com/arifszn/gitprofile

GitProfile 是一个功能强大的作品集构建器,即使您没有编码经验,也可以在几分钟内创建令人惊叹的个性化作品集网站。只需提供您的 GitHub 用户名,GitProfile 就会自动生成一个作品集。

1708486960348

10. 用于在 GitHub 上显示存储库大小

Github 源码:https://github.com/harshjv/github-repo-size
Chrome 扩展商店:https://chromewebstore.google.com/detail/github-repository-size/apnjnioapinblneaedefcnopcjepgkci

自动将存储库大小添加到 GitHub 的存储库摘要中。

11. 绘制 Github Star 历史增长数量

https://github.com/caarlos0/starcharts

1708488006321

12. 一个好玩的仓库

https://github.com/iBug/This-Repo-Has-566-Stars

一个好玩的仓库,当 star 后,会自动改名。


周刊导航: 上一期(#40) | 下一期(#42)

  •  

奇趣周刊 - 第 40 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 在线编辑 svg 的工具

https://yqnn.github.io/svg-path-editor/

一个不错的 svg 编辑器工具,可以通过拖拽,生成想要的 svg 图案,还是挺方便的一个工具,开源地址 Github

1707008002313

2. 摸头杀生成器

https://toolwa.com/petpet/

可以通过上传本地图片生成一个摸头的动图,挺有意思的。

1707009716946

3. 基于 vite + vue3 的谷歌扩展模板

https://github.com/mubaidr/vite-vue3-chrome-extension-v3

基于 manifest3、vue3 和 vite 的 Vite 支持的 WebExtension(Chrome、FireFox 等)入门模板,之前推荐的另一个谷歌扩展模板是基于 webpack + vue 的。

4. 一个简单&强大的 Web 思维导图。

Github 源码:https://github.com/wanglin2/mind-map/
在线演示:https://wanglin2.github.io/mind-map/

功能还算强大的节点思维导图,目前在 GitHub 上拥有 2.5k star,基本上所有的功能都支持,项目包含两部分:

  1. 一个 js 思维导图库,不依赖任何框架,你可以使用它来快速完成 Web 思维导图产品的开发。
  2. 一个 Web 思维导图,基于思维导图库、Vue2.x、ElementUI 开发,可以操作电脑本地文件,所以你可以直接把它当做一个在线版思维导图应用使用,如果觉得 github 的响应速度慢,你也可以部署到你的服务器上。

1707025141617

5. 基于 Go 的文件分享工具

Github 源码:https://github.com/songquanpeng/go-file/
在线演示:https://go-file.onrender.com/

基于 Go 的文件分享工具,仅单可执行文件,开箱即用,内置图床和视频播放页面,可用于局域网内分享文件和文件夹,直接跑满本地带宽。

1707964744709

6. OpenAI 尝试为 ChatGPT 提供长期对话记忆

https://arstechnica.com/information-technology/2024/02/amnesia-begone-soon-chatgpt-will-remember-what-you-tell-it-between-sessions/

这篇文章介绍了 OpenAI 为其聊天机器人 ChatGPT 增加长期记忆功能的实验。当这个功能启用后,ChatGPT 能够记住与你之间对话的信息,并在下次对话时提取这些信息。目前,此功能只对少数 ChatGPT 用户进行测试。此外,OpenAI 还表示,记忆功能可能帮助 ChatGPT Enterprise 和 Team 订阅用户更好地协作,因为共享的团队记忆可以记住特定的文件格式化偏好或团队正在使用的编程框架等信息。然而,记忆功能也带来了隐私问题,OpenAI 表示正在采取步骤评估和减少偏见,并引导 ChatGPT 避免主动记住敏感信息,除非用户明确要求,到目前为止,OpenAI 未公布 ChatGPT 记忆功能的推出时间。


周刊导航: 上一期(#39) | 下一期(#41)

  •  

奇趣周刊 - 第 39 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

明天就是除夕,提前祝大家新年快乐~~

1. 语雀工具集合 - 导出笔记

https://github.com/vannvan/yuque-tools

语雀知识库 + 团队资源批量导出/备份工具 (无需 Token)|浏览器插件助手。

2. 快速涂鸦

https://quickdraw.withgoogle.com/

和 AI 玩你画我猜,暂不支持多人联机,只能单机和 AI 玩,可以在一个人摸鱼的时候玩耍。

1706757894914

3. 一个 GIF 表情网站

https://gifer.com/en/

这是一个提供各种 GIF 动图的网站,可以根据关键词在网站上搜索查看各种 GIF 动图。

1706777344526

4. 网页版地铁快跑

https://github.com/DanielLin0516/SUBWAY-SURFERS

非常不错的网页小游戏。

5. 电影推荐《少年斯派维的奇异旅行》

10 岁男孩 T.S.斯派维对制图学和科学发明很有热情。有一次,史密森尼博物馆告诉他,他的永动机发明赢得了非常著名的贝尔德奖,邀请他前去领奖并发表演讲。事先没有告诉其他人的斯派维带着一个望远镜、四个圆规和种种曾曾祖母留给他的回忆,登上一辆货运火车横跨美国抵达华盛顿特区。

1706845633196

6. soybean-admin:vue3 + vite 优雅的后台管理模板

在线演示:https://soybeanjs.cn
Github 源码:https://github.com/honghuangdc/soybean-admin

一个清新优雅、高颜值且功能强大的后台管理模板,基于最新的前端技术栈,包括 Vue3, Vite5, TypeScript, Pinia, NaiveUI 和 UnoCSS。

1706859742643

7. vue-draggable-plus:一个基于 vue3 的拖拽库

中文文档:https://alfred-skyblue.github.io/vue-draggable-plus
Github 源码:https://github.com/Alfred-Skyblue/vue-draggable-plus

这是一个适用于 vue3 的拖拽组件库,支持组件、函数或者指令方式书写,可以在任何元素上使用拖拽列表,支持表格,动画,嵌套等,目前在 GitHub 上拥有 1.9k star。

npm install vue-draggable-plus
<template>
  <VueDraggable ref="el" v-model="list">
    <div v-for="item in list" :key="item.id">{{ item.name }}</div>
  </VueDraggable>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { VueDraggable } from 'vue-draggable-plus'
const list = ref([
  {name: 'Joao',id: 1},
  {name: 'Jean',id: 2},
  {name: 'Johanna',id: 3},
  {name: 'Juan',id: 4}
])
</script>

8. 寻找书写 css 的灵感

https://csscoco.com/inspiration/

这里可以让你寻找到使用或者是学习 CSS 的灵感,以分类的形式,展示不同 CSS 属性或者不同的课题使用 CSS 来解决的各种方法。

1706920963249

9. 搜索打开的标签页的内容 - 跨标签页 ctrl+f

https://chromewebstore.google.com/detail/dbppkkjmaloclihjakcpnionomlidbhk
https://github.com/MrViolets/Deep-Tab-Search

一款 chrome 扩展,支持搜索当前浏览器所有打开的标签页的内容,相当于一个跨标签页的 ctrl+f,在某些场景下还是很好用的,比如打开了大量了标签页,忘记了自己想要的内容在哪个标签页内,可以使用这个扩展进行搜索,搞笑切换,排版也很美观。

1706921886565

10. 电视直播软件

https://github.com/lizongying/my-tv

安卓电视直播软件,内置直播源。


周刊导航: 上一期(#38) | 下一期(#40)

  •  

奇趣周刊 - 第 38 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 幻兽帕鲁自建服务端 docker

https://github.com/thijsvanloef/palworld-server-docker

最近一周,steam 游戏《幻兽帕鲁》非常火热,游戏内核很好玩,并且官方支持自建服务端,该仓库可以使用 docker 一键部署服务端,存档可以放在自己手中,但是自建服务端对机器配置要求还是比较高的,内存最好 16G 往上。

2. 将 warp 节点转换成订阅地址

https://tofree.zeabur.app/
https://github.com/vvbbnn00/WARP-Clash-API/

cloudflare 提供了免费的代理工具 warp+,但是需要借助软件,网络不稳定,这个网站将 warp 的节点转换成订阅地址,让你可以在各种客户端上通过订阅使用 warp+ 节点,代码已开源,提供了 docker 自部署,自动刷新订阅,IP 优选等功能。

1706496643123

3. 没有人关心你的 Git 历史记录

https://spin.atomicobject.com/git-history/

这篇文章讨论了 Git 历史的重要性,以及变基、压缩和提交消息的意义。Git 历史对于软件团队来说是一个无名英雄,但对其他人可能构成了困扰。文章探讨了“干净的 Git 历史”的含义,以及进行重写和压缩的必要性和优点;还讨论了哪些团队和个人应该使用变基,以及使用变基的利弊;同时提到了保持详细的提交历史的价值和重要性,以及重写历史可能带来的问题和风险。

4. 新版本 chrome network 展示修改

新版本 chrome network 资源类型展示变成下来,看起来非常别扭,可以在控制台设置中修改,将此项取消勾选。

1706260620905

1706260504246

5. AITDK:一键查看网站流量/Whois/SEO 等信息

https://chromewebstore.google.com/detail/hhfkpjffbhledfpkhhcoidplcebgdgbk

当我们分析某个网站的流量/Whois/SEO 等信息时,经常需要打开多个插件或多个网站,非常低效,AITDK Extension 可以一键快速查看网站流量/Whois/SEO 等信息。

1706582130424

6. daisyui:使用纯 css 实现的组件库

https://daisyui.com/
https://github.com/saadeghi/daisyui

不局限于前端框架,和 Tailwind 结合使用,将类名整合起来,更简单易用,可以使用 npm / yarn 等包管理工具引入到各类框架中,也可以使用 cdn 引入到 html 中。

1706583481983 1706583682653 1706583682937

7. 掌上宇宙

https://cocosmos.online/

可以通过在线网站实时观测宇宙模型,挺好玩的一个工具。

1706671093303

8. Gemini 在线网页

https://ibcl.us/ChatGemini/
https://github.com/bclswl0827/ChatGemini/

ChatGemini 是一个基于 Google Gemini 的网页客户端,对标 ChatGPT 3.5,使用逻辑同 ChatGPT 3.5 一致,同时支持在聊天中上传图片,自动调用 Gemini-Pro-Vision 模型进行识图。

本项目还可自定义 Gemini API 服务器地址,用户可将本项目部署至支持 PHP 的服务器或虚拟主机上,或是自行配置 Nginx 反向代理,透过修改 Gemini API 路径,从而在中国大陆无障碍使用。

1706748456237


周刊导航: 上一期(#37) | 下一期(#39)

  •  

奇趣周刊 - 第 37 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

历经 37 期,正式将周刊名称确定为“奇趣周刊(Funny Weekly)。”

1. Notion 发布新功能 Calendar

https://www.notion.so/product/calendar
https://www.notion.so/blog/introducing-notion-calendar

Notion 发布新功能 Calendar,解决了日历软件与其他工具之间断裂的问题,改善了工作日程与个人计划分离,以及会议与项目时间线脱离等问题。将 Google 日历连接至 Notion Calendar,整合员工的工作任务、会议记录等信息。提高专注力,防止分散注意力,整合工作与生活的日程管理,减少在不同日历间切换的麻烦。自动时间,功能避免时间冲突和重复预定,内置预约功能,分享空闲时间,直接预约会议。

我可能不会使用它,因为目标用户是那些对 Notion 有深入接触且使用 Google 日历的用户。但将它们功能结合起来确实是个不错的想法,进一步壮大了 Notion 生态。

1705548519153

2. 提示用户是否在 GitHub 上关注您

https://github.com/timqian/follows-you

添加一个标签,提示用户是否在 GitHub 上关注您,一个功能很简单的 chrome 插件,不过挺有意思的,支持一下。

1705541877729

3. 基于 react 的 electron 开发模板

https://github.com/codesbiome/electron-react-webpack-typescript-2024

上期分享一个 基于 vite 的 electron 开发模板,我又在 GitHub 上发现一个基于 React + Webpack + Typescript 的 Electron 框架,具有热重载、易于使用的特性。

1705546839975

4. vite + vue3 后台管理系统

https://github.com/un-pany/v3-admin-vite

V3 Admin Vite 是一个免费开源的中后台管理系统基础解决方案,基于 Vue3、TypeScript、Element Plus、Pinia 和 Vite 等主流技术。风格简洁统一,代码清晰,目前在 GitHub 拥有 3.2k star,作为后台管理项目二开非常不错!

1705649734133

5. 打开就能看电影的 Web 应用

https://github.com/movie-web/movie-web
https://movie-web.app

该服务的工作原理是在直观且美观的用户界面中显示来自第三方提供商的视频文件,自动保存进度,为节目或电影添加书签,跟踪您想观看的内容,简约的界面仅显示所需内容。

1705652570738

6. 一款极易搭建的自助 Git 服务

https://github.com/gogs/gogs
https://gogs.io

gogs 是一款极易搭建的自助 git 服务,可以在任何支持 go 语言的平台运行,所需的配置极低,甚至一台小小的树莓派都足以支撑运行,也可以安装在 nas 设备上,非常方便,功能很强大,页面简洁。

1705657649604

7. 自定义滚动条的网站

https://scrollbar.app/

可以通过简单的配置,生成想要的滚动条样式并输出代码,很简单也很实用的小工具。

1705731526788

8. 阿里网盘资源搜索

https://ssgo.app/

可以在线搜索想要的资源,比如电影,音乐,视频等。

1705980532152

9. 大盘云图

https://dapanyuntu.com/

展示股票信息,在交易时间内,每 10 秒刷新一次最新数据,按照流通市值对云图进行排序。

1705902643809


周刊导航: 上一期(#36) | 下一期(#38)

  •  

奇趣周刊 - 第 36 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1705398545782

圆明园遗址。


1. 一个纯前端实现的头像生成网站

https://vue-color-avatar.leoku.dev/

矢量风格头像的生成器,可以搭配不同的素材组件,生成自己的个性化头像,支持批量生成。

1705028958816

2. 基于 vite 的 electron 开发模板

https://github.com/electron-vite/electron-vite-vue

开箱即用,可扩展,基于官方模板 template-vue-ts,侵入性较小,非常简单的目录结构,支持在 Electron-Renderer 中使用 Node.js API.

# clone the project
git clone https://github.com/electron-vite/electron-vite-vue.git
# enter the project directory
cd electron-vite-vue
# install dependency
npm install
# develop
npm run dev

3. 执行 es6+ts 代码

https://github.com/TypeStrong/ts-node

这是一个可以同时执行 es6 + typescript 代码的库。

1704942373638

4. 微信公众号转 RSS

https://github.com/ttttmr/Wechat2RSS

顾名思义,这是一个可以将微信公众号转为 rss 订阅源的服务。

5. v2ex 图片灯箱油猴脚本

https://greasyfork.org/scripts/454963

灵感来源于日常使用时查看图片,会跳转到如 imgurl 网站,不能在当前页面详细查看,所以基于 simplebox.js 搞了这么一个插件,可以满足点击放大图片的需求。

6. pdf,epub,html,txt 文件翻译

https://app.immersivetranslate.com/

这是 沉浸式翻译 插件的一个附属功能,之前分享过 沉浸式翻译,这个网站可以翻译 pdf,epub,html,txt,字幕文件 srt,ass。

1705136286294

7. 马斯克作 SpaceX 公司演讲:总结 2023,展望 2024

来自 YouTube 的视频。

8. shadcn-vue

https://github.com/radix-vue/shadcn-vue
https://www.shadcn-vue.com

是一个基于 vue 的类 shadcn/ui 风格 ui 组件库,对 element 审美疲劳的前端开发者可以尝试使用这个,展示效果非常不错。

1705472993534


周刊导航: 上一期(#35) | 下一期(#37)

  •  

圆明园遗址

有事在北京待了两天,去圆明园遗址溜达一下,建筑物被损坏确实有些可惜。

1705398545782

1705398545716

1705398545674

  •  

奇趣周刊 - 第 35 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Github 热门仓库

https://rising-repo.vercel.app

GitHub 根据 star 增长的趋势排行榜单,可以根据各种条件进行排序,比如变成语言,时间线等。

1704330226216

2. Atom One Dark Theme - vscode 主题插件

https://github.com/akamud/vscode-theme-onedark

VSCode 主题基于 Atom 的 One Dark 主题,市场上评价最高的 One Dark 主题端口,具有完整的 Workbench 主题。

1704683734816

3. 趣味美术画板

https://github.com/LHRUN/paint-board
https://songlh.top/paint-board

基于 Canvas 的画板,包括自由绘图、橡皮擦、文本、选择、图层、撤消、重做、清除、保存、拖动。

1704685787367

4. 纯 JS 实现的 ChatGPT 项目

https://github.com/xqdoo00o/chatgpt-web
https://xqdoo00o.github.io/chatgpt-web

纯 JS 实现的 ChatGPT 项目,部署一个 HTML 文件即可使用,基于 OpenAI API。支持复制/更新/刷新会话,语音输入,朗读等功能,以及众多自定义选项。支持搜索会话,深色模式,自定义头像,快捷键,多语言,环境变量,PWA 应用,API 额度显示等。支持加密 HTML 文件。

1704683709497

5. Onelink

https://github.com/Ajay-Dhangar/onelink
https://onelink-ajay.vercel.app

Onelink 是个人主页分享链接,数据被转换为 Base 64 字符串,我们 onelink 将其用作查询参数,与您的朋友分享您的社交链接实时预览,可以展示你的个人信息。

1704684685251

6. feeder.co - rss 订阅器及汉化脚本

https://feeder.co
https://greasyfork.org/scripts/481157

feeder 是一款很优秀的 rss 订阅器,我已经使用很久了,这里推荐给大家。支持各种格式的 rss 订阅源,有浏览器插件,可以实时获取订阅数据,并且检测当前页面是否包含 rss 订阅源,效果显著,阅读流畅。

由于网站只支持英文,因此我写了汉化脚本,有需要的可以直接下载到油猴使用。

7. Netlify 汉化脚本

https://greasyfork.org/scripts/484197

由于官方不支持中文,汉化 Netlify 大部分常用的翻译。

8. 2024 前端图标趋势

https://iconify.design/

Iconify 包含是一个 20 万个图标的图标库,它将几乎所有的开源图标库都收录并打包成了一个 npm 包,所以我们只用安装 @iconify/json 这个包,就相当于安装了 162 个开源图标库。

icon-[material-symbols–arrow-back-ios-new] 是 @iconify/tailwind 这个 Tailwind 插件引用图标的格式,该插件由 Iconify 作者开发,其中,中括号里的内容是 {图标库名}--{图标名}

npm i @iconify/json @iconify/tailwind -D

在 tailwind.config.js 中声明插件。

// tailwind.config.js
const { addDynamicIconSelectors } = require('@iconify/tailwind')
export default {
  plugins: [addDynamicIconSelectors()]
}

在 HTML 模板中使用图标

<i class="icon-[material-symbols--arrow-back-ios-new]"></i>

9. VS Code 插件开发中文文档

https://github.com/Liiked/VS-Code-Extension-Doc-ZH

该仓库拥有 1.9k Star,翻译审查较为严格,质量还是很不错的。

10. 十年程序员回老家五线城市考察,聊了一些行业和公司

https://www.v2ex.com/t/1005976

这是来自 v2ex 论坛的一个帖子,作者分享了他辞职后回老家考察的经历和对一些行业和公司的了解。他提到了几个面试的机会,包括直播带货、软硬件结合的公司、生态农业电商、民宿平台等,分享了他对这些公司的印象和交流内容。


周刊导航: 上一期(#34) | 下一期(#36)

  •  

奇趣周刊 - 第 34 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1703942301990

祝大家元旦快乐!金沙湖歌剧院。

1. JavaScript 工程师的 Python 指南

https://luckrnx09.com/python-guide-for-javascript-engineers/zh-cn/

这是一份为 JavaScript 工程师准备的 Python 指南,包含四个部分。第一部分介绍 Python 的基础知识,包括开发环境、变量定义和赋值、数据类型等内容;第二部分介绍 Python 的进阶知识,如函数定义和调用、模块和包的建设和导入、文件操作等;第三部分介绍 Python 的高级知识,包括面向对象编程、异常处理、项目依赖管理等;最后一部分包含了一些综合案例。同时还包含附录,提供了一些常用的第三方包和参考资料。

1703733767222

2. Hacker News 的 2023 年度回顾

https://public.tableau.com/app/profile/isna/viz/HackerNewsDashboard_17042353296150/HackerNewsYearinReview2023

由 Tableau Public 发布的 Hacker News Dashboard,在这个仪表板中找到与 Hacker News 相关的各种统计和数据。

1704250856738

3. Coze AI 工具

https://www.coze.com/explore

字节出品的 AI 工具,在我一段时间的体验中,感觉非常棒,它是一个下一代 AI 聊天机器人构建平台。

用户可以在该平台上快速创建聊天机器人,无需编码,并将其发布到各种平台上。

Coze 是一个智能且独立的 AI 机器人开发助手,专注于帮助用户创建、调试和优化他们的 AI 机器人应用程序。

1704251065910

4. cobe / vercel

https://cobe.vercel.app/playground
https://github.com/shuding/cobe

一个轻量级 (5kB) WebGL Globe 库。 “COBE”这个名字代表宇宙背景探索者,旋转的地球,通过 canvas 实现。

1704284114391

5. 中国哲学书电子化计划

https://ctext.org/zhs

中国哲学书电子化计划是一个线上开放电子图书馆,为中外学者提供中国历代传世文献,力图超越印刷媒体限制,通过电子科技探索新方式与古代文献进行沟通。收藏的文本已超过三万部著作,并有五十亿字之多,故为历代中文文献资料库最大者。

1704263468387

6. TikTokDownloader 抖音下载工具

https://github.com/JoeanAmier/TikTokDownloader

TikTok 主页/视频/图集/原声;抖音主页/视频/图集/收藏/直播/原声/合集/评论/账号/搜索/热榜数据采集工具:完全开源,基于 Requests 模块实现的免费工具;批量下载抖音账号发布、喜欢、收藏作品;批量下载 TikTok 账号主页作品;下载抖音链接或 TikTok 链接作品;获取抖音直播推流地址;下载抖音直播视频;采集抖音作品评论数据;批量下载抖音合集作品;采集抖音账号详细数据;采集抖音用户 / 作品 / 直播搜索结果;采集抖音热榜数据。

1703814201447

7. 五彩纸屑动画

https://github.com/catdad/canvas-confetti/
https://www.kirilv.com/canvas-confetti/

🎉 浏览器中的高性能五彩纸屑动画。

8. t-ui

https://github.com/wocwin/t-ui

Vue 项目中基于 Element-ui 二次封装基础组件文档;Vue 基础组件文档。里面包含了更多复杂的组件应用,在特定场景下非常好用。


周刊导航: 上一期(#33) | 下一期(#35)

  •  

奇趣周刊 - 第 33 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. Obsidian 1.5.3 版本发布

https://obsidian.md/changelog/2023-12-26-desktop-v1.5.3/

Obsidian 1.5.3 版本发布,推出全新的 Markdown 表格编辑器。现在可以更轻松地创建、编辑、排序、重新排序、选择、复制和粘贴表格行和列,表格仍保存为纯文本 Markdown。

2. GeminiProChat

https://github.com/babaohuang/GeminiProChat

官网 demo | 个人部署

基于 Gemini API 的聊天对话工具,可以通过这个项目在 vercel 上部署一个网站并使用 Gemini API。

ps: 但是很奇怪,为什么他说 1.4 万亿个参数对比 100 万亿个参数却是优势。

1703641197568

3. 用 Ollama 轻松玩转本地大模型

https://sspai.com/post/85193

这篇文章介绍了一个名为 Ollama 的本地大模型运行框架。Ollama 是一个简单易用的框架,可以让用户在自己的电脑上运行大型语言模型。

文章首先介绍了 Ollama 的安装和快速上手方法,包括下载模型、运行模型等。然后介绍了一些与 Ollama 相关的周边工具和插件,如网页版、终端版和桌面版等。接着介绍了一些进阶玩法,如更换模型、添加图片支持和自定义系统提示词等。最后,文章总结了 Ollama 的优势和贡献,认为它使得大模型的运行变得更加简单和普及化。

4. Github 个人年度总结

https://year-in-code.com/

将浏览器的 URL 地址更改为你的用户名,将生成用户本年度的总结视频,包括提交的 commit,issues,使用的编程语言等等,功能效果非常出色。

1703497632738

5. leerob.io - blog

https://leerob.io/
Github: https://github.com/leerob/leerob.io/

作者 leerob 是一位前端开发者,同时担任 Vercel 产品副总裁。这是他的博客,他还将自己的框架开源。该框架的主要架构是 react + nextjs + Postgres。

6. 笛卡 – 简中社区的 Hacer News

https://dizkaz.com/

功能和 Hacer News 基本保持一致,推荐中文社区的文章进行讨论。

1703255162870

7. 每个程序员都应该尝试的具有挑战性的项目

https://austinhenley.com/blog/challengingprojects.html

这篇文章是关于 Austin Z. Henley 的博客,题为“每个程序员都应尝试的具有挑战性的项目”。作者列举了一些软件项目,这些项目可以多次构建,并且每次都可以学到新的东西。这些项目包括文本编辑器、2D 游戏(太空侵略者)、编译器(Tiny BASIC)、迷你操作系统等。文章详细介绍了每个项目的挑战和需要学习的知识点,并提供了进一步阅读的推荐资源。此外,文章还列出了一些其他建议的项目,如数据库、光线追踪器、MS Paint 克隆、矢量图形编辑器等。


周刊导航: 上一期(#32) | 下一期(#34)

  •  

奇趣周刊 - 第 32 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1703254928022

两棵银杏在寒风中独立,与旁边的事物迥然不同。


1. Cloudflare 2023 年度回顾

https://blog.cloudflare.com/radar-2023-year-in-review/

这篇文章是 Cloudflare 2023 年度回顾,涵盖了全球互联网趋势和模式的分析。文章主要分为三个部分:流量见解与趋势、连接与速度、安全。

在流量见解与趋势部分,文章提到全球互联网流量增长了 25%,谷歌是最受欢迎的互联网服务,安卓设备的流量占比超过了两三分之一。

在连接与速度部分,文章指出全球有超过 180 次的互联网中断,其中许多是由政府指示造成的;IPv6 的采用率仍然较低,印度是 IPv6 采用率最高的国家。

在安全部分,金融行业是最受攻击的行业,Log4j 漏洞和 HTTP/2 Rapid Reset 漏洞是最常见的攻击目标。文章还提到了其他一些有趣的数据和趋势。

1702530977455

2. Notion Web Clipper - Notion 剪藏插件

https://chromewebstore.google.com/detail/knheggckgoiihginacbkhaalnibhilkk

一个 chrome 浏览器扩展应用,利用 Notion Api 快速将文件剪藏到 Notion 数据库中,存档备份很方便。

3. Javascript quiz - JS 测验

http://perfectionkills.com/javascript-quiz/

这个网页是一个由 Perfection Kills 提供的 JavaScript 测试题。测试题包含了一系列关于 JavaScript 作用域、函数表达式、变量声明等知识的问题。每个问题都有一个正确答案,可以在主要的 JavaScript 实现中验证。题目包含了一些相对简单但常见的概念,对于专业的 JavaScript 开发人员来说是必须掌握的。虽然不是所有的问题都非常实用,但这个测试可以帮助开发人员加深对 JavaScript 的理解。你可以通过选择每个问题的答案来完成测试,并且可以在评论中留下你的得分。

4. AI 副业赚钱资讯合集

https://github.com/bleedline/aimoneyhunter

这是一个 ai 副业赚钱资讯信息的大合集,将在全网搜索并整理 ai 副业赚钱的相关方法、技术、工具、以及一些可以赚钱的平台和渠道。期望能在 AI 时代,打破信息茧房,让大家都能在这个时代利用 AI 智能化做副业,赚取工作之余的额外收益。

1702608625113

5. QQ 空间导出助手

https://chromewebstore.google.com/detail/aofadimegphfgllgjblddapiaojbglhf

一个 chrome 浏览器扩展应用,QQ 空间导出助手,用于导出备份 QQ 空间的说说、日志、日记、相册、视频、留言、好友、收藏、分享、访客为文件,便于迁移与保存。

1702752205221

6. Vue3 + tailwindcss + Element Plus 的后台管理面板

https://github.com/xiaoqing-tan/vue3dashboard

演示:https://tanxiaoqing.top

挺精致的一个后台管理系统,功能比较简单,实现了基本的 UI、权限、菜单管理、兼容移动端、中英文切换等。可快速地创建表单和列表一类的,也集成了图表,图标一类的,做一些后台管理的一些基础功能。

1703048882311

7. arco.design 设计系统

https://arco.design/

字节跳动出品的企业级设计系统,支持 react 和 vue 框架。

1702996625315


周刊导航: 上一期(#31) | 下一期(#33)

  •  

我的 2023 年度总结

回顾过去的一年,虽然对自己的经历还不是很满意,但也算是划上了一个记号,结束了一段短暂的旅程,即将迎来新的开始。我期待着新的一年,希望能够继续保持这种积极向上的状态,迎接生活的挑战。

分享软件、工具和网站的周刊

我一直对技术和创新非常感兴趣。因此,我决定每周分享一些我发现的有用的软件、工具和网站。这个周刊不仅让我能够整理自己的收藏夹,还能够帮助他人发现一些实用的资源。通过这个周刊,我结识了许多志同道合的朋友,我们互相交流着自己的发现和经验。这个过程不仅让我更加了解了技术领域的最新动态,还提升了我的写作和分享能力。

我获取资源的途径有很多,比如通过论坛分享、在 GitHub, Hacker News 网站,以及获取国内外其他论坛上的优秀资源。这些渠道让我能够不断发现有用的软件、工具和网站,并与志同道合的朋友交流分享。通过这个过程,我不仅能够了解技术领域的最新动态,还能够提升自己的写作和分享能力。

阅读中内外的文学著作

阅读是我生活中非常重要的一部分。今年,我特别关注了中内外的文学著作。除了享受阅读的乐趣外,我还通过这些作品拓宽了自己的视野。我读了许多经济和哲学方面的书籍,其中我特别喜欢王阳明的心学和一些与清朝经济相关的作品。通过阅读这些书籍,我不仅了解到了不同的思想和观点,还对历史和社会有了更深入的认识。

工作上的学习和成长

在工作方面,今年我获得了丰富的学习经验,不断增长自己的专业知识。特别是 openai 的 gpt 项目,其令人惊叹的功能使我能够有效地应用于工作中,从而提高了工作效率。这些宝贵的知识使我在编写代码时更加熟练娴熟。我不禁对这个科技时代的发展速度感到惊奇,期待未来能够见证更多的科技进步!

发展新的兴趣——骑行

下半年,我发展了一个新的爱好——骑行。每周,我都会找一个适合骑行的地方,出去运动并欣赏周围的风景。骑行让我与大自然更加亲近,让我感受到了身体和心灵的双重放松。

与此同时,骑行也是一种很好的锻炼方式,我通过这个运动来保持身体健康。骑行的过程中,我还结识了一些志同道合的朋友,我们一起分享骑行的乐趣,互相鼓励和支持。

给下半年先定一个小目标,骑行 3000km。

  •  

奇趣周刊 - 第 31 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 谷歌发布 AI 大模型 Gemini

https://deepmind.google/technologies/gemini/

1702209102874

谷歌发布 AI 大模型 Gemini,称技术领先于 OpenAI,暴打 gpt4.

2. GoMusic - 歌单迁移

https://github.com/Bistutu/GoMusic

一款迁移网易云/QQ 音乐歌单至 Apple/Youtube/Spotify Music 的 web 程序,已开源。

1702025051931

3. The diminishing half-life of knowledge - 知识的半衰期递减

https://rednafi.com/zephyr/diminishing_half_life_of_knowledge/

这篇文章讨论了知识的半衰期,作者描述了在不同公司工作时使用不同技术栈的经历,以及随着时间的推移,之前掌握的技能逐渐变得过时和无用的困境。

作者认为工程知识的半衰期正在加快,唯一的解决方法是不断学习和管理信息的能力,并且分享了自己保持更新的方法,包括参与开源社区、记录学习进度、采用无趣的技术等。

4. 基于 vue 重构 b 站的 chrome 插件

https://chromewebstore.google.com/detail/bewlybewly/bbbiejemhfihiooipfcjmjmbfdmobobp
https://github.com/hakadao/BewlyBewly

通过重新设计哔哩哔哩主页、添加更多功能并对其进行个性化设置以符合您的偏好来改进您的哔哩哔哩主页。安装了体验发现还蛮好看精致的。

1702251393020

5. Wormhole - 匿名分享网盘

https://wormhole.app/

Wormhole 让你能以端到端加密和自动过期链接的方式分享文件。所以你可以确保你分享的文件私密且不会一直留在互联网上。可以随时擦除痕迹,临时分享很好用的。

1702259107808

6. Google 推出全新人工智能笔记应用 NotebookLM

https://notebooklm.google.com/

Google 推出全新人工智能笔记应用 NotebookLM,仅支持美国 ip,将代理换成美国节点即可。

可通过向其提供 Google Docs 文档,ai 快速理解并生成相关摘要以及关键内容,然后你可以向他进行提问。

1702260637067

7. CookiesClerk - Chrome 浏览器插件

https://github.com/14790897/CookiesClerk

CookiesClerk 是一款谷歌 Chrome 浏览器插件,可简化同一网站多个 cookie 的管理。通过有效管理 cookie,它允许用户在同一浏览器中同时打开多个账户。


周刊导航: 上一期(#30) | 下一期(#32)

  •  

奇趣周刊 - 第 30 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

今日二十四节气大雪,但是杭州的天气很无常,并没有一片雪花,甚至还有点热,看来近期应该不会有雪景了。
本期只有一句诗来应景,“燕山雪花大如席,片片吹落轩辕台。” —— 李白《北风行》

1.New Bing Anywhere (Bing Chat GPT-4)

https://chromewebstore.google.com/detail/new-bing-anywhere-bing-ch/hceobhjokpdbogjkplmfjeomkeckkngi

通过本插件,您可以在任何 Chromium 内核的浏览器中使用 New Bing,比如 Chrome / Edge / Brave / Arc / 360 浏览器等,它自带 Chat GPT-4,需要注意的是你需要一个国外 ip。

1701322678154

1701322700046

1701322723527

2.项目管理器扩展 – Project Manager

https://github.com/alefragnani/vscode-project-manager

Visual Studio Code 的项目管理器扩展,可以把常用的文件夹整理起来,然后点击直接跳转到对应的文件夹。

1701402458597

3.AI 扩图 – uncrop

https://clipdrop.co/uncrop

stability.ai 出品的一款免费扩图工具,基础效果还不错,拿来玩玩很适合。

1701409764748

4.微信解密工具 – WeChatMsg

https://github.com/LC044/WeChatMsg

提取微信聊天记录,将其导出成 HTML、Word、CSV 文档永久保存,对聊天记录进行分析生成年度聊天报告,使用模拟器可支持可视化分析。

5.一个免费的开源社区讨论平台 – Discuit

https://github.com/discuitnet/discuit

Discuit 是一个开源社区平台,是 Reddit 的替代品,使用 Go 语言开发响应速度非常快,作为社区交流来说是非常棒的。

1701417383093

1701417395624

6. 开源的本地音乐播放器 – MusicPlayer2

https://github.com/zhongyang219/MusicPlayer2

MusicPlayer2 是一款集音乐播放、歌词显示、格式转换等众多功能于一身的音频播放软件。支持歌词显示、歌词卡拉 OK 样式显示、歌词在线下载、歌词编辑、歌曲标签识别、专辑封面显示、专辑封面在线下载、频谱分析、音效设置、任务栏缩略图按钮、主题颜色、格式转换等功能。播放内核为 BASS 音频库 (V2.4)。播放器支持几乎所有常见的音频格式。

1701584013787

7. 文章/新闻

  1. https://www.nytimes.com/2023/11/29/us/henry-kissinger-dead.html
    前美国国务卿亨利·基辛格去世,享年 100 岁。

  2. https://juejin.cn/post/7243725406132748349
    最新前端技术趋势。

  3. https://mp.weixin.qq.com/s/rw9HrimkSRGbGpWQL9394Q
    2024 年了,虚拟 DOM 该何去何从?


周刊导航: 上一期(#29) | 下一期(#31)

  •  

奇趣周刊 - 第 29 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1700924521161

1. 量子纠缠动画 + 跨窗口交互

跨页面实现交互,非常神奇的技术。

Entangled #fxhash pic.twitter.com/SrD0oAQpUJ

— 𝕭𝖏ø𝖗𝖓 𝕾𝖙𝖆𝖆𝖑 (@_nonfigurativ_) November 22, 2023

作者只是发了一个演示的推文,代码没有开源。
另一位开发者做了简单版本,跨窗口 3D 场景,除了量子纠缠特效外,已经还原如何跨窗口交互,通过实时获取 localStorage,定位坐标,然后结合 Three.js 库。非常有意思的一个项目,可以学习一下前端思路和代码。

https://github.com/bgstaal/multipleWindow3dScene

2.视频去水印

https://github.com/YaoFANGUK/video-subtitle-remover

基于 AI 的图片/视频硬字幕去除、水印去除,无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方 API,本地实现。

3.screenshot-to-code

https://github.com/abi/screenshot-to-code

将截图转换成 html 和 css 代码,css 使用的是 Tailwind 编写,值得尝试的工具。
需要带上你自己的 OpenAI 密钥,并且必须能够访问 GPT-4 Vision,门槛还是稍微有点高的,有能力的小伙伴强烈建议尝试一下!

4.中文播客榜

https://xyzrank.com/

https://www.xiaoyuzhoufm.com/episode/62d58b0664f141ad8150151f 出品,收录了很多中文播客,通过更新时间,播放量,订阅量等数据排序,可以挑选自己感兴趣的播客。

1701056187862

5.ajax-interceptor

https://github.com/YGYOOO/ajax-interceptor

一个可以修改页面中任意 Ajax 的请求或返回值的 Chrome 插件,可用于调试/排查页面上的问题,或在开发时 mock 数据。(当然你也可以用其它一些工具如 Charles 修改网络请求的返回值,但操作繁琐,该插件方便很多,且不会对 Chrome 之外造成影响)

1701135584935

6.ACG 助手

https://acghelper.com/

第三方哔哩哔哩弹幕网辅助扩展,拥有视频区和直播区的人性化功能,对于喜欢刷 b 站视频的人来说是一个不可多得好工具。

1701135745740

7.艺术照片生成

https://art.aiphotoshoot.com/

人工智能生成的艺术,个人感觉效果还是很不错的。

1701301347920

8.Sam Altman 重新回归 OpenAI 担任 CEO

https://openai.com/blog/sam-altman-returns-as-ceo-openai-has-a-new-initial-board

又迎来了新的转变,Sam Altman 重新回归 OpenAI 担任首席执行官,解散原有的董事会,新的初始董事会将由 Bret Taylor(主席)、Larry Summers 和 Adam D’Angelo 组成。


周刊导航: 上一期(#28) | 下一期(#30)

  •  

奇趣周刊 - 第 28 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

好久没见到这种挂着红灯笼的小镇了,平静中带点繁华,叫卖声、饮食文化都很普通,又透露着幸福。—歙县


1.OpenAi 新闻

OpenAi 联合创始人、首席执行官、董事会成员 Sam Altman 被逐出公司,辞去所有职务。OpenA 宣布首席技术官 Mira Murati 将担任临时首席执行官,立即生效。另一位联合创始人 Greg Brockman 也将辞去董事会主席职务,继续担任公司总裁职务。

2.ImageGlass (图像查看器)

https://imageglass.org/

基于 windows 系统的图像查看器,功能强大轻量,个人感觉比系统默认的好用。

3.Shmily (qq 备份器)

http://lqzhgood.github.io/Shmily

这是一个 ( QQ Wechat 短信 通话记录 照片 等) 记录归档的项目,支持将以前导出的数据和现在合并。如 2013 年导出记录(2000-2013)可以和 2020 年导出记录(2007-2020)合并,在同一时间线查看,支持图表与统计等功能,非常不错的项目

4.Inpaint-web

https://github.com/lxfater/inpaint-web
https://inpaintweb.lxfater.com/

基于 Webgpu 技术和 wasm 技术的免费开源 inpainting 工具,纯浏览器端实现,可以实现抠图等功能。

5.vscode 扩展模板

https://github.com/antfu/starter-vscode

一个开发 vscode 扩展的框架模板。

文章阅读

  1. https://www.bloomberg.com/news/articles/2023-11-21/altman-openai-board-open-talks-to-negotiate-his-possible-return
    OpenAI 董事会萨姆·奥尔特曼 (Sam Altman) 公开讨论他可能的回归。
    谈判的重点是奥特曼恢复首席执行官职务,首席执行官希尔要求董事会提供奥特曼不当行为的证据,大多数 OpenAI 员工因奥特曼退出而威胁辞职。

  2. https://wccftech.com/former-openai-employees-allege-deceit-and-manipulation-by-sam-altman-elon-musk-calls-for-investigation/
    OpenAI 前员工指控山姆·奥尔特曼“欺骗和操纵”:埃隆·马斯克呼吁调查。
    这封信最后呼吁 OpenAI 董事会保持“坚定”立场,反对 Sam Altman 和 Greg Brockman。请记住,OpenAI 的一些最著名的投资者正在试图说服 Altman 放弃微软并重新领导这家初创公司。
    其他人正在考虑对董事会提起诉讼,指控奥特曼被解雇的任意方式。微软的 Satya Nadella 也表示有条件地同意 Sam Altman 重返 OpenAI 的职位。


周刊导航: 上一期(#27) | 下一期(#29)

  •  

奇趣周刊 - 第 27 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1.smartUp Gestures 手势 - 浏览器扩展

Github: https://github.com/zimocode/smartup

Chrome 扩展商店 | Firefox 扩展商店 | Edge 扩展商店

通过使用鼠标提高生产力和效率且可自定义的 Web 浏览器扩展。

功能包括:鼠标手势、简单拖动、超级拖动、摇杆手势、滚轮手势、弹出操作、图标操作、上下文菜单操作、触摸手势、双击操作和键盘快捷键操作。

2.AI 搜索引擎

https://devv.ai/

最懂程序员的新一代 AI 搜索引擎,支持对话。

3.PicHub - Github 图床工具

https://github.com/lewkamtao/PicHub

一个基于 Vue3 + TypeScript 实现的 Github 图床,页面挺美观的,该有的功能都有。

4.Pictode

https://github.com/JessYan0913/pictode/
https://pictode.com/

又一款类似 excalidraw 的产品,响应速度很快。

基于 Vue 3、TypeScript、Konva、HeadlessUI 和 Tailwind CSS 等酷炫技术构建的画板项目,它让你可以随心所欲地绘制、创作和表达自己的创意。✨

5.Lobe Chat

https://github.com/lobehub/lobe-chat

LobeChat 是一个开源的、可扩展的高性能聊天机器人框架。它支持一键免费部署私人 ChatGPT/LLM 网页应用程序。

6.Airy 工具

https://colink.in/

一款桌面程序,AI 翻译,AI 备忘录,AI 搜索等功能,选中后使用快捷键可以直接调用程序翻译或者和 chatGPT 交流,不仅限于浏览器场景。

阅读

  1. https://linuximpact.com/play-the-first-ever-text-adventure-game-in-your-linux-terminal/
    在 Linux 终端上玩第一个文字冒险游戏

  2. https://twitter.com/steventey/status/1723116716715393446
    现在你只需要 AI 就可以将静态照片转换为视频,超乎我的想象。

  3. https://github.com/samuel-lucas6/Cryptography-Guidelines
    作为开发人员实施密码学的指南。

  4. https://twitter.com/i/status/1724280038869094716
    openAI 已经改变了我们的生活,更有效率,更有创造力,真的感叹。


周刊导航: 上一期(#26) | 下一期(#28)

  •  

hugo 的一些模板语法

分享一下 hugo 的语法模板,如何获取总文章数和总字数,效果可以参考我的首页。

{{ $articleCount := len .Site.RegularPages }}
{{ $totalWordCount := 0 }}
{{ range .Site.Pages }}
{{ $totalWordCount = add $totalWordCount .WordCount }}
{{ end }}
<p>已经写了 {{ $articleCount }} 篇文章,共 {{ $totalWordCount }} 字。</p>

在首页过滤某个分类。

{{ $pages := .Site.RegularPages }}
{{ $paginator := .Paginate ($pages) }}
{{ $count := 0 }}

{{ range $paginator.Pages }}
{{ $title := .Title }}
{{ $summary := .Summary }}

{{ if and (not (in .Params.categories "weekly")) (lt $count 7) }}
{{ $count = add $count 1 }}

<article class="post-entry">
  <header class="entry-header">
    <h2 class="entry-hint-parent">{{ .Title }}</h2>
  </header>
  <div class="entry-content">
    <p>{{ .Summary }}</p>
  </div>
  <footer class="entry-footer">
    <time datetime="{{ .Date.Format " 2006-01-02 15:04:05 MST" }}">{{ .Date.Format "2006-01-02"}}</time>
    <span class="category">
      {{ range $key, $value := .Params.categories -}}
      {{- if $key }}, {{ end }}
      {{ . }}
      {{- end }}
    </span>
  </footer>
  <a class="entry-link" href="{{ .RelPermalink }}"></a>
</article>
{{ end }}

{{ end }}
  •  

python 通过 json 生成小文件

记录一个方法,pyhton 通过 json 文件,在同级目录下生成对应格式的小文本。

import json

def generate_files_from_json(json_file):
    with open(json_file, 'r', encoding='utf-8') as f:
        data = json.load(f)

    for item in data:
        for key, value in item.items():
            if isinstance(value, list):
                for sub_item in value:
                    for sub_key, sub_value in sub_item.items():
                        if isinstance(sub_value, dict) and 'list' in sub_value:
                            for sub_sub_item in sub_value['list']:
                                if 'id' in sub_sub_item and 'css' in sub_sub_item:
                                    id_value = sub_sub_item['id']
                                    css_value = sub_sub_item['css']
                                    create_file(id_value, css_value)

def create_file(file_name, content):
    file_path = f"{file_name}.css"
    with open(file_path, 'w', encoding='utf-8') as file:
        file.write(content)

    print(f"File '{file_path}' created successfully.")

if __name__ == "__main__":
    json_file_path = 'your_json_file.json'
    generate_files_from_json(json_file_path)
import json

def generate_files_from_json(json_file):
    with open(json_file, 'r', encoding='utf-8') as f:
        data = json.load(f)

    for item in data:
        for key, value in item.items():
            if isinstance(value, dict) and 'list' in value:
                for sub_item in value['list']:
                    if 'id' in sub_item and 'css' in sub_item:
                        id_value = sub_item['id']
                        css_value = sub_item['css']
                        create_file(id_value, css_value)

def create_file(file_name, content):
    file_path = f"{file_name}.css"
    with open(file_path, 'w', encoding='utf-8') as file:
        file.write(content)

    print(f"File '{file_path}' created successfully.")

if __name__ == "__main__":
    json_file_path = 'your_json_file.json'
    generate_files_from_json(json_file_path)
  •  

奇趣周刊 - 第 26 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

江畔渔火对愁眠。


1.Clash 系列删库事件

2023 年 11 月 2 日,Fndroid/clash_for_windows_pkg 作者由于某些原因,删除仓库中的 releases 包。

3 日,clash 核心也随之删库,紧接着,一系列基于 clash 核心的软件都宣告删库或者 archived。

2.令人困惑的 git 术语

https://jvns.ca/blog/2023/11/01/confusing-git-terminology/

作者举例了很多有关 git 指令奇怪的术语。

3.GitHub 如何恢复旧的 feed 流推送?

https://github.com/wangrongding/github-old-feed

一个油猴脚本,将 GitHub 首页的推送信息进行优化,显示效果也是非常不错的。

4.知乎评论时间精确到秒 - 油猴脚本

https://meta.appinn.net/t/topic/47711/18

来自一位网友的分享,我修改了一些内容和知乎网页风格保持一致。将显示 几小时前 的时间显示改为正常 年-月-日 时-分-秒

油猴脚本代码
// ==UserScript==
// @name         知乎评论时间精确到秒
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  try to take over the world!
// @author       You
// @match        https://www.zhihu.com/*
// @match        https://zhuanlan.zhihu.com/*
// @icon         http://zhihu.com/favicon.ico
// @grant       GM_addStyle
// @run-at document-start
// @require https://scriptcat.org/lib/637/1.3.3/ajaxHooker.js

// ==/UserScript==


(function () {
	'use strict';
	function timestampToTime(timestamp) {
		const milliseconds = timestamp * 1000;
		const date = new Date(milliseconds);
		const year = date.getFullYear();
		const month = addZero(date.getMonth() + 1);
		const day = addZero(date.getDate());
		const hour = addZero(date.getHours());
		const minute = addZero(date.getMinutes());
		const second = addZero(date.getSeconds());

		return `${ year }-${ month }-${ day } ${ hour }:${ minute }:${ second }`;
	}

	function addZero(num) {
		return num < 10 ? `0${ num }` : `${ num }`;
	}

	ajaxHooker.hook(request => {
		if (request.url.includes("https://www.zhihu.com/api/v4/comment_v5/comment/") || request.url.includes("https://www.zhihu.com/api/v4/comment_v5/answers/") || request.url.includes("https://www.zhihu.com/api/v4/comment_v5/articles/")) {

			request.response = res => {
				// console.log('\n== ↓ ↓ ↓ ↓ ↓ == \n', res)

				if (res.json.data) {

					res.json.data.forEach(item => {
						// console.log(timestampToTime(item.created_time));
						item.content =  item.content +   '<span class="css-nm6sok commentTime">' + timestampToTime(item.created_time) + '</span>'
						if (item.child_comments.length >= 1) {
							item.child_comments.forEach(child => {
								child.content =   child.content  + '<span class="css-nm6sok commentTime">' + timestampToTime(child.created_time) + '</<span>'
							});
						}
					});
					GM_addStyle(`
					.CommentContent {
							position: relative;
							overflow: visible;
						}

						/* 	精确时间 */
						.commentTime {
							position: absolute;
							left: 0;
							bottom: -22px;
							color: #999;
						}

						.css-140jo2 {
							position: relative;
						}

						/* 原时间	 */
						.css-12cl38p,
						.css-12cl38p + span,
						.css-nm6sok + span {
							display: none;
						}

						/* ip 属地	 */
						.css-8hxn0r .css-nm6sok {
							position: absolute;
							left: 160px;
							top: 3px;
						}
						/* 热评	 */
						.css-8hxn0r .css-33kuns {
							position: absolute;
							left: 240px;
							top: 3px;
						}
						/*  作者置顶	 */
						.css-1o87v1m{
						    position: absolute;
  						    top: 22px;
   						    left: -4px;
						}
					`);
				}

			};
		}

	});
})();

5.rubick - uTools 的开源替代品

https://github.com/rubickCenter/rubick

虽然我已经购买了 uTools 的永久会员,但还是觉得 rubick 非常棒,试用了一下很符合前端的使用习惯,可以自己本地开发插件。

  • 基于 electron 的开源工具箱,自由集成丰富插件。
  • 基于 npm 包模式的插件管理,安装插件和安装 npm 包一样简单
  • 支持 webdav 多端数据同步,真正的数据安全同步
  • 独一无二的系统插件模式,让插件成为 rubick 的一部分
  • 支持快速启动本地 app、文件、文件夹
  • 支持企业化内网部署
  • 支持多语言

6.OpenAI 发布会

11 月 6 日,OpenAI 官方发布会上公布最新的模型 GPT-4 Turbo 发布,功能非常强大,并且开启了 GPT 4 的内测,小部分 GPT 3.5 用户可以体验到 GPT 4 的快感,预计很快就可以开放到所有 GPT 3.5 用户。


周刊导航: 上一期(#25) | 下一期(#27)

  •  

chrome119 版本看视频时会闪动

在 chrome119 版本下观看视频时,比如 bilibili 或者 douyin,会不时的出现闪动,黑屏,自动刷新等情况,反正我是经常遇到。

在网络上上求助时,看有人说到可能是 NVIDIA 显卡和 Chromium 内核冲突的问题。

进入设置 chrome://flags/#use-angle ,将 Choose ANGLE graphics backend 设置为 D3D11on12 就可以避免出现这个情况。

其实不止是 chrome,包括 edge 浏览器都会出现这个问题(实测),因为他们都是使用 Chromium 内核的浏览器。

也不知道 NVIDIA 和 Chromium 谁该背这个锅,希望早日修复此 bug。

  •  

奇趣周刊 - 第 25 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

image

西班牙骑士的“劲敌”卡斯蒂利亚 - 拉曼恰的风车


1.Screenzy - 截图美化

https://screenzy.io/

写博客或者分享截图的时候,可以用来美化图片

1698304102451

2.AutoCorrect - vscode 插件中英混排优化

https://marketplace.visualstudio.com/items?itemName=huacnlee.autocorrect

https://github.com/huacnlee/autocorrect

可以自动优化中英文混排的格式,对于写文章的小伙伴来说很实用,自动化规范写作格式。安装了这个 vscode 插件后,我将所有文章的格式都重新优化了一下,看着顺眼了很多。

AutoCorrect 用于「自动纠正」或「检查并建议」文案,给 CJK(中文、日语、韩语)与英文混写的场景,补充正确的空格,同时尝试以安全的方式自动纠正标点符号等等。

类似 ESlint、Rubocop、Gofmt 等工具,AutoCorrect 结合 VS Code,它提供 Lint 功能能便捷的检测出项目中有问题的文案,起到统一规范的作用。

支持各种类型文件支持,能自动识别文件名,并准确找到字符串、注释做自动纠正。

1698330018753

3.Internet Artifacts - 互联网文物

https://neal.fun/internet-artifacts/

收藏了从因特网早期一直到现在非要有标志性的产物或者事件,很有趣的一个网站,摸鱼的时候可以扩展下知识。

比如世界上第一封垃圾邮件,由 Digital Equipment Corporation 的营销经理 Gary Thuerk 发送的。Thuerk 将电子邮件发送给 ARPANET 上的 320 个收件人,宣传新型 DECSYSTEM-20 大型计算机的产品演示。

1698330719549 1698330744643

4.WxReader - 微信读书自动阅读器

https://github.com/DoooReyn/WxReader

基于 PySide6 的微信读书自动阅读器。

5.wxt - Web 扩展框架

https://github.com/wxt-dev/
https://wxt.dev/

一款开源工具,使 Chrome 扩展程序的开发速度比以往任何时候都快。

⚡ 下一代 Web 扩展框架,它类似于 Nuxt,但适用于 Chrome 扩展,支持所有浏览器,热更新,支持各种框架启动。

1698805357082

文章阅读

  1. https://blog.plover.com/prog/katara-advice.html
    Advice to a novice programmer 给新手程序员的建议。

  2. https://twitter.com/javilopen/status/1719363262179938401
    用 AI 复制《愤怒的小鸟》。
    1698805844066


周刊导航: 上一期(#24) | 下一期(#26)

  •  

奇趣周刊 - 第 24 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1697976752212

来自一位叫做 @洋洋 的网友拍摄的黄山,如诗如画,彷佛中梦中走来的景象。


1.Notepads 文本编辑器

https://github.com/0x7c13/Notepads

具有简约设计的现代轻量级文本编辑器,对标 windows txt 文档。

1698072221188 1698072221197

2.Jamstack Themes (Jamstack 主题)

https://jamstackthemes.dev/

收录各种博客程序主题,包括不限于 hexo, hugo, jekyll, astro, gatsby 等等,资源相当丰富。

1698072221202

3.Lorem Picsum 免费的图像 api

https://picsum.photos/

可免费调用的图像 api,只需在我们的 URL 后添加您想要的图像尺寸(宽度和高度),您就会获得随机图像。

  1. 要获得正方形图像,只需添加尺寸即可。
  2. 通过在 URL 开头添加 /id/{image} 来获取特定图像。
  3. 通过将 /seed/{seed} 添加到 URL 的开头,每次都根据种子获取相同的随机图像。
  4. 通过将 ?grayscale 附加到 url 末尾来获取灰度图像。
  5. 通过将 ?blur 附加到 URL 末尾来获取模糊图像。

如下图,每次刷新都会获得一张新的图像。

Lorem Picsum

4.Clash-for-Windows_Chinese

https://github.com/Z-Siqi/Clash-for-Windows_Chinese

提供 clash for windows 的汉化版,汉化补丁以及汉化版 Clash 安装程序。

1698072221194

推荐文章

  1. https://www.dailymail.co.uk/news/article-12646839/Netflix-subscribers-password-sharing-crackdown-revenue.html
    Netflix 打击密码共享行为,新增 900 万订阅用户。

  2. https://www.ex-astris-scientia.org/database/chairs-trek.htm
    《星际迷航》中市售的椅子。

科技新闻

  1. 2023/10/23,语雀官网从下午起全面崩溃,截止到晚间 10 点 左右维修完毕,持续大半天,所有用户查看不了文档和笔记,这显然对一个在线文档网站来说是致命打击,并且这也不是第一次出现这种情况。相信经此之后,会有很多用户出走,迁移出自己的数据,这实在是太不安全了!曾经我也算是语雀资深用户,它本身是一个很不错的产品,奈何运营层面让人很失望。

周刊导航: 上一期(#23) | 下一期(#25)

  •  

奇趣周刊 - 第 23 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1697283160572

在骑行过程中发现的一处风景,非常可爱的城堡,外表为粉色,很吸引女孩子前往游玩,位于杭州滨江浦沿。


1.V2EX Polish

https://www.v2p.app/

专为 V2EX 用户设计的浏览器插件,集合了众多实用功能,让原生页面焕然一新!

1697285124941

2.MarkDownload - Markdown Web Clipper

https://chromewebstore.google.com/detail/markdownload-markdown-web/pcmpcfapbekmbjjkdalcgopdkipoggdi

谷歌浏览器扩展,可以将当前网页输出为 markdown 格式,收藏文章到本地很有用。

1697349821802

3.一本记账

https://www.yimuapp.com/

专注效率的智能记账软件,支持安卓端和 ios 端,页面很精美功能强大,不连接云端,数据默认保存在本地,可以通过 WebDAV 同步到坚果云。

1697284712694

4.Qexo

https://github.com/Qexo/Qexo

一个快速、强大、漂亮的在线 Hexo 编辑器,支持多种 Hexo、Hugo、Valaxy 托管商 Github、Gitlab、本地。支持将文章、页面、配置索引一键缓存至数据库,保证您的高速访问,Webhook 全自动清除缓存,时刻保持数据最新。

1697461248559

5.Omnivore

https://omnivore.app/

Omnivore 是一款免费、开源、适合认真阅读的稍后阅读应用程序。保存文章、新闻通讯和文档并稍后阅读——专注且无干扰。添加注释和亮点。按照您想要的方式整理您的阅读列表并在所有设备上同步。

1697461480673

文章

  1. https://stackoverflow.blog/2023/10/16/stack-overflow-company-announcement-october-2023/
    Stack Overflow 宣布裁员 28%

  2. https://urbigenous.net/library/how_to_build.html
    如何建立一个两天后不会分崩离析的宇宙,菲利普·K·迪克,1978。

  3. https://tech.meituan.com/2023/10/12/exploration-of-reliability-governance-based-on-pattern-mining.html
    《基于模式挖掘的可靠性治理探索》作者美团技术团队。对于亿级流量的线上系统来说,可靠性是至关重要的。从字面上理解,可靠性要求故障少、可信赖。与安全性一样,它们都是信息系统的固有属性之一,也是保障产品质量的关键因素。


周刊导航: 上一期(#22) | 下一期(#24)

  •  

奇趣周刊 - 第 22 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

来自推特帖子,可爱的小猫在机箱中玩耍。


1.ChatPdf / Sider 谷歌插件

https://sider.ai/chatpdf/

带有 Vision 的 ChatGPT 侧边栏,让 AI 帮你读 PDF!将 PDF 变为你的聊天机器人!

在任意页面都可以使用 Sider 侧边栏,以获得即使的 AI 帮助。提出问题、接收答案并顺利过渡回当前任务。最大限度地减少干扰并提高生产力。拥抱不间断工作流程的自由。

1697106487742

2.直播源

https://github.com/fanmingming/live
https://live.fanmingming.com/

✯ 一个国内可直连的直播源分享项目 ✯
🔕 永久免费 直连访问 完整开源 不含广告 完善的台标 直播源支持 IPv4/IPv6 双栈访问 🔕

1697124432886

3.推特视频下载器

https://savetwitter.net/zh-cn

轻松将 Twitter 视频免费下载到 mp3、mp4。

1697252342214

文章

  1. https://baoyu.io/blog/prompt-engineering/three-ai-agents-and-four-steps-flow-prompt
    怎么让 ChatGPT 的翻译结果更准确?

  2. https://www.gearpatrol.com/tech/audio/a45461959/tascam-portastudio-414-mkii/
    这款四轨录音机让我再次爱上音乐

  3. https://www.cnbc.com/2023/10/11/irs-says-microsoft-owes-an-additional-29-billion-in-back-taxes.html
    IRS 称微软还欠 290 亿美元税款,微软表示,美国国税局通知该公司,该公司还欠 289 亿美元的税款。微软将审理美国国税局的行政上诉,这可能需要数年时间。

游戏

  1. csgo 社区服 https://csgod.top/
    又一个 Counter Strike 玩家聚集地。作为 8 年老玩家,很遗憾,csgo 即将远去,cs2 很好,但不适合我,据传明年 1 月份 V 社将会彻底删除 csgo 的测试包,基于此的社区服也会随之烟消云散,感概万千,因此在周刊推荐了这个社区服,喜欢 csgo 的小伙伴可以关注下。

周刊导航: 上一期(#21) | 下一期(#23)

  •  

五丰岛骑行

不出意外的,今天天气很好,约了个小伙伴一起出来骑行。目的地五丰岛,沿着滨江绿道一路至吴家渡口。

不过岛比较小,找了家面馆吃了午饭后,沿着小岛绕了一圈。时间还早,继续行至湘湖,平时我只在晚上去过,基本没有白天来湘湖,没想到这么热闹,很多人摊了个野餐布在草地休息,还好很多拍婚纱照的,比较好玩就多呆了会。

今日刷里程 60 公里。

1696331276384

1696331276364

1696331276378

1696331276356

  •  

奇趣周刊 - 第 21 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

国庆在湘湖骑行,看着来往休息的人群,非常多拍婚纱照的人。

“判断什么事情该做,有两个标准。
第一,做的时候喜欢、快乐,做了以后一定不会后悔的事情。第二,做的时候未必喜欢、快乐,但不做一定会后悔的事情。有这两个标准基本就够了,而且它们很好掌握。”

“There are two criteria for judging what should be done. First, if you like and be happy when you do it, you will definitely not regret it if you do it. Second, you may not like and be happy when you do it, but you will definitely regret it if you don’t do it. Things. These two standards are basically enough, and they are easy to master.”


1.gkd 手机跳过广告

https://github.com/gkd-kit/gkd

基于 无障碍 + 高级选择器 + 订阅规则 的自定义屏幕点击 Android APP。

2.tgState 图床

https://github.com/csznet/tgState

使用 Telegram 作为存储的图床,最大支持 20MB

3.ChatGPT 小助手

https://greasyfork.org/scripts/462447

ChatGPT 小助手可以为你带来更好的使用体验:添加快捷指令(prompts),暂时只适配了官方站点。

4.推荐文章

  1. 怎么让 ChatGPT 的翻译结果更准确?
    https://baoyu.io/blog/prompt-engineering/three-ai-agents-and-four-steps-flow-prompt

周刊导航: 上一期(#20) | 下一期(#22)

  •  

翁金线骑行

国庆与中秋连在一起放假了,可以出去散散心,从杭州出发一路骑行翁金线,至观潮胜地公园,位于嘉兴海宁,全程将近 70 公里。

整体的感受就是非常爽,前半程因为钱塘江大潮的缘故,游客非常之多,路上来来回回都是人,安全起见不敢骑太快,后半程才放开身心,享受骑车的乐趣和沿途的风景。

回家的路上碰到两个骑友和我的路线一致,便结伴而行,一边聊天一边刷里程,也是非常畅快。

路过堤坝,见到了潮水过去渔民捕鱼的景象。

翁金线是个好地方,期待下一次和朋友继续去骑行游玩!

  •  

奇趣周刊 - 第 20 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

在钱塘江北岸遥望。


1.Whois 查询

https://who.cx/

一个美观的 Whois 查询网站,加载速度很快,可以识别备案域名。

2.excalidraw 画板

https://excalidraw.com/

在线画板工具,支持协同、分享等。

1695729137648

3.图形生成器

https://itakeo.github.io/tool/

快速生成三角形、箭头、阴影、渐变的 CSS 代码。对我来说是不可多得的好工具,日常使用会用到 css 三角形,每次手动画总是很麻烦,有了这个工具,以后可以省很多力气了。

1695783554430


周刊导航: 上一期(#19) | 下一期(#21)

  •  

夜游钱塘

和小伙伴绕着江边骑行,欣赏了“大莲花”亚运会主场馆,杭州之门地标。

1694436654865

1694436654896

1694436654882

  •  

远程工具 RustDesk 安装流程

RustDesk 是一款功能齐全的远程桌面应用,支持 Windows、macOS、Linux、iOS、Android、Web 等多个平台。支持 VP8 / VP9 / AV1 软件编解码器和 H264 / H265 硬件编解码器。完全掌控数据,轻松自建。P2P 连接,端到端加密。在 Windows 上可以非管理员不安装运行,根据需要在本地或远程提升权限。

下面是在 linux 服务器上部署中继服务器的脚本。

docker 拉取镜像

docker image pull rustdesk/rustdesk-server

运行 hbbs

# 服务器IP >> 替换为你当前终端的ip
docker run -d --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server hbbs -r 服务器IP
# 如果–net=host运行正常,-p选项就不起作用了, 可以去掉。
sudo docker run --name hbbs  -v /docker/rustdesk:/root -it -d --net=host --restart=always rustdesk/rustdesk-server hbbs -r 服务器IP

运行 hbbr

docker run -d --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server hbbr
# 如果–net=host运行正常,-p选项就不起作用了, 可以去掉。
sudo docker run --name hbbr -v /docker/rustdesk:/root -it -d --net=host --restart=always rustdesk/rustdesk-server hbbr

使用 docker ps 命令查看服务是否正常运行。

windows

image

“ID 服务器” 和 “中继服务器” 都填写服务器 ip,不需要加端口,但是在服务器防火墙要记得放行端口号。

  •  

国产代码编辑器何愁不崛起

相关文献:


今天摸鱼发现了一个神奇的东西,CEC-IDE。

据说是:“国内首款适配国产操作系统、自主可控的集成开发环境工具 CEC-IDE”,在某网站有官方资料说明。

下载了一下打算瞅瞅,嚯!前端程序员对这个应该都不陌生 (除了不认识左上角的 logo)

随着深入了解,又发现了一个有意思的地方, 国产代码编辑器安装完第一步,官网文档教你怎么切换成中文模式。

咱好歹把中文默认语言安排上对吧,不然多对不起 “国产” 这个名头。


试用了一下这个软件,确实挺不错,除了 logo 跟 vscode 不同,其他都完美适配了 vscode,简直是非常好用,不愧是…!

… 真的挺无语,就是说 骗经费稍微用点心吧。

  •  

Bitwarden / Vaultwarden 密码管理工具

1.介绍

Bitwarden 是一款自由且开源的密码管理服务,用户可在加密的保管库中存储敏感信息。Bitwarden 平台提供有多种客户端应用程序,包括网页用户界面、桌面应用,浏览器扩展、移动应用以及命令行界面。Bitwarden 提供云端托管服务,并支持自行部署解决方案。

在调研一些市面常用的密码管理工具之后,我选择了 Bitwarden。然后使用自托管的方式部署在服务器上,定时备份数据库,导出密码,安全性也有保证。

https://bitwarden.com/

而 Vaultwarden 是一个使用 Rust 编写的非官方 Bitwarden 服务器实现,提供了不错的 web 管理界面,并与 Bitwarden 兼容。

2.部署

先在服务器执行指令。

docker run -d --name bitwardenrs \  
  --restart unless-stopped \  
  -e WEBSOCKET_ENABLED=true \  
  -v /data/password/data/:/data/ \  
  -p 6666:80 \  
  -p 3012:3012 \  
  vaultwarden/server:latest

部署完成后打开网站,登陆注册之后,删除容器。

需要配置禁止注册的功能,因为我只想自己使用。如果不禁止注册,可以忽略下面这两步。

docker stop bitwardenrs  #停止容器  
docker rm -f bitwardenrs  #删除容器
docker run -d --name bitwardenrs \  
  --restart unless-stopped \  
  -e SIGNUPS_ALLOWED=false \  
  -e WEBSOCKET_ENABLED=true \  
  -v /data/password/data/:/data/ \  
  -p 6666:80 \  
  -p 3012:3012 \  
  vaultwarden/server:latest

3.docker-compose.yml

通过 ChatGPT 我将这段代码转化成了docker-compose.yml 文件,可以更方便的部署安装。

version: '3'
services:
  bitwardenrs:
    image: vaultwarden/server:latest
    container_name: bitwardenrs
    restart: unless-stopped
    environment:
      - SIGNUPS_ALLOWED=false
      - WEBSOCKET_ENABLED=true
    volumes:
      - /data/password/data/:/data/
    ports:
      - "6666:80"
      - "3012:3012"

4.chrome 扩展

通过反向代理可以使用域名登陆 web 端,并且使用了 chrome 扩展方式,在登陆网站可以自动保存密码。

https://chrome.google.com/webstore/detail/bitwarden-free-password-m/nngceckbapebfimnlniiiahkandclblb

之后我只需要记住一个主密码,其他网站密码全部采用加密方式生成,方便与安全并存。

  •  

昨夜梦有感

2023 年 07 月 09 日夜梦

昨晚我做了一个梦,也许是因为最近太多玩《极限国度》的缘故。在梦中,我在一条陌生的赛道上狂飙,以极速骑行。当我经过一座拱桥时,遇到了一个年轻人,他和我做着相同的动作,优雅地在空中旋转着,360 度的转体后稳稳地降落下来。

随着时间的推移,场景莫名地转变,我来到了小时候的家乡。高耸的水塔和大坝,两旁是湍急的河流。突然间,原本明亮的天空变成了黑色。我抬头仰望,只见一片漆黑,空气中仿佛弥漫着焦糊的味道,给人一种破败的感觉。太阳的踪迹已然消失,不是夜晚降临的景象,而是一个黑色的太阳,或者说太阳熄灭了,但我的眼睛仍能看到周围的景物。

我感到一丝恐慌,不知道光源从何而来。我和那个年轻人沿着小路继续前行,世界变得异常安静,没有任何声音。就在我不知所措之际,路的尽头出现了一个村庄,人影模糊地闪动着。我正打算走过去询问发生了什么事情,那个年轻人却拉住了我,示意我保持安静。

我们继续前行,发现许多生物,看起来像《我的世界》游戏中的末影人,不停地穿梭着。突然间,它们似乎发现了我们,展开翅膀向我们飞来。作为普通人,这让我感到非常害怕。紧张中,我就在这时醒了过来,看了看手机,显示 6 点半。无法再入睡,我起来倒了杯水。

ps: 梦是没有丝毫逻辑的,脑海中的剧情可能前言不可后语,上一秒还在街道上奔跑,下一秒就穿越到了侏罗纪被当作食物吞进腹中。可能是精力太充沛的缘故,已经很久没有做梦了。

为了避免胡思乱想,好好运动一番吧!

image

  •  

极美的晚霞画卷

使用设备 RedmiK50 拍摄。

当太阳逐渐西沉时,天空的色彩变得温暖而温和,绝美的晚霞画卷即将展开。

1688912095539.png

这是我今天最喜欢的一张照片。

  •  

aos 事件触发失败

项目中遇到这个问题,网页往下滑动时加载 aos 事件触发不了,原因也很简单,因为 aos.js 是在页面加载时获取页面高度从而绑定一些事件进去,但是如果这个文件加载速度比框架加载的快,会导致两者高度不一致,从而动画效果触发失败。

我尝试用 window.onload 但是效果并不好,依旧失败。

window.onload=function(){
  AOS.init({offset:100,duration:600,once:true,delay:100,});
}

所以决定加个 100ms 的延迟调用实例,这样就没问题了。

setTimeout(function(){
  AOS.init({offset:100,duration:600,once:true,delay:100,});
},100)
  •  

奇趣周刊 - 第 19 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1695084092443

今年刚刚修好的上桥骑行路线,体验一下骑行爬坡过桥。坡度还比较缓,难度不大很轻松。


1.李跳跳自定义规则

https://github.com/Snoopy1866/LiTiaotiao-Custom-Rules

由于一些特殊原因,导致软件开发者不能继续维护发布,有老的安装包可以继续使用,但是规则需要更新。

[李跳跳安装包下载]

本项目收集适用于“李跳跳”的 App 自定义规则,包括基础规则和增强规则。

  • 基础规则:关闭应用内广告、更新弹窗、青少年模式弹窗、权限索取提示等
  • 增强规则:自动化操作等

1695084306451

2.免费视频分享平台

https://catbox.moe/

每次允许上传最多 200 MB。免费的视频分享平台,开发者通过公益捐助维持网站运行。

1695084928449

3.Twitter Block Porn

https://greasyfork.org/scripts/470359

一个油猴脚本,共享黑名单,一键拉黑所有黄推诈骗犯。

4.文章阅读

  1. https://www.vangoghmuseum.nl/en/art-and-stories/stories/all-stories/5-things-you-need-to-know-about-van-goghs-self-portraits
    梵高的自画像

  2. https://www.electrospaces.net/2023/09/some-new-snippets-from-snowden-documents.html
    斯诺登文件中的一些新片段

  3. https://www.zhangxinxu.com/wordpress/2023/09/js-copy-image-clipboard/
    又 get 到了,JS 复制图片到剪切板 - 张鑫旭


周刊导航: 上一期(#18) | 下一期(#20)

  •  

晚霞彩虹

短短几分钟后,彩虹就消失得无影无踪,我庆幸自己按下了快门。

image

  •  

奇趣周刊 - 第 18 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1694436654865

杭州亚运会主场馆奥体中心,又称“大莲花”。在夜色的笼罩下灯光变幻莫测,彷佛盛开的莲花。


1.Gitstars

https://gitstars.cfour.top/
https://github.com/cfour-hi/gitstars

管理 GitHub star 的网站。Github 作为开发者的第一社交平台,拥有数不胜数的优秀开源项目,给工作和学习带来巨大方便,遇到自己需要或是喜爱的项目只需点击 Star 便可收入囊中。

Star is easy,可随着 Starred Repositories 增长,在需要使用到某个项目时难免记不清叫什么,而 Github 又只提供简单的搜索,找到目标 Starred Repository 竟也成了件小小的麻烦事。

所以拥有自己的 Github Stars Repositories Manager 也算是开发者的必备需求。

Gitstars 由此诞生 💡

1694583629560

2.Awesome-Selfhosted

https://github.com/awesome-selfhosted/awesome-selfhosted

收录了大量可托管的 Web 程序,可以在您自己的服务器上托管的自由软件网络服务和 Web 应用程序的列表。

3.What OpenAI Really Wants (OpenAI 真正想要什么)

https://www.wired.com/story/what-openai-really-wants/


周刊导航: 上一期(#17) | 下一期(#19)

  •  

夜骑湘湖

突然萌生了骑行的想法,行动力很强的我立刻研究相关知识并付诸实践,两个小时36公里浅浅锻炼一下。绕着湘湖骑了一大圈,开始还有点累腿,后面慢慢就适应节奏了。

看着湖景,赏荷花,夜风迎面吹来,别有一番滋味。

image

image

  •  

奇趣周刊 - 第 17 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1. 枫言枫语

https://fyfy.fm/

听见科技与人文的声音,一档由开发者 @枫影 JustinYan 和设计师 @自力 hzlzh 主持的播客节目。

image

2.不明白播客

https://buzzsprout.com
文字版备份:https://github.com/bumingbaipod/podcast

3.Hacker News 黑客新闻

https://news.ycombinator.com/

image

4.Lindy HN

https://hn.lindylearn.io/

Hacker News 是一个宝藏,而且不仅仅是讨论新闻。99% 的最佳内容不是今天创造的,该网站汇集了 Hacker News 上经常转发的经典文章。

image

5.RSS 阅读器

https://www.qireader.com/

一个优雅的 web 端 RSS 阅读器,是我现在经常使用的一个网站,订阅杂志、周刊、博客等。

image

6.css 滚动区域容器

使用“scroll-timeline”的 CSS-only 滚动区域指示器。

诀窍是简单地向这两个箭头元素添加由时间线控制的不透明动画。

https://twitter.com/shuding_/status/1698176794124578923
https://codepen.io/shuding/pen/WNLGQor

image


周刊导航: 上一期(#16) | 下一期(#18)

  •  

关于 HugoFast 这个项目

项目来源于我的突发奇想,并且基于热爱折腾的心理,利用 GitHub 本身提供的 Api,将博客管理面板化。

目前仅支持 hugo,其他程序有对应的工具,就不造轮子了。

Github: https://github.com/dlzmoe/HugoFast
网站:https://hugofast.netlify.app/
用户文档:https://hugofast-docs.netlify.app/

1. 自托管

前往 https://github.com/dlzmoe/HugoFast fork 本项目,然后下载到本地。

git clone https://github.com/dlzmoe/HugoFast.git

::: warning 这里默认你有一定的代码基础,本地提前安装好了 node 依赖等。 :::

# 进入项目安装依赖包
cd HugoFast
yarn

# 使用 `yarn serve` 运行项目
yarn serve
# 打包到 dist 文件
yarn build

打包后的文件可以放在的任意空间部署。

2. 准备工作

(1) 获取 Github Token

前往 https://github.com/settings/tokens/

image

新建一个 token,选择 repo / user 这两个权限,名称随意,最后生成 token。

注意要保存好这个密钥,在新的终端打开网站需要用到这个密钥。

(2) 操作 hugo 源码仓库

前往你的 hugo 源码仓库,如下图。

image

image

在仓库的 setting/actions,滑到最下面,打开 actions 的 pr 权限,不然 actions 自动部署会失败。

image

(3) 添加 .github/workflows/main.yml

点击 actions > set up a workflow yourself 新建一个 actions 工作流。

注意: git config --global user.email ""git config --global user.name "" 里面要填写你的 GitHub 邮箱以及用户名。

name: hugo deploy

on:
    push:
    workflow_dispatch:
    schedule:
        # Runs everyday at 8:00 AM
        - cron: "0 0 * * *"

jobs:
    build:
        runs-on: ubuntu-latest
        steps:
            - name: Checkout
              uses: actions/checkout@v2
              with:
                  submodules: true
                  fetch-depth: 0

            - name: Setup Hugo
              uses: peaceiris/actions-hugo@v2
              with:
                  hugo-version: "latest"

            - name: Build Web
              run: hugo
            - name: Commit changes
              run: |
                git config --global user.email ""
                git config --global user.name ""
                git pull
                git add .
                git commit -m "my commit"                
            - name: Push changes
              uses: ad-m/github-push-action@master
              with:
                github_token: ${{ secrets.GITHUB_TOKEN }}
                branch: main

3. HugoFast 网站

使用官方提供的版本。

在线管理:https://hugofast.netlify.app/

image

第一行:获取的 GitHub Token
第二行:hugo 源码仓库

image

填写完成后,会自动获取文章目录,选择后点击确认。

image

进入网站就可以正常使用功能了,如修改文章,发布新文章,其他功能还在开发中。


未完待续…

  •  

奇趣周刊 - 第 15 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1.python-markdown-to-wordpress

https://github.com/nefu-ljw/python-markdown-to-wordpress

批量上传 Markdown 文件到 WordPress,并且支持更新单个 WordPress 文章

2.gpt-shell

https://github.com/Zenyet/gpt-shell
https://g.thoughtflow.org/

仿 shell 终端的 gpt 聊天对话工具。


周刊导航: 上一期(#14) | 下一期(#16)

  •  

随想录 (10)

夕阳伴随着晚霞划破了云层。

image

下班时在路口发现的风景,记录美好的瞬间。


https://github.com/canton7/SyncTrayzor

搞定了 SyncTrayzor,一个 Syncthing 的应用,可以不用挂载终端,始终在电脑后台进行同步,占用也很低,一切都是在无感下进行操作的,适合我这种极简主义风格的人。

流程是:家中的电脑 <–> 服务器 <–> 公司电脑三方同步,写笔记和博客更方便了。

  •  

奇趣周刊 - 第 14 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1.Github Desktop 汉化

https://github.com/robotze/GithubDesktopZhTool https://desktop.github.com/

Github Desktop 汉化工具 支持 Windows Mac Linux

2.ByteMD

https://github.com/bytedance/bytemd

ByteMD 是一个使用 Svelte 构建的 Markdown 编辑器组件。它还可以用于其他库/框架,例如 React、Vue 和 Angular。 目前掘金社区使用的就是这款编辑器。


周刊导航: 上一期(#13) | 下一期(#15)

  •  

hugo 纯静态编写一个字数统计脚本

早上起来的时候看到微信群中有博友分享自己的建站时间,聊着聊着说到总字数上面,这时我才发现我的网站没有统计的地方,索性就自己写一个吧,因为是静态博客,所以不涉及后端、服务器等,只用前端的方式来解决。

这里需要借助我之前的一篇文章,《用原生 js 给网站写个搜索功能》,里面有提到如何生成一个文章列表 json 文件,这里我们会用到这个文件 index.json

写一个 ajax 方法,让浏览器遍历每个页面。

$(document).ready(function () {
  $.ajax({
    url: '/index.json',
    type: 'get',
    dataType: 'json',
    success: function (data) {
      const pageUrls = data;
      const totalNum = pageUrls.length;
      $('#totalNum').html(totalNum);
      let totalWords = 0;
      pageUrls.forEach(urlObj => {
        $.get(urlObj.permalink, function(data) {
          const content = data.replace(/(<([^>]+)>)/gi, " ").replace(/[^\w\s]/gi, " ");
          const words = content.split(" ");
          const wordCount = words.filter(word => word !== "").length;
          totalWords += wordCount;
          $('#totalWords').html(totalWords);
        });
      });
    },
    error: function () {
      console.log('error')
    }
  })

});

我是将信息放在我的 关于 页面下。

经过脚本统计,我已经写了 <span id="totalNum"></span> 篇文章,总共 <span id="totalWords"></span> 个字。
<!-- 经过脚本统计,我已经写了 164 篇文章,总共 97577 个字。 -->

image

  •  

奇趣周刊 - 第 13 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1.vue-fabric-editor

https://nihaojob.github.io/vue-fabric-editor/#/
https://github.com/nihaojob/vue-fabric-editor

基于 fabric.js 和 Vue 的图片编辑器,可自定义字体、素材、设计模板。fabric.js and Vue based image editor, can customize fonts, materials, design templates.

image

2.Tiptap

https://tiptap.dev/ https://github.com/ueberdosis/tiptap

一款现代化编辑器,支持原生 javascript, vue, react, nuxt, php 等多种框架和语言。

image

3.van-nav

https://github.com/mereithhh/van-nav

一个轻量导航站,汇总你的所有服务。全平台支持,单文件部署,有配套浏览器插件。我已经安装使用了 https://nav.zburu.com/ ,界面美观,作者还在开发中。

image


PS:
1.推荐一部最近在看的英剧《真相捕捉》。


周刊导航: 上一期(#12) | 下一期(#14)

  •  

奇趣周刊 - 第 12 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

1.KeepChatGPT

https://github.com/xcanwin/KeepChatGPT

非常好用的一款油猴脚本,提升使用 chatGPT 时的体验。

  • 这是一款 ChatGPT 畅聊插件,让你不再遇到网络报错,不再需要刷新网页
  • 解决了报错:NetworkError when attempting to fetch resource.
  • 解决了报错:Something went wrong. If this issue persists please contact us through our help center at help.openai.com.
  • 解决了报错:Conversation not found
  • 自由取消后台监管审计:This content may violate our content policy. If you believe this to be in error, please submit your feedback — your input will aid our research in this area.
  • 解决被频繁地打断交流
  • 解决频繁地刷新网页
  • 支持多国语言
  • 解决用户手误复制用户头像里的用户名的问题
  • 兼容移动端
  • 支持自由调整频率

2.vue-chrome-extension-boilerplate

https://github.com/mubaidr/vue-chrome-extension-boilerplate

基于 Vue.js + Webpack 的 Chrome 扩展模板,开发 chrome 扩展非常方便,并且可以自动打包压压缩。

3.STDF 组件库

https://stdf.design/#/

基于 Svelte 与 Tailwind 的移动 web 组件库。

image


周刊导航: 上一期(#11) | 下一期(#13)

  •  

奇趣周刊 - 第 11 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

周刊开源地址:https://github.com/dlzmoe/weekly-note

工具

1.竹白工具箱

https://github.com/utags/zhubai-toolbox

虽然我用不到,看了下文档,确实是一个不错的小工具。

2.chatgpt-miniprogram

https://github.com/leon-fong/chatgpt-miniprogram

⚡️ 一键拥有你自己的 ChatGPT 微信小程序。

3.toastr

https://github.com/CodeSeven/toastr

toastr 是一个用于非阻塞通知的 Javascript 库。jQuery 是必需的。目标是创建一个可以定制和扩展的简单核心库。

拿来作为项目中的消息提示非常好用,轻量,功能健全。

4.LXGW WenKai / 霞鹜文楷

https://github.com/lxgw/LxgwWenKai

An open-source Chinese font derived from Fontworks’ Klee One. 一款开源中文字体,基于 FONTWORKS 出品字体 Klee One 衍生。

话题

  1. https://github.com/hax/heshijun_v_360 贺师俊与 360 的劳动争议诉讼。

周刊导航: 上一期(#10) | 下一期(#12)

  •  

奇趣周刊 - 第 10 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

网站

1. 小狼毫 rime

https://github.com/ssnhd/rime

Rime Squirrel 鼠须管配置文件(朙月拼音、小鹤双拼、自然码双拼),极简开源的输入法。

2. vue simple markdown

https://github.com/Vivify-Ideas/vue-simple-markdown

一款非常轻量的解析 markdown 语法的解释器。

3. Color-Name

https://www.color-name.com/

可以获取色值对应的名称,质量很不错,网站设计的很精美。

4. chrome-plugin-memos

https://github.com/dlzmoe/chrome-plugin-memos

自荐一个开源项目,Memos 的 chrome 插件。在设置中中输入网站域名、以及 openId 进行配置,支持编辑,发布,归档,编辑历史笔记功能。

  1. 下载已打包好的 dist-zip 文件,解压拖拽到 chrome 扩展中。
  2. npm run build 重新构建

文章

  1. https://lukasrosenstock.net/2023/04/10/im-single-i.html
    Lukas Rosenstock’s Blog

  2. https://iosifache.me/twitter-architecture-trends
    Twitter 架构的趋势(来自科技爱好者周刊)


周刊导航: 上一期(#9) | 下一期(#11)

  •  

周六爬山日常

本周行程:万松书院出发,翻越凤凰山,登顶玉皇山,俯瞰八卦田。

上周和朋友爬山,由于实力太弱拖了后腿,因此奋发图强,直接下单了一把登山杖,差生文具多。但是有一说一,登山杖是真的好用,不管是上山还是下山都很借力,对膝盖起到了一定的保护作用。

这次徒步旅行相对来说还是比较轻松的,拥抱大自然,见到了很多不一样的风景,这是城市所不能拥有的,特别是登高望远,那种心理状态一下子就升华了。虽然只是个小山坡,但是还是能体会到“会当凌绝顶,一览众山小。”

再加上一路与朋友说说笑笑,聊聊天,说实话还是蛮充实的。最近迷上了爬山这项活动,基本每周都会去一趟,呼吸新鲜空气,观看自然的风光。

每到一个地方都会打卡记录一番。

八卦田遗址公园 八卦田 八卦田遗址公园

凤凰山俯瞰钱塘江 凤凰山俯瞰钱塘江

玉皇山俯瞰西湖 玉皇山俯瞰西湖

万松书院 万松书院

  •  

奇趣周刊 - 第 9 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

话题

1.最近 openai 封禁了一批 ip,大多是共享账号等,但也影响了正常服务的运行。

程序

1.ChatGPT-Next-Web

https://github.com/Yidadaa/ChatGPT-Next-Web

https://chat-gpt-next-web.vercel.app/

一键拥有你自己的 ChatGPT 网页服务。One-Click to deploy your own ChatGPT web UI.


周刊导航: 上一期(#8) | 下一期(#10)

  •  

Github Actions 自动化打包流程

Github Actions 监听仓库 commit 事件,然后执行自动化打包流程,并通过第三方平台自动部署,发布非常方便。

name: Build
on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Install dependencies
        run: npm install
      - name: Build
        run: npm run build
      - name: Commit changes
        run: |
          git config --global user.email "youremail"
          git config --global user.name "username"
          git add .
          git commit -m "Action bot commit"          
      - name: Push changes
        uses: ad-m/github-push-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: main

程序会自动获取 github token,只需要在仓库设置 /settings/actions 中把 Workflow permissions 设为读写权限。

  •  

奇趣周刊 - 第 8 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

网站

1.https://open-gpt.app/

立即使用海量的 ChatGPT 应用,或在几秒钟内创建属于自己的应用。

2.SNK

https://github.com/Platane/snk

从 github 用户贡献图生成贪吃蛇游戏,并将屏幕截图输出为动画 svg 或 gif.

3.ChatGPT 微信小程序

https://github.com/leon-fong/chatgpt-miniprogram

4.Heimdallr

https://github.com/LeslieLeung/heimdallr

Heimdallr 是一个非常轻量的通知网关,可以聚合各种推送渠道,使用 Serverless 部署,几乎零成本运行。

5.vue-ellipse-progress

https://github.com/setaman/vue-ellipse-progress

一个无依赖性的 Vue.js 插件,用于创建漂亮的动画圆形进度条,使用 SVG 实现。该插件的目的是结合其他可用库的最佳属性并添加独特的功能,以易于使用且界面友好的组件形式提供。

6.Beyond Compare 4

https://www.scootersoftware.com/index.php

代码对比工具,用过一段时间,体验还不错,可以有效对比出两个文件或者文件夹之间的差异。


周刊导航: 上一期(#7) | 下一期(#9)

  •  

奇趣周刊 - 第 7 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

程序

1. BlockNote

https://github.com/TypeCellOS/BlockNote

https://www.blocknotejs.org/

基于 react 的编辑器,notion 风格非常优雅。

2. Quill

https://quilljs.com/

一款简简洁美观的编辑器,目前 tg 旗下的网站 https://telegra.ph/ 正在使用该编辑器。

本周因工作繁忙,更新较少。


周刊导航: 上一期(#6) | 下一期(#8)

  •  

奇趣周刊 - 第 6 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

程序

1. NotionNext

https://github.com/tangly1024/NotionNext

一个使用 NextJS + Notion API 实现的,部署在 Vercel 上的静态博客系统。为 Notion 和所有创作者设计。

2. Notion Blog

https://github.com/ijjk/notion-blog

一个 Next.js 网站使用新的 SSG 支持和一个支持概念的博客。

3. Next.js Notion Starter Kit

https://github.com/transitive-bullshit/nextjs-notion-starter-kit

使用 Next.js 和 Vercel 在几分钟内部署您自己的基于概念的网站。

4. roomGPT.io

https://www.roomgpt.io/

使用 AI 为每个人打造梦幻房间,给您的房间拍张照片,看看您的房间在不同主题下的样子,100% 免费,立即改造您的房间。

5. AiTxt 智能助手

https://aitxt.io/

基于 chatGPT 开发的工具箱,小红书、日报、周报、OKR、邮件、餐厅点评、节日祝福、甩锅等 Ai 文案助手,效果不错。

推荐

  1. https://www.misalignmentmuseum.com/ 错位博物馆
  2. Misalignment Museum 想象一个 AGI 已经摧毁了大部分人类的后世界末日世界,然后意识到这很糟糕,创建了这个博物馆作为对剩余人类的纪念和道歉。这是一个艺术装置,目的是增加对通用人工智能 (AGI) 及其破坏和善的力量的了解。我们的目标是创造一个空间来反思技术本身并批判性地思考人工智能及其影响。我们的希望是激发和建立支持,以制定和制定我们可以采取的风险缓解措施,以确保随着 AI 的不断发展和 AGI 的出现,我们拥有一个积极的未来。

周刊导航: 上一期(#5) | 下一期(#7)

  •  

西湖 · 春游

春日繁花媚不言,天高云淡乐无边。
雨过天晴添好景,走遍山川任心怜。

持续了一周的降雨,终于迎来了一天晴朗,决定去春游。

杭州西湖 - 郭庄,花圃公园打卡。

d5c32b7965bb7d8169fc474a55e2315

4122319a5b72bbc2c3f6b9c489e6880

85b286fa23c7634b285a571e820da89

  •  

奇趣周刊 - 第 5 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

网站

1. AwA UI

https://www.handsome-css.com/

使用 html 和 css 制作的非常漂亮的开源 UI 组件。

2. identicon 生成器

http://identicon.net/

生成 sha256 头像,identicon 生成器是一个免费的在线工具,用于生成 identicons 图像。

3. openai-translator 划词翻译

https://github.com/yetone/openai-translator

一个基于 openai 的翻译插件,需要绑定自己的 key,在浏览器实现划词翻译功能,试用了一下,质量和效果还是很不错的。

4. lew-ui

https://lew.kamtao.com/

https://github.com/lewkamtao/Lew-UI

一个 Vue 3 组件库。

5. Tavler Icons

https://tabler-icons.io/

一组 3512 个免费的 MIT 许可的高质量 SVG 图标,供您在 Web 项目中使用。

6. Scribble Diffusion

https://scribblediffusion.com/

https://github.com/replicate/scribble-diffusion

基于机器学习模型,可以自己画一个草图,然后附带一些描述,最后会生成相关的图像,质量和功能都挺不错的。

文章

https://babyyoung.gitbook.io/english-level-up-tips/ 英语进阶指南,高效学习英语。 https://vue-js.com/learn-vue/start/ Vue 源码系列,适合入门研究源码。


周刊导航: 上一期(#4) | 下一期(#6)

  •  

用原生 js 给网站写个搜索功能

本文也算是一篇教程,可以给 hugo 网站加个搜索功能,并且实现热更新,体验感更好。

如果是其他程序,只需要按照特定的模板生成以下格式的文件即可,主要代码从 第 2 部分 开始,第一章节写的是如何用 hugo 输出文章列表 json 文件。

title 是文章标题,permalink 是文章链接。

[{
  "permalink": "",
  "title": ""
}, {
  "permalink": "",
  "title": ""
}]

1. hugo 模板生成文章列表 json 文件

layouts 文件夹下新建 index.json 文件,模板内容如下:

其中第 2 行最后面的 "blog" 是你文章文件夹的名称。大部分是 posts 等等,这里是我个人的名称。

{{- $.Scratch.Set "posts" slice -}}
{{- range where .Site.RegularPages "Type" "blog" -}}
    {{- $.Scratch.Add "posts" (dict "title" .Title "permalink" .Permalink) -}}
{{- end -}}
{{- $.Scratch.Get "posts" | jsonify -}}

按照这个模板,hugo 本地预览可以打开 http://localhost:1313/index.json 查看,如果输出了一些数据如下图,说明你成功了。

image

2. js 代码

/layouts/_default 新建一个模板文件 search.html,大致的结构参考其他模板文件,然后写入我们需要的内容。

首先是一个简单的 html 结构,给 input 绑定一个事件。

<form class="search"> 
  <input type="text" id="searchTerm" name="searchTerm" autocomplete="off" oninput="initiateSearch()">
</form>
<div id="resultsContainer">请输入关键词进行搜索...</div>

然后通过一个 get 请求获取 json 文件,传入关键词参数,生成搜索列表。

<script>
  function search(jsonData, searchTerm) {
    let results = [];
    for (let i = 0; i < jsonData.length; i++) {
      for (let property in jsonData[i]) {
        if (jsonData[i].hasOwnProperty(property) && jsonData[i][property].toString().indexOf(searchTerm) > -1) {
          results.push(jsonData[i]);
          break;
        }
      }
    }
    return results;
  }

  function displayResults(searchResults) {
    let container = document.getElementById("resultsContainer");
    container.innerHTML = "";
    if (searchResults.length > 0) {
      for (let i = 0; i < searchResults.length; i++) {
        let resultDiv = document.createElement("div");
        let resultTitle = document.createElement("a");
        resultTitle.innerText = searchResults[i].title;
        resultTitle.setAttribute('href', searchResults[i].permalink)
        resultDiv.appendChild(resultTitle);
        container.appendChild(resultDiv);
      }
    } else {
      let noResultsMessage = document.createElement("p");
      noResultsMessage.innerText = "没有找到搜索结果。";
      container.appendChild(noResultsMessage);
    }
  }

  function initiateSearch() {
    let searchTerm = document.getElementById("searchTerm").value;
    let xhr = new XMLHttpRequest();
    xhr.open('GET', '/index.json', true);
    xhr.onreadystatechange = () => {
      if (xhr.readyState === 4 && xhr.status === 200) {
        let jsonData = JSON.parse(xhr.responseText);
        let searchResults = search(jsonData, searchTerm);
        displayResults(searchResults);
      }
    };
    xhr.send();
  }
</script>

然后再在 /content 新建一个 search.md 文件调用该模板即可。

---
slug: search
title: 搜索
layout: search
---

写了一个基础的样式,可以直接使用。

.search {
  width: 100%;
  display: flex;
  align-items: center;
  height: 36px;
}
.search #searchTerm {
  width: 100%;
  height: 100%;
  outline: none;
  border: none;
  padding: 0 15px;
  box-shadow: 1px 2px 10px rgba(0, 0, 0, 0.1);
}

#resultsContainer {
  margin-top: 20px;
}
#resultsContainer div {
  margin-bottom: 10px;
  margin: 0;
}
#resultsContainer div a {
  display: block;
  width: 100%;
  padding: 6px 10px;
  transition: all 0.1s linear;
  border-radius: 4px;
}
#resultsContainer div a:hover {
  background: #f3f3f3;
}
  •  

奇趣周刊 - 第 4 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

基于 chat3.5 api 的网站,测试过速度很快,不需要翻墙。

https://freechatgpt.lol/ https://chatgpt.ddiu.io/ https://desk.im/ https://freegpt.cc/

工具

1. DownGit

https://minhaskamal.github.io/DownGit/#/home

可以单独下载 GitHub 仓库中某个文件夹,输入对应的 url 地址,在一些特定的场景下非常好用。

2. Twitter 视频下载器

https://www.getfvid.com/zh/twitter

功能如名,只要复制推文对应的 url 地址即可下载视频,可以选择清晰度。

3. 竹白专栏检索

https://zb.liey.cn/

统计了几百个竹白的周刊,包括各种元信息,可以通过关键词搜索到自己喜欢的周刊。

4. Open-Source UI

https://uiverse.io/

这个网站有很多有趣的网页小元素,都是用 HTML 和 CSS 写的。免费供给个人和商业使用,可以给你的项目增加一些有趣的元素。

5. 周报生成器

https://weeklyreport.avemaria.fun/zh

一个基于 chatGPT3 的开源项目,简单描述工作内容,帮你生成完整周报。效果不错,疲于写各种日报周报的小伙伴的福音。

Github

https://github.com/XIU2/CloudflareSpeedTest cloudflare 自选节点测速,可以选择直连较快稳定的 ip。 https://github.com/mubaidr/vue-chrome-extension-boilerplate 使用 Vue.js + Webpack 搭建的 Chrome 扩展模板,支持热更新,开发起来更方便快捷。 https://github.com/SortableJS/Sortable 适用于现代浏览器和触摸设备的可重新拖拽列表,不需要 jQuery 或框架。 (继续更新…)


周刊导航: 上一期(#3) | 下一期(#5)

  •  

博客运行 1000 天了

img-xdeYVDd4ZQL2iC6i7I3r4RGc

使用 openai 生成。 [大漠孤烟直,长河落日圆]

不知不觉,已经坚持写博客 1000 天了,从 2020 年 6 月 14 日开始,第一次踏入这个圈子。最开始我还会写一些技术类的文章,但随着时间的推移,这意义不大,因为类似的文章在互联网都能找到一大把,因此我放弃这种类型文章的写作。主要进行了生活分享,和一些随笔等。更新日期也不固定,哪天忽然来了灵感会兴奋的更新一次。

虽然频率不高,但是从未间断,而且还让更多的人和我一起就某个话题进行讨论,这都是让我感觉到有意义的事情。分享自己的经验,心路历程和价值观,在互联网留下自己的足迹,或许在很久之后,我渐渐淡出这个圈子,但是我会保存这个网站在 GitHub 等平台,如果有缘分的话,十年、二十年,你都可以在搜索引擎无意中看到我。每当一想到这,我都感觉充满了干劲。

这一路上有朋友慢慢退出,我也表示遗憾,就目前而言,我应该不会放弃做博客,阅读者很少,但总归是有的。不能让自己失望,更不能让其他朋友失望,期待十年后依旧可以在互联网看到我的身影。回首过往萧瑟处,也无风雨也无晴!

  •  

GitHub 生成一个新的 ssh 密钥

要在 GitHub 上生成新的 SSH 密钥,请按照以下步骤操作:

  1. 打开终端或命令提示符。
  2. 输入以下命令:将"your_email@example.com"替换为您在 GitHub 上注册的电子邮件地址。
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  1. 稍后您将被提示输入文件保存位置和密码短语。您可以保持所有默认设置,只需一直按 Enter 键即可。
  2. 然后输入以下命令:eval “$(ssh-agent -s)”
  3. 然后输入以下命令以将新密钥添加到 ssh-agent 中:ssh-add ~/.ssh/id_rsa
  4. 最后,请在 GitHub 上添加您的公共密钥。转到 GitHub 设置并单击"SSH and GPG keys “(“SSH 和 GPG 密钥”)。
  5. 单击“新密钥”按钮。
  6. 在“标题”字段中输入一个描述性标题,以便您可以识别此密钥。
  7. 在“密钥”字段中,将“~/.ssh/id_rsa.pub”文件中的内容复制并粘贴到文本框中。
  8. 单击“添加 SSH 密钥”按钮以保存您的新密钥。

现在,您已经成功为 GitHub 生成了一个新的 SSH 密钥!

来自 chatGPT 的教程,记录一下。

  •  

this.$set 给 vue 数组添加数据

Vue 不允许在已经创建的实例上动态添加新的根级响应式属性,它可以使用 Vue.set(object, key, value) 方法将响应属性添加到嵌套的对象上。

如果直接给数组添加对象,视图不会更新,但是可以输出正确的值;只有通过 this.$set 覆盖才可以更新视图。

 for (let i = 0; i < this.data.length; i++) {
  // this.data[i].state = false;
  this.$set(this.data[i], 'state', false)
}
  •  

奇趣周刊 - 第 3 期

奇趣周刊,每周四发布,分享有趣的软件,程序,动态新闻等。 周刊列表 | rss 订阅

每周分享一些软件,程序,文章等。(2 月 19 日 -2 月 25 日)

工具

1.zeabur

https://zeabur.com

类似 netlify 和 vercel 的站点部署,目前免费,还没有推出收费模式,国内速度友好(不知道能坚持多久),我也用它部署了一个备份网站 https://zsh.zeabur.app/ ,没什么问题。

2.sli.dev

https://sli.dev/

专为程序员打造的 ppt 演示文稿工具,ui 美观,配置也很方便,公司会议,技术分享等场景可以用到。

3.maple

https://github.com/subframe7536/obsidian-theme-maple

一款精美的 Obsidian 主题,我目前正在使用,视觉效果很好,作者还提供了一些短代码,扩展文件图标等。

文章

https://github.com/OBKoro1/web-basics 大厂前端需要掌握的 JS 基础能力,大厂场景题、大厂面试真题。
https://eugeneyan.com/writing/what-i-did-not-learn-about-writing-in-school/ 《我在学校没有学到的关于写作的知识》作者对写作的一些探讨。


周刊导航: 上一期(#2) | 下一期(#4)

  •  

乌镇 · 南浔

周末出游,去了两个古镇,体验还不错,分享几张旅游风景照。

5

4

6


3

2

1

  •  

随想录 (10) 我是否陷入了信息茧房?

如题,我是否陷入了信息茧房?暂时是以一个疑问句的形式出现,因为我还未确认事实真的如此。

什么是信息茧房?

信息茧房是一种现代的网络语境下的概念,指的是某些人因过度沉溺于网络而逐渐隔离于现实世界,形成了一种"信息茧",难以自拔。这些人可能会在网络上消耗大量的时间,而忽视了现实生活中的关系和活动,甚至对现实世界产生抵触。


最新,openai 推出的 chatGPT 再一次火遍全网。而在去年的 11 月底,我曾经体验过一段时间,当时是它刚刚面世的时候,我也算是第一批体验用户。

那时给我的感觉就像是一个初出茅庐的 ai,我在和它交流的过程中,明显可以感觉到他还能稚嫩,但还是展现出了极强的学习力,这让我很震撼。但随着时间的推移,它的热度逐渐下降,我也很少使用它了。

直接今年 2 月中旬它再一次出现在我的眼前,以一个强大的姿态席卷而来,在短短两个月的时间收获了全球 10 亿用户,而这个数量也正在以指数增长。我想这和微软的投资有着很大关系,再一次证明了其眼光的卓越性。

随着这几天的慢慢使用,我发现它能增强甚至取代一些我的办公工具,我可以用它写文档,比我自己写的更好,以及其他各种使用方法。

但令我疑惑的事情来了,我刷 v2ex,推特以及其他社交论坛的时候,chatGPT 以极大的篇幅出现在我的眼前,已经刷不到别的消息了。十条帖子有一半是关于 chatGPT 的,感觉自己的信息通道快被占满了,这让我很烦躁,我开始质问自己是否陷入了信息茧房。

我仔细研究了一下,被"信息茧房"的人通常具有以下几个特点:


  1. 偏见和偏激:他们往往只信任那些与他们观点相同的信息,不愿接受不同的观点和证据。
  2. 过于相信权威:他们往往把所有信息都当做是权威的,而不是评估信息的可靠性。
  3. 过于固执:他们往往固执已见,不愿接受新的证据和观点,即使这些证据是正确的。
  4. 不愿思考:他们往往不愿自己思考,而是直接相信他人的观点,不愿自己思考和评估信息的正确性。

经过自我判断我觉得我可能还没到达这个程度,那么为什么我会有标题这个错觉呢?

我分析了一下,很大可能是目前一个现象级的态势,就像之前的 web3 一样,如火如荼,却又昙花一现。

我不知道 chatGPT 是否有这个趋势,它能否成为一个划时代的产物,我对此还是保持积极态度的。

  •  

如何让 hugo 支持渲染 html 代码?

想在文章中插入 iframe, video, 以及其他比如 summar y 等标签,可以配置一下 config 文件。

  1. 如果是 config.toml,加上下面配置;
[markup]
  [markup.goldmark]
    [markup.goldmark.renderer]
      unsafe = true
  1. 如果是 config.yaml,加上下面配置;
markup:
  goldmark:
    renderer:
      unsafe: true

这样就可以在文章中插入 iframe, video, 以及其他比如 summary 等标签。

否则就会显示下面注释,自动过滤 html 代码。

<!-- raw HTML omitted -->

对比一下添加配置前后的区别:

1688137354334.png

1688137371574.png

  •  

使用 cloudflare 反代 gravatar 生成镜像

1.介绍

cloudflare 有一个非常好用的功能—Workers,可以在无服务器的状态下运行一些程序,包括常见的反向代理等。

所以我利用这一功能实现对 gravatar 反代,达到国内访问加速的目的。

话不多说,开始流程操作,分享我的部署过程。

1.登陆后,在主页点击左侧的 Workers,然后点击创建服务

2.服务名称随意填写,然后点击右下角创建。

3.点击右上角快速编辑

4.在左侧编辑器中输入下列的代码

2.代码

点击展开代码
// 替换成你想镜像的站点
const upstream = 'gravatar.com'
 
// 如果那个站点有专门的移动适配站点,否则保持和上面一致
const upstream_mobile = 'gravatar.com'
 
// 你希望禁止哪些国家访问
const blocked_region = []
 
// 禁止自访问
const blocked_ip_address = []
 
// 替换成你想镜像的站点
const replace_dict = {
    '$upstream': '$custom_domain',
    '//gravatar.com': ''
}
 
//以下内容都不用动
addEventListener('fetch', event => {
    event.respondWith(fetchAndApply(event.request));
})
 
async function fetchAndApply(request) {
 
    const region = request.headers.get('cf-ipcountry').toUpperCase();
    const ip_address = request.headers.get('cf-connecting-ip');
    const user_agent = request.headers.get('user-agent');
 
    let response = null;
    let url = new URL(request.url);
    let url_host = url.host;
 
    if (url.protocol == 'http:') {
        url.protocol = 'https:'
        response = Response.redirect(url.href);
        return response;
    }
 
    if (await device_status(user_agent)) {
        upstream_domain = upstream
    } else {
        upstream_domain = upstream_mobile
    }
 
    url.host = upstream_domain;
 
    if (blocked_region.includes(region)) {
        response = new Response('Access denied: WorkersProxy is not available in your region yet.', {
            status: 403
        });
    } else if(blocked_ip_address.includes(ip_address)){
        response = new Response('Access denied: Your IP address is blocked by WorkersProxy.', {
            status: 403
        });
    } else{
        let method = request.method;
        let request_headers = request.headers;
        let new_request_headers = new Headers(request_headers);
 
        new_request_headers.set('Host', upstream_domain);
        new_request_headers.set('Referer', url.href);
 
        let original_response = await fetch(url.href, {
            method: method,
            headers: new_request_headers
        })
 
        let original_response_clone = original_response.clone();
        let original_text = null;
        let response_headers = original_response.headers;
        let new_response_headers = new Headers(response_headers);
        let status = original_response.status;
 
        new_response_headers.set('access-control-allow-origin', '*');
        new_response_headers.set('access-control-allow-credentials', true);
        new_response_headers.delete('content-security-policy');
        new_response_headers.delete('content-security-policy-report-only');
        new_response_headers.delete('clear-site-data');
 
        const content_type = new_response_headers.get('content-type');
        if (content_type.includes('text/html') && content_type.includes('UTF-8')) {
            original_text = await replace_response_text(original_response_clone, upstream_domain, url_host);
        } else {
            original_text = original_response_clone.body
        }
 
        response = new Response(original_text, {
            status,
            headers: new_response_headers
        })
    }
    return response;
}
 
async function replace_response_text(response, upstream_domain, host_name) {
    let text = await response.text()
 
    var i, j;
    for (i in replace_dict) {
        j = replace_dict[i]
        if (i == '$upstream') {
            i = upstream_domain
        } else if (i == '$custom_domain') {
            i = host_name
        }
 
        if (j == '$upstream') {
            j = upstream_domain
        } else if (j == '$custom_domain') {
            j = host_name
        }
 
        let re = new RegExp(i, 'g')
        text = text.replace(re, j);
    }
    return text;
}
 
async function device_status (user_agent_info) {
    var agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
    var flag = true;
    for (var v = 0; v < agents.length; v++) { if (user_agent_info.indexOf(agents[v]) > 0) {
            flag = false;
            break;
        }
    }
    return flag;
}

然后点击保存并部署,就可以成功反代 gravatar 镜像了。

然后照葫芦画瓢,可以通过这种方式反代任何网站,访问起来大致无压力,延迟 100+ms 左右。

3.自定义域名

在触发器中可以找到自定义域名选项,输入已经绑定 cloudflare 的域名,再次赞美 cloudflare,如果事前绑定好了域名,在这里可以直接输入二级域名,cloudflare 会自动解析,全部都是自动化的。

在主页左侧的 网站 绑定域名。

# 分享我的免费镜像。
https://gravatar.zsh.im/avatar
  •  

利用 memos 生成的在线动态列表

memos 是一个具有知识管理和社交功能的开源自托管备忘录中心。

Github 地址:https://github.com/usememos/memos

可以用它本身提供的 api,然后结合静态博客,做成一个在线的动态列表,类似于朋友圈功能。

接口 url 有固定的格式,openId 是每个用户自动生成的。

其次我又写了两个方法,一个是时间戳转成正常时间格式,一个是利用正则删去内容中多余的标签。

将下面代码复制到你想显示的页面编辑,只需修改 openId,提供了一个基础的样式,如果有其他优化方案,欢迎指出。


由于接口中带了用户密钥,建议完成代码后将 js 加密再引入,不然可能会有一定的安全风险。

推荐网址:https://tool.lu/js/

<!-- 结构和 css -->
<div class="sslist"></div>

<style>
.sslist-item {
  padding: 10px 10px 20px;
  margin-bottom: 20px;
  border-radius: 2px;
  background: #f3f3f3;
  box-shadow: 1px 2px 4px rgba(0, 0, 0, .2);
  transition: all 0.2s linear;
  animation: up 1s forwards;
  transform: translateY(20px);
  opacity: 0;
}

@keyframes up {
  0% {
    transform: translateY(20px);
    opacity: 0;
  }

  100% {
    transform: translateY(0);
    opacity: 1;
  }
}

.sslist-item:hover {
  background: #eee;
}

.sslist-item .sslist-date {
  opacity: 0.6;
  margin: 0;
  font-size: 15px;
  margin-bottom: 5px;
}
</style>
// 调用接口的 js 方法
function memosShow() {
  var memosStr = "";
  var openId = "xxx";
  $.ajax({
    url: "https://memos.zburu.com/api/memo?openId=" + openId + "&tag=说说",
    type: "get",
    dataType: "json",
    success: function (data) {
      // 生成数组
      const sslist = data.data;

      for (let i = 0; i < sslist.length; i++) {
        const element = sslist[i];

        // 把时间戳转为正常时间格式 2023-01-9 13:17:12
        var date = new Date(element.createdTs * 1000);
        Y = date.getFullYear() + "-";
        M =
          (date.getMonth() + 1 < 10
            ? "0" + (date.getMonth() + 1)
            : date.getMonth() + 1) + "-";
        D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
        h = date.getHours() + ":";
        m = date.getMinutes() + ":";
        s = date.getSeconds();
        const createdTsNew = Y + M + D + h + m + s;
        sslist[i].createdTs = createdTsNew;

        // 利用js正则删去内容前的标签字符
        const contentNew = element.content.slice(4);
        sslist[i].content = contentNew;
      }

      $.each(data.data, function (i, item) {
        list =
          "<div class='sslist-item'>" +
          "<p class='sslist-date'>" +
          item.createdTs +
          "</p>" +
          item.content +
          "</div>";
        memosStr += list;
      }),
        $(".sslist").html(memosStr);
    },
    error: function () {
      console.log("error");
    }
  });
}
memosShow();
  •  

分享一个页面点击特效

点击页面时可以弹出随机颜色小心心,目前我的网站就使用了这个特效。

直接将下面的代码复制到引入的 js 文件中即可,不用进行其他配置。

!function(e,t,a){function n(){c(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"),o(),r()}function r(){for(var e=0;e<d.length;e++)d[e].alpha<=0?(t.body.removeChild(d[e].el),d.splice(e,1)):(d[e].y--,d[e].scale+=.004,d[e].alpha-=.013,d[e].el.style.cssText="left:"+d[e].x+"px;top:"+d[e].y+"px;opacity:"+d[e].alpha+";transform:scale("+d[e].scale+","+d[e].scale+") rotate(45deg);background:"+d[e].color+";z-index:99999");requestAnimationFrame(r)}function o(){var t="function"==typeof e.onclick&&e.onclick;e.onclick=function(e){t&&t(),i(e)}}function i(e){var a=t.createElement("div");a.className="heart",d.push({el:a,x:e.clientX-5,y:e.clientY-5,scale:1,alpha:1,color:s()}),t.body.appendChild(a)}function c(e){var a=t.createElement("style");a.type="text/css";try{a.appendChild(t.createTextNode(e))}catch(t){a.styleSheet.cssText=e}t.getElementsByTagName("head")[0].appendChild(a)}function s(){return"rgb("+~~(255*Math.random())+","+~~(255*Math.random())+","+~~(255*Math.random())+")"}var d=[];e.requestAnimationFrame=function(){return e.requestAnimationFrame||e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||e.oRequestAnimationFrame||e.msRequestAnimationFrame||function(e){setTimeout(e,1e3/60)}}(),n()}(window,document);
  •  

一周阳人日记

不出所料,每天往返于公司,地铁,住的地方,我阳了。 很难受,客观记录一下我的症状吧。

第一天:2022/12/19

持续发烧 38℃左右,没有吃药,硬抗过去。

抗原测试呈阳性,应该是第二天或者第三天了,但是前几天没有任何症状,所以就不算在内了,从昨天夜里才开始起反应。

在床上躺着四肢酸痛,皮肤掉皮,呈粉末状,大概是高烧的原因。

嗓子哑疼,喝了梨水 + 冰糖,很润滑,舒服好多。

临睡前测了 38.7℃,吃了感冒药,居然变得精神,刷了会手机。


第二天:2022/12/20

持续头晕 + 头疼,凌晨又吃了一颗感冒药,过了一会浑身出汗,睡衣直接浸透但是没有力气,就坚持睡觉。

喉咙发苦,断断续续的头晕,早上测了体温降到 37°。

一吃东西就想吐,肚子疼,头晕。


第三天:2022/12/21

嗓子疼,喉咙痒,咳嗽,暂无其他症状。

精神状态良好。

不能吃油腻的食物,清淡的可以吃点。


第四天:2022/12/22

夜里出了一身汗,又把睡衣浸湿,应该是免疫系统趁我不注意,夜里大战了一场。

白天的精神状态和第三天差不多,但是咳嗽的力度又加大了。可以正常坐在电脑前办公了,打工人。

未转阴。


第五天:2022/12/23

无限流鼻涕,越来越像大号感冒,不过前两天实在太难受。鼻子塞的通红,伴随着间歇性的咳嗽。

依旧是没什么胃口,吃东西也吃不下去,我预计这种情况还将持续一周左右。


第六天:2022/12/24

今日状态还算可以,间歇性的流鼻涕,没有昨天那么严重,准备明天再测一下抗原。

而且我发现奥密克戎对我最大的影响是食欲,完全提不起吃东西的欲望,看着眼前的美食却味如嚼蜡。

身为一个食客,这才是最令我感到痛苦的!!希望可以快点恢复我的食欲。


接下来的几天基本都在咳嗽中度过,病情也差不多结束。感概良多,希望诸位保重好自己的身体。

  •  

我的 2022 年度总结

枯木逢春

又到了一年一度的总结时间,回顾自己这一年做了些什么。我通常都是在最后一个月开始进行总结,预留出足够的时间让我可以好好思考与回顾,如果时间很短就会显得很仓促。没有什么主题,就是想到哪写到哪,讲讲这一年的感受。

这两天有个消息,彻底取消核酸和行程卡了,健康码也随之取消查看,因为失去了意义。不评价这件事情,单纯说一下感受,今年终于可以回家过年了。这三年来,只有在五一国庆等节假日回老家,一到春节都因为各种缘故取消了回家的行程,多少有些遗憾,在城市过年也缺少那么一些年味。我的春期假期大概 15 天左右,时间还是很充裕的,可以好好计划一下行程,约下朋友出去玩两天,做好个人防护。

开源了一些自己写的小工具和主题,包括一些油猴插件,程序主题,浏览器扩展等,有一二十个用户,虽然很少,但是好评不错,给了我很大的激励。

为爱发电,我也乐于此道,有时候会收到一些有关开源项目的邮件,我都会和对方展开讨论,解决了别人的问题,也让我有了更深刻的认知,学海无涯。

工作上自我感觉有了一点提升,安排我独自负责一个项目,开拓了我的技术栈,会用到一些没接触过的技术,一边搜索翻阅文档一边写代码,面向业务提升自己比纯粹的看代码好像更有意思。但是这样的提升比较流于表面,不够深刻接触不到核心,必须承认这是我的短板,我有必要重新规划一下自己的路线。不过相比去年的浑浑噩噩,这段时间还算是充实。也结识了一些行业内的朋友,休息天会出来闲谈吃饭,去西湖看看荷花。

使用思源作为笔记软件,每天坚持写日记,其实也就是一些生活琐事和心情,坚持记录下来,偶尔会翻阅一下看看自己以前干过什么蠢事,这也是一种乐趣。为了表达支持订阅了年付会员,这的确是一个很优秀的 note 软件,开发者也在不断优化体验。唯一的缺憾就是无法同步配置文件,询问过作者是因为不同设备系统兼容性的问题,所以目前无法做到完美的同步,不过还是很赞。

今年的雪来的格外的早,11 月份就下雪了,而且杭州今年的夏季也是格外的热,高达 40 多度,这很反常,不是气象学专家所以无法对这一现象做出分析,只能表达自己的感概。每年都是 365 天,同样的时间生活出不一样的自己,孑然一身,牵挂的只有自己的家人。

—— 更新于 2022/12/13 日

  •  

贰拾肆年

越长大越不想长大,在人生的第 24 年经历了很多事情。

41edfcbaa94d035a95bacb71ce283b7

  •  

未若柳絮因风起

冬天来了,杭州今年的雪来的猝不及防,前天还是十多度,今天下雪,走在路上只感到寒风刺骨。

“白雪纷纷何所似?
撒盐空中差可拟。
未若柳絮因风起。”

0ce9e6d1414c8e27e01e7663e5b0ca3

ps: 一切都在朝好的方向发展,纪念博客建立 900 天。

  •  

js 中 [ ]+{ } 和 { }+[ ] 的区别

1668517551012

[ ]+{ }:一个数组加一个对象。

加法会进行隐式类型转换,规则是调用其 valueOf() 或 toString() 以取得一个非对象的值 (primitive value)。

如果两个值中的任何一个是字符串,则进行字符串串接,否则进行数字加法。[ ] 和 { } 的 valueOf() 都返回对象自身,所以都会调用 toString(),最后的结果是字符串串接。

[ ].toString() 返回空字符串,({ }).toString() 返回 “[object Object]",最后的结果就是 “[object Object]"。

{ }+[ ]:看上去应该和上面一样。

但是{ }除了表示一个对象之外,也可以表示一个空的 bock。在 [ ] + { }中,[ ]被解析为数组,因此后续的 + 被解析为加法运算符,而{ }就解析为对象。

但在{ } + [ ]中,{ }被解析为空的 bock,随后的 + 被解析为正号运算符。即实际上成了:{∥empty block}+[ ],即对一个空数组执行正号运算,实际上就是把数组转型为数字。首先调用.valueOf(),返回数组自身,不是 primitive value,因此继续调用 [ ].toString(),返回空字符串。空字符串转型为数字,返回 0,即最后的结果。

  •  

霜叶红于二月花

远上寒山石径斜,白云深处有人家。

停车坐爱枫林晚,霜叶红于二月花。

  •  

安装一个基于 Github 的静态图床程序

demo: https://img.zburu.com/

今天分享一下如何使用 Github 作为图床,首先就要推荐这个工具 picx。

Github 仓库:https://github.com/XPoet/picx

本文的图片全部使用该工具上传,然后通过 Staticaly 进行 cdn 加速(这个在上传的时候自动生成链接。)

可以设置自动压缩、转码成 webp 格式。

基于 GitHub API 开发的具有 CDN 加速功能的图床管理工具。无需下载与安装,网页端在线使用!免费!稳定!便捷!极速!

看了一下源码,vue 写的,全部都是纯静态化加上本地存储,所以说没有后端。

也就是说我们也可以部署在自己域名下,不使用开发者提供的域名,虽然这么做没什么区别,但还是折腾一下吧。

我会在最后提供一个打包好的链接(直接打包源码,不做任何修改),下载后自行上传到域名空间下即可使用。

image

说明文档:https://picx-docs.xpoet.cn/tutorial/get-start.html

这是官方说明,试用了一下,效果很棒。图床如何使用文档中标注的很清晰,我就不赘述了,本文只介绍如何编译打包,面向群友。


过程很简单,需要提前准备好 node 环境。

1.下载源码

直接去 https://github.com/XPoet/picx,然后 Download Zip。

2.执行命令

下载后解压来到这个页面,然后在空白处鼠标右键,打开终端。

1666401948613

image

如果你已经有 node 环境了,直接执行下面命令就可以,如果没有,先去安装一下 node 环境,这里就假设环境安装好了。(https://nodejs.org/zh-cn/)。

下面这两种方式都可以,没有区别。

# 安装依赖
# 这个过程因为网速问题可能比较慢

npm install
#or
yarn

依赖安装之后,就开始构建。

# 构建

npm run build
# or
yarn build

构建完成之后就会生成一个 dist 文件夹,这就是打包好后的文件,里面有一个 index.html 和其他静态资源。

3.我应该上传到哪里?

这个时候只需要将他们上传到你想要访问的域名目录下即可。

比如我使用的是 hugo 博客程序,先在 content 下新建一个文件夹,命名为 img,(你可以起任何名字,注意不要和其他文件名冲突即可。) 然后把 dist 文件夹下的所有文件全部复制到 /content/img/ 文件夹下。

1666402810476

这样在执行 hugo 命令后会打包到 public 文件夹下,然后直接访问 https://zburu.com/img 就可以打宝图床。

或者你自己上传到任何你想放的空间下都可以,没有限制~~

图床如何使用对着文档琢磨即可,上面写的很详细。

https://picx-docs.xpoet.cn/tutorial/get-start.html

4.其他问题

  1. 如果后面开发者更新图床版本,可以从第一步重新操作,下载、构建、上传。

如果有其他问题,请在评论区留言~~

  •  

localStorage 的相关运用

localStorage 是浏览器自带的一个属性,只读的 localStorage 属性允许你访问一个 Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。localStorage 类似 sessionStorage,但其区别在于:存储在 localStorage 的数据可以长期保留;而当页面会话结束——也就是说,当页面被关闭时,存储在 sessionStorage 的数据会被清除。

应注意,无论数据存储在 localStorage 还是 sessionStorage,它们都特定于页面的协议。

另外,localStorage 中的键值对总是以字符串的形式存储。 (需要注意,和 js 对象相比,键值对总是以字符串的形式存储意味着数值类型会自动转化为字符串类型).

localStorage 的使用也非常简单,分为存入和读取,可以将其绑定在事件方法中。

// 存入
const arr= 100;
localStorage.setItem("key", JSON.stringify(arr));

// 读取
const arr = JSON.parse(localStorage.getItem("key"));

这里 "key" 指的是存到浏览器中的参数名,arr 则是参数值。

  1. localStorage.setItem("key", JSON.stringify(arr)); 这个方法就是将数组 arr 存到了浏览器的 localStorage 中,它的参数名叫 key
  2. const arr = JSON.parse(localStorage.getItem("key")); 就是读取浏览器中参数名为 key 的参数值。

比如静态保存某个设置参数,可以将其写入数组中,然后通过 localStorage 存储,原本刷新就会显示默认设置,现在可以在每次刷新的适合读取存入的参数。

在一些场景下非常好用,比如开发一个油猴脚本等等。

清除 localStorage,分为清除所以的存储值和清除某个特定的 key。

// 清除本地存储中的所有值
localStorage.clear(); 

// 本地存储中删除特定项
localStorage.removeItem(key);
  •  

hugo 一键打包并上传 github

分享一个 hugo 一键打包并上传 github 的方法,前提是你之前上传过 GitHub 仓库。

采用 window 支持的 sh 可执行文件,在根目录新建一个 hugo.sh 文件,里面放上一些命令。

hugo

# cd public

time=$(date "+%Y-%m-%d %H:%M:%S")
echo $time

git add .
git commit -m "自动执行构建脚本 🎓$time"
git push
exit

可以在文件夹双击运行 hugo.sh,也可以在终端输入命令。

.\hugo.sh

省去了我输入繁琐的 Git 上传指令,并且自动生成当前系统时间作为 commit。

其他

这里我上传的是整体的 hugo 目录,如果你只想上传生成的 /public ,在中间加入 cd public

  •  

开发后的反省

晚上给朋友写了一个油猴脚本,场景是一个拥有很多输入框的表单,多为经常填写的一些字符串。跟我说了一下,刚好没什么事情,吃完晚饭抽两小时出来简单写了写。

需求是预设多套模板,后期可以自己添加内容,置顶在网页空白处,点击按钮让设置好的文本填充到网页的表单中。

处理起来很简单,我原本打算使用ajax调用json文件,把模板写在json中,这样一目了然便于后期自行添加数据,但是在测试后发现目标网站屏蔽了外部文件,所以放弃这种写法。转而new了一个数组,每个对象就是一套模板,接下来就是简单的循环,写了一个可以缩放的弹窗,然后把交互的按钮绑定点击事件,点击对应按钮就会在网站上填充对面模板的字符串。

流程大概就是这样,结束之后在给他润润色,写一下css代码。总体来说没什么难度,两个小时不到就搞定了。

但是我发现,天天写vue,element写多了,最基础的js有些生疏了,比如数组的操作遍历循环,中间竟然还报错,仔细检查才发现原因,实属不应该。

深刻反省一下自己,基础知识还是要巩固的,不能一味的调用框架,即使它写起来很爽。

  •  

将数组中多个对象的同名属性值取出合并成新数组

业务中需求的方法,接口返回一个数组,里面包含了大量的对象,具有同名的属性名,比较常见。但是需要将其中参数为 name 的属性值全部取出,合并成数组。

const num = [
    {
      id: 1,
      name: 'abc',
    },
    {
      id: 2,
      name: 'xyz',
    }
]
function getFields(arrnum, field) {
    const resnum = [];
    for (let i = 0; i < arrnum.length; ++i)
    resnum.push(arrnum[i][field]);
    return resnum;
}

const result = getFields(num, "name");
console.log(result);             // ['abc', 'xyz']
console.log(result.join(' '));   // "abc xyz"
  •  

关于密码的一些想法

今天在坐地铁的过程中,突然想要一个问题,一个安全稳定,便于记忆的密码时什么样子的。是否要包括字母大小写,数字,以及特殊符号?

如何设置并存储?

我想这是必须的,但是密码如果太过复杂,就不便于记忆。而想要记忆就必须有自己的规律,可一旦有了规律,别人在破解的时候就有了更多的思路,安全性相对来说就下降了。

不论怎么想,这两者是冲突的,很难让它们统一起来。

然后就和朋友讨论关于密码的问题,他们也有着自己独特的方法,给了我很多扩展的思路,比如记忆一个公式,圆周率第多少位,拼音 + 数字等等,这样既能够记忆,也拥有足够的混淆性。你不知道它的位置下标,就不能够找到对应的密码字符,安全性比通用一套密码又高了很多。

也有朋友表示自己在使用密码管理软件,比如 1password,bitwarden,KeePass 等,通过算法可以自动生成各种高复杂度的密码字符串。但是在述说的过程中,他们表示了对密码管理软件的担忧。如果软件遇到破解或者勒索,主密码丢失等,那么所有密码就不复存在,尽管这种可能性很少,但是前段事件就发生了这样的事情。

而且大的软件商持有更多的用户,一旦遇到问题,产生的影响就更大,用户只能寄希望于厂商有足够的攻防能力。所有密码在云上都有备份,这本身就是一个致命的缺陷,如果云端数据被攻破,后果不堪设想。

扩展说说

个人习惯使然,让我很难百分百的信任各种云,可能是被害妄想症吧,总觉得不好,把所有数据扔到云上保存对我来说是一件极其难受的事情。所以我一般都是三处备份,本地肯定要留一份在硬盘中,服务器保存一份,然后在 oss 桶中再备份一些不太重要的数据。成本不算高,但是需要持续维护这些数据,相对于我来说,还算是比较轻松的,并且我也乐在其中。

  •  

你是否想过成为一名作家?

https://poets.org/poem/so-you-want-be-writer

这是曾经询问过自己的一个问题,我想很多人在年少时期可能都会有过这样的经历,渴望将自己的文字带给更多人。

这件事情大多发生在高中时期吧,如果我没记错的话。忽然想起来那个年轻段的人都有些中二,看了不少玄幻和悬疑小说,心中泛起了写小说的念头,于是动笔。但最终也没有坚持很久,草草写了几万字,只在几个朋友中传阅。

可惜在高考结束后一些残留的手稿都丢失了,每每想到这件事情都暗自懊恼,也算是一个回忆吧。现在再让我写根本没有那个精力,但我也曾涌起过当一名作家的想法,好像文科生都曾这样。

我有个朋友喜欢写诗,现在看起来语义不那么通顺,不太符合诗词规范,但是他并不在意,很是乐于此道,我也给了他很大的鼓励,虽然文字中伤春悲秋,“为赋新词强说愁”。

持续写作是一个好的习惯,从前是为了抒发情感,现在是为了输出自己的思考。大同小异,归根结底还是对自我的一种输出。


so you want to be a writer?

Charles Bukowski - 1920-1994

if it doesn’t come bursting out of you in spite of everything, don’t do it. unless it comes unasked out of your heart and your mind and your mouth and your gut, don’t do it. if you have to sit for hours staring at your computer screen or hunched over your typewriter searching for words, don’t do it. if you’re doing it for money or fame, don’t do it. if you’re doing it because you want women in your bed, don’t do it. if you have to sit there and rewrite it again and again, don’t do it. if it’s hard work just thinking about doing it, don’t do it. if you’re trying to write like somebody else, forget about it.

if you have to wait for it to roar out of you, then wait patiently. if it never does roar out of you, do something else.

if you first have to read it to your wife or your girlfriend or your boyfriend or your parents or to anybody at all, you’re not ready.

don’t be like so many writers, don’t be like so many thousands of people who call themselves writers, don’t be dull and boring and pretentious, don’t be consumed with self- love. the libraries of the world have yawned themselves to sleep over your kind. don’t add to that. don’t do it. unless it comes out of your soul like a rocket, unless being still would drive you to madness or suicide or murder, don’t do it. unless the sun inside you is burning your gut, don’t do it.

when it is truly time, and if you have been chosen, it will do it by itself and it will keep on doing it until you die or it dies in you.

there is no other way.

and there never was.

  •  

文档和视频,你更喜欢哪种学习方式?

如题,这是我今天思考的话题。灵感来源于我在 dev.to 网站上看到的一个帖子。对于 learning 的方式,更倾向于看文档还是视频?我觉得可以从多个维度进行分析。

  1. 学习进度,也可以说是过程
  2. 行业领域
  3. 后天应该养成什么样的习惯呢?

1.学习进度

学习进度应该是对学习方式影响最大的因素了。

学习的初始阶段以看视频为主,应该对这个领域不熟悉,一直在行内人看起来随手就能做很简单的操作,新人往往不能够很好的了解它,所以最开始的阶段最好是以视频教材为主。

打个比方,上学时老师都是手把手的教学,因为你什么都不会,必须口口相传,这是对待新人的方式,如果让他自己一直干看,一学期下来估计也看不懂几页书。(当然了,天才除外,这不在讨论的范围,大家 90% 都是普通人。)然后到后期的时候一般都是自习因为该教的基础都是都教了,需要学生自己研究琢磨,不然根本不能融会贯通。

从这个角度看,自学似乎是学习方式的终点。

2.行业领域

拿我自己打比方我更倾向于看文档,视频的话偶尔看看,但是看的不多。因为我觉得看视频很难一眼看出里面的内容是否是我所需要的,

看文档的话,通过关键词搜索以及其他方式,我可以在可控的,短时间内找到自己想要的内容,不管学习还是工作都是极其方便的。

看代码的话文档是最清晰可辨的,但是就在我进行思考的时候问了对象一句,“你平时学习更倾向于什么方式呢,看视频还是看文章?”

答:“肯定是看视频啊,不然你看我买那么多视频课程。”

我恍然大悟,将原来没有思考到的方向补充了一下,行业对人学习方式的影响,女朋友做的是视频后期,一般用到的软件是 C4D,pr 等,曾扫了一眼,密密麻麻的功能一排排在那里放着,看得我有些头皮发麻。

我自己也就拿 photoshop 处理一下图像,pp 图或者水印之类的,没想到做视频处理那么复杂,所以如果不看视频学习的话,我估计连软件的功能都摸不懂。

这就是另一个比较重要的因素了。

3.扩展说说

如果培养好的 learning 习惯呢?

其实不论是看视频还是看文档,我们的初衷都是为了提高自己的能力和知识水平。但似乎学习是一件很枯燥的事情,从小到大我们都被灌输着“好好学习,天天向上”的概念,一切都是以提高成绩为目的,教育资源地域区别非常大。因为经济发展不平衡这点也是不可避免,学习是唯一能走出落后的途径。

扯的有点远,讲讲 learning,始终保持学习状态的人群很少,时间和精力是一方便,还有就是方法,这也是大家老生常谈的问题。我认识要从兴趣爱好入手,在需要学习的领域培养出自己的兴趣爱好,然后围绕着这个方向 360 度扩展,个人认为这是一种非常好的方案。

我最开始做网站几乎一窍不通,但是对此还是比较感兴趣的,凭借着仅有的前端知识开始摸索,慢慢了解了各大网站平台,github,vercel,cf 等,玩的多了慢慢开始了解 php,运维等领域,磕磕绊绊的学习简单的知识。

期间结识了很多朋友,给予我帮助,在相关技术上慢慢进步。同时我也会在自己的领域给他们提供技术支持,这好像也算是开源精神吧,没有闭门造车,大家一起讨论各种各种的内容。

久而久之就发现自己相比较之前,知识好像丰富了那么一些,这就是一种正确的 learning 方式。所以我认为在兴趣爱好中学习,不失为一种积极且充满劲头的一种方式。

聊聊你的 learning 方式,留言或者给我发邮件一起探讨!

  •  

浴鹄湾游记

浴鹄湾,东靠杨公堤,西临三台山路,北至三台梦迹景区,南到赤山埠。

  •  

一些容易遗漏的点

  • 监听对象时如果值是 null 会报错,默认值设置为{};
  • for in 只能遍历对象 i in 4 是错误的写法;
  • 动态获取数组 - 拼接传参
var arr = [
  "单位 1",
  "单位 2",
  "单位 3",
  "单位 4",
  "单位 5"
]
// 1.数组 []
for (var i = 0; i < arr.length; i++) {
	this.defaultData.hostUnitList.push({
		[arr[i]]: this.defaultData[arr[i]]
	});
}
// 2.对象{}
for (var i = 0; i < arr.length; i++) {
	this.defaultData.hostUnitList[arr[i]] = this.defaultData[arr[i]]
}
  •  

随想录 (9)

落霞与孤鹜齐飞,秋水共长天一色。

mmexport1659868787969.jpg

放个图防止抑郁。


昨天看了一个帖子很有感触,土生土长的城市本地人很难体会每隔一段时间要重新建立社会关系的难受,从小到大,每到一个地方上学,从陌生变为熟悉,中间总有有一段难熬的时间。很多随父母打工而四处的求学的小孩,特别能有这种体会,因此也就有很多人厌恶上学,他们不理解为什么总是要四处奔波,父母也不理解小孩为什么不喜欢学习,两者误会,家庭矛盾也因此诞生了。当然我说的很片面,这只是其中一个原因。

我也只是想让自己牢记,原来艰苦的生活不但让身心变得疲惫,还能带来精神上的贫穷,让自己明白原来还有这种只有四处奔波的人才能体会。说一下我的经历,小学二年级之前在老家乡下读书,然后辗转在厦门上的小学,初中和高中又回到县城读书,大学是在郑州读书,工作后又来到杭州。 看着这个时间段,很难有一个朋友可以从小到大陪着你,大多数人都是这样,悲哀又现实。

踏入工作之后,应该是更能体会,一个人在陌生的城市,除了工作好像也没有其他事可以做,对于社恐来说更是一种严重的环境。而我应该算是比较幸运的,在一个陌生的城市还有家人和恋人,减缓了那种焦虑感,但我认识的一些人确是情绪受到很大影响,包括压力太大而离开这座城市。

写博客并不是为了贩卖焦虑,而且觉得有些话不吐不为快,在文字中发泄情绪也是一种良好的方法,为了明天的生活慢慢加油。

  •  

win11 使用 10 版本的鼠标右键设置

实测好用,没有坑。

管理员权限下打开终端,输入。

reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve

随后重新启动资源管理器即可

taskkill /f /im explorer.exe & start explorer.exe

恢复默认指令。

reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f
  •  

Anghunk 主题如何在后台评论列表解析表情?

本文专为 Anghunk 主题开发文档而写。 https://github.com/dlzmoe/Anghunk

方案是在梦繁星的协助下完成的。

介绍

Anghunk 评论携带很多精美的表情,但是正常情况下 Typecho 后台是没办法正常解析这些表情的。如下图;


但是,经过我解析表情之后,就可以变成下面这样,使用主题如果需要这种功能,可以按照我下面的步骤进行改造。

修改

打开 /admin/manage-comments.php 文件,在题头插入:

/*
* 解析表情
*/
function getparseBiaoQingComment($content) {
	$emopath=$_SERVER['REQUEST_SCHEME'].":". DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . $_SERVER['HTTP_HOST'];
	$emo = false;
	global $emo;
	if(!$emo) {
		$emo = json_decode(file_get_contents(dirname(dirname(dirname(__FILE__))).'/zburu.com/usr/themes/dlzmoe/libs/OwO.json'), true);
	}
	foreach ($emo as $v) {
		if($v['type'] == 'image') {
			foreach ($v['container'] as $vv) {
				$emoaa="::".$v['name'].":".$vv['icon']."::";
				$content = str_replace($emoaa, '  <img style="max-height:40px;vertical-align:middle;" src="'.$emopath.'/usr/themes/dlzmoe/libs/emotion/'.$v['name'].'/'.$vv['icon'] .'.png"  alt="'.$vv['text'] .'">  ', $content);
			}
		}
	}
	return $content;
}

注意我放置的位置,必须要要 <?php ... ?> 之间

**找到 第166行,修改一下,把标签中的代码替换为下方标注的。 **

<div class="comment-content">
   <!-- 解析输出带表情的评论 -->
   <?php $con=$comments->content; echo getparseBiaoQingComment($con); ?>
</div> 

之后回到后台评论列表就可以看到评论成功被解析了,本方法仅适用于 Anghunk 主题。

  •