mirror of
https://github.com/KazooTTT/kazoottt-blog-v2.git
synced 2025-06-16 15:31:21 +08:00
docs: remove notes
This commit is contained in:
@ -1,32 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-02-11'
|
||||
slug: diary-2023-02-11
|
||||
date: 2023-02-11T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
2023年2月11日星期六,菜单包括外婆菜炒蛋搭配土豆箜饭,饮料为冰糖加柠檬片。当天的计划包括使用tailwind编写样式,学习Photoshop或Figma操作以制作视频封面模板,以及进行AI
|
||||
Hanser的相关工作。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
|
||||
## 今日菜单 + 饮料
|
||||
|
||||
外婆菜炒蛋 + 土豆箜饭
|
||||
冰糖 + 柠檬片
|
||||
|
||||
## 今日计划
|
||||
|
||||
- [ ] 使用 tailwind 编写样式
|
||||
- [ ] 学习 ps 或者 figma 操作,制作视频封面模板
|
||||
- [ ] AI Hanser
|
@ -1,30 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-09-08'
|
||||
slug: diary-2023-09-08
|
||||
date: 2023-09-08T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 歌词
|
||||
- 日记
|
||||
- hanser
|
||||
description: 2023年9月8日星期五的记录中提到了一段关于直播的内容,强调不需要背负任何负担,只需带着空行囊和彼此即可。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-09-08 星期五
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 直播
|
||||
|
||||
> 不需要 背负任何
|
||||
> 只需要空行囊和彼此就够
|
@ -1,29 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-09-09'
|
||||
slug: diary-2023-09-09
|
||||
date: 2023-09-09T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: 2023年9月9日星期六的日程安排包括已完成的项目升级和游泳,以及待完成的nextjs+node运行时脚本测试。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-09-09 星期六
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
- [x] 版本升级
|
||||
- [ ] nextjs+node 运行时 脚本运行测试
|
||||
- [x] 游泳
|
@ -1,23 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-09-10'
|
||||
slug: diary-2023-09-10
|
||||
date: 2023-09-10T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
2023年9月10日,某博客讨论了其支持的模板语法,指出虽然功能丰富,但使用起来感觉不够灵活且学习成本较高。文章中提出疑问,低代码是否是一种高效但可能过于简化的编程方式。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-09-10 星期日
|
||||
|
||||
- 13:17 某博客支持各种模板语法,但是使用的时候反而觉得不灵活以及学习成本过高了。<br>觉得突然想到,是不是低代码是一种含糖量极高的编程方式。<br>
|
@ -1,41 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-09-12'
|
||||
slug: diary-2023-09-12
|
||||
date: 2023-09-12T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 健身
|
||||
- 日记
|
||||
description: >-
|
||||
今天的任务包括完成多项链表相关的编程题目,其中已完成的有“86.分隔链表”和“141.环形链表”,未完成的有“142.环形链表-ii”和“160.相交链表”。此外,已完成的任务还包括在Obsidian中链接外部代码文件。健身方面,进行了跑步、椭圆机和器械锻炼,并计划下次带拖鞋以便洗完澡后直接穿回家。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-09-12 星期二
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
- [ ] 刷题回顾
|
||||
- [x] [86.分隔链表](https://notes.kazoottt.top/03-领域/算法/记录/86.分隔链表)
|
||||
- [x] [141.环形链表](https://notes.kazoottt.top/03-领域/算法/记录/141.环形链表)
|
||||
- [ ] [142.环形链表-ii](https://notes.kazoottt.top/03-领域/算法/记录/142.环形链表-ii)
|
||||
- [ ] [[160.相交链表]]
|
||||
- [x] [[obsidian链接外部代码文件]]
|
||||
|
||||
|
||||
## 健身
|
||||
|
||||
【打卡】跑步 15 分钟,椭圆机 15 分钟,器械(大腿 腹部 背部)4 组
|
||||
|
||||
下次要把拖鞋带来,洗完澡直接穿拖鞋回家。
|
@ -1,79 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-09-13'
|
||||
slug: diary-2023-09-13
|
||||
date: 2023-09-13T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
- todo
|
||||
description: >-
|
||||
On September 13, 2023, the individual focused on several tasks including
|
||||
reviewing coding problems, specifically completing the "141.环形链表" and planning
|
||||
to tackle "142.环形链表-ii" and "160.相交链表". They also dealt with issues related to
|
||||
the react-noiton-x library, which is used in their blog's search interface,
|
||||
and attempted to compile the library from source code due to outdated
|
||||
versions. Challenges included issues with yarn proxy settings, understanding
|
||||
workspace concepts, and the process of npm publishing. Additionally, they
|
||||
worked on their blog, integrating Sentry for error tracking and adjusting the
|
||||
giscus comment section's style to better fit different themes. On the personal
|
||||
front, they skipped the gym due to poor physical condition but exercised at
|
||||
home using an elliptical machine. They also considered upgrading their
|
||||
smartwatch as it was no longer compatible with the latest watch face market
|
||||
updates.
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-09-13 星期三
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
- [ ] 刷题回顾
|
||||
- [x] [141.环形链表](https://notes.kazoottt.top/03-领域/算法/记录/141.环形链表)
|
||||
- [ ] [142.环形链表-ii](https://notes.kazoottt.top/03-领域/算法/记录/142.环形链表-ii)
|
||||
- [ ] [[160.相交链表]]
|
||||
|
||||
## 打卡
|
||||
|
||||
wakatime 数据:
|
||||

|
||||
|
||||
## React-noiton-x
|
||||
|
||||
今天一直在看 react-noiton-x 的问题,因为博客里依赖了这个库的搜索接口,而该接口虽然在源代码里更新了,但是最新一次打包是二月份
|
||||

|
||||
|
||||
所以尝试自己从源代码打包一份,然后新发一个版本给自己使用。
|
||||
|
||||
遇到的问题有:
|
||||
|
||||
1. 忘记修改过 yarn 的代理(公司内网),导致安装失败。代理优先级应该是 yarn 自身代理>npm 代理
|
||||
2. 对于 workspace 的概念不熟悉
|
||||
3. 对于 npm 发布不熟悉
|
||||
后续要做的事:
|
||||
|
||||
打包,然后发布
|
||||
|
||||
## Blog
|
||||
|
||||
然后继续折腾了一下博客,接入了 sentry,
|
||||
之前的 giscus 评论区的样式是比较怪异的(即使切换了主题,背景色还是白色),今天做成适配的了。不过这个切换有些生硬,后续要加个过渡
|
||||

|
||||
|
||||
## 健身
|
||||
|
||||
状态不好,没去健身房,在家踩了椭圆机,3-11 档阻力交叉 30 分钟
|
||||
|
||||
=、= 感觉该换手表了,突然发现这个手表表盘市场都不兼容了
|
||||

|
||||

|
@ -1,37 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-09-14'
|
||||
slug: diary-2023-09-14
|
||||
date: 2023-09-14T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
今天是2023年9月14日,星期四。今天的计划包括打卡和健身。健身内容包括跑步20分钟和使用器械30分钟,虽然9点去健身房时间有点紧张。此外,已经下单了一款新手表,预计下周五到货。感觉自己的背部似乎直了一些。还提到了一种快速获取telegram
|
||||
chatId并实现消息通知的方法。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-09-14 星期四
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
|
||||
|
||||
## 健身
|
||||
|
||||
健身打卡
|
||||
|
||||
跑步 20 分钟,器械 30 分钟,9 点去健身房时间还是有点紧了!
|
||||
下单了新的手表,下周五能到!
|
||||
不知道是不是错觉,感觉自己背直了一点
|
||||
|
||||
[快速获取telegram chatId然后实现消息通知的方法](/notes/quick-way-to-get-telegram-chatid-and-then-implement-message-notification)
|
@ -1,28 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-09-15'
|
||||
slug: diary-2023-09-15
|
||||
date: 2023-09-15T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: 2023年9月15日星期五的日程包括修复notion-blog中vercel og的问题,并进行打卡记录。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-09-15 星期五
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
|
||||
## 打卡
|
||||
|
||||
[修复了notion-blog中vercel og的问题](https://notes.kazoottt.top/05-临时/01-草稿箱/修复了notion-blog中vercel og的问题)
|
@ -1,51 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-09-17'
|
||||
slug: diary-2023-09-17
|
||||
date: 2023-09-17T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 健身
|
||||
- 日记
|
||||
description: >-
|
||||
2023年9月17日,个人日记记录了当天的活动和任务。白天主要在休息,晚上进行了健身活动,包括30分钟的椭圆机训练和30分钟的器械训练。健身后回家泡脚,并在此期间编写了一个油猴脚本,用于直播间管理增强,已完成弹窗样式修改和response拦截及第一页数据填充,后续计划实现滚动加载后的数据填充。此外,还记录了两个待处理的事项:屏蔽推特黄推和使用shot.so进行图片美化。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-09-17 星期日
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
|
||||
## 打卡
|
||||
|
||||
今天白天主要在休息,
|
||||
|
||||
晚上出门健身了,椭圆机 30 分钟,器械 30 分钟。
|
||||
|
||||
然后回到家泡了脚,出了挺多汗的。
|
||||
|
||||
一边泡脚一边写了一个油猴脚本,具体如下。
|
||||
|
||||
[直播间管理增强脚本](https://notes.kazoottt.top/05-临时/01-草稿箱/直播间管理增强脚本)
|
||||
今日完成:
|
||||
|
||||
弹窗样式修改
|
||||
response 拦截 + 第一页数据填充
|
||||
后面要做的事:
|
||||
|
||||
实现滚动加载后,填充对应的数据
|
||||

|
||||
|
||||
## Inbox
|
||||
|
||||
[屏蔽推特黄推](/notes/blocking-twitter-yellow-tweets)
|
||||
[shot.so - 图片美化工具](/notes/shotso-image-beautification-tool)
|
@ -1,34 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-09-24'
|
||||
slug: diary-2023-09-24
|
||||
date: 2023-09-24T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 翻译
|
||||
- 日记
|
||||
description: >-
|
||||
今天的任务包括翻译YouTube视频《Monorepos - How the Pros Scale Huge Software Projects //
|
||||
Turborepo vs
|
||||
Nx》并投稿到Bilibili,视频链接为https://www.youtube.com/watch?v=9iU_IE6vnJ8,投稿链接为https://www.bilibili.com/video/BV1uz4y1V7cb/?spm_id_from=..search-card.all.click&vd_source=729e6f70ca3cee328ccece68cb2bbd30。此外,还有待处理的inbox事项。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-09-24 星期日
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
|
||||
## 打卡
|
||||
|
||||
[Monorepos - How the Pros Scale Huge Software Projects // Turborepo vs Nx](<https://www.youtube.com/watch?v=9iU_IE6vnJ8>) 的翻译然后 [投稿](<https://www.bilibili.com/video/BV1uz4y1V7cb/?spm_id_from=..search-card.all.click&vd_source=729e6f70ca3cee328ccece68cb2bbd30>)
|
||||
|
||||
## Inbox
|
@ -1,32 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-10-06'
|
||||
slug: diary-2023-10-06
|
||||
date: 2023-10-06T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
今天的任务包括给手表充电和录制关于如何使用MessAuto和iMessage实现iPhone和mac信息同步及自动复制验证码的视频,并计划将视频发布到B站和小红书上。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-10-06 星期五
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
- [ ] 给手表充电
|
||||
- [ ] 录 [[安利/MessAuto + iMessage 实现iPhone和mac信息同步和自动复制验证码]] 的视频,发布到 b 站和小红书
|
||||
|
||||
|
||||
## Inbox
|
@ -1,30 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-10-10'
|
||||
slug: diary-2023-10-10
|
||||
date: 2023-10-10T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: 今天的计划包括阅读vite文档,并进行打卡和处理inbox事项。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-10-10 星期二
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
[从零开始阅读vite文档](https://notes.kazoottt.top/05-临时/01-草稿箱/从零开始阅读vite文档)
|
||||
|
||||
|
||||
## Inbox
|
@ -1,30 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-10-18'
|
||||
slug: diary-2023-10-18
|
||||
date: 2023-10-18T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: 今天的日程包括图片上传测试和打卡活动,同时有一个待处理的inbox事项。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-10-18 星期三
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
[[图片上传测试]]
|
||||
|
||||
|
||||
## Inbox
|
@ -1,30 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-10-21'
|
||||
slug: diary-2023-10-21
|
||||
date: 2023-10-21T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: 2023年10月21日星期六的日程安排包括打卡和处理inbox事务。具体打卡内容通过一张图片展示,而inbox的具体内容未详细说明。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-10-21 星期六
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
|
||||
## 打卡
|
||||
|
||||

|
||||
|
||||
## Inbox
|
@ -1,30 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-10-22'
|
||||
slug: diary-2023-10-22
|
||||
date: 2023-10-22T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: 今天的计划包括防抖技术的学习和打卡任务,同时还有待处理的邮件。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2023-10-22 星期日
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
[防抖](https://notes.kazoottt.top/05-临时/01-草稿箱/防抖)
|
||||
|
||||
|
||||
## Inbox
|
@ -1,30 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-11-06'
|
||||
slug: diary-2023-11-06
|
||||
date: 2023-11-06T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: 2023年11月6日,星期一,记录了当天的打卡情况,显示Wakatime的使用时间较长,给人留下了深刻印象。此外,还提到了inbox,但未详细说明内容。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 打卡
|
||||
|
||||

|
||||
今天的 wakatime 有点恐怖了
|
||||
|
||||
## Inbox
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
@ -1,33 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-11-16'
|
||||
slug: diary-2023-11-16
|
||||
date: 2023-11-16T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
今天是2023年11月16日,星期四。今天的主要任务是开始学习web3,特别是参加了一个名为solidity_bootcamp的在线课程,该课程由open
|
||||
build提供。此外,还记录了学习笔记,但具体内容未在提供的材料中详细说明。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 打卡
|
||||
|
||||
开始学习 web3,上周报名的 open build 的 solidity_bootcamp 开营了。
|
||||
|
||||
[solidity_bootcamp学习笔记](https://notes.kazoottt.top/03-领域/web3/solidity_bootcamp学习笔记)
|
||||
|
||||
## Inbox
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
@ -1,33 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2023-11-17'
|
||||
slug: diary-2023-11-17
|
||||
date: 2023-11-17T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
今天的任务清单中,已完成的是下午去办理港澳通行证,而未完成的是准备公司评级的材料和学习web3基础知识。此外,今天的日程中还包括打卡和查看inbox,但没有具体的事项列出。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
## 明天要做的事情
|
||||
|
||||
- [x] 下午去办港澳通行证
|
||||
- [ ] 去公司准备评级的材料
|
||||
- [ ] 学习 web3 基础知识
|
||||
|
||||
## Inbox
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
@ -1,42 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2024-03-05'
|
||||
slug: diary-2024-03-05
|
||||
date: 2024-03-05T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
今天的主要任务包括完成Python学习至day15和刷题,已完成的任务有Python学习和刷题。未完成的任务包括整理周一和周二的资讯、进行多线程批量测试、解决Python的AttributeError问题以及JetBrains
|
||||
IDE的terminal无法打开问题。此外,还帮助前部门面试了一位前端候选人。明天计划继续处理未完成的任务,并记录了2024年3月5日的文件路径信息。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 今天要做的事情
|
||||
|
||||
- [x] python 看到 day15 [python100 1-15](https://notes.kazoottt.top/03-领域/后端/python/python100 1-15)
|
||||
- [x] 刷题
|
||||
- [ ] 整理周一和周二的资讯
|
||||
- [ ] 多线程批量跑测试
|
||||
- [ ] [[AttributeError module 'select' has no attribute 'epoll']]
|
||||
- [ ] [[jerbrains的ide打不开terminal]]
|
||||
- [ ] [2024-03-05 刷题](https://notes.kazoottt.top/03-领域/算法/记录/2024-03-05 刷题)
|
||||
|
||||
# 打卡
|
||||
|
||||
主要在看 Python,另外刷了两道算法题。
|
||||
|
||||
帮之前部门的人面试了一个前端。
|
||||
|
||||
|
||||
# Inbox
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
@ -1,50 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2024-03-06'
|
||||
slug: diary-2024-03-06
|
||||
date: 2024-03-06T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
今天的工作主要集中在解决错误和提交代码上,成功地向autogen和notionnext提交了pull
|
||||
request,其中autogen的请求已被合并。同时,开通了notion
|
||||
ai,并迁移了部分本地内容到博客上。此外,收到了购买的时尚小物品,感到非常满意。遗憾的是,今天没有进行学习和刷题。计划早点休息,为明天做准备。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
|
||||
# 打卡
|
||||
|
||||
工作上排了一天的错,本来要做的工作也没有做。
|
||||
|
||||
给 autogen 和 notionnext 提了 pr,autogen 的已经被合并了,这是第二次被 autogen 合并,
|
||||
|
||||
🙏非常感谢。
|
||||
|
||||
然后开通了 notion ai,发现它支持 google pay,这点对我来说挺友好的。开通的原因是想用它的自动生成 tags 和 summary 的功能。搭配 notionnext,比较方便。然后迁移了一部分本地的内容到博客上去。
|
||||
|
||||
买的时尚小垃圾到了,挺喜欢的。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
今天的不足之处是没有学习也没有刷题。
|
||||
|
||||
昨天太累了,今天早睡吧。晚安。
|
||||
|
||||
|
||||
# Inbox
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
@ -1,27 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
slug: fragmented-notes-2024-10-21-11-17-17
|
||||
tags:
|
||||
- 财务管理
|
||||
- 飞书
|
||||
- 记账软件
|
||||
- 碎片
|
||||
description: 使用飞书作为记账工具,能够有效地记录和管理财务信息。
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
title: 2024-10-21 11分17秒 使用飞书来记账
|
||||
date: 2024-10-21T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
category: 碎片
|
||||
---
|
||||
|
||||
使用飞书来记账
|
||||
|
||||

|
||||
|
||||

|
@ -1,51 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
slug: fragmented-notes-2025-02-16-23-41-18
|
||||
tags:
|
||||
- 复古相机,摄影爱好者,数字中心
|
||||
- 碎片
|
||||
description: >-
|
||||
Vintage Camera Lab
|
||||
是专注于复古相机的网站,提供多种型号的详细信息与历史,按品牌、格式和类型分类,便于摄影师、收藏家了解相机的背景与特点。此外,该网站还提供复古相机风格的周边商品。
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
title: 2024-10-25 13分02秒 Vintage Camera Lab
|
||||
date: 2025-02-16T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
category: 碎片
|
||||
---
|
||||
|
||||

|
||||
|
||||
**Vintage Camera Lab:复古相机爱好者的数字中心**
|
||||
|
||||
**地址**:[Vintage Camera Lab](<https://vintagecameralab.com/>)
|
||||
|
||||
**日期**:20241025
|
||||
|
||||
**摘要**:Vintage Camera Lab 是专注于复古相机的网站,涵盖多种型号的详细信息与历史,按品牌、格式和类型分类,便于摄影师、收藏家等了解相机的背景与特点。同时,该网站还提供复古相机风格的周边产品。
|
||||
|
||||
**亮点**:
|
||||
|
||||
- 丰富的相机数据库,包含规格与历史背景。
|
||||
- 支持按品牌、格式和类型分类。
|
||||
- 提供复古相机主题的周边商品。
|
||||
- 面向复古摄影爱好者和相机收藏家。
|
||||
|
||||
---
|
||||
|
||||
Vintage Camera Lab:复古相机爱好者的数字中心
|
||||
|
||||
Vintage Camera Lab 是专注于复古相机的网站,涵盖多种型号的详细信息与历史,按品牌、格式和类型分类,便于摄影师、收藏家等了解相机的背景与特点。同时,该网站还提供复古相机风格的周边产品。
|
||||
|
||||
亮点:
|
||||
|
||||
• 丰富的相机数据库,包含规格与历史背景。
|
||||
• 支持按品牌、格式和类型分类。
|
||||
• 提供复古相机主题的周边商品。
|
||||
• 面向复古摄影爱好者和相机收藏家。
|
@ -1,31 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
slug: fragmented-notes-2025-02-16-23-40-56
|
||||
tags:
|
||||
- 磁带盒设计
|
||||
- 磁带收藏
|
||||
- 碎片
|
||||
- 在线商店
|
||||
description: >-
|
||||
Tapedeck.org
|
||||
为磁带设计提供了丰富的信息和历史记录,包括功能型设计、色彩丰富和形状变化等。网站还支持用户分享自己的磁带收藏,并为此提供了详细的提交指南。此外,网站还提供了在线商店销售与磁带相关的周边产品。
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
title: 2024-10-25 13分11秒 Tapedeck
|
||||
date: 2024-10-25T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
category: 碎片
|
||||
---
|
||||
|
||||

|
||||
|
||||
Tapedeck.org 提供了从 60 年代初的功能型磁带到 90 年代的各种形状变化的磁带盒设计。
|
||||
|
||||
- 记录了丰富的磁带设计历史和信息,从早期的功能性设计到后来的色彩丰富和形状变化。
|
||||
- 网站鼓励用户分享自己的磁带收藏,提供了详细的提交指南。
|
||||
- 网站还提供了一个在线商店销售与磁带相关的周边。
|
@ -1,29 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
slug: fragmented-notes-2025-02-19-21-11-13
|
||||
tags:
|
||||
- 碎片
|
||||
- craft,第三方链接,Office文档
|
||||
description: Craft 第三方链接解析兼容性更好,美观程度也更好。然而Craft提供的免费服务有限,仅为试用版本,后期需要付费使用。
|
||||
date_created: 20250220
|
||||
date_modified: 20250304
|
||||
title: 2024-10-28 18分05秒 craft原来要收费
|
||||
date: 2024-10-28T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
category: 碎片
|
||||
---
|
||||
|
||||
对于第三方链接的解析,craft 的兼容性和美观程度是更好的。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
我一直以为 Craft 是免费的,今天才发现是最开始免费 10 个 doc,后面每周可以免费创建 2 个 doc。
|
@ -1,59 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2024-11-26'
|
||||
slug: diary-2024-11-26
|
||||
date: 2024-11-26T00:00:00.000Z
|
||||
day_of_week: 星期二
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
- 幸福的具象化
|
||||
- milklove
|
||||
description: >-
|
||||
今天是milklove宣布二搭、三搭的日子。根据截图,牛奶爱情已经发展到了很幸福的阶段。有许多视频和 GIFs
|
||||
表示了他们之间的亲密度和甜蜜。虽然没有具体详细信息,但可以看出这对人是非常恩爱的。在这里汇总了一些关键的视频和截图,展示了milklove的幸福感和关怀。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
很幸福的一天,今天是 milklove 宣布二搭、三搭的日子。
|
||||
|
||||
6 月入坑牛奶爱情,不知不觉嗑到现在,从没想过今天这样的发展。
|
||||
|
||||
在这里汇总一下今天的一些视频。
|
||||
|
||||
[截修](<https://weibo.com/7101901680/P28tdryDc#comment>)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
[幸福的具象化](<https://weibo.com/6083416567/P28jkx9MS#comment>)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
[girl rule cut](<https://weibo.com/1750538651/P27NfAOja#comment>)
|
||||
|
||||
[亲亲](<https://weibo.com/1825971940/P288xfVxF#comment>)
|
||||
|
||||

|
||||
|
||||
[二搭 预告片 婉司姬](<https://weibo.com/1753015991/P27pq9oJU#comment>)
|
||||
|
||||

|
||||
|
||||
[二搭 预告片 弯弯字幕组](<https://weibo.com/7392264056/P27lQtUnd#comment>)
|
||||
|
||||

|
||||
|
||||
[Findwichh推介会汇总](<https://weibo.com/6613951279/P29c7fgx9#comment>)
|
@ -1,48 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2024-11-27'
|
||||
slug: diary-2024-11-27
|
||||
date: 2024-11-27T00:00:00.000Z
|
||||
day_of_week: 星期三
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
windsurf 赠送了试用的天数,个人发现 windsurf 的 cursor 自动补全速度比其他软件快且更智能。然而,volview 中的 store
|
||||
信息难以理解,而 Crop2D.vue 的文件内容未能解释明了。此外,安装 canvas 时遇到错误,需要参考 node-canvas 的 Windows
|
||||
安装指导解决问题。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
windsurf 赠送了试用的天数
|
||||
|
||||

|
||||
|
||||
个人感觉 cursor 的自动补全速度比 windsurf 快和智能很多
|
||||
|
||||
volview 也这么多 store,谁能看懂...
|
||||
|
||||

|
||||
|
||||
`src\components\tools\crop\Crop2D.vue`
|
||||
|
||||
啥意思
|
||||
|
||||

|
||||
|
||||
安装 canvas 的时候报错:
|
||||
|
||||
```
|
||||
error C1083: 无法打开包括文件: “cairo.h”: No such file or directory
|
||||
```
|
||||
|
||||
解决方法:
|
||||
|
||||
[Installation: Windows · Automattic/node-canvas Wiki · GitHub](<https://github.com/Automattic/node-canvas/wiki/Installation:-Windows>)
|
@ -1,76 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2024-11-28'
|
||||
slug: diary-2024-11-28
|
||||
date: 2024-11-28T00:00:00.000Z
|
||||
day_of_week: 星期四
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
VSCode加速设置可以提高你的开发效率,尤其是对于低端显卡或者集成显卡的机器。打开 VSCode命令面板,输入 "Preferences:
|
||||
Configure Runtime
|
||||
Arguments",然后添加“disable-hardware-acceleration”:true,实验发现它确实有助于提高工作效率。但是,如果你的
|
||||
SonarLint 占用内存过高,就会导致卡顿问题。此外,你还遇到了 vite-plugin-checker 的错误,解决方法是安装或重新安装 uv。
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
[x.com](<https://x.com/vikingmute/status/1858781019492790315>)
|
||||
|
||||
```
|
||||
打开这个禁止硬件加速的选项可以让 VSCode 快很多倍,Cusror 这种基于 VSCode 的也可以,不知道什么原理,应该是针对低端显卡或者集成显卡的机器比较有效?但是我试了一下确实感觉快了一些,我是 M3 的 macbook,大家可以试试看效果怎样?
|
||||
|
||||
步骤:
|
||||
1. 打开命令面板 (Cmnd + Shift + P)
|
||||
2. 输入 "Preferences: Configure Runtime Arguments"
|
||||
3. 添加: "disable-hardware-acceleration": true
|
||||
```
|
||||
|
||||
SonarLint 内存占用高,卡顿
|
||||
|
||||
---
|
||||
|
||||
[vite-tsconfig-paths](<https://www.npmjs.com/package/vite-tsconfig-paths#vite-tsconfig-paths>) 踩坑
|
||||
|
||||
```
|
||||
error when starting dev server:
|
||||
ReferenceError: module is not defined in ES module scope
|
||||
This file is being treated as an ES module because it has a '.js' file extension and 'C:\Users\turbo\Developer\xxx.worktrees\fix\cannot-export\node_modules\.pnpm\vite-plugin-checker@0.8.0_eslint@8.57.1_optionator@0.9.4_typescript@4.9.5_vite@4.5.5_@types+n_f2jvehahdn5lgzw77tv2nbqmma\node_modules\vite-plugin-checker\package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension.
|
||||
```
|
||||
|
||||
Ensure the project either has "type": "module" set or that the Vite config is renamed to vite.config.mjs / vite.config.mts depending on whether TypeScript is used
|
||||
|
||||
确保项目已设置 "type": "module" 或根据是否使用 TypeScript 将 Vite 配置重命名为 vite.config.mjs / vite.config.mts
|
||||
|
||||
---
|
||||
|
||||
# Claude MCP can't connect to SQLite MCP serve
|
||||
|
||||

|
||||
|
||||
[Reddit - Dive into anything](<https://www.reddit.com/r/ClaudeAI/comments/1h0my0y/comment/lz5w7ar/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button>)
|
||||
|
||||
解决方法:install or reinstall uv
|
||||
|
||||
```
|
||||
brew install uv
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ollma 真好玩
|
||||
|
||||
我怎么这么久了才开始玩(谢谢酱紫表的安利)
|
||||
|
||||

|
||||
|
||||
[GitHub - ollama/ollama: Get up and running with Llama 3.2, Mistral, Gemma 2, and other large language models.](<https://github.com/ollama/ollama?tab=readme-ov-file>)
|
||||
|
||||
[GitHub - AugustDev/enchanted: Enchanted is iOS and macOS app for chatting with private self hosted language models such as Llama2, Mistral or Vicuna using Ollama.](<https://github.com/AugustDev/enchanted>)
|
@ -1,69 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2024-11-29'
|
||||
date: 2024-11-29T00:00:00.000Z
|
||||
day_of_week: 星期五
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
Qube可以集成到GitHub上,详细了解如何进行集成请参考YouTube上的视频。 如果出现HTTP
|
||||
409错误,首先删除使用该码的容器,然后再删除相关容器。 在深度学习工具中,Ollama是一个非常好的沉浸式翻译工具。
|
||||
区分重启和刷新按钮时需要注意到不同操作的差异。在Windows系统上,虽然没有macOS类似的窗口管理工具,但仍可以使用Raycast等第三方应用进行任务
|
||||
automation。 Adobe Express可以帮助我们将图片转换为SVG格式,并提供了一个简单易用的工具。
|
||||
在使用ECharts时,Canvas和SVG两个渲染器的选择主要取决于软硬件环境、数据量和功能需求。在需要优化性能的问题场景下,尝试结合实验来确定使用哪种渲-render器更合适。
|
||||
只有在你熟悉用canvas手搓图表时,你才能在网页上创建这种图。 最近的工作包括编辑器图片上传重构、移动端应用程序的开发以及学习VTK和图形学。
|
||||
slug: diary-2024-11-29
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
qube 如何集成到 github:
|
||||
[GitHub Integration | Mapping your organization into SonarQube - YouTube](<https://www.youtube.com/watch?v=6zvBuZr8CeI>)
|
||||
|
||||
Image HTTP code 409 is in use. Delete the container that's using it and try again.
|
||||
先删除 container 再删除 volume
|
||||
|
||||
沉浸式翻译使用 ollama
|
||||
|
||||
如何区分重启和刷新按钮
|
||||
|
||||
windows 有没有像 macos 一样的窗口管理工具,loop raycast 之类的
|
||||
|
||||
[Adobe Express](<https://new.express.adobe.com/tools/convert-to-svg>)
|
||||
|
||||
covnert image to svg (需要登录)
|
||||
|
||||

|
||||
|
||||
[Canvas vs. SVG - 最佳实践 - 使用手册 - Apache ECharts](<https://echarts.apache.org/handbook/zh/best-practices/canvas-vs-svg/>)
|
||||
|
||||
> [!note]
|
||||
> 选择哪种渲染器,我们可以根据软硬件环境、数据量、功能需求综合考虑。
|
||||
>
|
||||
> - 在软硬件环境较好,数据量不大的场景下,两种渲染器都可以适用,并不需要太多纠结。
|
||||
> - 在环境较差,出现性能问题需要优化的场景下,可以通过试验来确定使用哪种渲染器。比如有这些经验:
|
||||
> - 在需要创建很多 ECharts 实例且浏览器易崩溃的情况下(可能是因为 Canvas 数量多导致内存占用超出手机承受能力),可以使用 SVG 渲染器来进行改善。大略的说,如果图表运行在低端安卓机,或者我们在使用一些特定图表如 [水球图](<https://ecomfe.github.io/echarts-liquidfill/example/>) 等,SVG 渲染器可能效果更好。
|
||||
> - 数据量较大(经验判断 > 1k)、较多交互时,建议选择 Canvas 渲染器。
|
||||
|
||||
我什么时候可以做到用 canvas 手搓这种图
|
||||
|
||||

|
||||
|
||||
最近可以做的事情:
|
||||
|
||||
编辑器图片上传重构
|
||||
编辑器高度修改
|
||||
|
||||
行间高度调整
|
||||
|
||||
用 rn 重写移动端
|
||||
ml 资源整合
|
||||
vtk、图形学学习
|
||||
obsidian 插件 ollama generate slug tags
|
@ -1,38 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2024-11-30'
|
||||
date: 2024-11-30T00:00:00.000Z
|
||||
day_of_week: 星期六
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
为了更快地启动 Visual Studio Code(VSCode)extention,先按下 Ctrl+Shift+P或Cmd+Shift+P进入
|
||||
Command Pallete。然后输入“Startup Performance”并选择相关选项,完成后记得激活功能以保持其设置。
|
||||
如果存在占用特定端口的程序,请使用命令“lsof -i :<PORT>”识别端口对应的进程ID(PID),再使用命令“kill -9
|
||||
<PID>”终止该进程。也可以使用更方便的方式“kill -9 $(lsof -t -i :<PORT>)”,即直接杀死占用端口的进程。
|
||||
slug: diary-2024-11-30
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
vscode extention 启动时间
|
||||
|
||||
按下 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 “Startup Performance” 并选择该选项。 关注:Finish Activate
|
||||
|
||||
kill 端口为 x 的进程
|
||||
|
||||
```
|
||||
lsof -i :<PORT>
|
||||
kill -9 <PID>
|
||||
```
|
||||
|
||||
```
|
||||
kill -9 $(lsof -t -i :<PORT>)
|
||||
```
|
@ -1,47 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2024-12-11'
|
||||
date: 2024-12-11T00:00:00.000Z
|
||||
day_of_week: 星期三
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: >-
|
||||
我上周忙得满不在乎,wakatime 的数据显示,我加班的时间直接进入了全球前 100。主要是做 vtk.js
|
||||
的开发花了很多时间,不仅没有做到原先计划的需求,还对 polydata
|
||||
的变化感到困惑。虽然我耐下了心理压力,能清晰地理解项目里的复杂数据流转,但是写文档还是头昏眼花,一时起走神来。除了上周加班外,我也试用了
|
||||
react-scan 和安卓视频下载软件,好看的个人主页让我感动。
|
||||
slug: diary-2024-12-11
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
终于没有那么忙了,上周忙成狗了,加班加的 wakatime 时长直接进入全球前 100 了
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
上周在忙什么?主要是做 vtk.js 的开发花了很多时间,不然后续的需求查漏补缺我不会做的这么着急。
|
||||
|
||||
对于 vtk.js 的掌握程度还是太低了,甚至连 polydata 的变化要怎么写都是临时掌握的。不过好在上周耐心理了一下项目里复杂的数据流转,清晰了很多。
|
||||
|
||||

|
||||
|
||||
然后今天主要再写文档,写得头昏眼花的,好容易走神。
|
||||
|
||||
---
|
||||
|
||||
react-scan 让页面的 rerender 一眼便知 [React Scan](<https://react-scan.com/>),试了下确实好用(比浏览器的开发者工具里面的 rerender 监视器好用),后面项目优化有事做了。
|
||||
|
||||
安卓的视频下载软件 [GitHub - JunkFood02/Seal: 🦭 Video/Audio Downloader for Android, based on yt-dlp, designed with Material You](<https://github.com/JunkFood02/Seal>)
|
||||
|
||||
好看的个人主页 [CAICAI - A Product Manager](<https://www.caicai.me/>)
|
||||
|
||||

|
@ -1,111 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2024-12-12'
|
||||
date: 2024-12-12T00:00:00.000Z
|
||||
day_of_week: 星期四
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 人工智能
|
||||
- 日记
|
||||
- 数据可视化
|
||||
- 图表生成
|
||||
description: >-
|
||||
这一天的碎片化记录,包含了对深Seek
|
||||
API和其新版聊天功能的感想,以及工作、生活中的各种感受和体验。作者在这段时间内进行了一些个人思考和记录,包括购买了智能工具Diagen,感受到了一种计算收益的模式,并且在思考自己的精神层面,希望能够创作出更能让自己满意的作品。
|
||||
slug: diary-2024-12-12
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
之前只用过 deepseek 的 api,这几天的 deepseek 的 chat 用的比较多,发现两者都挺好用的
|
||||
|
||||
目前 todo 全部都移到滴答清单里面去记录和更改,这里单纯记录一些想法,不要 all in one
|
||||
|
||||
## 碎片化记录
|
||||
|
||||
10:55:这次去看演出要用肩带夹录一个第一人称的记录
|
||||
|
||||
10:54:把另外一把键盘带去公司了
|
||||
感受是打字很舒服 但是打久了累
|
||||
|
||||
12:37:活成了做什么都下意识计算收益的样子
|
||||
|
||||
13:05:状态怎么样别人能很明显看出来…
|
||||
还是对自己好点吧,现在这种状态实在太差了
|
||||
|
||||
13:18:买了一个新手机壳就能玩很久
|
||||
|
||||
13:13:总之先做一个出来
|
||||
性能差就差,总比没有好
|
||||
|
||||
13:36:转发微博
|
||||
|
||||
- 转发 @爱可可 - 爱生活: 【Diagen:一键生成数据图表的智能工具,通过 AI 技术将复杂数据转化为美观的图表,支持多种图表类型,让数据可视化变得简单快捷】'diagen - Generate beautiful, reflective diagrams from your data with a single command.' GitHub: github.com/SouthBridgeAI/diagen #数据可视化# #人工智能# #图表生成#
|
||||
|
||||
13:35:这下谁能看出 h 和 p 标签记录的啥
|
||||
|
||||
13:33://@KITATAIKOI: 跟去年相比产量确实是直接腰斩了,也跟我在思索一些关于精神层面的议题、把精力更多的花在工作上和尝试去改变自己有关。也很庆幸并没有在“向内批判自己”这件事上花太长的时间,我成功地走出了很大一部分源于过去的阴霾。 总之感谢大家的支持与认可,新的一年,咱会再接再厉,努力创作更能让自己满意,同时也更能深入人心的作品的!这样~
|
||||
|
||||
- 转发 @KITATAIKOI: *+2024 年终总结 +*
|
||||
又到了一年一度的% かΘΛ……(省略一大堆感言)今年除工作外一共产图 110 张~~~
|
||||
|
||||
14:49://@绯音喵: 有病吗//@婉司姬: 干什么//@矮周迅: 这是真不敢//@王太弱: 我连上一秒的都不敢看//@巴斯小板: 我不想回忆。//@美困外卖: 那年今日就可以看到
|
||||
|
||||
- 转发 @CharlieDurian2 号: 没见过傻逼的可以看看自己几年前发的朋友圈
|
||||
|
||||
16:00:要散了
|
||||
|
||||
19:50:我怎么就活成这个样子了
|
||||
|
||||
20:05:这辈子都不想做前端了
|
||||
|
||||
20:02:于是我又打开 boss 直聘
|
||||
我不会又要去上海吧
|
||||
|
||||
20:13:逛商场好解压,身心舒畅
|
||||
|
||||
20:12:好想配这种镜框
|
||||
感觉聪明的人带更聪明
|
||||
笨的人带更笨
|
||||
|
||||
20:50:幻想一下就能笑出声 好好养活
|
||||
|
||||
20:50:如果买“保健品”可以让自己开心,适当买点又怎么了
|
||||
|
||||
21:04:谁教他把 blender 缩写成 bl 的
|
||||
|
||||
21:15://@碎片粘合區:………//@2048 种子选手: 我//@摩斯盖斯: 我磕 cp
|
||||
|
||||
- 转发 @推拿熊: 在现在的时代来说,你愿意持之以恒做一件事情,从早上醒来在想,做了一天后睡觉前也在琢磨,能沉浸其中,不觉得烦,已经是极大的正反馈了
|
||||
|
||||
21:27:今天像吃了一顿空气
|
||||
虽然有活动 但什么都没吃到
|
||||
|
||||
22:55:这个号烂的别人给我点赞我都看不到提示😳
|
||||
|
||||
23:03:- 转发 @奶制品 -: 人无法同时拥有青春和对青春的感受 18 岁的和 24 岁的 loverrukk 又有了共同的感受
|
||||
|
||||
23:03:转发微博
|
||||
|
||||
- 转发 @月照废墟: milklove
|
||||
人如何学会语言。
|
||||
热带雨
|
||||
|
||||
23:44:好喜欢这篇 (「・ω・)「
|
||||
|
||||
- 转发 @月照废墟: milklove
|
||||
人如何学会语言。
|
||||
热带雨
|
||||
|
||||
23:42:浪费时间…
|
||||
|
||||
23:56:声生不息的滤镜怎么把人脸搞得蜡黄蜡黄的
|
||||
|
||||
23:51:靠一些不切实际的信念感在往下走
|
||||
但是感觉明年就该清醒了
|
@ -1,142 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2024-12-19'
|
||||
date: 2024-12-19T00:00:00.000Z
|
||||
day_of_week: 星期四
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: null
|
||||
slug: diary-2024-12-19
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
## 值得记录的事情
|
||||
|
||||
帮朋友单糊了一个大模型应用,被她和她的领导夸好,超开心的。
|
||||
|
||||
之前在公司做项目的时候被 leader 夸说我写的真的很快,有的事情没我搞不定。
|
||||
|
||||
听到这种被认可的话,就会觉得更有动力。
|
||||
|
||||
今天写好了一个 [合并多个PDF](/notes/merge-pdfs) 的小项目,写完之后用了合并功能在微信读书已经看上了杂货铺的中文翻译✌️
|
||||
|
||||
[PDF文件合并工具 - 在线免费合并PDF文档](<https://pdf.kazoottt.top/>)
|
||||
|
||||

|
||||
|
||||
## 碎片化记录(基于 n8n + rss + 飞书 webhook 生成)
|
||||
|
||||
11:53:昨天的打卡
|
||||
|
||||
12:27:这个真的很好用
|
||||
|
||||
不打游戏,办公够了
|
||||
|
||||
安利安利
|
||||
|
||||
13:11:21 牛爱能闪耀运动会吗
|
||||
|
||||
13:39:今夜你会不会来
|
||||
|
||||
15:17:如果使用 remix,然后用 cloudflare 进行部署。
|
||||
|
||||
通过 remix 的官方脚手架创建,在 Workers 和 Pages 中直接 import 仓库然后部署是无效的。部署完成后点击对应的域名访问,会无响应。
|
||||
|
||||
正确的做法是:
|
||||
|
||||
参考 cloudflare>) 的文档,使用 cloudflare + remix 的模板创建
|
||||
|
||||
shell
|
||||
|
||||
pnpm create cloudflare@latest my-remix-app --framework=remix
|
||||
|
||||
然后再在 Workers 和 Pages 中 import 你对应的 git 仓库,然后构建设置选择 remix,它会帮你填好默认的配置,保留该配置即可。
|
||||
|
||||
参考
|
||||
|
||||
Remix + Vite: assets not generated in /public - Developers / Cloudflare Pages - Cloudflare Community
|
||||
|
||||
16:18:黄金和纳斯达克都跌了,感觉今天亏的能抵半个月赚的
|
||||
|
||||
16:15:忙了一下午点开社交平台什么新物料的没有
|
||||
|
||||
16:20:昨天在看曼谷旅居一个月的开销
|
||||
|
||||
感觉涉及到省钱,真的离不开搭子
|
||||
|
||||
吃饭,住房很多地方都是两个人性价比更高
|
||||
|
||||
但是我现生哪里去找这样的搭子
|
||||
|
||||
18:32:朋友要处理一些数据但是比较敏感所以只能用本地大模型。
|
||||
|
||||
花了点时间,帮写了一个 ollama 安装运行脚本(离线拷贝的,因为感觉大概率会碰到 pull 不下来的问题),然后还把 excel 的处理也写了,最后做了个简单的 gui 方便操作。
|
||||
|
||||
19:17:忙的时候遭不住,闲的时候又不乐意了
|
||||
|
||||
19:12:以前用豆包觉得回复好慢
|
||||
|
||||
现在快了好多
|
||||
|
||||
(用来水字数还可以,输出贼多
|
||||
|
||||
19:33:回家吃完饭刚好 8 点
|
||||
|
||||
8 点有事情要核对一下
|
||||
|
||||
好匆忙
|
||||
|
||||
19:59:想给别人发大文件除了网盘还有什么方法
|
||||
|
||||
阿里和百度都限速
|
||||
|
||||
20:10:是不是可以
|
||||
|
||||
把 gameobject 理解为 elements container
|
||||
|
||||
然后 component 对应的就是 container 中的各种 element
|
||||
|
||||
prefab 才对应的是 component
|
||||
|
||||
20:03:给别人分享网盘链接,结果对方没会员下载很慢的时候,很想把账号借给对方
|
||||
|
||||
但是真的存了很多不方便分享的东西,好烦好烦,删了可惜,不删借不出账号又焦虑
|
||||
|
||||
20:00:牛爱两人还认识吗
|
||||
|
||||
20:16:大二的时候大创报错类型了,报了商业型项目
|
||||
|
||||
当时的想法是通过 vr 治疗幽闭恐惧症(我也忘了为什么要做这个)
|
||||
|
||||
我是负责人,拉着队友们写了几天申报书,商业计划书,寒假的时候每天在家学 unity,学到骨骼和动画的时候就开学了
|
||||
|
||||
结果去立项答辩的时候被卡了(商业型项目很严格…),给我留下了很深的阴影,从那之后再也没碰过 unity 和 vr
|
||||
|
||||
回头想想那个时候有点封闭自己,虽然最后没做下去,但也应该请队友们吃个饭,或者感谢一下的
|
||||
|
||||
没想到过了 6 年,又要重操旧业了
|
||||
|
||||
20:28:明天把那个 stl 打一下
|
||||
|
||||
看看什么效果
|
||||
|
||||
20:31:买了个显示器支架希望稳一点
|
||||
|
||||
22:46:学到了虽然用不上
|
||||
|
||||
- 转发 @曝猛: 以防你想了解用手机直播的技巧……
|
||||
|
||||
22:57:拉了几下 v 字把手就这样了
|
||||
|
||||
23:03:转发微博
|
||||
|
||||
- 转发 @全是狗狗啊: 只要一碰小狗狗的鼻子,狗狗就会自动地吐舌头!这也太可爱了吧!啊啊啊啊我能玩一天 全是狗狗啊的微博视频
|
||||
|
@ -1,37 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2024-12-23 星期一 学习 unity day01
|
||||
date: 2024-12-23T00:00:00.000Z
|
||||
day_of_week: 星期一
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: null
|
||||
slug: diary-2024-12-23
|
||||
category: 日记
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
学习 unity day01
|
||||
|
||||
今天看了唐老师的 unity 入门课程(感谢网友的推荐,这门课真的质量很高,思路清晰且容易看进去),搭配豆包和哔哔君看视频学习也比较高效了。
|
||||
|
||||
看了 mrtk2 的一些 demos,个人的感受是学 unity 的一个方法是可以试着复刻一些常用的 prefab 或者 class,方便自己,也能增加熟练度。(比如前端封装 slider,unity 中也封装 slider)
|
||||
|
||||
最后就是直接阅读后续要上手的项目代码并学习使用 remote app 快速看效果。
|
||||
|
||||
其实在大学的时候有参加过 VR 的社团,当时看过 B 站上一个虚拟小屋的教学视频也体验过 VR 设备。后来大创也申报过 VR + 医疗相关的项目,不过被砍后已经很久没有接触过 unity。
|
||||
|
||||
然后去年和同担一起有策划过一个模拟经营类的游戏,但是因为我太忙并且主动性不高这个项目搁置了。希望能通过这次好好学一下 unity 并把这个项目重新做起来。(做到一定阶段再跟别人说,而不是还没开始就大范围告诉他人,我觉得我一直都是这种喜欢给自己画饼之余也爱给别人画饼的,这样的缺点真的需要改)
|
||||
|
||||
今天同组同事也跟我聊了一下,教了我一些技巧,有句话对我来说印象比较深刻就是“你就是缺了迈出去的那一步。”
|
||||
|
||||
不管怎么样实践和学习总是没错,不要抵触新的事物,先做一个垃圾出来至少也算是做出来了。
|
||||
|
||||

|
@ -1,241 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2024-W03-AI专题
|
||||
slug: 2024-W03-ai-topics
|
||||
category: 周报
|
||||
description: >-
|
||||
本期AI专题聚焦于2024年第三周的AI领域最新动态,包括Google推出的Circle to
|
||||
Search功能,智谱AI发布的国产大模型GLM4及其GLMs商店,元象开源的XVERSE-Long-256K模型,以及OpenAI对GPT
|
||||
Builders文档的完善。此外,还介绍了彭博推出的IB Connect服务,以及多个AI应用如WhisperSpeech和AutoGen
|
||||
Studio。推荐阅读部分涵盖了AI创业案例、GPT-4的技术分析、Prompt工程指南等内容,为读者提供了丰富的AI知识和应用实例。
|
||||
date: 2024-06-26T10:26:54.033Z
|
||||
finished: true
|
||||
tags:
|
||||
- AIGC
|
||||
- application
|
||||
- model
|
||||
- prompt
|
||||
- Q&A
|
||||
- RAG
|
||||
- report
|
||||
- research
|
||||
- scene
|
||||
- study
|
||||
- text
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
[2024-W03](/posts/2024-W03)
|
||||
|
||||
# 2024-W03-AI 专题
|
||||
|
||||
## 模型动态
|
||||
|
||||
### [Google 推出 Circle to Search 划圈搜索](<https://blog.google/products/search/google-circle-to-search-android/>)
|
||||
|
||||
2024-01-17
|
||||
|
||||

|
||||
|
||||
介绍:Circle to Search 是一种通过简单手势在手机上搜索任何内容的新方式,无需切换应用程序。
|
||||
|
||||
Circle to Search 将于 1 月 31 日在部分高端 Android 智能手机(Pixel 8、Pixel 8 Pro 和全新三星 Galaxy S24 系列)上推出,支持所有语言和可用地区。
|
||||
|
||||
应用场景举例:
|
||||
|
||||
在社交平台上看到一张带有一些独特配料的美味玉米狗的图片,只需绕着玉米狗转一圈,问一个问题,比如“为什么这些如此受欢迎?您很快就会知道这些甜味和咸味的零食是韩国玉米狗,以及受欢迎的具体原因。
|
||||
|
||||
### [智谱AI发布国产最强大模型GLM4,理解评测与数学能力接近GPT-4,还有对标GPTs商店的GLMs商店与开发者分成计划](<https://mp.weixin.qq.com/s?__biz=Mzg2MTIzNDcyNQ==&mid=2247485533&idx=1&sn=ed17d859d5ec67b13357ebe43de395c7&chksm=ce1b7b17f96cf201b1592ab73a0db6a596aa902cc9fc1f4b351d62224ed102654bf1d3eacaf4&mpshare=1&scene=1&srcid=0116V0BlzHfimamtoVj6d95h&sharer_shareinfo=7738639018d07fae5fd03f5387508b22&sharer_shareinfo_first=7738639018d07fae5fd03f5387508b22#rd>)
|
||||
|
||||
2024-01-16
|
||||
|
||||

|
||||
|
||||
这篇文章详细介绍了智谱 AI 发布的国产大模型 GLM4 的能力,并且介绍了 GLMs 商店与开发者分成计划。
|
||||
|
||||
[GLM-3,GLM-4体验地址](<https://chatglm.cn/main/detail>)
|
||||

|
||||
|
||||
GLMs 商店截图如下:
|
||||
|
||||

|
||||
|
||||
### [全球最长开源!元象开源大模型XVERSE-Long-256K,无条件免费商用!](<https://mp.weixin.qq.com/s?__biz=Mzg3MDU3ODAwMw==&mid=2247495059&idx=1&sn=017a09e47bbe418bcaa09b2eb49e5256&chksm=ce890faff9fe86b9a3a2c5b869811e91cabbd7aa113f98874619c213276348294d442a622b3d&mpshare=1&scene=1&srcid=0116UnuW06Aj1Iz0CBEPPwyq&sharer_shareinfo=9d54a9350b83b80b8b62a31ed267fad6&sharer_shareinfo_first=9d54a9350b83b80b8b62a31ed267fad6#rd>)
|
||||
|
||||
2024-01-16
|
||||
|
||||
元象发布全球首个上下文窗口长度 256K 的开源大模型 XVERSE-Long-256K,支持输入 25 万汉字,让大模型应用进入“长文本时代”。该模型全开源,无条件免费商用,且附带手把手训练教程,让海量中小企业、研究者和开发者更早一步实现“大模型自由”。
|
||||
|
||||

|
||||
|
||||
这篇公众号文章详细地介绍了元象所发布的模型,并且给出了一个简单的实践教程。
|
||||
|
||||
### OpenAI 完善了 GPT Builders 的文档
|
||||
|
||||
2024-01-13
|
||||
[文档地址](<https://platform.openai.com/docs/actions/introduction>)
|
||||
|
||||

|
||||
|
||||
### 继 BloombergGPT 之后,彭博推出了 IB Connect 以改善数字化转型
|
||||
|
||||
2023-12-09
|
||||
|
||||
彭博自己所发布的新闻:[Bloomberg Welcomes Intra-Firm Chatbots to IB](<https://www.bloomberg.com/company/press/bloomberg-welcomes-intra-firm-chatbots-to-ib/>)
|
||||
|
||||
相关新闻报道:[After BloombergGPT, Bloomberg Launched IB Connect to Improve Digital Transformation](<https://multiplatform.ai/after-bloomberggpt-bloomberg-launched-ib-connect-to-improve-digital-transformation/>)
|
||||
|
||||
新闻报道中的总结如下:
|
||||
|
||||
- 彭博推出 IB Connect 服务,使用户能够将专有聊天机器人整合到 IB 聊天室中。
|
||||
- 公司内部聊天机器人可从内部系统中提取关键信息,从而增强内部商业智能。
|
||||
- IB Connect 促进了彭博终端与内部工作流程工具之间的无缝集成。
|
||||
- 通过双向集成,客户可以利用自然语言处理功能将 IB 聊天室与其内部系统连接起来。
|
||||
- 客户可以使用软件开发工具包定制聊天机器人,为其技术堆栈提供灵活性。
|
||||
- 提供两种类型的聊天机器人:公司内部问答聊天机器人和公司内部通知聊天机器人。
|
||||
- BloombergGPT 是早先介绍过的一种专门的金融语言模型,但它面临着一些限制,如只能使用英语和潜在的偏见。
|
||||
|
||||
## 优秀应用
|
||||
|
||||
### WhisperSpeech - 文本转语音
|
||||
|
||||
[官网地址](<https://collabora.github.io/WhisperSpeech/>)
|
||||
|
||||
[github地址](<https://github.com/collabora/WhisperSpeech>)
|
||||
|
||||

|
||||
|
||||
### AutoGen Studio
|
||||
|
||||
AutoGen Studio 是一个基于 autogen 的 web ui, 支持多个 agent、多模态。
|
||||
|
||||
<https://microsoft.github.io/autogen/blog/2023/12/01/AutoGenStudio/>
|
||||
|
||||

|
||||
|
||||
构建流程构建
|
||||
|
||||
1. 配置技能:技能是描述如何解决任务的函数(如 Python 函数)。一般来说,一个好的技能有一个描述性的名称(如 generate_images)、大量的文档说明和良好的默认设置(如将文件写入磁盘以实现持久化和重复使用)。您可以通过提供的用户界面向 AutoGen Studio 添加新技能。在推理过程中,这些技能将在助理代理处理您的任务时提供给他们。
|
||||
2. 配置 agent
|
||||
3. 配置 agent 工作流:代理工作流程是一组代理的规格说明,这些 agents 可以共同完成一项任务。最简单的版本是设置两个 agents-- 一个 assistant agent,一个 user agent.
|
||||
|
||||
### [Moodboard Creator —— AI 生成情绪板](<https://www.moodboardcreator.de/>)
|
||||
|
||||

|
||||
|
||||
[推特地址](<https://twitter.com/ftium4/status/1746419029961814098?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
|
||||
|
||||
### [AI Gateway](<https://github.com/Portkey-AI/gateway>)
|
||||
|
||||

|
||||
|
||||
✅ 极速性能(速度是常规的 9.9 倍),同时只占极小存储空间(安装后约 45kb)
|
||||
|
||||
✅ 实现跨多个模型、服务提供商及密钥的负载均衡
|
||||
✅ 具备故障回退功能,确保应用的高可用性
|
||||
✅ 支持自动重试,并默认使用指数级延迟策略
|
||||
✅ 可按需添加中间件
|
||||
✅ 经过超过 1000 亿个 Token 的实战检验
|
||||
|
||||
## 推荐阅读
|
||||
|
||||
### [AI创业新典范:Monica.im如何用浏览器插件撬动商业价值?| 万字长文](<https://mp.weixin.qq.com/s/tfQWfHaYq56PcWCPvGsoOA>)
|
||||
|
||||
[monica应用链接](<https://monica.im/>)
|
||||
|
||||
Monica 是一个使用最先进的 AI 模型(GPT-4、Claude、Bard 等)帮助你对话、搜索、写作、翻译的一站式 AI 助手,并且提供多种图片、视频、PDF 处理的工具。
|
||||
|
||||

|
||||
|
||||
### [AI创业新典范:Monica.im如何用浏览器插件撬动商业价值?| 万字长文](<https://mp.weixin.qq.com/s/tfQWfHaYq56PcWCPvGsoOA>)
|
||||
|
||||
这篇公众号的文章详细地介绍了 Monica.im,主要内容如下:
|
||||
|
||||
1. 是什么以及用户对它的评价
|
||||
2. 研究 Monica 的成功秘诀
|
||||
3. Monica 的未来方向
|
||||
|
||||
可以阅读一下,从中学习参考该团队的经验。
|
||||
|
||||
### [GPT-4 Architecture, Infrastructure, Training Dataset, Costs, Vision, MoE](<https://www.semianalysis.com/p/gpt-4-architecture-infrastructure>)
|
||||
|
||||

|
||||
|
||||
本文对 OpenAI 的工程能能力做出了很高的评价,作者认为:“OpenAI 最持久的护城河是,他们的产品拥有最广的使用率、领先的工程人才,并且可以继续在未来的模型中领先于其他模型。”
|
||||
|
||||
然后对“模型架构、训练基础架构、推理基础架构、参数数量、训练数据集组成、标记数量、层数、并行策略、多模态视觉适应、不同工程折衷背后的思考过程、独特的实施技术,以及他们如何缓解与巨型模型推理相关的一些最大瓶颈。”等方面进行了详细的分析。
|
||||
|
||||
如果你想了解 GPT-4 的一些细节,可以阅读一下这篇文章。
|
||||
|
||||
### [ChatGPT Prompt Engineering](<https://www.promptingguide.ai/models/chatgpt>)
|
||||
|
||||
这个网站主要与提示词工程有关,它介绍了大模型相关的基础知识,并且根据各种维度(例如技术、应用、模型、风险与误用、大模型研究成果以及各种工具等)分别介绍了相关的技巧。
|
||||
|
||||
在近期的更新中,他们新增了针对不同模型的提示词技巧的教程。
|
||||
|
||||

|
||||
|
||||
与此同时,这也是一个开源的教程,如果感兴趣,也可以参与到这个项目中来。
|
||||
|
||||
[github地址](<https://github.com/dair-ai/Prompt-Engineering-Guide>)
|
||||
|
||||
### [fuxiang对于【devv.ai团队分享的RAG原理】的再整理](<https://twitter.com/fuxiangPro/status/1747242297975062666>)
|
||||
|
||||

|
||||
|
||||
[devv.ai团队分享的RAG原理原文](<https://twitter.com/Tisoga/status/1731478506465636749>)
|
||||
|
||||
### [dify的博客](<https://dify.ai/blog>)
|
||||
|
||||

|
||||
|
||||
博客的 Developer 栏目会介绍一 Dify 的技术实现,例如 [他们是如何提升RAG精确度的](<https://dify.ai/blog/hybrid-search-rerank-rag-improvement>)。
|
||||
|
||||

|
||||
|
||||
### [艾瑞咨询:2023年AIGC场景应用展望研究报告](<https://waytoagi.feishu.cn/record/VQtLrDQWeehexvcTWxJcmSjMnPc>)
|
||||
|
||||

|
||||
|
||||
该报告从技术角度、产业角度、经典企业案例、优秀 AI 场景应用四个方面对 2023 年的 AIGC 场景做出了总结。
|
||||
|
||||
### [Prompt技巧](<https://weibo.com/1727858283/Naqzz5TOc#comment>)
|
||||
|
||||

|
||||
|
||||
这篇微博汇总了 Prompt 的基础、进阶、高级技巧,并且推荐了几个 Prompt 开源项目。
|
||||
|
||||
- Prompt 提示工程指南:网页链接
|
||||
- Prompt 编写模式:<http://github.com/prompt-engineering/prompt-patterns>
|
||||
- Awesome ChatGPT Prompts:
|
||||
<https://github.com/f/awesome-chatgpt-prompts>
|
||||
<https://github.com/PlexPt/awesome-chatgpt-prompts-zh>
|
||||
- Learn Prompt:<https://www.learnprompt.pro/>
|
||||
|
||||
### 论文《表格链:推理链中不断演变的表格,促进对表格的理解》
|
||||
|
||||
Chain-of-Table: Evolving Tables in the Reasoning Chain for Table Understanding
|
||||
|
||||
[微博地址](<https://weibo.com/1727858283/4988866724102248?wm=3333_2001&from=10DC293010&sourcetype=weixin&s_trans=7796753876_4988866724102248&s_channel=4>)
|
||||
|
||||

|
||||
|
||||
[论文地址](<https://arxiv.org/abs/2401.04398v1>)
|
||||
|
||||
### [推荐阅读:文本分割的五个层次](<https://weibo.com/1727858283/4989256960836646?wm=3333_2001&from=10DC293010&sourcetype=weixin&s_trans=2100889127_4989256960836646&s_channel=4>)
|
||||
|
||||

|
||||
|
||||
[译文](<https://baoyu.io/translations/rag/5-levels-of-text-splitting?continueFlag=61db114b5bb3eda119c3b0a42a3f0791>)
|
||||
|
||||
[视频](<https://www.youtube.com/watch?v=8OJC21T2SL4>)
|
||||
|
||||
[Notebook](<https://github.com/FullStackRetrieval-com/RetrievalTutorials/blob/main/5_Levels_Of_Text_Splitting.ipynb?continueFlag=61db114b5bb3eda119c3b0a42a3f0791>)
|
||||
|
||||
### [温故而知新:大模型RAG问答研发的7个失分点及MOE专家组合模型的若干浅析](<https://mp.weixin.qq.com/s/1p2VtmU-ClPQP1jEchGpGQ>)
|
@ -1,70 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2024-W03-应用推荐篇
|
||||
slug: 2024-W03-application-recommendations
|
||||
category: 周报
|
||||
description: >-
|
||||
2024 年第 3 周应用推荐包括:1. [cmd-wrapped](<https://github.com/YiNNx/cmd-wrapped>),一个在
|
||||
GitHub 上开源的项目,详细信息可通过推特链接查看。2. [Input Source
|
||||
Pro](<https://inputsource.pro/zh-CN>),一款自动切换输入法并提供适时提示的工具,提升输入效率。3.
|
||||
[outline](<https://github.com/outline/outline>),专为成长型团队设计的知识库应用,支持实时协作和
|
||||
Markdown,官网为 [getoutline.com](<https://www.getoutline.com/>)。4. 一个帮助用户一次性提交到
|
||||
100 多个目录站的服务,应用地址为 [affordhunt.com](<https://www.affordhunt.com/>)。5.
|
||||
[whimsical](<https://whimsical.com/>),一款画图工具,详细信息可通过推特链接获取。这些应用覆盖了从输入法优化到团队协作工具,再到图形设计的多方面需求。
|
||||
date: 2024-06-26T10:26:54.034Z
|
||||
finished: true
|
||||
tags:
|
||||
- 画图
|
||||
- 目录站
|
||||
- 输入法
|
||||
- 应用推荐
|
||||
- 知识库
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2024-W03- 应用推荐篇
|
||||
|
||||
## [cmd-wrapped](<https://github.com/YiNNx/cmd-wrapped>)
|
||||
|
||||
[推特地址](<https://twitter.com/hitw93/status/1745801804204666924?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
|
||||

|
||||
|
||||
## [Input Source Pro](<https://inputsource.pro/zh-CN>)
|
||||
|
||||
自动切换输入法加上适时的提示,让每一次输入都游刃有余。
|
||||
|
||||

|
||||
|
||||
## [outline 一个知识库应用](<https://github.com/outline/outline>)
|
||||
|
||||
为成长型团队提供最快的知识库。美观、实时协作、功能丰富且兼容 Markdown。
|
||||
|
||||

|
||||
|
||||
[官网地址](<https://www.getoutline.com/>)
|
||||
|
||||
特点:
|
||||
|
||||
- 一个极快的编辑器,具有 Markdown 支持、斜杠命令、交互式嵌入等。.....
|
||||
- 与团队成员实时协作处理文档。评论和话题使对话井井有条。
|
||||
- 将文档嵌套在层次结构中,自动构建反向链接网络,并在几毫秒内搜索所有内容。
|
||||
- 在不离开聊天的情况下搜索、共享和提问您的文档。文档更新时,将通知发布到频道。
|
||||
- 通过链接公开共享文档,或与团队私下共享文档。使用您自己的品牌颜色、徽标和域名。
|
||||
|
||||
## [一个帮你一次提交 100 多个目录站的目录站](<https://twitter.com/readyfor2025/status/1747297388476395636?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
|
||||
|
||||
[应用地址](<https://www.affordhunt.com/>)
|
||||
|
||||

|
||||
|
||||
## [画图工具 - whimsical](<https://whimsical.com/>)
|
||||
|
||||
[推特地址](<https://twitter.com/blackanger/status/1747582658052522089?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
|
||||
|
||||

|
@ -1,97 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2024-W03-推荐阅读篇
|
||||
slug: 2024-W03-recommended-readings
|
||||
category: 周报
|
||||
description: >-
|
||||
本周推荐阅读包括多个领域的精选内容:从[r/SideProject](<https://www.reddit.com/r/SideProject/>)的创意项目分享,到[推荐一本行动之书,醍醐灌顶](<https://twitter.com/hiyuekun/status/1747085105037021670?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)的启发性书籍推荐;从[玩转苹果流量生态:解锁App流量新密码](<https://x.com/liuyi0922/status/1747792720750682143?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)的市场策略,到[科技爱好者周刊(第
|
||||
286
|
||||
期):蓝色指示灯的解决方案](<https://www.ruanyifeng.com/blog/2024/01/weekly-issue-286.html?continueFlag=61db114b5bb3eda119c3b0a42a3f0791>)的技术讨论。此外,还有关于[fuxiang对于【devv.ai团队分享的RAG原理】的再整理](<https://twitter.com/fuxiangPro/status/1747242297975062666>)的深度分析,以及[HackerNews
|
||||
趋势, Github 趋势, Google
|
||||
趋势](<https://chasetrend.news/zh>)的最新动态。这些内容覆盖了技术、市场、个人成长等多个方面,适合各类读者深入探索。
|
||||
date: 2024-06-26T10:26:54.035Z
|
||||
finished: true
|
||||
tags:
|
||||
- 网络安全,信息聚合
|
||||
- action书
|
||||
- App流量生态
|
||||
- sideproject
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2024-W03- 推荐阅读篇
|
||||
|
||||
## [r/SideProject](<https://www.reddit.com/r/SideProject/>)
|
||||
|
||||

|
||||
|
||||
## [推荐一本行动之书,醍醐灌顶](<https://twitter.com/hiyuekun/status/1747085105037021670?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
|
||||
|
||||

|
||||
|
||||
## [玩转苹果流量生态:解锁App流量新密码](<https://x.com/liuyi0922/status/1747792720750682143?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
|
||||
|
||||

|
||||
|
||||
## [科技爱好者周刊(第 286 期):蓝色指示灯的解决方案](<https://www.ruanyifeng.com/blog/2024/01/weekly-issue-286.html?continueFlag=61db114b5bb3eda119c3b0a42a3f0791>)
|
||||
|
||||
作者:阮一峰
|
||||

|
||||
|
||||

|
||||
|
||||
## [fuxiang对于【devv.ai团队分享的RAG原理】的再整理](<https://twitter.com/fuxiangPro/status/1747242297975062666>)
|
||||
|
||||

|
||||
|
||||
[devv.ai团队分享的RAG原理原文](<https://twitter.com/Tisoga/status/1731478506465636749>)
|
||||
|
||||
## [HackerNews 趋势, Github 趋势, Google 趋势](<https://chasetrend.news/zh>)
|
||||
|
||||

|
||||
|
||||
## [使用自动化工作流聚合信息摄入和输出](<https://reorx.com/blog/sharing-my-footprints-automation/#new-tweet-to-telegram>)
|
||||
|
||||

|
||||
|
||||
作者使用 n8n 来进行信息聚合,并在文中做了详细的介绍,以及 n8n 工作流开源。
|
||||
|
||||
## [Airing -姗姗来迟的 2023 年终总结](<https://blog.ursb.me/posts/summary-2023/>)
|
||||
|
||||

|
||||
|
||||
## [对 React 团队工作经历的思考](<https://gist.github.com/mondaychen/3c530604e44b9cd15e4f69735d99fef4>)
|
||||
|
||||

|
||||
|
||||
[推特地址](<https://twitter.com/monday_chen/status/1740612924740137285?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
|
||||
|
||||
## [CSS 小教程:在网格型选择工具上添加渐变背景](<https://blog.meathill.com/tech/fe/css/css-tutorial-a-grid-select-component-with-multiple-linear-gradient.html>)
|
||||
|
||||

|
||||
|
||||
## [Flutter完整开发实战详解](<https://guoshuyu.cn/home/wx/?continueFlag=61db114b5bb3eda119c3b0a42a3f0791>)
|
||||
|
||||

|
||||
|
||||
## [《Tw93-我的开源成长之旅》](<https://tw93.fun/2024-01-12/open.html>)
|
||||
|
||||

|
||||
|
||||
## [𝗛𝗼𝘄 𝗗𝗡𝗦 𝗪𝗼𝗿𝗸𝘀?-DNS是如何工作的?](<https://twitter.com/milan_milanovic/status/1745796543322435885?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
|
||||
|
||||

|
||||
|
||||
## [从第一天起就在全球范围内稳步发展:Linktree 的故事](<https://startupnation.com/start-your-business/bootstrapped-global-linktree/>)
|
||||
|
||||

|
||||
|
||||
## [API Vs SDK.](<https://twitter.com/alexxubyte/status/1745847854961492384?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
|
||||
|
||||
## [FFmpeg 教程](<https://wklchris.github.io/blog/FFmpeg/>)
|
@ -1,48 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2024-W03-设计篇
|
||||
slug: 2024-W03-design
|
||||
category: 周报
|
||||
description: >-
|
||||
本周设计资源精选包括:AIDesign 提供免费 Logo 设计服务;嘉文钱分享 Blender 和 3D
|
||||
相关教程及作品;阿文推荐可商用的德拉黑体字体;svghub 提供免费 SVG 素材;Orange Free Sounds
|
||||
提供免费声音效果、音乐和循环;以及通过 Framer
|
||||
赚钱的方法。这些资源涵盖了设计、字体、素材和创收等多个方面,为设计师和创意工作者提供了丰富的工具和灵感。
|
||||
date: 2024-06-26T10:26:54.035Z
|
||||
finished: true
|
||||
tags:
|
||||
- 设计 logo
|
||||
- blender
|
||||
- svg
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 2024-W03- 设计篇
|
||||
|
||||
## [AIDesign 免费设计 Logo](<https://ailogo.qq.com/guide/brandname>)
|
||||
|
||||
## [嘉文钱-分享 blender、3d 相关的教程、插件、自己的作品](<https://weibo.com/1774015623/4989689027105782?wm=3333_2001&from=10DC293010&sourcetype=weixin&s_trans=7796753876_4989689027105782&s_channel=4>)
|
||||
|
||||

|
||||
|
||||
## [阿文推荐:德拉黑体 可商用字体](<https://weibo.com/1757693565/NBWrw00hq#comment>)
|
||||
|
||||

|
||||
|
||||
## [svghub 免费 svg 素材](<https://svghub.vercel.app/>)
|
||||
|
||||

|
||||
|
||||
## [Free Sound Effects, Music, Loops | Orange Free Sounds - 免费声音素材](<https://orangefreesounds.com/>)
|
||||
|
||||

|
||||
|
||||
## [通过 framer 赚钱](<https://twitter.com/hxmzaehsan/status/1747562036962181210?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
|
||||
|
||||

|
@ -1,41 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: '2025-01-06'
|
||||
date: 2025-01-06T00:00:00.000Z
|
||||
day_of_week: 星期一
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 工作
|
||||
- 日记
|
||||
- 压力
|
||||
description: null
|
||||
slug: diary-2025-01-06
|
||||
category: 日记
|
||||
date_created: 20250106
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
最近一直都很忙,忙到有时候怀疑自己从上海回成都是否是好的决定。
|
||||
|
||||
但又觉得换了工作后,个人能力确实有提升,眼界也开拓了一些。所以目前仍在纠结阶段,要明确未来的方向得先想清楚我到底要什么,不能再草率做决定了。
|
||||
|
||||
之前也提过,想把那个搁置的项目重新写起来,因为现在也在学 unity 了,靠这个来进一步提升学习的动力是很好的方向。而且前期队友们都做了那么多准备了,感觉没有落地比较可惜。
|
||||
|
||||
我个人的想法是我先做一个框架出来,把流程跑通。资源部分使用文本或者简单的图片占位替代。
|
||||
|
||||
之前在电视,投影仪,ar 眼镜之间纠结,今天试用同事买的 ar 眼镜,有些被劝退了,对于近视人群的佩戴体验不是很好。戴上去比较费劲,且容易反光。
|
||||
|
||||
最近的状态有点像高三,从早忙到晚,专注时间比较长,回到家脑子里还有点兴奋
|
||||
|
||||
很喜欢黑客松的感觉,外部压力下短时间内快速实现想法,动力满满
|
||||
|
||||
## 备忘
|
||||
|
||||
dhcp 切换器
|
||||
|
||||
新版布局
|
@ -1,101 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2025-02-24 星期一
|
||||
date: 2025-02-24T00:00:00.000Z
|
||||
day_of_week: 星期一
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 插件
|
||||
- 日记
|
||||
- dicom
|
||||
- obsidian
|
||||
- thino
|
||||
description: null
|
||||
slug: diary-2025-02-24
|
||||
category: 日记
|
||||
date_created: 20250224
|
||||
date_modified: 20250302
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
## 资料收集
|
||||
|
||||
0:38 - 📖《Early Retirement Extreme》
|
||||
|
||||
4:17 - 📖《权力的 48 条法则》
|
||||
|
||||
6:05 - 📖《创造力的修行》
|
||||
|
||||
10:16 - 📖《SHOW YOUR WORK》
|
||||
|
||||
11:40 - 📖《非暴力沟通》
|
||||
|
||||
## 打卡
|
||||
|
||||
``` dataview
|
||||
list file.ctime
|
||||
from ""
|
||||
where dateformat(file.ctime, "yyyy-MM-dd") = "2025-02-24"
|
||||
sort file.ctime desc
|
||||
```
|
||||
|
||||
## memos
|
||||
|
||||
- 14:59
|
||||
最应该反复阅读的一句话:
|
||||
|
||||
「能够对抗消极的不是积极,而是专注;能够对抗焦虑的不是安慰,而是具体;能够对抗迷茫的不是方法,而是行动。」
|
||||
|
||||
- 22:23
|
||||
|
||||
想要自己养成的习惯:
|
||||
|
||||
在床上不要用电脑,有需要用到电脑的场景,请你马上起身去到电脑桌前面
|
||||
|
||||
- 22:31 电脑还是不能太长时间不关机
|
||||
- 22:48
|
||||
obsidian-reveal-active-file 插件与 thino 冲突
|
||||
|
||||
同时开启会出现 thino 和之前激活的 tab 之间反复切换的情况
|
||||
|
||||
两者只能开启一个才正常
|
||||
|
||||
另外如果 obsidian 的也支持 vscode 一样的二分查找法排查插件问题就好了,这样就不用手动一个个去点击关闭。
|
||||
|
||||
(不过想到一个方法是用代码来手动控制插件启用情况,不过这样需要手动运行和重启 obsidian)
|
||||
|
||||
#obsidian #thino #插件
|
||||
|
||||

|
||||
|
||||
- 23:01
|
||||
1 月份都一直在用 deepseek v3 当翻译 api,便宜又好用
|
||||
|
||||

|
||||
|
||||
2 月份几乎没调通过 😭
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
- 23:06 我是真的看不懂老牛说话
|
||||
- 23:21
|
||||
#dicom
|
||||
之前一直都想错了方向,维度指的并不是 rgb,rgba
|
||||
|
||||

|
||||
|
||||
- 23:24
|
||||
备忘一下
|
||||
|
||||
手表无法充电大概是因为插头不对或者电压不对
|
||||
|
||||
- 23:28 超级讨厌那种动不动就震惊吊打失业已死的博主的
|
@ -1,53 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2025-02-25 星期二
|
||||
date: 2025-02-25T00:00:00.000Z
|
||||
day_of_week: 星期二
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: null
|
||||
slug: diary-2025-02-25
|
||||
category: 日记
|
||||
date_created: 20250225
|
||||
date_modified: 20250302
|
||||
---
|
||||
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
- [ ] [[dicom压缩 jpeg2000 1]]
|
||||
- [ ] [[oss 上传 1]]
|
||||
|
||||
|
||||
|
||||
|
||||
## memos
|
||||
|
||||
- 12:06
|
||||
原来 deepseekr1 的提示词是公开的
|
||||
这么看也不复杂
|
||||
|
||||
https://github.com/deepseek-ai/DeepSeek-R1#official-prompts
|
||||
|
||||

|
||||
|
||||
- 12:08 就这么大的池子 像个宝一样盯着也是挺搞笑的
|
||||
- 13:46 我是玻璃心😭
|
||||
- 19:27
|
||||
最近喜欢坐地铁通勤
|
||||
回去的路上还能吃点路边摊
|
||||
- 19:54 不吃火锅就吃烤匠 这个宣传语好洗脑
|
||||
- 20:57 bun 还是省心的
|
||||
- 23:44 为什么就这么让人不省心
|
||||
- 23:56
|
||||
做什么都觉得挺无聊的
|
||||
该让自己吃点苦了
|
||||
- 23:56
|
||||
有什么事情是躺在床上也能做
|
||||
然后对自己有帮助的或者算是有意义产出的
|
@ -1,70 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2025-02-27 星期四
|
||||
date: 2025-02-27T00:00:00.000Z
|
||||
day_of_week: 星期四
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 笔记软件
|
||||
- 工作流
|
||||
- 前端
|
||||
- 日记
|
||||
- 写作
|
||||
- gingko
|
||||
- Milanote
|
||||
- obsidian
|
||||
description: null
|
||||
slug: diary-2025-02-27
|
||||
category: 日记
|
||||
date_created: 20250227
|
||||
date_modified: 20250307
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## memos
|
||||
|
||||
- 00:38 重要时刻 iphone 发热卡死的话真的很急
|
||||
- 10:52
|
||||
感觉 cherry studio 的设计会比 chatwise 更好
|
||||
而且它是开源的
|
||||
- 11:01
|
||||

|
||||
|
||||

|
||||
|
||||
这个网站的设计好好看
|
||||
|
||||
[Stripe Press — Ideas for progress](<https://press.stripe.com/>)
|
||||
|
||||
- 14:40
|
||||
觉得 arc 或者很多浏览器都不支持很完美的插件同步
|
||||
这一点还挺可惜的
|
||||
- 14:41 Yak shaving 是一种 adhd 症状也说不定
|
||||
- 14:46 如何实现比较好的字段转化(映射) #前端
|
||||
- 23:47
|
||||
使用 milanote 规划的输入输出工作流 希望可以实践起来
|
||||
|
||||
大体思路社交平台作为最随意的入口,通过 n8n + rss 定时获取内容调接口写入到 raindrop 和 子弹笔记里面(目前用 thino 比较多),然后用 milanote 筛选一层,然后记录比较详细的个人的脑洞和想法,然后输出为项目或者企划,做进一步详细规划。
|
||||
|
||||
如果输出的形式是项目的话,就按照项目管理的形式去走
|
||||
|
||||
如果输出的形式是长文,那么还是放到 obsidian 里面去写(搭配 lineage 插件),最后 git 提交后触发 github actions 部署到 cloudflare,另外如果要录视频就在长文的基础上改一版视频稿。
|
||||
|
||||
---
|
||||
|
||||
我个人感觉主动筛选这一层比较重要,如果碎片化的记录太多或者随手收集的东西太多,其实不容易留下印象,有效的信息太少了。
|
||||
|
||||
#Milanote #工作流
|
||||
|
||||

|
||||
|
||||

|
@ -1,135 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2025-02-28 星期五
|
||||
date: 2025-02-28T00:00:00.000Z
|
||||
day_of_week: 星期五
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: null
|
||||
slug: diary-2025-02-28
|
||||
category: 日记
|
||||
date_created: 20250228
|
||||
date_modified: 20250307
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## memos
|
||||
|
||||
- 11:17
|
||||
其实可以写一个面向于粉丝的教程
|
||||
|
||||

|
||||
|
||||
- 14:29 希望 cherry studio 导入目录的时候支持忽略文件
|
||||
- 15:37
|
||||
不能直接通过 `git diff > 剪贴板` 这样的命令实现,因为重定向 `>` 只能用于文件。但是,您可以使用一些工具和命令组合来实现将 `git diff` 的输出直接复制到剪贴板,而无需先写入文件。
|
||||
|
||||
以下是几种常见的方法,适用于不同的操作系统:
|
||||
|
||||
**1. 使用 `clip` (Windows)**
|
||||
|
||||
Windows 系统自带 `clip` 命令,可以将标准输入的内容复制到剪贴板。
|
||||
|
||||
```bash
|
||||
git diff | clip
|
||||
```
|
||||
|
||||
**2. 使用 `pbcopy` (macOS)**
|
||||
|
||||
macOS 系统自带 `pbcopy` 命令,可以将标准输入的内容复制到剪贴板。
|
||||
|
||||
```bash
|
||||
git diff | pbcopy
|
||||
```
|
||||
|
||||
**3. 使用 `xclip` 或 `xsel` (Linux)**
|
||||
|
||||
Linux 系统通常没有自带的剪贴板工具,需要安装 `xclip` 或 `xsel`。
|
||||
|
||||
- **`xclip`**:
|
||||
|
||||
```bash
|
||||
git diff | xclip -selection clipboard
|
||||
```
|
||||
|
||||
或者,如果 `xclip` 不可用:
|
||||
|
||||
```bash
|
||||
git diff | xclip -in -selection clipboard
|
||||
```
|
||||
|
||||
- **`xsel`**:
|
||||
|
||||
```bash
|
||||
git diff | xsel --clipboard --input
|
||||
```
|
||||
|
||||
或者简写:
|
||||
|
||||
```bash
|
||||
git diff | xsel -bi
|
||||
```
|
||||
|
||||
**安装 `xclip` 或 `xsel` (Linux)**
|
||||
|
||||
如果您的 Linux 系统上没有安装 `xclip` 或 `xsel`,可以使用以下命令安装:
|
||||
|
||||
- **Debian/Ubuntu:**
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install xclip
|
||||
```
|
||||
|
||||
或者
|
||||
|
||||
```bash
|
||||
sudo apt-get install xsel
|
||||
```
|
||||
|
||||
- **Fedora/CentOS/RHEL:**
|
||||
|
||||
```bash
|
||||
sudo yum install xclip
|
||||
```
|
||||
|
||||
或者
|
||||
|
||||
```bash
|
||||
sudo yum install xsel
|
||||
```
|
||||
|
||||
**总结**
|
||||
|
||||
根据您的操作系统选择相应的命令,并将其添加到您的 shell 配置文件(例如 `.bashrc` 或 `.zshrc`)中,以便您可以方便地使用它。例如,您可以创建一个别名:
|
||||
|
||||
```bash
|
||||
alias gdiffclip='git diff | pbcopy' # macOS
|
||||
alias gdiffclip='git diff | clip' # Windows
|
||||
alias gdiffclip='git diff | xclip -selection clipboard' # Linux (xclip)
|
||||
alias gdiffclip='git diff | xsel -bi' # Linux (xsel)
|
||||
```
|
||||
|
||||
然后,您就可以使用 `gdiffclip` 命令将 `git diff` 的输出直接复制到剪贴板。
|
||||
|
||||
由于题目没有提供操作系统信息,以上提供了各种操作系统下的方案,请根据实际情况选择。
|
||||
|
||||
- 17:10
|
||||
- 17:58
|
||||

|
||||
|
||||
调用 grop 调不通,然后发现官方 dev console 也直接 404 了
|
||||
|
||||

|
||||
|
||||

|
@ -1,54 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2025-03-04 星期二
|
||||
date: 2025-03-04T00:00:00.000Z
|
||||
day_of_week: 星期二
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: null
|
||||
slug: diary-2025-03-04
|
||||
category: 日记
|
||||
date_created: 20250304
|
||||
date_modified: 20250307
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## memos
|
||||
|
||||
- 13:59
|
||||
已经把 cherrystudio 里面的所有的默认模型改成 gemini 2 flash 了
|
||||
|
||||

|
||||
|
||||
- 14:01
|
||||
[Developer Roadmaps - roadmap.sh](<https://roadmap.sh/>)
|
||||
|
||||
学习路线图
|
||||
|
||||
- 14:22
|
||||
Groq 的 dev console 以及 api 调用报 404 的解决方法:
|
||||
使用非香港地区的代理
|
||||
- 14:23
|
||||
Zen browser 如果出现了一些奇怪的网络问题,请去: `about:preferences#searchResults` 开启代理。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
- 14:26
|
||||
[LINUX DO - 新的理想型社区](<https://linux.do/>)
|
||||
|
||||
感觉是个不错的社区一些有用的解决方法都是从这里找到的
|
||||
|
||||
- 18:35 满怀期待等来的是失望真的会哭
|
||||
- 19:06 其实感觉这些 vscode like ide 体验不如 vscode 的一点是不支持 profile 同步
|
@ -1,61 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2025-03-05 星期三
|
||||
date: 2025-03-05T00:00:00.000Z
|
||||
day_of_week: 星期三
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: null
|
||||
slug: diary-2025-03-05
|
||||
category: 日记
|
||||
date_created: 20250305
|
||||
date_modified: 20250307
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## memos
|
||||
|
||||
- 10:16
|
||||
坚果云免费版对于 cherry studio 频繁同步的场景不太够用
|
||||
感觉得找个别的支持 webdav 的网盘
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
- 10:37
|
||||
其实一直分不清楚 last name, first name
|
||||
有什么记忆的方法吗
|
||||
**Last name 是姓, First name 是名**
|
||||
- 13:52
|
||||
如果视频没有泰语字幕
|
||||
Huggingface 的 whisper 可以直接输入油管的链接
|
||||

|
||||
|
||||
或者可以先下载音频、视频转音频。
|
||||
|
||||
另外 groq 有免费的 whisper 模型可以使用,加速后转译成字幕更加快速。
|
||||
|
||||

|
||||
|
||||
8 MB 超限了切分一下就可以(怕切到中间了可以 lossless cut 看着波形图剪,最后可以导出带有 index 后缀的音频)
|
||||
|
||||
还是不满意再用 whisperX, 功能更丰富,识别更准确(得本地下载 whisper 模型 )
|
||||

|
||||
|
||||

|
||||
|
||||
- 14:14
|
||||
- [ ] 写一个油猴脚本快速切换微博的版本
|
@ -1,57 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 2025-03-06 星期四
|
||||
date: 2025-03-06T00:00:00.000Z
|
||||
day_of_week: 星期四
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
description: null
|
||||
slug: diary-2025-03-06
|
||||
category: 日记
|
||||
date_created: 20250306
|
||||
date_modified: 20250306
|
||||
---
|
||||
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
- [ ] 性能优化
|
||||
- [ ] OSS 加密算法的 key 重新生成一下
|
||||
- [ ] 检查一下在线模式下的直接开始手术
|
||||
- [ ] Vue flow 练习
|
||||
|
||||
|
||||
|
||||
|
||||
## memos
|
||||
|
||||
- 10:23 如何配置 lint 让 vscode 编辑 md 的时候实现在英文的前后有空格。使用 pangu 插件
|
||||
- 15:01
|
||||
Picgo + cloudflare R2 报错
|
||||
|
||||
[renmu123/obsidian-image-auto-upload-plugin: auto upload image with picgo](<https://github.com/renmu123/obsidian-image-auto-upload-plugin>)
|
||||
|
||||
```
|
||||
\Uncaught TypeError: Cannot read properties of null (reading 'getValue')
|
||||
at Helper. GetValue (plugin: obsidian-image-auto-upload-plugin:6133:23)
|
||||
at imageAutoUploadPlugin. UploadAllFile (plugin: obsidian-image-auto-upload-plugin:6585:35)
|
||||
at Object. CheckCallback (plugin: obsidian-image-auto-upload-plugin:6416:30)
|
||||
at pW (app. Js:1:1967020)
|
||||
at t.onChooseItem (app. Js:1:2614262)
|
||||
at t.onChooseSuggestion (app. Js:1:1796358)
|
||||
at t.selectSuggestion (app. Js:1:1795828)
|
||||
at e.useSelectedItem (app. Js:1:1378470)
|
||||
at Object. Func (app. Js:1:1375868)
|
||||
at e.handleKey (app. Js:1:773817)
|
||||
```
|
||||
|
||||
结果发现只是因为 token 到期了
|
||||

|
||||
|
||||
- 15:09 把 cursor 的订阅停掉了,试用一下免费的 copilot
|
@ -1,38 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
slug: fragmented-notes-2025-02-19-21-11-25
|
||||
tags:
|
||||
- 环境变量
|
||||
- 碎片
|
||||
- vite
|
||||
description: >-
|
||||
为了防止环境变量泄漏,Vite 提供了一个机制,即只有以 VITE_为前缀的变量才会被暴露给经过 Vite
|
||||
处理的代码。这样可以有效地控制变量的泄露,避免意外的安全问题。
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
title: 241029 1144 vite环境变量
|
||||
date: 2025-02-19T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
category: 碎片
|
||||
---
|
||||
|
||||
为了防止意外地将一些环境变量泄漏到客户端,只有以 `VITE_` 为前缀的变量才会暴露给经过 vite 处理的代码。例如下面这些环境变量:
|
||||
|
||||
``` .env
|
||||
VITE_SOME_KEY=123
|
||||
DB_PASSWORD=foobar
|
||||
```
|
||||
|
||||
只有 `VITE_SOME_KEY` 会被暴露为 `import.meta.env.VITE_SOME_KEY` 提供给客户端源码,而 `DB_PASSWORD` 则不会。
|
||||
|
||||
``` js
|
||||
console.log(import.meta.env.VITE_SOME_KEY) // "123"
|
||||
console.log(import.meta.env.DB_PASSWORD) // undefined
|
||||
```
|
||||
|
||||
[环境变量和模式 | Vite 官方中文文档](<https://cn.vite.dev/guide/env-and-mode#env-variables>)
|
@ -1,39 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
date_created: 20250131
|
||||
date_modified: 20250304
|
||||
slug: blender-macos-steam-version-limitations
|
||||
tags:
|
||||
- Apple Silicon
|
||||
- Blender
|
||||
- macOS
|
||||
- Software Compatibility
|
||||
- Steam
|
||||
description: >-
|
||||
Important considerations when installing Blender via Steam on macOS for Apple
|
||||
Silicon devices
|
||||
title: Blender on macOS - Steam Version Limitations for Apple Silicon Devices
|
||||
date: 2025-01-31T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
finished: true
|
||||
category: 3D Modeling
|
||||
---
|
||||
|
||||
## 1. Steam Version Benefits
|
||||
|
||||
Key advantages of using Steam version:
|
||||
|
||||
- Automatic updates
|
||||
- Usage time tracking
|
||||
|
||||
## 2. macOS Version Considerations
|
||||
|
||||

|
||||
|
||||
- Steam provides **Intel-chip compatible version** only
|
||||
- If you are Apple Silicon user, the performance may be affected
|
@ -1,87 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: ChainForge简单介绍
|
||||
date: 2024-05-22T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 工具
|
||||
- chainforge
|
||||
- llm
|
||||
finished: true
|
||||
category: AI
|
||||
slug: chainforge-intro
|
||||
description: >-
|
||||
ChainForge is a visual programming environment designed for prompt
|
||||
engineering, allowing users to evaluate and test prompts for large language
|
||||
models (LLMs). It supports various use cases such as assessing prompt
|
||||
effectiveness, conducting adversarial testing, and evaluating model
|
||||
performance. The platform also facilitates the customization of LLMs through
|
||||
its documentation on adding custom providers. Users can find practical
|
||||
examples and tutorials on the ChainForge website and GitHub repository,
|
||||
including a case study on Twitter and a video demonstrating LLM prompt
|
||||
injection attacks and vulnerability testing. Additionally, ChainForge is
|
||||
working on enhancing its functionality by enabling internal and proxy network
|
||||
environments.
|
||||
NotionID-notionnext: 40ec4f8d-2030-4ce1-b8c7-c1c9f56ef55b
|
||||
link-notionnext: 'https://kazoottt.notion.site/ChainForge-40ec4f8d20304ce1b8c7c1c9f56ef55b'
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# ChainForge 简单介绍
|
||||
|
||||

|
||||
|
||||
官网:
|
||||
|
||||
[ChainForge: A visual programming environment for prompt engineering](<https://chainforge.ai/>)
|
||||
|
||||
github 地址:
|
||||
|
||||
[GitHub - ianarawjo/ChainForge: An open-source visual programming environment for battle-testing prompts to LLMs.](<https://github.com/ianarawjo/ChainForge>)
|
||||
|
||||
## 简介
|
||||
|
||||

|
||||
|
||||
## 使用场景
|
||||
|
||||
评估提示词
|
||||
|
||||
攻击性测试
|
||||
|
||||
评估模型
|
||||
|
||||
评估某项指标
|
||||
|
||||
## 实践
|
||||
|
||||

|
||||
|
||||
这两个例子单独拿出来讲
|
||||
|
||||
## TODO
|
||||
|
||||
1. 内部环境运行
|
||||
2. 内网环境 proxy [Add Custom Providers - ChainForge Documentation](<https://chainforge.ai/docs/custom_providers/> 提供了自定义 llm
|
||||
|
||||
## 参考
|
||||
|
||||
使用案例:
|
||||
|
||||
[X](<https://twitter.com/9hills/status/1772467763165958602>)
|
||||
|
||||
自动化 Prompts
|
||||
|
||||
[\[2402.10949\] The Unreasonable Effectiveness of Eccentric Automatic Prompts](<https://arxiv.org/abs/2402.10949>)
|
||||
|
||||
相关的视频
|
||||
|
||||
[LLM Prompt Injection Attacks & Testing Vulnerabilities With ChainForge - YouTube](<https://www.youtube.com/watch?v=x1_uEnoxvNs>)
|
||||
|
||||
使用 ChainForge 进行 LLM 提示注入攻击和漏洞测试
|
@ -1,93 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: Perplexity系列产品
|
||||
date: 2024-09-04T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 播客
|
||||
- 搜索引擎
|
||||
- AI
|
||||
- Perplexity
|
||||
- Playground
|
||||
finished: true
|
||||
category: 软件
|
||||
slug: perplexity-productions-intro
|
||||
description: 概述Perplexity系列产品,包括搜索引擎、Playground和播客,重点介绍其功能和区别。
|
||||
NotionID-notionnext: ae2fba46-af30-4bd5-b6d0-fe751c162800
|
||||
link-notionnext: 'https://kazoottt.notion.site/01-Perplexity-ae2fba46af304bd5b6d0fe751c162800'
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# Perplexity 系列产品
|
||||
|
||||
## 产品 1 Perplexity 搜索引擎
|
||||
|
||||

|
||||
|
||||
<https://www.perplexity.ai/>
|
||||
|
||||
### 普通和 Pro 的区别
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
### 频繁人工验证怎么办
|
||||
|
||||

|
||||
|
||||
[Perplexity - AI Search - Chrome 应用商店](<https://chromewebstore.google.com/detail/perplexity-ai-search/bnaffjbjpgiagpondjlnneblepbdchol>)
|
||||
|
||||

|
||||
|
||||
### 同类别产品
|
||||
|
||||
[Devv AI](<https://devv.ai/>) (编程向)
|
||||
|
||||

|
||||
|
||||
## 产品 2 Perplexity Playground
|
||||
|
||||
体验最新大模型
|
||||
|
||||
<https://labs.perplexity.ai/>
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
[Introducing Llama 3.1: Our most capable models to date](<https://ai.meta.com/blog/meta-llama-3-1/>)
|
||||
|
||||

|
||||
|
||||
[Changelog - Perplexity](<https://docs.perplexity.ai/changelog/changelog#introducing-new-and-improved-sonar-models>)
|
||||
|
||||

|
||||
|
||||
## 产品 3 Perplexity 播客
|
||||
|
||||
[资讯汇总 Discover](<https://www.perplexity.ai/discover>)
|
||||
|
||||

|
||||
|
||||
Perplexity 和 eleventlab 合作,把 Discover 的内容转成播客了。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
很适合练习听力以及了解科技资讯。地址:[Discover Daily by Perplexity](<https://discoverdaily.ai/>)
|
||||
|
||||
[spotify](<https://open.spotify.com/episode/1CaSWrm7uUAOkaKjE9KI47?si=WPbA0x73QkGEPm-DFh4big>)
|
||||
|
||||
[pca.st](<https://pca.st/03qazv0d>)
|
||||
|
||||
支持 rss
|
||||
|
||||

|
@ -1,59 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: >-
|
||||
Possible Causes and Solutions for Focusee Switching System Audio to Speaker
|
||||
Playback forcibly
|
||||
date: 2024-05-25T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- BlackHole2ch
|
||||
- focusee
|
||||
- obs
|
||||
- VirtualSoundCard
|
||||
finished: true
|
||||
slug: >-
|
||||
possible-causes-and-solutions-for-focusee-switching-system-audio-to-speaker-playback-forcibly-en
|
||||
description: >-
|
||||
如果你想使用Focusee录制系统音,首先需要安装Gemoo Speaker,安装后可以将输出设备更改为Gemoo
|
||||
Speaker,并用它录制系统音。但是,注意不要在安装Gemoo
|
||||
Speaker的过程中也安装BlackHole2ch,这可能会导致无法正确录制音频。解释安装BlackHole2ch的方法是删除与其相关的文件夹。
|
||||
如果你需要录制系统音时,可以使用OBS。首先,添加屏幕捕获源,然后选择是否要录制桌面音或应用音。
|
||||
如果你需要录制系统音时,可以使用OBS。首先,添加屏幕捕获源然后选择是否要录制桌面音或应用音。
|
||||
NotionID-notionnext: 80f19b4c-d207-45a0-bbbb-39641a9dc330
|
||||
link-notionnext: >-
|
||||
https://kazoottt.notion.site/Possible-Causes-and-Solutions-for-Focusee-Switching-System-Audio-to-Speaker-Playback-forcibly-80f19b4cd20745a0bbbb39641a9dc330
|
||||
category: 软件
|
||||
date_created: 20241202
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# Possible Causes and Solutions for Focusee Switching System Audio to Speaker Playback Forcibly
|
||||
|
||||
On macOS, when I wanted to use Focusee to record system audio, I followed its guide to install Gemoo Speaker.
|
||||
|
||||
Although switching the output device to Gemoo Speaker allowed me to record the system audio, it played the sound directly through the speakers.
|
||||
|
||||
Later, I found out that it was because I had installed BlackHole2ch. After uninstalling this virtual sound card, Focusee was able to record the sound through the headphones properly using Gemoo Speaker.
|
||||
|
||||
Uninstallation method:
|
||||
|
||||
Navigate to the folder `/Library/Audio/Plug-Ins/HAL` and delete the corresponding BlackHole2ch folder.
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
By the way, the reason I installed BlackHole2ch was to record system audio during screen recording or live streaming. Today, I suddenly discovered that OBS now directly supports recording system audio.
|
||||
|
||||
Here's how to do it:
|
||||
|
||||
1. Click the add button below the sources and select macOS Screen Capture.
|
||||

|
||||
|
||||
2. Choose whether to capture desktop audio or application audio based on your needs.
|
||||

|
@ -1,83 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: Reasons Not to Recommend Purchasing Focusee for macOS Users
|
||||
date: 2024-06-20T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- Focusee
|
||||
- macOS
|
||||
- Recording
|
||||
- Refund
|
||||
- Review
|
||||
- Screen
|
||||
- Software
|
||||
finished: true
|
||||
category: 软件
|
||||
slug: focusee-macos-review-en
|
||||
description: >-
|
||||
An analysis of Focusee's shortcomings on macOS, including severe color
|
||||
discrepancies, slow export speed, and sound card configuration conflicts,
|
||||
along with the author's refund experience.
|
||||
NotionID-notionnext: c692f30c-bcbc-48fd-9739-19e23a3e1e40
|
||||
link-notionnext: >-
|
||||
https://kazoottt.notion.site/Reasons-Not-to-Recommend-Purchasing-Focusee-for-macOS-Users-c692f30cbcbc48fd973919e23a3e1e40
|
||||
date_created: 20241202
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# Reasons Not to Recommend Purchasing Focusee for macOS Users
|
||||
|
||||
## Why I Purchased Focusee
|
||||
|
||||
1. **Need to Record Both Camera and Screen Simultaneously**: Often need to show both myself and the computer screen while recording videos.
|
||||
2. **Need to Use Zoom Function**: Occasionally need to zoom in on specific areas during recording, and Focusee conveniently adds this effect.
|
||||
3. **Supports Both macOS and Windows**: Additionally, there was a discount for purchasing for two devices.
|
||||
|
||||
Based on these three reasons, I purchased Focusee.
|
||||
|
||||
## Why I Don't Recommend It
|
||||
|
||||
### Severe Color Discrepancy
|
||||
|
||||
This is the most serious issue.
|
||||
|
||||
The recorded videos on macOS have significant color discrepancies compared to the actual screen, to the extent that I find it almost unusable. Here's a specific comparison:
|
||||
|
||||

|
||||
|
||||
After discovering this issue, I contacted their team:
|
||||
|
||||
On May 27th, I reported the issue for the first time. They responded that macOS 12.3 and below didn't have this problem, but versions above 12.3 did, and they were looking for a solution.
|
||||
|
||||

|
||||
|
||||
By June 18th, there was still no reply, so I sent another email asking for progress. They replied:
|
||||
|
||||
1. This is an issue caused by higher versions of macOS (but no other screen recording software has such severe color discrepancies).
|
||||
2. Fixing this specific issue might sacrifice other color gamuts in the software.
|
||||
3. The current software configuration provides the best solution for balancing various colors (meaning this issue will not be resolved).
|
||||
|
||||

|
||||
|
||||
### Very Slow Export Speed
|
||||
|
||||
The slowness is quite noticeable. My configuration is a Mac Mini M2 Pro, and whether adding effects to the recorded video or exporting it directly without any changes, the speed is very slow.
|
||||
|
||||
### Sound Card Configuration Conflicts and Lack of Single Application Recording
|
||||
|
||||
Focusee's sound card settings conflict with other virtual sound cards on my system, possibly causing the sound output to be forcibly switched to speakers, and I can't switch back to headphones.
|
||||
|
||||
Issue troubleshooting and solutions: [Possible Causes and Solutions for Focusee Switching System Audio to Speaker Playback forcibly](/notes/possible-causes-and-solutions-for-focusee-switching-system-audio-to-speaker-playback-forcibly-en)
|
||||
|
||||
Moreover, it doesn't support single application sound recording. Competing products like Screen Studio (paid), QuickRecorder (open-source and free), and OBS all support single application sound recording.
|
||||
|
||||
## Refund Experience
|
||||
|
||||
Since they informed me that the color discrepancy issue would not be resolved, and this was a crucial functional defect for me, I decided to request a refund.
|
||||
|
||||
I purchased Focusee from [数码荔枝 x 软件商店 - 专注于分享最新鲜优秀的正版软件](<https://lizhi.shop/>) Taobao store. After contacting customer service to ask if I could get a refund, they processed it quickly and agreed to it without any issues. This was quite a pleasant surprise. I will consider Litchi Digital for similar purchases in the future.
|
@ -1,54 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: __dirname is not defined in ES module scope
|
||||
date: 2024-05-29T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 前端
|
||||
- esm
|
||||
- module
|
||||
- nodejs
|
||||
finished: true
|
||||
category: 前端
|
||||
slug: dirname-is-not-defined-in-es-module-scope
|
||||
NotionID-notionnext: 543bfc66-a416-4704-92be-9a93fed191a8
|
||||
link-notionnext: >-
|
||||
https://kazoottt.notion.site/__dirname-is-not-defined-in-ES-module-scope-543bfc66a416470492be9a93fed191a8
|
||||
description: >-
|
||||
# ES Module 问题:__dirname 不定义 在使用
|
||||
TypeScript创建的ESM文件中,遇到__dirname不定义的问题通常是因为使用了module的语法,应该改为ESM的写法。两种解决方法分别是改为module的写法和改为ESM的写法。
|
||||
## 改为module的写法 在这种方法中需要把import改为require,将后缀从ts改为cts。
|
||||
但这种方式并不推荐,因为它可能会导致文件相对路径的问题。 ## 改为ESM的写法
|
||||
可以通过利用import.meta.url和fileURLToPath函数,获取当前模块的目录路径来解决__dirname不定义的问题。
|
||||
```typescript import { fileURLToPath } from "url" import path from "path" //
|
||||
获取当前模块的目录路径 const __filename = fileURLToPath(import.meta.url) const __dirname
|
||||
= path.dirname(__filename) ``` 这种方法推荐使用,避免了相对路径的问题。
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# __dirname Is not Defined in ES Module Scope
|
||||
|
||||
在 package.json 中的 type = module 的项目中,我创建了一个 ts 文件,类型是 esm 的类型。
|
||||
|
||||
这里的报错是因为我们错误的使用了 module 的语法到 esm 的文件中,要解决这个问题的方法有两种,第一种改为 module,另一种是改为 esm 的写法。
|
||||
|
||||
首先是第一种改为 module 的写法,那就是把 import 改为 require,然后由于我们这里是 module 的项目,所以需要修改一下 ts 文件的后缀 ts 改为 cts。
|
||||
|
||||
一个供参考的例子:[GitHub - shawnsparks/typescript-esm: Explore different usage patterns of ES modules with Typescript](<https://github.com/shawnsparks/typescript-esm>)
|
||||
|
||||
然后是第二种,文件、路径相关的改为 esm 的写法。
|
||||
|
||||
```ts
|
||||
import { fileURLToPath } from "url"
|
||||
import path from "path"
|
||||
|
||||
// 获取当前模块的目录路径
|
||||
const __filename = fileURLToPath(import.meta.url)
|
||||
const __dirname = path.dirname(__filename)
|
||||
```
|
@ -1,36 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: askfm的关停
|
||||
date: 2025-02-05T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 爬虫
|
||||
- askfm
|
||||
finished: false
|
||||
category: 软件
|
||||
slug: askfm-shutdown
|
||||
description: null
|
||||
date_created: 20250205
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
今天翻了一下 todo list, 发现其中有一个是:写 askfm 爬虫
|
||||
|
||||

|
||||
|
||||
于是心血来潮去想去回顾一下 askfm,发现网站已经无法访问了。
|
||||
|
||||

|
||||
|
||||
然后在 reddit 上搜到这个网站在 20241201 的时候关停了
|
||||
|
||||

|
||||
|
||||
突然感觉承载了一些记忆的平台就这样关停了,还是挺可惜的。
|
||||
|
||||
而且如果不及时关注网站发布的公告,可能连最后备份的机会都没有,所有的数据就这样瞬间清空。
|
@ -1,60 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: file-downloader
|
||||
date: 2024-02-18T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 项目
|
||||
- file-downloader
|
||||
- npm包
|
||||
finished: true
|
||||
slug: file-downloader
|
||||
description: >-
|
||||
本文介绍了两个用于文件下载的函数:`downloadFileFromURL` 和
|
||||
`downloadFileFromBlob`。`downloadFileFromURL`
|
||||
函数用于从指定的URL下载文件,可以自定义文件名;`downloadFileFromBlob`
|
||||
函数则用于从Blob对象下载文件,同样支持自定义文件名。这两个函数均来自 `@kzttools/file-downloader`
|
||||
包,该包的NPM地址和GitHub地址均已提供。项目遵循MIT许可证,作者为kazoottt。
|
||||
category: 项目
|
||||
date_created: 20241217
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# File Download
|
||||
|
||||
封装了对于 url 和 blob 类型文件的下载方法。
|
||||
|
||||
## downloadFileFromURL
|
||||
|
||||
```ts
|
||||
function downloadFileFromURL(url: string, filename?: string)
|
||||
```
|
||||
|
||||
url 是网络请求的链接,filename 不是必填,如果填了那么下载文件名称=filename
|
||||
|
||||
## downloadFileFromBlob
|
||||
|
||||
```ts
|
||||
function downloadFileFromBlob(blob: Blob | MediaSource, filename: string)
|
||||
```
|
||||
|
||||
blob 是一个 blob 对象,一般从后端获取,filename 不是必填,如果填了那么下载文件名称=filename
|
||||
|
||||
# 地址
|
||||
|
||||
npm 地址:
|
||||
|
||||
[@kzttools/file-downloader - npm](<https://www.npmjs.com/package/@kzttools/file-downloader>)
|
||||
|
||||
github 地址:
|
||||
|
||||
[GitHub - kzttools/file-downloader](<https://github.com/kzttools/file-downloader>)
|
||||
|
||||
## License
|
||||
|
||||
[MIT](<./LICENSE>) License © 2023-PRESENT [kazoottt](<https://github.com/kazoottt>)
|
@ -1,53 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: focusee录制系统声音被强制切换为扬声器播放的可能原因和解决方法
|
||||
date: 2024-05-25T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 虚拟声卡
|
||||
- BlackHole2ch
|
||||
- focusee
|
||||
- obs
|
||||
finished: true
|
||||
slug: >-
|
||||
possible-causes-and-solutions-for-focusee-switching-system-audio-to-speaker-playback-forcibly
|
||||
description: macOS上,使用focusee录制系统声音时遇到问题。解决方法是卸载BlackHole2ch,并通过obs选择录制桌面音频或应用音频。
|
||||
NotionID-notionnext: 8ac966eb-66b4-4f39-b2fa-3fd4e4911a41
|
||||
link-notionnext: 'https://kazoottt.notion.site/focusee-8ac966eb66b44f39b2fa3fd4e4911a41'
|
||||
category: 软件
|
||||
date_created: 20241217
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# Focusee 录制系统声音被强制切换为扬声器播放的可能原因和解决方法
|
||||
|
||||
在 macOS 上,我想要使用 focusee 录制系统声音的时候我按照它的引导安装了 Gemoo Speaker
|
||||
|
||||
虽然输出设备切换到 Gemoo Speaker 输出,这样确实可以录制到系统的声音了,但是是直接用扬声器外放的声音。
|
||||
|
||||
后来我发现是我安装了 BlackHole2ch 的原因,卸载掉这个虚拟声卡之后,focusee 就通过 Gemoo Speaker 可以正常地录制到耳机里的声音了。
|
||||
|
||||
卸载方法:
|
||||
|
||||
`/Library/Audio/Plug-Ins/HAL`
|
||||
|
||||
在这个文件夹中删除 BlackHole2ch 对应的文件夹即可
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
顺带一提,当时安装 BlackHole2ch 的原因是想要在录屏或者直播的时候录制到系统的声音,今天我突然发现 obs 已经支持了直接录制系统声音的功能。
|
||||
|
||||
具体的操作是:
|
||||
|
||||
1. 点击来源下方的添加按钮,选择 macOS 音频采集
|
||||

|
||||
|
||||
2. 根据你的需求选择是采集桌面音频还是应用音频。
|
||||

|
@ -1,97 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: how to make a hollow cylinder in blender
|
||||
date: 2025-01-15T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- blender
|
||||
- cylinder
|
||||
- model
|
||||
finished: true
|
||||
category: blender
|
||||
slug: how-to-make-a-hollow-cylinder-in-blender
|
||||
description: null
|
||||
date_created: 20250115
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
this is a blender note is to record how to make a hollow cylinder in blender.
|
||||
|
||||
we can split the problem into these parts:
|
||||
|
||||
1. create a cylinder
|
||||
2. make the cylinder hollow
|
||||
|
||||
## 1. create a cylinder
|
||||
|
||||
method 1: in the object mode, press `shift + a` and select `mesh - cylinder`, we can create a cylinder in the scene.
|
||||
|
||||

|
||||
|
||||
method 2: at the left top of the screen, click `add - mesh - cylinder`, we can create a cylinder in the scene, too.
|
||||
|
||||

|
||||
|
||||
## (optional) 2. edit the cylinder when adding it
|
||||
|
||||
after we add a cylinder, we can see there has a `add cylinder` panel in the bottom left of the screen.
|
||||
|
||||
and if we click the `add cylinder` panel, we can edit the props of the cylinder, such as the vertex count, radius, depth, etc.
|
||||
|
||||

|
||||
|
||||
because i am a new user of blender, so i will try to figure out the meaning of the props of panels one by one. (if you do not care about the meaning of the props, you can skip this part)
|
||||
|
||||
1. **Vertices**:
|
||||
- Defines the number of edges or vertices around the base of the cylinder. A higher number results in a smoother circle, while a lower number creates a more polygonal shape.(default 32)
|
||||
2. **Radius**:
|
||||
- Sets the radius of the base of the cylinder. This controls how wide the cylinder is.(default 1m)
|
||||
3. **Depth**:
|
||||
- Determines the **height** of the cylinder along the Z-axis.(default_2m)
|
||||
4. **Cap Fill Type**:
|
||||
- Specifies the way the top and bottom caps of the cylinder are filled:
|
||||
- **None**: Leaves the ends of the cylinder open.(default)
|
||||
- **N-Gon**: Fills the ends with a single face (polygon) that spans the entire area.
|
||||
- **Triangles**: Fills the ends with triangles arranged in a radial pattern.
|
||||
5. **Generate UVs**:
|
||||
- When checked, automatically generates UV mapping for the cylinder. This is useful for texturing the cylinder later.(default checked)
|
||||
6. **Align**:
|
||||
- Determines the alignment of the cylinder relative to the scene:
|
||||
- **World**: Aligns the cylinder to the global coordinate system.
|
||||
- **View**: Aligns the cylinder to the current camera view.
|
||||
- **Cursor**: Aligns the cylinder based on the position and orientation of the 3D cursor.
|
||||
7. **Location (X, Y, Z)**:
|
||||
- Specifies the position of the cylinder in 3D space. These fields allow you to place the cylinder at exact coordinates.(default 0,0,0) unit is meter
|
||||
8. **Rotation (X, Y, Z)**:
|
||||
- Defines the orientation of the cylinder by specifying its rotation around each of the three axes.(default 0,0,0)unit is degree
|
||||
|
||||
## 3. make the cylinder hollow
|
||||
|
||||
press the tab key to enter the edit mode, then press `s` to select all the vertices, and press `delete` to delete the vertices.
|
||||
|
||||
press the number key `3` to enable the `face selection` mode, then press `s` to select all the faces, and press `delete` to delete the faces.
|
||||
|
||||
press the button shift and left click the fases at the top and bottom of the cylinder, like this:
|
||||
|
||||

|
||||
|
||||
attention: you should click the faces at the top and bottom both, not the vertices, not the single face or other faces.
|
||||
|
||||
then we press the `i` button to inset the faces, move the mouse and we can see the faces are inseted, like this:
|
||||
|
||||

|
||||
|
||||
then if then size is ok ,release the mouse
|
||||
|
||||
then press the `delete` button to delete the faces. (you should select the fases which you nested before)
|
||||
|
||||

|
||||
|
||||
now we can see the cylinder is hollow.
|
||||
|
||||

|
@ -1,42 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
date_created: 20250120
|
||||
date_modified: 20250304
|
||||
slug: how-to-separate-object-in-blender
|
||||
tags:
|
||||
- 3D Modeling
|
||||
- Blender
|
||||
- Mesh Editing
|
||||
- Shortcut Keys
|
||||
description: >-
|
||||
Step-by-step guide to separating objects in Blender using three different
|
||||
methods
|
||||
title: how to separate object in blender
|
||||
date: 2025-01-20T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
finished: true
|
||||
category: blender
|
||||
---
|
||||
|
||||
how to separate object in blender
|
||||
|
||||
1. press tab to enter the edit mode
|
||||
2. select the object you want to separate
|
||||
3. click right mouse button or press the p directly to separate the object
|
||||
|
||||

|
||||
|
||||
there are three kinds of separation:
|
||||
|
||||
1. Selection (if you want to separate the object by selection, choose this)
|
||||
2. By Material
|
||||
3. By Loose Parts
|
||||
|
||||
## reference
|
||||
|
||||
<https://docs.blender.org/manual/en/latest/modeling/meshes/editing/mesh/separate.html>
|
@ -1,30 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
date_created: 20250131
|
||||
date_modified: 20250304
|
||||
slug: split-window-in-blender
|
||||
tags:
|
||||
- Blender
|
||||
- Interface
|
||||
- Window Management
|
||||
- Workflow Optimization
|
||||
description: Guide to splitting editor windows in Blender for improved workflow
|
||||
title: how to split window in blender
|
||||
date: 2025-01-31T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
finished: true
|
||||
category: blender
|
||||
---
|
||||
|
||||
[Areas - Blender 4.3 Manual](<https://docs.blender.org/manual/en/latest/interface/window_system/areas.html>)
|
||||
|
||||
when the cursor hover on the edge of the window, the style of the cursor will change to the crosshair.
|
||||
|
||||
then we can click the left mouse button and drag the window to split it into two parts.
|
||||
|
||||

|
@ -1,54 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: node path模块相关操作
|
||||
description: >-
|
||||
本文介绍了Node.js中path模块的常用操作,包括__dirname与process.cwd()的区别,以及path.join()和path.resolve()的差异。特别指出,__dirname和process.cwd()在使用时需注意其返回的路径差异,以免导致静态资源加载失败。同时,path.join()用于连接路径,而path.resolve()则解析为绝对路径。这些知识点对于正确配置和处理文件路径至关重要。
|
||||
date: 2022-10-24T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 前端
|
||||
- node
|
||||
- path
|
||||
slug: node-path-module-related-operations
|
||||
category: 前端
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# Path 相关操作
|
||||
|
||||
path 是 node 的一个常用模块。
|
||||
|
||||
## 常用用法
|
||||
|
||||
TODO
|
||||
|
||||
## 区别
|
||||
|
||||
1. \_\_dirname 和 process.cwd() 的区别
|
||||
|
||||
[node.js - What's the difference between process.cwd() vs \_\_dirname? - Stack Overflow](<https://stackoverflow.com/questions/9874382/whats-the-difference-between-process-cwd-vs-dirname>)
|
||||
|
||||

|
||||
|
||||
此段代码意在配置静态资源路径,由于错误使用\_\_dirname,导致静态资源加载失败。
|
||||
|
||||
```
|
||||
xxx/server_build/client_build // 前者返回
|
||||
xxx/client_build // 后者返回
|
||||
```
|
||||
|
||||

|
||||
|
||||
而目录结构为上图,express- 对应 server 打包在 server_bulid,需要加载的 client scripts 在 client_buiild,为同级目录,所以第一张图右边的写法才能正确配置静态资源路径。
|
||||
|
||||
2. path.join() 和 path.resolve() 的区别
|
||||
|
||||
连接路径
|
||||
|
||||
path.resolve() ==> 解析为绝对路径
|
@ -1,42 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: npm发包失败的原因
|
||||
date: 2024-02-18T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- npm
|
||||
finished: true
|
||||
slug: reasons-why-npm-fails-to-send-packages
|
||||
link: 'https://kazoottt.notion.site/npm-b256188902f74be09e4ee74f8247da84'
|
||||
notionID: b2561889-02f7-4be0-9e4e-e74f8247da84
|
||||
description: >-
|
||||
本文讨论了在npm发包过程中可能遇到的失败原因,包括账号权限不足、包名不规范、包名包含屏蔽词等。特别提到了“download”是一个屏蔽词,作者通过将其替换为“downloader”后成功发布。同时,文章也提到了npm的命令行工具在错误信息提供上的不足,使得问题定位变得困难。参考了GitHub上的相关讨论,以帮助理解这一问题。
|
||||
category: 前端
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# Npm 发包失败的原因
|
||||
|
||||
## 可能的原因
|
||||
|
||||
1. 当前的账号没有发包权限。(比如没有某个包或者某个 scope 的权限)
|
||||
2. 当前的包名不符合规范。(需要 URL-safe characters)
|
||||
3. 当前的包名是屏蔽词。(例如 download [npm发包失败的原因#npm包名屏蔽词](/notes/reasons-why-npm-fails-to-send-packages#npm包名屏蔽词))
|
||||
4. 可能是当前的 npm 设置了镜像地址,而不是原始的 npm 地址,导致 login 的时候无法登录从而无法发布。解决方法就是在发布的时候先切换为原始的 npm 地址,再发布。
|
||||
5. 其他(后续遇到了再补充)
|
||||
|
||||
// 吐槽一下,npm 的 cli 给的信息很多都是无效信息,有时候很难从中知道到底是哪里有问题
|
||||
|
||||
## Npm 包名屏蔽词
|
||||
|
||||
1. download (我替换成 downloader 之后才成功发布)
|
||||
|
||||
## 参考
|
||||
|
||||
[\[BUG\] npm publish get 400 Bad Request without any useful information · Issue #6090 · npm/cli · GitHub](<https://github.com/npm/cli/issues/6090>)
|
@ -1,98 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: npm和npx的区别
|
||||
date: 2023-09-06T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
finished: false
|
||||
slug: difference-between-npm-and-npx
|
||||
description: >-
|
||||
本文详细介绍了npm和npx的区别,包括它们的定义、使用场景和具体用法。npm是Node.js的默认包管理器,用于安装、卸载和升级包,而npx是一个命令行工具,允许用户直接运行项目中的二进制文件,无需全局安装。文章通过实例说明了两者在实际开发中的应用,如使用npm安装ant
|
||||
design,以及使用npx创建nextjs项目。
|
||||
category: 前端
|
||||
tags:
|
||||
- 包管理器
|
||||
- CLI
|
||||
- Node.js
|
||||
- npm
|
||||
- npx
|
||||
- package manager
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# Npm 和 npx 的区别
|
||||
|
||||
在日常的开发中,经常会使用这两个指令。
|
||||
|
||||
例如使用 npm 引入 ant design
|
||||
|
||||
```shell
|
||||
npm install antd
|
||||
```
|
||||
|
||||
[Create Next App | Next.js (nextjs.org)](<https://nextjs.org/docs/api-reference/create-next-app>) 中运行使用 npx 来创建 nextjs 项目
|
||||
|
||||
```shell
|
||||
npx create-next-app@latest
|
||||
# or
|
||||
yarn create next-app
|
||||
# or
|
||||
pnpm create next-app
|
||||
```
|
||||
|
||||
本文将从两者的定义、区别、使用场景这三个部分进行阐述。
|
||||
|
||||
## Npm 和 Npx 的定义
|
||||
|
||||
开宗明义,首先需要弄清楚 npm 和 npx 的定义以及它们具体是用来做什么的。
|
||||
|
||||
### Npm 的定义
|
||||
|
||||
我从书籍或者网站中找了一些关于 npm 的定义。例如在《JavaScript 高级程序设计 4th》,作者对 npm 的定义如下:
|
||||
|
||||
> npm,即 Node 包管理器(Node Package Manager),是 Node.js 运行时默认的包管理器。在 npm 仓库中发布的第三方包可以指定为项目依赖,并通过命令行本地安装。npm 仓库包含服务端和客户端 JavaScript 库。
|
||||
> npm 是为在服务器上使用而设计的,服务器对依赖大小并不敏感。在安装包时,npm 使用嵌套依赖树解析所有项目依赖,每个项目依赖都会安装自己的依赖。这意味着如果项目依赖三个包 A、B 和 C,而这三个包又都依赖不同版本的 D,则 npm 会安装包 D 的三个版本。
|
||||
|
||||
在 freecodecamp 的技术分享博客([什么是 npm —— 写给初学者的编程教程 (freecodecamp.org)](<https://www.freecodecamp.org/chinese/news/what-is-npm-a-node-package-manager-tutorial-for-beginners/>))中,作者对 npm 的定义如下:
|
||||
|
||||
> npm(“Node 包管理器”)是 JavaScript 运行时 Node.js 的默认程序包管理器。
|
||||
> npm 由两个主要部分组成:
|
||||
>
|
||||
> 1. 用于发布和下载程序包的 CLI(命令行界面)工具
|
||||
> 2. 托管 JavaScript 程序包的 [在线存储库](<https://www.npmjs.com/>)
|
||||
|
||||
---
|
||||
|
||||
也就是说 npm 的本质是包管理器。
|
||||
|
||||
如何管理包?
|
||||
|
||||
对于本地,使用 CLI 进行包的安装,卸载、升级
|
||||
对于 npm 存储库,使用 CLI 进行将包发布到存储库中
|
||||
包从何而来?
|
||||
|
||||
npm 存储库 <=== 他人使用 CLI 进行将包发布到存储库中
|
||||
|
||||
很显然在本文开头 npm 命令其实代指的命令行工具,而不是包管理器这个概念本身。
|
||||
|
||||
综上,提到 npm 的时候可能有两个定义,一个是包管理器(本身的定义),一个是包管理器对应的命令行工具(使用过程中代指的定义)。
|
||||
|
||||
### Npx 的定义
|
||||
|
||||
在 [什么是 npm —— 写给初学者的编程教程 (freecodecamp.org)](<https://www.freecodecamp.org/chinese/news/what-is-npm-a-node-package-manager-tutorial-for-beginners/>) 中提到
|
||||
|
||||
> 最新引入的 [npx](<https://www.freecodecamp.org/news/npm-vs-npx-whats-the-difference/>) 使我们可以像在全局安装程序一样运行这些 `node_modules` 项目作用域命令,方法是在其前面加上 `npx ...`(即 `npx prettier --write ** / *。ts`)。
|
||||
|
||||
## 用法
|
||||
|
||||
[npx 使用教程 - 阮一峰的网络日志 (ruanyifeng.com)](<https://www.ruanyifeng.com/blog/2019/02/npx.html>)
|
||||
|
||||
如果要运行项目中的某些二进制文件,以前只能使用 路径/bin 文件 来执行
|
||||
但是使用 npx 就可以直接运行了
|
||||
|
||||
> npx 的原理很简单,就是运行的时候,会到 `node_modules/.bin` 路径和环境变量 `$PATH` 里面,检查命令是否存在。由于 npx 会检查环境变量 `$PATH`,所以系统命令也可以调用。
|
@ -1,75 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: npm换源
|
||||
date: 2024-02-07T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- node
|
||||
- npm
|
||||
slug: npm-registry
|
||||
description: >-
|
||||
本文介绍了如何查看、更换和取消Node.js包管理工具(npm, yarn,
|
||||
pnpm)的源地址,以及如何使用yrm工具快速切换不同的npm源。通过执行特定的命令,用户可以轻松地管理这些工具的源设置,从而优化包的下载速度和开发效率。
|
||||
category: 前端
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 查看源
|
||||
|
||||
```shell
|
||||
npm config get registry
|
||||
```
|
||||
|
||||
```shell
|
||||
yarn config get registry
|
||||
```
|
||||
|
||||
```shell
|
||||
pnpm config get registry
|
||||
```
|
||||
|
||||
# 换源
|
||||
|
||||
```shell
|
||||
npm config set registry https://registry.npmmirror.com
|
||||
```
|
||||
|
||||
```shell
|
||||
yarn config set registry https://registry.npmmirror.com
|
||||
```
|
||||
|
||||
```shell
|
||||
pnpm config set registry https://registry.npmmirror.com
|
||||
```
|
||||
|
||||
# 取消换源
|
||||
|
||||
```shell
|
||||
npm config delete registry
|
||||
```
|
||||
|
||||
```shell
|
||||
yarn config delete registry
|
||||
```
|
||||
|
||||
```shell
|
||||
pnpm config delete registry
|
||||
```
|
||||
|
||||
# 工具
|
||||
|
||||
[GitHub - i5ting/yrm: YARN registry manager, fast switch between different registries: npm, cnpm, nj, taobao](<https://github.com/i5ting/yrm>)
|
||||
|
||||
```shell
|
||||
npm install -g yrm
|
||||
|
||||
yrm ls
|
||||
|
||||
yrm use [name]
|
||||
```
|
@ -1,72 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: open graph 简述
|
||||
date: 2024-04-09T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags: []
|
||||
finished: true
|
||||
slug: open-graph
|
||||
description: >-
|
||||
在使用Twitter时,我们可能会注意到有些链接会显示预览卡片,而有些则不会。这主要是因为一些网站设置了Open Graph协议,而有些则没有。Open
|
||||
Graph是由Facebook在2010年推出的协议,用于在社交网络上分享链接时显示预览卡片。此外,Twitter也有自己的Twitter
|
||||
Card协议,如果两者同时存在,Twitter会优先显示Twitter Card的内容。文章还介绍了一些检查和预览Open
|
||||
Graph设置的工具,以及提供Open Graph示例的网站。
|
||||
NotionID-notionnext: 76ed52a0-ad58-401c-8a5d-c5719f67b673
|
||||
link-notionnext: 'https://kazoottt.notion.site/open-graph-76ed52a0ad58401c8a5dc5719f67b673'
|
||||
category: 前端
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# Open Graph 简述
|
||||
|
||||
## 场景
|
||||
|
||||
在我们使用 twitter 的时候,会发现有的链接会显示预览卡片,有的不会。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
这是因为有的网站设置了 open graph,有的没有。
|
||||
|
||||

|
||||
|
||||
## 那么什么是 open graph?
|
||||
|
||||
open graph 是一个由 facebook 在 2010 年发布的协议,用于在社交网络上分享链接时,显示预览卡片。
|
||||
|
||||

|
||||
|
||||
我觉得无论是它的名称还是意图,都能看出 facebook 以及其他支持这种协议的社交平台的开放性, 特别是在某些平台会屏蔽外链或者限流带有外链的衬托下。
|
||||
|
||||

|
||||
|
||||
和 open graph 类似还有 twitter 自己的 card,如果 twitter card 和 open graph 同时存在的话,会先显示在 twitter card。如果 twitter card 没有定义,才会显示 open graph。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 预览和检查工具
|
||||
|
||||
[OpenGraph - Preview Social Media Share and Generate Metatags - OpenGraph](<https://www.opengraph.xyz/>)
|
||||
|
||||

|
||||
|
||||
[OpenGraph - Preview Images and Generate Open Graph Meta Tags](<https://opengraph.dev/>)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 一些例子
|
||||
|
||||
[Open Graph Examples](<https://opengraphexamples.com/>)
|
||||
|
||||

|
@ -1,80 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: open-graph intro
|
||||
date: 2024-04-09T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags: []
|
||||
finished: true
|
||||
slug: open-graph-en
|
||||
description: >-
|
||||
Open Graph is a protocol introduced by Facebook in 2010, designed to enhance
|
||||
the display of preview cards when sharing links on social networks like
|
||||
Twitter. It allows websites to control how their content appears when shared,
|
||||
differentiating between links that show previews and those that do not.
|
||||
Twitter also has its own card system, which takes precedence over Open Graph
|
||||
if both are present. Tools like OpenGraph.xyz and opengraph.dev help in
|
||||
previewing and generating Open Graph meta tags for better social media
|
||||
sharing.
|
||||
NotionID-notionnext: 96e4d436-6fd9-4fec-865c-ac2d80b06be0
|
||||
link-notionnext: 'https://kazoottt.notion.site/open-graph-intro-96e4d4366fd94fec865cac2d80b06be0'
|
||||
category: 前端
|
||||
date_created: 20241202
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
``
|
||||
|
||||
# Open-graph Intro
|
||||
|
||||
[open graph 简述](/notes/open-graph)
|
||||
|
||||
## Scenario
|
||||
|
||||
When we use Twitter, we notice that some links display preview cards while others do not.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
This is because some websites have set up Open Graph, while others have not.
|
||||
|
||||

|
||||
|
||||
## What is Open Graph?
|
||||
|
||||
Open Graph is a protocol introduced by Facebook in 2010, used for displaying preview cards when sharing links on social networks.
|
||||
|
||||

|
||||
|
||||
From its name and purpose, it's evident that Open Graph signifies the openness of Facebook and other platforms supporting this protocol, especially amidst certain platforms that block external links or throttle those containing external links.
|
||||
|
||||

|
||||
|
||||
Similar to Open Graph, Twitter has its own card system. If both Twitter Card and Open Graph coexist, Twitter Card takes precedence. Only if Twitter Card is not defined, Open Graph is displayed.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Preview and Inspection Tools
|
||||
|
||||
[OpenGraph - Preview Social Media Share and Generate Metatags - OpenGraph](<https://www.opengraph.xyz/>)
|
||||
|
||||

|
||||
|
||||
[OpenGraph - Preview Images and Generate Open Graph Meta Tags](<https://opengraph.dev/>)
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Some Examples
|
||||
|
||||
[Open Graph Examples](<https://opengraphexamples.com/>)
|
||||
|
||||

|
@ -1,108 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
description: null
|
||||
date: 2025-03-03T00:00:00.000Z
|
||||
tags:
|
||||
- 大模型
|
||||
- openwebui
|
||||
- pip
|
||||
- python
|
||||
category: null
|
||||
slug: how-to-install-and-run-openwebui-with-pip
|
||||
date_created: 20250226
|
||||
date_modified: 20250304
|
||||
title: pip安装和运行openwebui
|
||||
author: KazooTTT
|
||||
finished: true
|
||||
---
|
||||
|
||||
<!--section: 1-->
|
||||
|
||||
运行 openwebui 的时候除了 docker 部署之外,还有一种方法是 pip 部署
|
||||
|
||||
[GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)](<https://github.com/open-webui/open-webui?tab=readme-ov-file#installation-via-python-pip->)
|
||||
|
||||

|
||||
|
||||
<!--section: 1.1-->
|
||||
|
||||
## 环境变量缺失无法将“open-webui”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
|
||||
|
||||
如果报错:
|
||||
|
||||
``` plaintext
|
||||
open-webui serve
|
||||
open-webui : 无法将“open-webui”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请
|
||||
确保路径正确,然后再试一次。
|
||||
所在位置 行:1 字符: 1
|
||||
+ open-webui serve
|
||||
+ ~~~~~~~~~~
|
||||
+ CategoryInfo : ObjectNotFound: (open-webui:String) [], CommandNotFoundException
|
||||
+ FullyQualifiedErrorId : CommandNotFoundException
|
||||
|
||||
```
|
||||
|
||||
这是因为没有将 python 对应的 Scripts 文件夹路径添加到环境变量中
|
||||
|
||||
1. 如何查看路径在哪里
|
||||
在命令行中运行这一段
|
||||
|
||||
``` shell
|
||||
pip show requests
|
||||
```
|
||||
|
||||

|
||||
|
||||
能够看到这里面的 location, 所以实际的 script 的路径就是这个(site-packges 替换为 Scripts)
|
||||
|
||||
``` shell
|
||||
C:\Users\turbo\AppData\Roaming\Python\Python312\Scripts
|
||||
```
|
||||
|
||||
把这个路径复制一下或者暂存到一个地方,我们需要把它保存在环境变量里面去(一般 windows 出现这个问题比较多,所以只写了对应的教程)
|
||||
|
||||
### 如何编辑环境变量
|
||||
|
||||

|
||||
|
||||
搜索环境变量,进入编辑窗口
|
||||
|
||||

|
||||
|
||||
然后编辑系统变量把刚刚的那段路径添加到里面就可以了
|
||||
|
||||

|
||||
|
||||
然后再打开一个命令行运行
|
||||
|
||||
```
|
||||
openwebui serve
|
||||
```
|
||||
|
||||
就不会报找不到了
|
||||
|
||||
<!--section: 1.2-->
|
||||
|
||||
## 启动后长时间白屏的最终的解决方法
|
||||
|
||||
然后在 [openwebui长时间白屏解决方案#现象描述](/posts/openwebui-long-loading-white-screen-solution#现象描述) 中有提到错误的原因在于当前环境无法连接到 openai。在使用 pip 安装的 packages 的时候,需要设置 ENABLE_OPENAI_API 的环境变量,具体做法如下:
|
||||
|
||||
1. 在命令行中设置当前运行的环境变量
|
||||
在 Linux/macOS 中:
|
||||
`ENABLE_OPENAI_API=0 open-webui serve`
|
||||
|
||||
在 Windows PowerShell 中:
|
||||
`$env:ENABLE_OPENAI_API=0; open-webui serve`
|
||||
|
||||
在 Windows CMD 中:
|
||||
`set ENABLE_OPENAI_API=0 && open-webui serve`
|
||||
|
||||
---
|
||||
|
||||
(题外话)如果你需要从. Env 读取环境变量那么,参考这个格式来写,
|
||||
[Using .env Files for Environment Variables in Python Applications - DEV Community](<https://dev.to/jakewitcher/using-env-files-for-environment-variables-in-python-applications-55a1>)
|
@ -1,83 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: react-scan的用法
|
||||
date: 2024-12-17T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- components
|
||||
- devtool
|
||||
- performance优化
|
||||
- re-render
|
||||
- react-scan
|
||||
finished: true
|
||||
category: null
|
||||
slug: react-scan
|
||||
description: >-
|
||||
react-scan 是一个用于查看 React 代码中的 re-render
|
||||
信息的工具。安装方式可以分为开发环境安装和使用浏览器插件两种,后者允许自定义配置。使用 react-scan 的时候,可以看到当前元素的
|
||||
props、context 和 state,以及是否发生了 re-render,并且会标记出可能存在性能优化问题的 bad render。
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
在本地运行 follow 的源代码的时候是我第一次接触到 react-scan, 后来又在 x 的首页山上面刷到了原作者以及其他人对于 [react-scan](<https://react-scan.com/>) 的推荐。
|
||||
|
||||
下面来介绍一下它的用法,以及我个人认为它好用的原因。
|
||||
|
||||
## 安装
|
||||
|
||||
安装方式可以分为两种,开发环境安装,使用浏览器插件。[官方文档](<https://github.com/aidenybai/react-scan?tab=readme-ov-file#install>) 有比较详细的教程,这里不做赘述。
|
||||
|
||||
如果通过 npm 安装,可以自定义更多的配置,可以参考这里的 [API Reference](<https://github.com/aidenybai/react-scan?tab=readme-ov-file#api-reference-1>)
|
||||
|
||||
## 使用
|
||||
|
||||
react-scan 有三个按钮
|
||||
|
||||
1. 是否查看元素的开关
|
||||
2. 是否查看 re-render 的开关
|
||||
3. 是否开启声音的开关
|
||||
|
||||
<img src="https://pictures.kazoottt.top/2024/12/20241217-f7e2b39db39e5cbf21c0efc0e08656aa.png"/>
|
||||
|
||||
### 开启元素查看
|
||||
|
||||
会在面板上显示当前的元素,以及它的 props,context,state。
|
||||
|
||||
如果发生变化,会变为紫色,这样可以方便你排查是什么值的变化导致了 re-render。
|
||||
|
||||
在某些元素的 props 中会显示一个⚠️警告标志(isBadRender),提醒开发者这里可能存在性能优化的空间
|
||||
|
||||
``` ts
|
||||
const isBadRender =
|
||||
isChanged &&
|
||||
['object', 'function'].includes(typeof lastValue) &&
|
||||
fastSerialize(lastValue) === fastSerialize(contextObj[key]);
|
||||
```
|
||||
|
||||
为什么情况下会出现:
|
||||
|
||||
- 组件发生了重新渲染(isChanged 为 true)
|
||||
- 变化的值是对象或函数类型(['object', 'function'].includes(typeof lastValue))
|
||||
- 但是当我们序列化新旧值时,它们是完全相同的(fastSerialize(lastValue) === fastSerialize(contextObj[key]))
|
||||
|
||||
### 开启 re-render 查看
|
||||
|
||||
会显示当前的 re-render 的次数,以及每个 re-render 的组件。
|
||||
|
||||
## 为什么觉得好用
|
||||
|
||||
虽然 devtool 也可以查看 re-render 的情况,但是 react-scan 把 component 的 props,context,state 都显示出来并且标记了 bad render,让问题的排查更加方便。
|
||||
|
||||
并且 react-scan 自带面板,不需要像 devtool 一样首先需要打开 devtool 再勾选上 re-render 的画面闪烁监听。
|
||||
|
||||

|
||||
|
||||
## 参考
|
||||
|
||||
[还有这种前端技巧?REACT-SCAN 代码鉴赏|精简版\_哔哩哔哩\_bilibili](<https://www.bilibili.com/video/BV1JrzvYgERi/>)
|
@ -1,99 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: search params 请求参数的获取与更新
|
||||
date: 2024-11-13T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- qs
|
||||
- React Router
|
||||
- useSearchParams
|
||||
- window.location.search
|
||||
finished: true
|
||||
category: 前端
|
||||
slug: search-params
|
||||
description: >-
|
||||
React Router 的 `useSearchParams` Hook 提供了一个内建的 API,允许直接获取查询参数的值,比如 `.get()`,
|
||||
`.set()`, `.append()` 等。该 hook 可以帮助开发者轻松地处理 URL 中的 query parameters。 使用 `qs`
|
||||
库和 `window.location.search` 的方法也是可以实现解析 query parameters
|
||||
的效果。但需要注意的是,`qs.parse(window.location.search)`
|
||||
会将带有问号的字符串直接返回,而不对其进行处理。在正确的情况下,将需要手动去掉问号,以得到期望的结果。 React Router 的
|
||||
`useSearchParams` Hook 和 `qs` 库结合使用,可以帮助开发者更容易地管理 URL 中的 query parameters。
|
||||
NotionID-notionnext: 13d55568-fd75-81f5-be1b-e0a4f8137355
|
||||
link-notionnext: 'https://kazoottt.notion.site/search-params-13d55568fd7581f5be1be0a4f8137355'
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
## react router `useSearchParams`
|
||||
|
||||
[useSearchParams | React Router](<https://reactrouter.com/en/main/hooks/use-search-params#usesearchparams>)
|
||||
|
||||
``` ts
|
||||
interface URLSearchParams {
|
||||
/** Appends a specified key/value pair as a new search parameter. */
|
||||
append(name: string, value: string): void;
|
||||
/** Deletes the given search parameter, and its associated value, from the list of all search parameters. */
|
||||
delete(name: string): void;
|
||||
/** Returns the first value associated to the given search parameter. */
|
||||
get(name: string): string | null;
|
||||
/** Returns all the values association with a given search parameter. */
|
||||
getAll(name: string): string[];
|
||||
/** Returns a Boolean indicating if such a search parameter exists. */
|
||||
has(name: string): boolean;
|
||||
/** Sets the value associated to a given search parameter to the given value. If there were several values, delete the others. */
|
||||
set(name: string, value: string): void;
|
||||
sort(): void;
|
||||
/** Returns a string containing a query string suitable for use in a URL. Does not include the question mark. */
|
||||
toString(): string;
|
||||
forEach(callbackfn: (value: string, key: string, parent: URLSearchParams) => void, thisArg?: any): void;
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
它提供了内建的 API,允许直接获取查询参数的值,比如 `.get()`, `.set()`, `.append()` 等。
|
||||
|
||||
``` ts
|
||||
const [queryParams, setQueryParams] = useSearchParams();
|
||||
console.log('%c Line:52 🍿 queryParams', 'color:#33a5ff', queryParams.get('medicalRecordID'));
|
||||
```
|
||||
|
||||
## qs + window.location
|
||||
|
||||
[GitHub - ljharb/qs: A querystring parser with nesting support](<https://github.com/ljharb/qs>)
|
||||
|
||||

|
||||
|
||||
使用 window.location.search 获取到请求参数对应的字符串(需要注意的是:字符串是带有?的)
|
||||
|
||||
然后使用 qs.parse 方法来解析查询字符串
|
||||
|
||||
案例:localhost?medicalRecordID=1
|
||||
|
||||
错误使用:
|
||||
|
||||
``` ts
|
||||
const getQueryParam = (): QueryParams => {
|
||||
// use qs to parse the query params
|
||||
const queryParams: QueryParams = qs.parse(window.location.search);
|
||||
return queryParams;
|
||||
};
|
||||
```
|
||||
|
||||

|
||||
|
||||
正确使用:
|
||||
|
||||
``` ts
|
||||
const getQueryParam = (): QueryParams => {
|
||||
// use qs to parse the query params
|
||||
const queryParams: QueryParams = qs.parse(window.location.search.slice(1));
|
||||
return queryParams;
|
||||
};
|
||||
```
|
||||
|
||||

|
@ -1,33 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: shot.so - 图片美化工具
|
||||
date: 2023-09-17T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 软件推荐
|
||||
- 设计
|
||||
- 图片处理
|
||||
- 图片美化工具
|
||||
finished: true
|
||||
slug: shotso-image-beautification-tool
|
||||
description: >-
|
||||
shot.so是一个图片美化工具,主要用于快速美化截图。它支持设备模拟,允许用户修改阴影、边框、比例等属性。该工具内置了大量免费模板,方便用户快速创建精美的图片效果。
|
||||
category: 软件
|
||||
date_created: 20241202
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# shot.so - 图片美化工具
|
||||
|
||||
<https://shots.so/>
|
||||
|
||||
可快速美化图片(主要是截图),支持设备 mock,支持修改 shadow,border,scale 等。内置模板很多,且均免费。
|
||||
|
||||

|
||||
|
||||

|
@ -1,51 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: tweet to image 输入推特链接生成对应的图片
|
||||
date: 2024-06-26T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- Digital-Marketing
|
||||
- Image-Conversion
|
||||
- Online-Tools
|
||||
- Shareable-Content
|
||||
- SocialMedia
|
||||
- Tweet-to-Image
|
||||
- Twitter-Tools
|
||||
finished: true
|
||||
slug: tweet-to-image
|
||||
description: >-
|
||||
This post introduces three online tools that allow users to convert tweets
|
||||
into shareable images. The tools featured are TweetPik, PostWizz, and 10015
|
||||
Tools. These services provide an easy way to create visually appealing
|
||||
screenshots of tweets for sharing on various platforms.
|
||||
NotionID-notionnext: 1203f3c5-7438-44af-a655-d509a4dff4ec
|
||||
link-notionnext: 'https://kazoottt.notion.site/tweet-to-image-1203f3c5743844afa655d509a4dff4ec'
|
||||
category: 软件
|
||||
date_created: 20241202
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# Tweet to Image 输入推特链接生成对应的图片
|
||||
|
||||
[Perfect Twitter Screenshots - TweetPik](<https://tweethunter.io/tweetpik>)
|
||||
|
||||
(不太好用)
|
||||
|
||||

|
||||
|
||||
[Free Tweet to Image Converter Online - PostWizz](<https://postwizz.com/tweet-to-image-converter/>)
|
||||
|
||||

|
||||
|
||||
[Tweet to Image Converter: Tweet Screenshots Online | 10015 Tools](<https://10015.io/tools/tweet-to-image-converter>)
|
||||
|
||||

|
||||
|
||||
ref:
|
||||
|
||||
[The Top 6 Free Tools to Convert Tweets Into Shareable Images](<https://www.makeuseof.com/free-tools-convert-tweets-into-images/>)
|
@ -1,76 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: web3资源收集
|
||||
slug: web3-resource-collection
|
||||
description: >-
|
||||
本资源收集提供了深入了解Web3的基础材料,包括比特币和以太坊的历史与技术细节。推荐阅读比特币前传系列文章,了解比特币诞生前的技术背景和发展历程。以太坊简史则概述了其近十年的重大突破和变化,以及创始人Vitalik
|
||||
Buterin的初衷。此外,加密思潮编年史帮助读者快速把握加密技术的发展脉络。技术方面,比特币和以太坊的白皮书精读版详细解读了其技术原理,而“一个以太坊交易的完整周期”则深入探讨了交易的具体流程。YouTube教程和相关文章进一步提供了Foundry开发框架和Web3.0应用架构的讲解,以及Uniswap
|
||||
v2的详细解析,为学习和研究Web3提供了丰富的资料。
|
||||
finished: true
|
||||
date: 2024-02-07T00:00:00.000Z
|
||||
category: web3
|
||||
tags:
|
||||
- 比特币
|
||||
- 区块链
|
||||
- 以太坊
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# web3 资源收集
|
||||
|
||||
基础推荐材料
|
||||
人文基础:
|
||||
|
||||
比特币之前的事情:理解组成比特币的核心技术的发展,理解比特币的前前后后,能更好的理解中本聪创造比特币的核心产物。
|
||||
|
||||
1、比特币前传
|
||||
<https://foresightnews.pro/article/detail/13987>(比特币前传(一)70 年代公钥传奇)
|
||||
|
||||
<https://foresightnews.pro/article/detail/14114>(比特币前传(二):去中心化的起源)
|
||||
|
||||
<https://foresightnews.pro/article/detail/14545>(比特币前传(三):90 年代的加密战争
|
||||
<https://foresightnews.pro/article/detail/14783>(比特币前传(四):跨越半个世纪的思想与蓝图)
|
||||
|
||||
2、以太坊简史:因暴雪削弱术士而诞生的千亿美元巨兽
|
||||
<https://foresightnews.pro/article/detail/13531>
|
||||
以太坊近十年的发展很难用一篇文章概括,但是可以大致浏览每一个阶段的重大突破与变化。了解 VB 创造 ETH 的时候主要想解决什么问题
|
||||
3、加密思潮编年史,从 25 年前说起
|
||||
<https://foresightnews.pro/article/detail/961>
|
||||
快速了解加密思潮在不同时期的变化,了解到如何一步步从 BTC 走向 DAPP
|
||||
技术基础:
|
||||
|
||||
1**、比特币白皮书精读版**
|
||||
<https://mp.weixin.qq.com/s/eYCbAD_tPG9PmuFE1LvCWA>
|
||||
比特币白皮书精读版是对比特币白皮书更详细的解读,有助于更好的理解白皮书中的内容。比特币的技术原理搞的越清楚越好。
|
||||
|
||||
2、以太坊白皮书精讲 精选
|
||||
<https://zhuanlan.zhihu.com/p/37747240>(Part1)
|
||||
|
||||
<https://zhuanlan.zhihu.com/p/38002875>(Part2)
|
||||
|
||||
<https://zhuanlan.zhihu.com/p/38003169>(Part3)
|
||||
|
||||
白皮书精讲系列是看懂白皮书很好的参考资料,可以更深入的了解白皮书中的细节。这是 ETH1.0 的架构,后面再看 ETH 2.0 的架构。也是搞得越清楚越好,后续的区块链整体上都没有脱离这个架构,既 Chain-VM- 共识 -Daap
|
||||
3**、一个以太坊交易的完整周期**
|
||||
<https://www.notonlyowner.com/learn/what-happens-when-you-send-one-dai>
|
||||
这篇文章对具体的每一个环节都有很详细的记录,跟 Daap 的开发结合非常紧密,最好能完整过一遍,然后自己尝试画一个详细的流程图。包括前端怎么跟钱包交互,钱包怎么跟 RPC 交互,节点之间怎么通信,EVM 怎么处理交易,Gas,最后存储等。
|
||||
|
||||
---
|
||||
|
||||
youtube 教程
|
||||
[Site Unreachable](<https://www.youtube.com/watch?v=q9UzRyWRPcY&ab_channel=CyfrinAudits>)
|
||||
|
||||
这个可以看看 Foundry 开发框架
|
||||
[Foundry 开发框架 | Decert.me](<https://decert.me/tutorial/solidity/tools/foundry/>)
|
||||
|
||||
[The Architecture of a Web 3.0 application](<https://www.preethikasireddy.com/post/the-architecture-of-a-web-3-0-application>) 这篇是讲 web3 应用的架构
|
||||
|
||||
对了,有一个 uniswap v2 详细讲解材料,非常不错,我发出来
|
||||
大家有需要可以好好看一下,讲得非常详细
|
||||
[X 上的 RareSkills:“It's 100% free -- no login required. Bookmark (no pun intended) and come back as needed. Book link: https://t.co/8BcWQH8jH0” / X](<https://twitter.com/RareSkills_io/status/1724741635995799607?t=ItDMIKngRqH7yQ4Zf1gIxQ&s=19>)
|
@ -1,42 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: whisper ui 下载模型 镜像设置
|
||||
date: 2025-01-05T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 大模型
|
||||
- 镜像
|
||||
- huggingface
|
||||
- whisper-ui
|
||||
finished: true
|
||||
category: 大模型
|
||||
slug: whisper-ui-download-model-mirror-setting
|
||||
description: >-
|
||||
在使用 whisper ui 的时候,需要下载模型,如果不做配置默认是从 huggingface 下载的,但是 huggingface
|
||||
在国内访问速度很慢,所以需要配置镜像。
|
||||
date_created: 20250105
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
在使用 [whisper ui](<https://github.com/jhj0517/Whisper-WebUI>) 的时候,需要下载模型,如果不做配置默认是从 huggingface 下载的,但是 huggingface 在国内访问速度很慢,所以需要配置镜像。
|
||||
|
||||
配置方法如下:
|
||||
|
||||
第一步,在项目文件的 `backend\configs` 里新增.env 文件(如果你使用的是 pinokio,则是在 `app\backend\configs` 里新增.env 文件)
|
||||
|
||||
第二步,在.env 文件中添加镜像配置
|
||||
|
||||
```
|
||||
HF_ENDPOINT=https://hf-mirror.com
|
||||
```
|
||||
|
||||
第三步,重新运行 whisper ui
|
||||
|
||||
## 参考
|
||||
|
||||
[如何快速下载huggingface大模型 – padeoe的小站](<https://padeoe.com/huggingface-large-models-downloader/>)
|
@ -1,30 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
slug: win11chatgpt
|
||||
tags:
|
||||
- 软件
|
||||
- chatgpt
|
||||
- win11
|
||||
- windows
|
||||
description: null
|
||||
title: win11如何下载chatgpt
|
||||
date: 2025-01-20T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
finished: false
|
||||
category: 软件
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
打开设置 - 时间和语言 - 选择国家和地区为美国
|
||||
|
||||

|
||||
|
||||
在 microsoft store 中搜索 chatgpt 下载即可
|
||||
|
||||

|
@ -1,31 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
slug: win11-right-menu
|
||||
NotionID-notionnext: 12b55568-fd75-8198-b766-dd14229022d2
|
||||
link-notionnext: 'https://kazoottt.notion.site/win11-win10-12b55568fd758198b766dd14229022d2'
|
||||
tags:
|
||||
- 右键样式
|
||||
- WIN10恢复
|
||||
- win11
|
||||
description: >-
|
||||
Windows 11恢复 win10 的右键菜单样式,提供了“Windows 11 Classic Context Menu v1.2”程序,帮助用户恢复
|
||||
win10 的原始右键菜单风格。
|
||||
title: win11恢复win10右键的样式
|
||||
date: 2024-12-17T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
finished: true
|
||||
category: 软件
|
||||
date_created: 20241217
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# win11 恢复 win10 右键的样式
|
||||
|
||||
使用:[Windows 11 Classic Context Menu v1.2](<https://www.sordum.org/14479/windows-11-classic-context-menu-v1-2/>)
|
||||
|
||||

|
@ -1,66 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: “git-credential-osxkeychain”想要访问你的钥匙串中的密钥“github.com” 解决方法
|
||||
date: 2024-09-01T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 解决方案
|
||||
- Git
|
||||
- macOS
|
||||
finished: true
|
||||
category: 软件
|
||||
slug: git-credential-osxkeychain-solve-method
|
||||
description: 解决 macOS 弹出 'git-credential-osxkeychain' 访问 GitHub 密钥的问题
|
||||
NotionID-notionnext: 462377ea-6b4a-472c-9f55-ca4965dfe5c4
|
||||
link-notionnext: >-
|
||||
https://kazoottt.notion.site/git-credential-osxkeychain-github-com-462377ea6b4a472c9f55ca4965dfe5c4
|
||||
date_created: 20241217
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# macos 一直弹出 “git-credential-osxkeychain”想要访问你的钥匙串中的密钥“github.com” 解决方法
|
||||
|
||||
现在网络上关于这个问题的解决方案大部分都是打开钥匙串访问,然后删除 github 的密钥,但是这个方法其实并不奏效。具体的解决方法如下(二选一即可)
|
||||
|
||||
## 方法一 使用 GitHub CLI
|
||||
|
||||
首先,使用 brew 安装 GitHub CLI:
|
||||
|
||||
```bash
|
||||
brew install gh
|
||||
```
|
||||
|
||||
然后,使用以下命令来登录:
|
||||
|
||||
```bash
|
||||
gh auth login
|
||||
```
|
||||
|
||||
## 方法二 使用 Git Credential Manager
|
||||
|
||||
如果没有 git,使用 brew 安装 git:
|
||||
|
||||
```bash
|
||||
brew install git
|
||||
```
|
||||
|
||||
然后,安装 git-credential-manager
|
||||
|
||||
```bash
|
||||
brew install --cask git-credential-manager
|
||||
```
|
||||
|
||||
最后,使用以下命令来登录:
|
||||
|
||||
```bash
|
||||
git credential-osxkeychain
|
||||
```
|
||||
|
||||
## 参考地址
|
||||
|
||||
[在 Git 中缓存 GitHub 凭据 - GitHub 文档](<https://docs.github.com/zh/get-started/getting-started-with-git/caching-your-github-credentials-in-git>)
|
@ -1,53 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 一些烦心事
|
||||
date: 2023-01-19T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags: []
|
||||
finished: true
|
||||
slug: somethings-bothering-me
|
||||
description: >-
|
||||
在飞机上,作者通过写作来缓解心中的烦闷。上周状态良好,但本周因熬夜和粉丝圈的负面影响感到状态下滑。作者计划在春节期间调整作息,并反思了过去几年对粉丝圈的感受变化,包括从极度社恐到逐渐适应公共表达的过程,以及对粉丝圈中个体信任的思考。同时,作者也回顾了与主播和粉丝圈的互动,以及个人情感和观点表达的冲突与反思。
|
||||
category: 生活
|
||||
date_created: 20240910
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 一些烦心事
|
||||
|
||||
在飞机上,闲着也是闲着,不妨写点碎碎念,缓解一下心中的阴郁。
|
||||
|
||||
上周也就是 1.9-1.23 这个时间段,我的状态挺好的,无论是工作、学习还是对其他感兴趣事物的产出,那种在对应的时间场所做对应的事情,然后同时又有的积极反馈,真的很棒。
|
||||
|
||||
但是这周突然状态又变差了,想了想主要原因,第一是周末熬夜打乱了作息导致周一失眠,后续也没能调整好状态;第二是,受到了喜欢事物所在圈子某些事件、氛围的影响,进一步使心情变得更差。
|
||||
|
||||
对于第一点,我决定春节放假期间,调整作息,可以赖床,但绝不能晚睡。
|
||||
|
||||
对于第二点,也就是粉丝氛围,其实一直都在困扰着我,去年前大半年,尤为严重,后小半年稍微好一点,但没想到最近又被影响到了心情。
|
||||
|
||||
从什么地方开始聊呢?先聊聊这几年的感受变化吧。
|
||||
|
||||
一个人对某一事物感受的变化,受到多方面影响,无论是自己、事物本身还是大环境等等,多会有一定占比。
|
||||
|
||||
小时候的我,可以说极度社恐,第一次坐飞机的时候,空姐问我要喝什么饮料,我都不敢说话,只能用手指指一下我想要的东西。17 年,到了大学,觉得不能一直畏畏缩缩,决定换个状态重新开始,于是逼自己加了辩论队,从那个时候开始慢慢地变得和普通人一样,虽然性格依然很闷,但终于可以在公共场合表达观点了。
|
||||
|
||||
自身心态发生改变的时间点,18 年 -20 年,也刚好是我混我葱圈子最深入的时候,和大家共同经历了某些事,在非主要舆论场一起直面了很多恶意,也在某些事情上明白了现在喜欢不代表会一直喜欢,为了现圈利益撕破脸皮背刺前圈的事情还挺常见,可以信任粉丝整体,但不能信任某个个体。
|
||||
|
||||
当然也有很多暖心的事情,一起庆祝生日、一起为某个线下准备惊喜。当有投票或出专辑,有时会帮一点点忙(那时候大学,时间真的多哇),当时教过四十多岁的玉米怎么购买专辑,之后偶然刷到她的微博,除了分享花花草草,就是转发微博关心我葱身体了,无论是当时还是现在回想起都很感动,这样的事情太多太多。
|
||||
|
||||
而同一时期,也刚好遇到了主播以及她的直播。当时看直播的时候,不太敢发弹幕和回帖,回复被念到的时候会下意识地关掉直播间,过几分钟再打开。并且我算是误打误撞入坑的类型,不了解 ACG,不看音乐区,兴趣点和主播的产出内容毫无重合,但还是在随机到主播的歌的时候产生了兴趣。所以当时的我,属于非常懵懂的旁观者、圈外人,看着大家互动,想着说原来这个圈子的大家是这样表达喜欢的,好不一样。
|
||||
|
||||
这样的状态一直持续到 19 年年初,遇到了一件让我个人不太舒服的事情。那时的我已不是内心极度社恐和卑微的状态了,打字也喜欢带着辩论的一些架子,当时气在头上,在评论区选择了比较直白的提醒,后来有人评论反驳我,我也直接回怼了过去,在那之后选择了渐渐不看直播,投稿刷到了才看。
|
||||
|
||||
19 年成都 bw 短暂的回坑了一下,但重新高强度看直播应该是说唱新世代时期,突然刷到了主播的 vlog,这个节目我葱也在,这种交集让我觉得有些奇妙。根据录制时间拉了点录播,后面又刷了某些切片上下文看,心里又慢慢释然了。
|
||||
|
||||
这让我开始思考当初的做法有没有问题?从道理上讲,主播和观众看法、表达方式不一样太正常不过,无论哪一方,都不应该把自己的观点强加对方,应该做的是求同存异。从情感上讲,某些看法触及到自己所在意的点时,生气也很正常,如果别的地方有人嘴主播我也会表示不满,所以当时评论区也有反驳我也很正常。
|
||||
|
||||
但正确的做法到底是什么我真的不清楚,做法随着自身情感倾斜程度变化吗?
|
||||
|
||||
好像有点扯太远了,本来是想聊粉丝氛围的。
|
@ -1,45 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 与其倒腾,不如静下心来
|
||||
date: 2024-03-27T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 记录
|
||||
finished: true
|
||||
slug: instead-of-tossing-upside-down-its-better-to-calm-down
|
||||
description: >-
|
||||
作者意识到自己有浅尝辄止的习惯,尤其是在职业技能上,这影响了他的博客管理。为了改善这一情况,他计划固定记录和发布模式,使用Obsidian和Flomo作为本地编辑器,根据内容质量的不同,分别发布到Quartz、Notion、掘金、xlog和微信公众号。他认为记录的初衷是为了自己,分享是次要的,因此先在本地记录,再逐步分享到更公开的平台。
|
||||
link: 'https://kazoottt.notion.site/4168e936345444f4b625a86309a5b320'
|
||||
notionID: 4168e936-3454-44f4-b625-a86309a5b320
|
||||
category: 生活
|
||||
date_created: 20241008
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 与其倒腾,不如静下心来
|
||||
|
||||
我这个人一直都有一个不好的习惯,就是对于任何事物都是浅尝辄止,技艺不精。
|
||||
|
||||
如果说是无关紧要爱好,其实这没什么,但是关乎到职业发展的技能也是如此。
|
||||
|
||||
就拿博客来举例,我总是想要倒腾博客,从各种框架,各种主题之间不断的切换,做了很多重复性的工作。虽然乐在其中,但是仔细想想并没有什么实际的用途。
|
||||
|
||||
所以我想控制一下自己的手,目前将自己的记录和发布模式固定一下。具体的规划如下:
|
||||
|
||||
1. 首先,使用 obsidian 和 flomo 作为本地的编辑器。obsidian 用于记录笔记和比较正式的可能需要发布的内容。而 flomo 则是一些碎片化的内容,可能是个人的碎碎念,也可能是一些小脑洞。
|
||||
2. 然后,obsidian 的内容与 [Welcome to Quartz 4](<https://quartz.jzhao.xyz/>) 绑定,如果有更新则会自动地部署上去,这里自动更新的内容都是一些很随意的笔记的内容。
|
||||
3. 再然后就是上传到 notion 了,这里的内容还是比较水。
|
||||
4. 最后是比较正式的内容,会通过 obsidian 的插件上传到掘金、xlog、微信公众号。
|
||||
|
||||
也就是说内容的质量由低到高的排序是:
|
||||
|
||||
本地 obsdian > quartz > notion > 掘金、xlog、微信公众号。
|
||||
|
||||
我认为记录的初心是为了自己,然后再是分享。因此质量低一点只是给自己看没有关系,后面有比较好的内容再放到更公开的平台分享,是比较合适的方式。
|
||||
|
||||
而不是每次更新内容就想着要传播,这是不对的。
|
@ -1,141 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
slug: personal-tools-and-equipment-inventory
|
||||
description: 个人工具与设备清单
|
||||
tags:
|
||||
- 工具
|
||||
- 软件
|
||||
- 设备
|
||||
title: 个人工具与设备清单
|
||||
date: 2024-11-23T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
finished: true
|
||||
category: 软件
|
||||
date_created: 20241202
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
## 软件工具(电脑端)
|
||||
|
||||
### 开发工具
|
||||
|
||||
- Cursor(主力 IDE)
|
||||
- JetBrains 全家桶(主要是写 Unity 的时候使用 Rider)
|
||||
|
||||
### 设计工具
|
||||
|
||||
- Canva 使用它制作了不少视频封面
|
||||
- Figma
|
||||
- MasterGo 类似于 Figma 的国产设计工具
|
||||
|
||||
### 视频剪辑
|
||||
|
||||
- 剪映 (主要使用软件)
|
||||
- final cut pro (用到比较复杂的工程的时候才使用)
|
||||
|
||||
### 录屏与截图
|
||||
|
||||
- [shottr](<https://shottr.cc/>)(Mac 上的截图工具,免费好用)
|
||||
- CleanShot(Mac 上的截图工具,需要付费,支持截图、录屏,截图加 border)
|
||||
- QuickRecorder(Mac 上的录屏工具,开源,免费)
|
||||
- OBS(录屏工具,直播推流工具)
|
||||
|
||||
### 媒体与娱乐
|
||||
|
||||
- Apple Music(主力)
|
||||
- 网易云音乐
|
||||
|
||||
### 知识管理
|
||||
|
||||
- Milanote(白板型笔记,用于一个项目的初期输入和梳理)
|
||||
- Flomo(用于碎片化的记录)
|
||||
- Dinox(用于碎片化的记录,支持语音输入和联动大模型)
|
||||
- Obsidian(初期碎片化记录和梳理完成后,会在 Obsidian 中进行整理,完成最终的输出)
|
||||
|
||||
### 资讯收集与阅读
|
||||
|
||||
- n8n 自动化(用于定时监听社交平台或其他信息的更新,然后通过 webhook 推送到其他平台)
|
||||
- Raindrop(用于收集网页、内容标记)
|
||||
- Follow(用于阅读 RSS 内容)
|
||||
|
||||
### 阅读平台
|
||||
|
||||
- 微信读书(主力,主要阅读线上书城的内容,偶尔导入离线的内容)
|
||||
- Apple Books(主要阅读离线的内容)
|
||||
|
||||
### 生产力工具
|
||||
|
||||
- 1Password(和别人拼车的,已经续费 2 年)
|
||||
|
||||
### AI 助手
|
||||
|
||||
- Claude(编程主力)
|
||||
- DeepSeek(编程主力,沉浸式翻译主力 API)
|
||||
- ChatGPT(macOS 的客户端体验依旧很好,所以在 macOS 上使用很多)
|
||||
- Poe(体验各种大模型)
|
||||
- Google Notebook LLM(用于书籍或者文档的深度阅读)
|
||||
|
||||
### 任务管理
|
||||
|
||||
- 滴答清单
|
||||
- Mermaid 绘制甘特图、流程图等
|
||||
- 飞书多维表格(进行项目管理)
|
||||
|
||||
### 记账工具
|
||||
|
||||
- 飞书多维表格
|
||||
|
||||
### 浏览器
|
||||
|
||||
- Arc(主力)
|
||||
- Google Chrome
|
||||
- Edge
|
||||
|
||||
### 博客平台
|
||||
|
||||
- Astro 自建博客(随心所欲发布内容的地方)
|
||||
- 微信公众号(从自建播客中筛选长内容发布到公众号)
|
||||
- Hashnode、Medium(主要输出英文内容)
|
||||
|
||||
## 软件工具(移动端)
|
||||
|
||||
### 图片处理
|
||||
|
||||
- Picsew(手机上的截图工具,支持长截图、截图加壳、截图拼接等等)
|
||||
- 美图秀秀(图片编辑)
|
||||
- dama (一键给图片敏感数据打码)
|
||||
|
||||
### 健康管理
|
||||
|
||||
- AutoSleep(睡眠追踪)
|
||||
- Grow(运动追踪)
|
||||
- Keep(运动追踪)
|
||||
|
||||
## 硬件设备
|
||||
|
||||
### 电脑
|
||||
|
||||
- Mac Mini M2 Pro(32GB 内存,512GB 存储)10000+ 买的官方翻新机,是家里的开发主力机
|
||||
- MacBook Air M1(16GB 内存,256GB 存储)3000+ 收的二手,个人觉得性价比很高,用于移动办公是绝对够用的
|
||||
- 机械师整机(i5,2060,32GB 内存,512GB 存储)为了和朋友玩游戏和使用一些只有 Windows 上的支持的软件购买的
|
||||
|
||||
### 移动设备
|
||||
|
||||
- iPhone 13(256GB 存储)
|
||||
- iPad Mini 5 购入多年的老物,电池已经不堪重负,现在主要用于看视频和阅读
|
||||
|
||||
### 智能穿戴
|
||||
|
||||
- Apple Watch S9
|
||||
- AirPods Pro 2
|
||||
|
||||
### 影像设备
|
||||
|
||||
- 松下 GX9
|
||||
- 松下 GX9 使用镜头: 14-140mm、25mm 定焦、100-300mm(用来用去还是 25 定好用😭)
|
||||
- 大疆 Action 5 Pro(运动相机,主要用于记录日常生活碎片)
|
@ -1,43 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
date_created: 20250205
|
||||
date_modified: 20250304
|
||||
title: 使用 1password 的 secure notes 存储提示词
|
||||
date: 2025-02-05T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 1password
|
||||
- 提示词
|
||||
- prompt
|
||||
- prompt-template
|
||||
- secure-notes
|
||||
finished: false
|
||||
category: 软件
|
||||
slug: use-1password-secure-notes-to-store-prompt-templates
|
||||
description: null
|
||||
---
|
||||
|
||||
你的提示词模板是如何存储和快速查找获取的?
|
||||
|
||||
作为一个能用键盘就不用鼠标,期望减少操作步骤的懒人,我把提示词存到了 1password 的 secure notes 中
|
||||
|
||||

|
||||
|
||||
如图所示,提示词的标题以 `[提示词-标题]` 的形式命名。
|
||||
|
||||
然后通过快捷键唤起搜索框,输入 `提示词` 关键词,就可以搜索到所有的提示词。然后通过 `cmd + c` 复制内容即可。
|
||||
|
||||

|
||||
|
||||
这样的好处是:
|
||||
|
||||
1. 云端存储,只要登录了 1password,就可以查看之前存储的提示词。
|
||||
2. 跨平台使用,macos、pc、手机等都可以使用。
|
||||
3. 快捷键唤起搜索框,快速复制提示词。
|
||||
|
||||
[[使用 copyQ 存储提示词 ]]
|
@ -1,40 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 使用cloudflare部署remix项目
|
||||
date: 2024-12-19T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags: []
|
||||
finished: true
|
||||
category: null
|
||||
slug: deploy-remix-app-by-cloudflare
|
||||
description: null
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
如果使用 remix,然后用 cloudflare 进行部署。
|
||||
|
||||
通过 remix 的官方脚手架创建,在 Workers 和 Pages 中直接 import 仓库然后部署是无效的。部署完成后点击对应的域名访问,会无响应。
|
||||
|
||||

|
||||
|
||||
正确的做法是:
|
||||
|
||||
参考 [cloudflare](<[Remix · Cloudflare Pages docs](<https://developers.cloudflare.com/pages/framework-guides/deploy-a-remix-site/>)>) 的文档,使用 cloudflare + remix 的模板创建
|
||||
|
||||
``` shell
|
||||
pnpm create cloudflare@latest my-remix-app --framework=remix
|
||||
```
|
||||
|
||||
然后再在 Workers 和 Pages 中 import 你对应的 git 仓库,然后构建设置选择 remix,它会帮你填好默认的配置,保留该配置即可。
|
||||
|
||||

|
||||
|
||||
## 参考
|
||||
|
||||
[Remix + Vite: assets not generated in /public - Developers / Cloudflare Pages - Cloudflare Community](<https://community.cloudflare.com/t/remix-vite-assets-not-generated-in-public/633692>)
|
@ -1,67 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
category: null
|
||||
title: 使用cursor生成git commit msg
|
||||
date: 2024-11-12T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 笔记
|
||||
finished: true
|
||||
description: |-
|
||||
我是这个问题的解决方案:
|
||||
如何使用Git提交代码,请按照以下步骤操作:
|
||||
首先,开启终端输入git add暂存更改。
|
||||
然后,按下Command+K输入“git commit message”即可成功提交。
|
||||
slug: cursorgit-commit-msg
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
原文参考:
|
||||
|
||||
[x.com](<https://x.com/0xinhua_zh/status/1855650777110630471>)
|
||||
|
||||
```
|
||||
|
||||
太懒了不想写 Commit message,
|
||||
|
||||
@cursor_ai
|
||||
|
||||
帮你写👇:
|
||||
|
||||
1⃣ 按住 [Control ⌃ + `] 打开终端输入 git add 暂存更改。
|
||||
|
||||
2⃣ 按住 [Command ⌘ + K] 对话框输入 "git commit message" 然后提交请求,搞定!简洁明了。
|
||||
|
||||
```
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
我是这样,在暂存前使用 command
|
||||
|
||||
[x.com](<https://x.com/FaiChou_zh/status/1855775123271459192>)
|
||||
|
||||
```
|
||||
|
||||
@Commit (Diff of Working State)
|
||||
|
||||
Please generate a commit message with English. Below is the commit message template: <type>(<scope>): <subject>
|
||||
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@Commit (Diff of Working State)
|
||||
|
||||
Please generate a commit message with CN. Below is the commit message template: <type>(<scope>): <subject>
|
||||
|
||||
```
|
||||
|
||||

|
@ -1,157 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 使用google sheet + api定时获取油管播放量
|
||||
date: 2024-12-15T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 脚本
|
||||
- 自动更新播放量
|
||||
- Apps
|
||||
- Google
|
||||
- milklove
|
||||
- Script
|
||||
- Sheet
|
||||
- YouTube
|
||||
finished: true
|
||||
category: null
|
||||
slug: use-google-sheet-api-to-get-youtube-playbacks-on-a-regular-basis
|
||||
description: >-
|
||||
在 MilkLove 的二搭剧 Whale Store xoxo 的 YouTube 预告片中,使用 Google Sheets
|
||||
脚本可以定时获取视频播放量并存入表格。脚本主要包括以下步骤: 1. **检查是否有 access token**: 脚本首先检查是否存在 access
|
||||
token。如果不存在,则会返回一个错误信息。 2. **获取 video 的统计数据**: 脚本使用 YouTube API
|
||||
来获取视频的统计数据,包括播放量等。若统计数据成功则将播放量返回给脚本。 3.
|
||||
**记录播放量和时间到表格中**:如果在获取播放量后没有发生错误,则会向表格中插入一行,其中包含当前时间和播放量。 因此,通过这个脚本,可以定时地获取
|
||||
YouTube 视频的播放量并存入 Google Sheets 表格。
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
起因是想要记录一下 milklove 的二搭剧 Whale Store xoxo 在油管上的预告片的播放量的 [คุณวาฬร้านชำ (Whale Store xoxo) \| GMMTV 2025 - YouTube](<https://www.youtube.com/watch?v=Eia_Sh_ZTyQ>)
|
||||
|
||||
于是先搜了一下有没有可以直接使用的开源项目或者接口,然后在 [批量统计YouTube视频播放量方法 - 杨哥的出海营销笔记](<https://marketingyang.com/%E6%89%B9%E9%87%8F%E7%BB%9F%E8%AE%A1youtube%E8%A7%86%E9%A2%91%E6%92%AD%E6%94%BE%E9%87%8F%E6%96%B9%E6%B3%95/>) 这篇文章中了解到了可以使用 google sheet 的 apps 脚本 直接获取油管的播放量。
|
||||
|
||||
不过这篇文章中的脚本更多的获取当前的播放量,而不是定时获取,因此我在这个脚本的基础上进行了一些修改,来实现定时获取播放量,然后把时间和对应的播放量的信息存到 sheet 中。
|
||||
|
||||
最终的效果如图所示。[杂货铺播放量记录 - Google 表格](<https://docs.google.com/spreadsheets/d/12l5v7V-lyHFXw1KkgGAFtnvbVejrKshOLGsulLf8P1A/edit?usp=sharing>)
|
||||
|
||||

|
||||
|
||||
## 操作教程
|
||||
|
||||
第一步,在 sheet 中的原始模板是这样的:
|
||||
|
||||
| 链接 | 视频 id | 时间 | 播放量 |
|
||||
| ------------------------------------------------------------------------------------------ | ---------------------------------------------------------- | ---- | ------ |
|
||||
| [https://www.youtube.com/watch?v=Eia_Sh_ZTyQ](<https://www.youtube.com/watch?v=Eia_Sh_ZTyQ>) | =MID(A2, FIND("v=", A2) + 2, LEN(A2) - FIND("v=", A2) - 1) | | |
|
||||
|
||||
在第一列写上要监听的油管的链接,然后视频的 id 通过公式直接计算出来。
|
||||
|
||||
第二步,点击 extentions - apps script 这里,跳转到脚本配置界面。
|
||||
|
||||

|
||||
|
||||
点击左侧的 services 的加号,添加 YouTube Data API v3,标识符、版本直接默认就可以了。
|
||||
|
||||

|
||||
|
||||
第三步,把代码复制到 Code.gs 中,效果如图:
|
||||
|
||||
```js
|
||||
function onOpenFunc() {
|
||||
PropertiesService.getScriptProperties().setProperty("accessToken", ScriptApp.getOAuthToken())
|
||||
}
|
||||
|
||||
function getVideoViews(videoid) {
|
||||
var accessToken = PropertiesService.getScriptProperties().getProperty("accessToken")
|
||||
|
||||
// Check if the access token exists
|
||||
if (!accessToken) {
|
||||
Logger.log("No access token found.")
|
||||
return "Error: No access token"
|
||||
}
|
||||
|
||||
try {
|
||||
var videoStatsResponse = YouTube.Videos.list("statistics", {
|
||||
id: videoid,
|
||||
access_token: accessToken,
|
||||
})
|
||||
|
||||
// Check if the response contains the expected data
|
||||
if (
|
||||
videoStatsResponse.items &&
|
||||
videoStatsResponse.items[0] &&
|
||||
videoStatsResponse.items[0].statistics
|
||||
) {
|
||||
return videoStatsResponse.items[0].statistics.viewCount
|
||||
} else {
|
||||
Logger.log("No statistics found for video ID: " + videoid)
|
||||
return "Error: No statistics"
|
||||
}
|
||||
} catch (error) {
|
||||
Logger.log("Error fetching statistics for video ID " + videoid + ": " + error.toString())
|
||||
return "Error: " + error.toString()
|
||||
}
|
||||
}
|
||||
|
||||
function recordYouTubeViewCount() {
|
||||
// 获取活动表格
|
||||
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
|
||||
|
||||
// 获取第二行的 ID
|
||||
var videoId = sheet.getRange(2, 2).getValue()
|
||||
|
||||
// 获取当前时间
|
||||
var currentTime = new Date()
|
||||
|
||||
try {
|
||||
// 获取播放量
|
||||
var viewCount = getVideoViews(videoId)
|
||||
|
||||
// 获取当前表格的最后一行
|
||||
var lastRow = sheet.getLastRow()
|
||||
|
||||
// 在最后一行之后插入新行,并填写时间和播放量
|
||||
sheet.insertRowAfter(lastRow)
|
||||
sheet.getRange(lastRow + 1, 3).setValue(currentTime) // 设置时间
|
||||
sheet.getRange(lastRow + 1, 4).setValue(viewCount) // 设置播放量
|
||||
} catch (error) {
|
||||
// 错误处理
|
||||
Logger.log("Error processing video " + videoId + ": " + error.toString())
|
||||
|
||||
// 如果发生错误,记录错误信息
|
||||
var lastRow = sheet.getLastRow()
|
||||
sheet.insertRowAfter(lastRow)
|
||||
sheet.getRange(lastRow + 1, 3).setValue(currentTime) // 设置时间
|
||||
sheet.getRange(lastRow + 1, 4).setValue("Error: " + error.toString()) // 设置错误信息
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||

|
||||
|
||||
然后如果要验证是否正确,选择 recordYouTubeViewCount,然后点击 run 按钮。不出意外的话会在 sheet 中新增一行记录。
|
||||
|
||||

|
||||
|
||||
第四步,也是最后一步,我们要设置一下 trigger,来实现定时地查询播放量并且写入到 sheet 中。点击左边侧边栏的 trigger 菜单,再点击右下角的 add trigger.
|
||||
|
||||

|
||||
|
||||
设置如下,配置完成后点击 save 按钮。
|
||||
|
||||

|
||||
|
||||
点击完之后,可能出现一个验证弹窗,需要你选择自己的 google 账号,然后点击 go to xxx project (unsave), 点击 allow 进行授权。(这里没有保留截图,但或许大概应该能直接看懂?)
|
||||
|
||||
然后我们就完成了所有的配置,等待一小时后看是否运行正常即可。
|
||||
|
||||
## 参考和鸣谢
|
||||
|
||||
这个脚本是在 [批量统计YouTube视频播放量方法 - 杨哥的出海营销笔记](<https://marketingyang.com/%E6%89%B9%E9%87%8F%E7%BB%9F%E8%AE%A1youtube%E8%A7%86%E9%A2%91%E6%92%AD%E6%94%BE%E9%87%8F%E6%96%B9%E6%B3%95/>) 的脚本的基础上改的,感谢作者提供了很详细的教程和代码。
|
||||
|
||||
同时也要感谢 google 提供的 api.
|
@ -1,71 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
description: 使用大模型处理 `git diff` 生成 commit msg 的流程
|
||||
date: 2025-03-03T00:00:00.000Z
|
||||
tags:
|
||||
- 大模型
|
||||
- cherrystudio
|
||||
- Git
|
||||
category: git
|
||||
slug: use-llm-to-generate-commit-message-from-git-diff
|
||||
date_created: 20250228
|
||||
date_modified: 20250303
|
||||
title: 使用大模型处理 git diff 生成 commit msg
|
||||
author: KazooTTT
|
||||
finished: true
|
||||
---
|
||||
|
||||
使用大模型处理 `git diff` 生成 commit msg 的流程如下:
|
||||
|
||||
1. **获取 git diff 信息:**
|
||||
* 可以使用 `git diff > git.diff` 将 diff 信息写入文件。
|
||||
* 可以使用 `git diff | clip` (Windows) 将 diff 信息复制到剪贴板。
|
||||
2. **准备提示词:**
|
||||
* 提示词需要包含 commit 规则 [^1]。例子如下:
|
||||
|
||||
```
|
||||
用户会输入git diff,请你生成commit msg,可以根据更改内容生成一些备注
|
||||
|
||||
我的commit规则:
|
||||
module.exports = {
|
||||
rules: {
|
||||
'type-enum': [
|
||||
2,
|
||||
'always',
|
||||
[
|
||||
'feat', // 新功能
|
||||
'fix', // 修复
|
||||
'docs', // 文档变更
|
||||
'style', // 代码格式
|
||||
'refactor', // 重构
|
||||
'perf', // 性能优化
|
||||
'test', // 增加测试
|
||||
'chore', // 构建过程或辅助工具的变动
|
||||
'revert', // 回退
|
||||
'build', // 打包
|
||||
],
|
||||
],
|
||||
'type-case': [2, 'always', 'lower-case'],
|
||||
'type-empty': [2, 'never'],
|
||||
'scope-empty': [0],
|
||||
'scope-case': [0],
|
||||
'subject-full-stop': [0],
|
||||
'subject-case': [0],
|
||||
'header-max-length': [0],
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
3. **发送给大模型:** 将 `git diff` 信息和提示词一起发送给大模型,获取 commit msg。
|
||||
4. **使用 Cherry Studio (可选):**
|
||||
* 可以使用 Cherry Studio 创建 commit msg 生成助手
|
||||
|
||||

|
||||
具体效果
|
||||
|
||||

|
@ -1,97 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 再次学习History.scrollRestoration
|
||||
date: 2024-05-23T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 浏览器
|
||||
- History API
|
||||
- JavaScript
|
||||
- scrollRestoration
|
||||
- Web Development
|
||||
finished: true
|
||||
category: 前端
|
||||
slug: understanding-history-scrollrestoration
|
||||
description: >-
|
||||
本文重新探讨了浏览器History对象的scrollRestoration属性,该属性用于控制历史页面切换时滚动条是否恢复到之前的位置。scrollRestoration属性有两个可选值:auto和manual。当设置为auto时,滚动条会自动恢复到切换前的位置;若设置为manual,则滚动条保持在页面顶部。文章还讨论了该属性的局限性,包括可能导致的页面跳动和在不同浏览器中实现一致滚动恢复的困难。最后,文章建议在页面出现不美观跳跃或需要手动控制滚动条位置时,应将scrollRestoration设置为manual。
|
||||
NotionID-notionnext: b5838d05-d223-4a6d-b92c-e284c5e5a2ce
|
||||
link-notionnext: >-
|
||||
https://kazoottt.notion.site/History-scrollRestoration-b5838d05d2234a6db92ce284c5e5a2ce
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 再次学习 History.scrollRestoration
|
||||
|
||||

|
||||
|
||||
之前在 react.dev 的源代码中了解到了这个 HIstory 的属性,当时写了一篇笔记来记录我对它的理解,现在看来还是一知半解。所以今天打算重新学习一下这个属性,主要从属性以及所属对象的介绍、使用方法,是否开启标准这几个方面来简单展开。
|
||||
|
||||
## 什么是 scrollRestoration
|
||||
|
||||
scrollRestoration 是一个属性,它所属的实例是浏览器的 History。
|
||||
|
||||
这个属性是做什么的?它用来控制我们在切换历史页面的时候,滚动条的位置会不会恢复到之前的位置。
|
||||
|
||||

|
||||
|
||||
如图所示,我们切换历史页面,又切换回最之前的页面,发现滚动条的位置依然保持底部,也就是之前的位置。
|
||||
|
||||
什么是切换历史页面,从操作上来讲就是点击浏览器的回退(有的浏览器长按回退键会弹出历史的前面多个页面供选择)、前进按钮
|
||||
|
||||
从代码上来讲就是执行下面的这些操作:
|
||||
|
||||
```js
|
||||
history.back()
|
||||
history.forward()
|
||||
history.go(page) // page大于0,表示往后面翻对应的页数,反之则是往前翻对应的页数
|
||||
```
|
||||
|
||||
那么 scrollRestoration 这个属性与是否恢复滚动条的关系是什么?
|
||||
|
||||
scrollRestoration 可选的值为 auto 和 manual (如果浏览器支持这个属性,那么它默认是 auto)
|
||||
|
||||
> scroll restoration mode, a scroll restoration mode, initially "auto". [HTML Standard](<https://html.spec.whatwg.org/multipage/browsing-the-web.html#she-scroll-restoration-mode>)
|
||||
|
||||
如果是 auto:那么在切换历史页面的时候,滚动条会自动地恢复到切换之前的位置。
|
||||
|
||||
如果是 manual:那么在切换页面的时候,滚动条会在顶部。
|
||||
|
||||
(上述的结果均在未手动修改 state 对应的滚动条位置的情况下)
|
||||
|
||||
## 属性的局限性
|
||||
|
||||
我之前觉得这个特性很好,但是为什么要单独地设置一个属性来控制是否要恢复到之前的滚动条位置呢?
|
||||
|
||||
在 [History API - 滚动恢复 | Blog | Chrome for Developers](<https://developer.chrome.com/blog/history-api-scroll-restoration>) 这篇文章中提到:
|
||||
|
||||
> This often means unsightly jumps as the scroll position changes automatically, and especially so if your app does transitions, or changes the contents of the page in any way. Ultimately this leads to an horrible user experience.
|
||||
> To make matters even worse there's very little you can do about it: Chrome triggers a `popState` event before the `scroll` event, which means you can read the current scroll position in `popState` and then reverse it in the `scroll` event handler with `window.scrollTo` (Ewww, but at least it works!). Firefox, however, triggers the `scroll` event *before* `popState`, so you have no idea what the old scroll value was in order to restore it. Bah!
|
||||
|
||||
翻译为中文:
|
||||
|
||||
> 这通常意味着当滚动位置自动改变时会出现难看的跳动,尤其是当你的应用程序进行过渡或以任何方式更改页面内容时。这最终会导致糟糕的用户体验。
|
||||
> 更糟的是,你几乎无能为力:Chrome 会在 scroll 事件之前触发 popState 事件,这意味着你可以在 popState 中读取当前的滚动位置,然后在 scroll 事件处理程序中使用 window.scrollTo 恢复滚动位置(呃,但至少它能工作!)。然而,Firefox 则是在 popState 事件之前触发 scroll 事件,所以你无法知道旧的滚动位置以便恢复它。唉!
|
||||
|
||||
总结一下就是,此文的作者认为这个属性会造成的两个缺点是:
|
||||
|
||||
1. 可能产生不太美观的跳跃:当滚动位置自动改变时,页面内容可能会突然跳动,尤其是在应用程序进行过渡或更改页面内容时,这会导致不好的用户体验。
|
||||
2. (在不开启这个属性的时候)非常难以人工地实现恢复滚动位置:由于不同浏览器在触发 popState 和 scroll 事件的顺序上存在差异(如 Chrome 和 Firefox),这使得在所有浏览器中一致地恢复滚动位置变得非常困难。
|
||||
|
||||
## 那么什么时候需要设置为 manual?
|
||||
|
||||
参考上面的两个缺点来说,当满足以下的条件的时候,可以考虑设置为 manual
|
||||
|
||||
1. 页面确实会产生了不太美观的跳跃
|
||||
2. 不在意历史的滚动条位置,同时更希望全部由手动控制滚动条位置的时候
|
||||
|
||||
## 参考的资料
|
||||
|
||||
[History: scrollRestoration property - Web APIs | MDN](<https://developer.mozilla.org/en-US/docs/Web/API/History/scrollRestoration>)
|
||||
|
||||
[HTML Standard](<https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-history-scroll-restoration>)
|
@ -1,74 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 可以免费领取tokens的大模型服务
|
||||
date: 2024-06-20T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 大模型
|
||||
- 豆包
|
||||
- deepseek
|
||||
- siliconflow
|
||||
finished: true
|
||||
category: AI
|
||||
slug: free-tokens-large-model-service
|
||||
description: 可免费领取tokens的大模型服务于今后8月30日前有以下几家平台可以领取,包括豆包大模型、DeepSeek和SiliconCloud。
|
||||
NotionID-notionnext: 30a20483-ea28-4daf-b8be-155f0e690bc7
|
||||
link-notionnext: 'https://kazoottt.notion.site/tokens-30a20483ea284dafb8be155f0e690bc7'
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 可以免费领取 tokens 的大模型服务
|
||||
|
||||
本文更新时间:2024 年 6 月 20 日
|
||||
|
||||
## [豆包大模型](<https://www.volcengine.com/>)
|
||||
|
||||
[豆包大模型-火山引擎](<https://www.volcengine.com/product/doubao>)
|
||||
|
||||
" 亲爱的客户,模型提供方将在 5 月 15 日至 8 月 30 日期间,为您提供一次独特的机会,即高达 5 亿 tokens 的免费权益。这是我们对您长期支持的感谢,也是对未来合作的期待。"
|
||||
|
||||
在 8 月 30 日之前可以领取 5 亿 tokens
|
||||
|
||||

|
||||
|
||||
## [DeepSeek | 深度求索](<https://www.deepseek.com/>)
|
||||
|
||||
注册获 500 万 tokens(限中国大陆地区)
|
||||
|
||||

|
||||
|
||||
## [SiliconCloud](<https://siliconflow.cn/zh-cn/siliconcloud>)
|
||||
|
||||
手机号注册,一个手机号可以约 1 亿 token。
|
||||
|
||||
目前支持的模型有:
|
||||
|
||||
deepseek, qwen 等
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
小红书输出:
|
||||
|
||||
目前可以免费领 tokens 的平台
|
||||
|
||||
一、豆包大模型 p1
|
||||
|
||||
在 8 月 30 日之前可以领取 5 亿 tokens
|
||||
|
||||
二、DeepSeek
|
||||
|
||||
注册获 500 万 tokens(限中国大陆地区)
|
||||
|
||||
三、SiliconCloud p3
|
||||
|
||||
手机号注册,一个手机号可以领约 1 亿 token。
|
||||
|
||||
目前支持的模型有:deepseek, qwen 等
|
@ -1,40 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 合并多个PDF
|
||||
date: 2024-12-19T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags: []
|
||||
finished: true
|
||||
category: 项目
|
||||
slug: merge-pdfs
|
||||
description: null
|
||||
date_created: 20241219
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
地址:
|
||||
|
||||
[PDF文件合并工具 - 在线免费合并PDF文档](<https://pdf.kazoottt.top/>)
|
||||
|
||||
## 背景
|
||||
|
||||
<img src="https://pictures.kazoottt.top/2024/12/20241219-451b26c6ab1c95bfe072e356579ce4af.png"/>
|
||||
|
||||
昨天在超话看到了杂货铺的小说的翻译
|
||||
|
||||
[中字自翻《Whale... - @Co_Shean01的微博 - 微博](<https://weibo.com/6515676456/P4RZHdySF#comment>)
|
||||
|
||||

|
||||
|
||||
然后由于是分章节每个章节有对应的 pdf,而我比较喜欢使用微信读书来进行阅读,所以产生了想要把所有的 pdf 合并为一个的需求。
|
||||
|
||||
虽然现在随便搜索都能搜到有这样现成的工具,但是出于学习目的,还是自己写了一个合并 pdf 的网站。
|
||||
|
||||
## 鸣谢
|
||||
|
||||
使用了 [GitHub - nbesli/pdf-merger-js](<https://github.com/nbesli/pdf-merger-js>) 这个库来进行 pdf 的合并
|
@ -1,62 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 在react中不要滥用 short-circuit &&
|
||||
date: 2024-10-16T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 前端
|
||||
- bug
|
||||
- jsx
|
||||
- react
|
||||
- short-circuit
|
||||
finished: true
|
||||
description: >-
|
||||
在React中使用短路运算符(&&)时,0 会被错误地渲染为内容。通过避免使用 && 判断数字,特别是可能为 0 的值,可以确保正确的内容显示,例如显示
|
||||
0号相机 而非仅仅显示 0。
|
||||
slug: do-not-misuse-short-circuiting-in-react
|
||||
category: 前端
|
||||
NotionID-notionnext: 12b55568-fd75-815c-ba9c-ff587a86a262
|
||||
link-notionnext: >-
|
||||
https://kazoottt.notion.site/react-short-circuit-12b55568fd75815cba9cff587a86a262
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
## 错误现象
|
||||
|
||||
代码如下:
|
||||
|
||||
``` jsx
|
||||
{camera_id && (
|
||||
<div>{camera_id}号相机</div>
|
||||
)}
|
||||
```
|
||||
|
||||
当 camera_id>0 的时候,正常显示 x 号相机
|
||||
|
||||
当 camera_id=0 的时候,**异常**显示 0,而不是 0 号相机
|
||||
|
||||
## 错误原因
|
||||
|
||||
这是因为在 JavaScript 中,`0` 被视为 falsy 值,因此当 `camera_id` 为 `0` 时,条件判断 `camera_id &&` 会返回 `false`。所以后面的内容不被渲染。
|
||||
|
||||
但是 0 是可以被 react 渲染的,所以最后显示的是 0,而不是不显示。
|
||||
|
||||
## 解决方法
|
||||
|
||||
涉及到数字且可能为 0 的时候,不要直接使用&&来判断,而是使用
|
||||
|
||||
``` jsx
|
||||
{camera_id !== undefined && (
|
||||
<div>{camera_id}号相机</div>
|
||||
)}
|
||||
```
|
||||
|
||||
## 参考
|
||||
|
||||
[reactjs - React showing 0 instead of nothing with short-circuit (&&) conditional component - Stack Overflow](<https://stackoverflow.com/questions/53048037/react-showing-0-instead-of-nothing-with-short-circuit-conditional-component>)
|
@ -1,81 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 在vtk.js中stl和json的互相转化
|
||||
date: 2024-11-22T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 3D模型
|
||||
- 数据转换
|
||||
- json
|
||||
- stl
|
||||
- vtkjs
|
||||
finished: true
|
||||
category: 前端
|
||||
slug: in-vtkjs-stl-and-json-are-converted-to-each-other
|
||||
description: >-
|
||||
STL模型可以通过 JavaScript 的 `vtk.js` 库以 JSON 格式进行读写。将 STL 模型读入 JSON 格式的方法是使用
|
||||
`vtkPolyData.toJSON()` 方法,反之,则需要使用 `vtkSTLWriter.newInstance()` 和
|
||||
`writer.getOutputData()` 来生成 STL 模型的文件内容。
|
||||
noteId_x: 15
|
||||
create_time: '2024/11/22 13:35:36'
|
||||
update_time: '2024/11/22 14:40:08'
|
||||
publish_time: '2024/11/22 14:38:29'
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
## stl 如何转为 json
|
||||
|
||||
``` ts
|
||||
import vtkSTLReader from '@kitware/vtk.js/IO/Geometry/STLReader';
|
||||
|
||||
const getStlModelFromPath = async (path: string) => {
|
||||
const response = await fetch(path);
|
||||
const stlArrayBuffer = await response.arrayBuffer();
|
||||
|
||||
const stlReader = vtkSTLReader.newInstance();
|
||||
stlReader.parseAsArrayBuffer(stlArrayBuffer);
|
||||
|
||||
const polyData = stlReader.getOutputData();
|
||||
return polyData;
|
||||
};
|
||||
|
||||
const stlPath = '/path/to/your/model.stl';
|
||||
const polyData = await getStlModelFromPath(stlPath);
|
||||
const jsonData = polyData.toJSON();
|
||||
```
|
||||
|
||||
## json 如何转为 stl
|
||||
|
||||
``` ts
|
||||
import modelJSON from './model.json';
|
||||
|
||||
const convertPolyDataJSONToStl = (polyDataJSON: string, fileName: string = 'model.stl') => {
|
||||
const polyData = vtkPolyData.newInstance(polyDataJSON);
|
||||
const writer = vtkSTLWriter.newInstance();
|
||||
|
||||
writer.setInputData(polyData);
|
||||
const fileContents = writer.getOutputData();
|
||||
|
||||
// Create a blob and download link
|
||||
const blob = new Blob([fileContents], { type: 'application/octet-stream' });
|
||||
const a = window.document.createElement('a');
|
||||
a.href = window.URL.createObjectURL(blob);
|
||||
a.download = fileName;
|
||||
|
||||
// Trigger download
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
document.body.removeChild(a);
|
||||
window.URL.revokeObjectURL(a.href);
|
||||
};
|
||||
|
||||
|
||||
convertPolyDataJSONToStl(modelJSON);
|
||||
|
||||
```
|
@ -1,234 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
category: null
|
||||
title: 在前端使用abort取消请求
|
||||
date: 2024-04-17T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 前端
|
||||
- 实践
|
||||
- 网络
|
||||
- abortController
|
||||
- request
|
||||
finished: true
|
||||
slug: use-abort-on-the-frontend-to-cancel-the-request
|
||||
description: >-
|
||||
本文介绍了在不同前端框架中如何取消HTTP请求的方法。在原生JavaScript中,使用AbortController接口来实现请求的取消。在React中,通过useState和useEffect钩子管理AbortController的状态,并在组件卸载时自动取消请求。在SolidJS中,利用createSignal和onCleanup来处理AbortController,确保在需要时可以中断请求。这些方法都通过创建AbortController实例,并在fetch请求中使用其signal属性来控制请求的取消。
|
||||
NotionID-notionnext: 801e2fa1-dfa9-4b4f-b579-ef7f6658b9d3
|
||||
link-notionnext: 'https://kazoottt.notion.site/abort-801e2fa1dfa94b4fb579ef7f6658b9d3'
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 在前端使用 abort 取消请求
|
||||
|
||||
举个例子,在写 llm 的 chat 的时候,经常会出现需要取消请求的场景。
|
||||
|
||||
如何在**前端**取消请求,涉及到一个接口:[AbortController.AbortController() - Web API 接口参考 | MDN](<https://developer.mozilla.org/zh-CN/docs/Web/API/AbortController/AbortController>)
|
||||
|
||||
在原生的 js 的写法,参考 mdn 的写法。
|
||||
|
||||
```js
|
||||
let controller
|
||||
const url = "video.mp4"
|
||||
|
||||
const downloadBtn = document.querySelector(".download")
|
||||
const abortBtn = document.querySelector(".abort")
|
||||
|
||||
downloadBtn.addEventListener("click", fetchVideo)
|
||||
|
||||
abortBtn.addEventListener("click", () => {
|
||||
if (controller) {
|
||||
controller.abort()
|
||||
controller = null
|
||||
console.log("Download aborted")
|
||||
}
|
||||
})
|
||||
|
||||
function fetchVideo() {
|
||||
controller = new AbortController()
|
||||
const signal = controller.signal
|
||||
fetch(url, { signal })
|
||||
.then((response) => {
|
||||
console.log("Download complete", response)
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error(`Download error: ${err.message}`)
|
||||
})
|
||||
}
|
||||
```
|
||||
|
||||
在 react 的写法
|
||||
|
||||
```jsx
|
||||
import React, { useState, useEffect } from "react"
|
||||
|
||||
const RequestComponent = () => {
|
||||
const [responseData, setResponseData] = useState(null)
|
||||
const [error, setError] = useState(null)
|
||||
const [loading, setLoading] = useState(false)
|
||||
const [controller, setController] = useState(null)
|
||||
|
||||
useEffect(() => {
|
||||
// 组件被卸载的时候,取消请求
|
||||
return () => {
|
||||
if (controller) {
|
||||
controller.abort()
|
||||
}
|
||||
}
|
||||
}, [controller])
|
||||
|
||||
const fetchData = async () => {
|
||||
setLoading(true)
|
||||
setError(null)
|
||||
|
||||
const abortController = new AbortController()
|
||||
setController(abortController)
|
||||
|
||||
try {
|
||||
const response = await fetch("https://api.example.com/data", {
|
||||
signal: abortController.signal,
|
||||
})
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error("Network response was not ok")
|
||||
}
|
||||
|
||||
const data = await response.json()
|
||||
setResponseData(data)
|
||||
} catch (error) {
|
||||
if (error.name === "AbortError") {
|
||||
console.log("Request canceled by user")
|
||||
} else {
|
||||
setError(error)
|
||||
}
|
||||
} finally {
|
||||
setLoading(false)
|
||||
}
|
||||
}
|
||||
|
||||
const cancelRequest = () => {
|
||||
if (controller) {
|
||||
controller.abort()
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<div>
|
||||
<button onClick={fetchData} disabled={loading}>
|
||||
{loading ? "Loading..." : "Fetch Data"}
|
||||
</button>
|
||||
<button onClick={cancelRequest} disabled={!loading}>
|
||||
Cancel Request
|
||||
</button>
|
||||
{error && <div>Error: {error.message}</div>}
|
||||
{responseData && <div>Data: {JSON.stringify(responseData)}</div>}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
||||
export default RequestComponent
|
||||
```
|
||||
|
||||
在 solidjs 中的写法,可以参考 diu 老师的 [GitHub - anse-app/chatgpt-demo: Minimal web UI for ChatGPT.](<https://github.com/anse-app/chatgpt-demo>)
|
||||
|
||||
```js
|
||||
import { Index, Show, createEffect, createSignal, onCleanup, onMount } from 'solid-js'
|
||||
import { useThrottleFn } from 'solidjs-use'
|
||||
import { generateSignature } from '@/utils/auth'
|
||||
import IconClear from './icons/Clear'
|
||||
import MessageItem from './MessageItem'
|
||||
import SystemRoleSettings from './SystemRoleSettings'
|
||||
import ErrorMessageItem from './ErrorMessageItem'
|
||||
import type { ChatMessage, ErrorMessage } from '@/types'
|
||||
|
||||
export default () => {
|
||||
const [controller, setController] = createSignal<AbortController>(null)
|
||||
|
||||
|
||||
const requestWithLatestMessage = async() => {
|
||||
setLoading(true)
|
||||
setCurrentAssistantMessage('')
|
||||
setCurrentError(null)
|
||||
const storagePassword = localStorage.getItem('pass')
|
||||
try {
|
||||
const controller = new AbortController()
|
||||
setController(controller)
|
||||
const requestMessageList = messageList().slice(-maxHistoryMessages)
|
||||
if (currentSystemRoleSettings()) {
|
||||
requestMessageList.unshift({
|
||||
role: 'system',
|
||||
content: currentSystemRoleSettings(),
|
||||
})
|
||||
}
|
||||
const timestamp = Date.now()
|
||||
const response = await fetch('/api/generate', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({
|
||||
messages: requestMessageList,
|
||||
time: timestamp,
|
||||
pass: storagePassword,
|
||||
sign: await generateSignature({
|
||||
t: timestamp,
|
||||
m: requestMessageList?.[requestMessageList.length - 1]?.content || '',
|
||||
}),
|
||||
temperature: temperature(),
|
||||
}),
|
||||
signal: controller.signal,
|
||||
})
|
||||
if (!response.ok) {
|
||||
const error = await response.json()
|
||||
console.error(error.error)
|
||||
setCurrentError(error.error)
|
||||
throw new Error('Request failed')
|
||||
}
|
||||
const data = response.body
|
||||
if (!data)
|
||||
throw new Error('No data')
|
||||
|
||||
const reader = data.getReader()
|
||||
const decoder = new TextDecoder('utf-8')
|
||||
let done = false
|
||||
|
||||
while (!done) {
|
||||
const { value, done: readerDone } = await reader.read()
|
||||
if (value) {
|
||||
const char = decoder.decode(value)
|
||||
if (char === '\n' && currentAssistantMessage().endsWith('\n'))
|
||||
continue
|
||||
|
||||
if (char)
|
||||
setCurrentAssistantMessage(currentAssistantMessage() + char)
|
||||
|
||||
isStick() && instantToBottom()
|
||||
}
|
||||
done = readerDone
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
setLoading(false)
|
||||
setController(null)
|
||||
return
|
||||
}
|
||||
archiveCurrentMessage()
|
||||
isStick() && instantToBottom()
|
||||
}
|
||||
|
||||
const stopStreamFetch = () => {
|
||||
if (controller()) {
|
||||
controller().abort()
|
||||
...
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return (
|
||||
...
|
||||
)
|
||||
}
|
||||
```
|
@ -1,97 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 在浏览器中 opengl 的配置与检测
|
||||
date: 2025-01-07T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 浏览器
|
||||
- 性能优化
|
||||
- 硬件加速
|
||||
- canvas
|
||||
- opengl
|
||||
- webgl
|
||||
finished: true
|
||||
category: 前端
|
||||
slug: how-to-check-opengl-configuration-and-detection-in-browser
|
||||
description: 本文介绍了如何在浏览器中配置和检测 OpenGL,包括硬件加速的设置和检测方法,帮助用户优化浏览器性能。
|
||||
date_created: 20250107
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 在 google 浏览器中硬件加速、OpenGL 的配置与检测
|
||||
|
||||
## 如何配置硬件加速与 OpenGL
|
||||
|
||||
[优化浏览器设置以提升性能和使用体验 - MasterGo 帮助中心](<https://mastergo.com/help/common-problem/configure-webgl>)
|
||||
|
||||
在这篇文章中,我们可以看到具体的配置流程。
|
||||
|
||||
## 如何检测用户是否开启 OpenGL
|
||||
|
||||
在 mdn 的这篇文章中 [WEBGL_debug_renderer_info extension - Web APIs | MDN](<https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_debug_renderer_info>) 有提到:我们可以通过获取 canvas 的 webgl 上下文,然后对是否开启硬件加速和设置为 opengl 进行检测。
|
||||
|
||||
是否开启硬件加速
|
||||
|
||||
``` js
|
||||
function isHardwareAccelerationEnabled() {
|
||||
const canvas = document.createElement('canvas');
|
||||
const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
|
||||
|
||||
if (!gl) {
|
||||
console.log("WebGL is not supported or hardware acceleration is disabled.");
|
||||
return false;
|
||||
}
|
||||
|
||||
// 查询 WebGL 渲染器的细节信息,通常可以通过检查硬件信息来确认是否启用硬件加速
|
||||
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
|
||||
if (debugInfo) {
|
||||
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
|
||||
const vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
|
||||
console.log("Renderer: ", renderer);
|
||||
console.log("Vendor: ", vendor);
|
||||
|
||||
// 通过查看渲染器信息判断是否使用了硬件加速(一般情况下返回会是显卡的名称)
|
||||
return renderer && renderer.includes('Apple') || renderer.includes('NVIDIA') || renderer.includes('AMD');
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
isHardwareAccelerationEnabled();
|
||||
```
|
||||
|
||||
是否使用 opengl
|
||||
|
||||
``` js
|
||||
function checkGraphicsBackend() {
|
||||
const canvas = document.createElement('canvas');
|
||||
const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');
|
||||
|
||||
if (!gl) {
|
||||
console.log("WebGL is not supported or hardware acceleration is disabled.");
|
||||
return false;
|
||||
}
|
||||
|
||||
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
|
||||
if (debugInfo) {
|
||||
const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
|
||||
console.log("WebGL Renderer:", renderer);
|
||||
|
||||
if (renderer && renderer.includes("OpenGL")) {
|
||||
console.log("Graphics backend is OpenGL.");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
console.log("Graphics backend is not OpenGL.");
|
||||
return false;
|
||||
}
|
||||
|
||||
checkGraphicsBackend();
|
||||
|
||||
```
|
@ -1,58 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 如何在 cursor 中使用 deepseek-coder
|
||||
date: 2024-07-25T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- API
|
||||
- deepseek-coder
|
||||
- OpenAI
|
||||
finished: true
|
||||
category: AI
|
||||
slug: using-deepseek-coder-in-cursor
|
||||
description: 本文介绍了如何在 Cursor 中添加和使用 DeepSeek-Coder 模型,以及配置相关的 OpenAI API Key 和 Base URL。
|
||||
NotionID-notionnext: f759bbe6-aa4b-4317-9695-44927430146b
|
||||
link-notionnext: >-
|
||||
https://kazoottt.notion.site/cursor-deepseek-coder-f759bbe6aa4b4317969544927430146b
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 如何在 cursor 中使用 deepseek-coder
|
||||
|
||||
[Cursor](<https://www.cursor.com/>) 是一款智能代码编辑器,可以帮助用户生成代码、修改 Bug、生成测试等,提高编程效率。
|
||||
|
||||
可以免费使用,但是具有一定的额度。
|
||||
|
||||

|
||||
|
||||
但是它也可以使用自己的 key 和模型具体的操作如下。
|
||||
|
||||

|
||||
|
||||
## 1. 添加模型:DeepSeek-Coder
|
||||
|
||||
在 Cursor 的模型页面,添加新模型,选择 `deepseek-coder`。
|
||||
|
||||
## 2. 配置 OpenAI API Key
|
||||
|
||||
在设置中找到 OpenAI API Key 选项,并填写 DeepSeek 提供的 API Key。
|
||||
|
||||
## 3. 配置 Base URL
|
||||
|
||||
在设置中找到 `Override OpenAI Base URL` 选项,并填入以下地址:
|
||||
|
||||
```
|
||||
https://api.deepseek.com/v1
|
||||
```
|
||||
|
||||
## 4. 在侧边栏中选择 deepseek-coder
|
||||
|
||||

|
||||
|
||||
这样配置就完成了
|
@ -1,39 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 如何快速导出vercel project中的环境变量
|
||||
date: 2024-02-23T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- vercel
|
||||
finished: true
|
||||
slug: how-to-quickly-export-environment-variables-in-vercel-project
|
||||
description: >-
|
||||
本文介绍了如何在Vercel中集成插件或链接数据库后,快速导出环境变量的方法。首先,需要全局安装Vercel,然后通过命令链接Vercel账户,并拉取环境变量到本地的.env.local文件中。这一过程简化了环境变量的管理,提高了开发效率。
|
||||
category: 前端
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 如何快速导出 vercel Project 中的环境变量
|
||||
|
||||
我在 vercel 中集成了某些插件或者链接了数据库,要如何快速的导出这些环境变量呢?
|
||||
|
||||
具体方法如下:
|
||||
|
||||
``` shell
|
||||
npm i -g vercel
|
||||
|
||||
vercel link
|
||||
|
||||
vercel env pull .env.local
|
||||
```
|
||||
|
||||
1. 首先是安装 vercel
|
||||
2. 然后登录 vercel 
|
||||
3. 最后拉取环境变量到.env.local
|
||||

|
@ -1,76 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
date_created: 20250207
|
||||
date_modified: 20250304
|
||||
title: 如何解决 Nginx 启动时未联网无法访问DNS而挂掉的问题
|
||||
date: 2025-02-08T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 计算机网络
|
||||
- dns
|
||||
- nginx
|
||||
finished: true
|
||||
category: null
|
||||
slug: nginx-startup-fix-configure-local-hosts-file
|
||||
description: null
|
||||
---
|
||||
|
||||
假设我们在 Nginx 配置文件中设置了如下的反向代理配置:
|
||||
|
||||
```nginx
|
||||
location / {
|
||||
proxy_pass http://example.com;
|
||||
}
|
||||
```
|
||||
|
||||
开机的时候,在没有网络连接的情况下,Nginx 启动时无法访问 DNS 服务器进行解析 `example.com`,导致 Nginx 启动失败。这种情况下,我们需要一种方法来确保 Nginx 启动时即使无法访问网络,依然可以顺利运行。
|
||||
|
||||
## 解决方案:配置 `resolver`
|
||||
|
||||
解决这个问题的一个有效方法就是在 Nginx 配置中添加 `resolver` 指定 DNS 服务器,告诉 Nginx 如何解析域名,即使在网络不可用时,Nginx 也能够正常启动。
|
||||
|
||||
### `resolver` 指令的作用
|
||||
|
||||
`resolver` 指令用于指定一个或多个 DNS 服务器,Nginx 将通过这些服务器解析域名。当 Nginx 需要解析代理服务器的域名时,它会使用配置中的 DNS 服务器,而不是依赖系统默认的 DNS 配置。
|
||||
|
||||
### 如何配置
|
||||
|
||||
假设我们要配置的反向代理目标是 `example.com` ,在 Nginx 配置文件中,我们可以添加如下内容:
|
||||
|
||||
```nginx
|
||||
http {
|
||||
resolver 223.5.5.5 223.6.6.6 valid=30s;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
location / {
|
||||
set $backend "http://example.com";
|
||||
proxy_pass $backend;
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
> proxy_pass 后面接域名时候会 DNS 缓存,导致这个域名背后的机器负载不均衡,官方推荐的是使用变量解决 [^1]
|
||||
|
||||
在上述配置中,`resolver 223.5.5.5 223.6.6.6 valid=30s;` 指定了一个 DNS 服务器
|
||||
|
||||
这意味着 Nginx 在启动时会使用这个 DNS 服务器来解析 `example.com`,即使机器没有网络连接,它也能够通过指定的 DNS 服务器来解析域名。
|
||||
|
||||
`valid=30s` 表示 DNS 解析结果的有效期为 30 秒。(具体来说就是 Nginx 会缓存 DNS 解析结果,30 秒内不再请求 DNS 服务器)
|
||||
|
||||
## 参考
|
||||
|
||||
[nginx中resolver参数配置解释 \|](<https://www.rootop.org/pages/4307.html>)
|
||||
|
||||
[Module ngx\_http\_core\_module](<https://nginx.org/en/docs/http/ngx_http_core_module.html#resolver>)
|
||||
|
||||
[89 \| proxy模块中的proxy\_pass指令--极客时间](<https://time.geekbang.org/course/detail/138-75140>)
|
||||
|
||||
[^1]: [89 \| proxy模块中的proxy\_pass指令--极客时间](<https://time.geekbang.org/course/detail/138-75140>)
|
@ -1,76 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 如何让你的截图更加好看
|
||||
slug: how-to-make-your-screenshots-look-better
|
||||
tags:
|
||||
- 工具
|
||||
- 设计
|
||||
description: >-
|
||||
本文介绍了三款截图美化工具:shots.so、jellylade和Arc浏览器。shots.so支持电脑端,提供多种美化功能,如改变背景色、添加阴影等。jellylade同样可以将截图转化为美观的帖子。Arc浏览器则是一款macOS平台上的浏览器,内置截图美化功能,用户可以通过快捷键或开发者模式进行截图美化,并可自定义背景色和水印。这些工具均能帮助用户提升截图的美观度和专业性。
|
||||
finished: true
|
||||
date: '2024-07-11T02:17:53.456Z'
|
||||
category: 软件
|
||||
date_created: 20241217
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 如何让你的截图更加好看
|
||||
|
||||
大家好,今天要跟大家分享的是几款截图美化工具。
|
||||
|
||||
## 一、shots.so
|
||||
|
||||
[Shots - Create Amazing Mockups](<https://www.shots.so/>)
|
||||
|
||||

|
||||
|
||||
目前仅支持电脑端,移动端正在开发中。
|
||||
|
||||
这款截图工具提供了很全面的功能,包括但不限于:改变背景色、修改边框、添加阴影、模拟截图在设备上的展示效果等等。
|
||||
|
||||
效果:
|
||||
|
||||

|
||||
|
||||
## 二、jellylade
|
||||
|
||||
[Turn your screenshots into beautiful posts](<https://app.jellylade.com/>)
|
||||
|
||||

|
||||
|
||||
与 shots.so 类似,都可以体验一下看看效果。
|
||||
|
||||

|
||||
|
||||
## 三、Arc 浏览器
|
||||
|
||||
**目前仅适用于 macos 平台**
|
||||
|
||||
没错 arc 浏览器自带截图美化功能。
|
||||
|
||||
使用方式有两种:
|
||||
|
||||
1. `cmd + t` 然后搜索选择 **capture in portrait mode** 即可
|
||||
|
||||

|
||||
|
||||
1. 另外一种方式是开启 developer mode,
|
||||
|
||||

|
||||
|
||||
然后在右侧点击按钮
|
||||
|
||||

|
||||
|
||||
触发后你可以选择背景色以及要不要带上 arc 浏览器的水印
|
||||
|
||||

|
||||
|
||||
最终效果
|
||||
|
||||

|
@ -1,34 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 实现一个auto slugify
|
||||
date: 2024-02-20T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 项目
|
||||
- slug
|
||||
slug: implement-an-auto-slugify
|
||||
description: >-
|
||||
Discover an auto slugify webapp designed to convert text into URL-friendly
|
||||
slugs. Check out the live demo at https://slugify.kazoottt.top/. This tool is
|
||||
based on the auto-slugify library available on GitHub.
|
||||
category: 项目
|
||||
date_created: 20241202
|
||||
date_modified: 20250315
|
||||
---
|
||||
|
||||
<!--section: 1-->
|
||||
|
||||
# Auto Slugify Webapp
|
||||
|
||||
[demo](<https://slugify.kazoottt.top/>)
|
||||
|
||||

|
||||
|
||||
based on
|
||||
|
||||
[auto-slugify](<https://github.com/kzttools/auto-slugify>)
|
@ -1,53 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 对于a标签的download属性
|
||||
date: 2024-10-15T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 前端
|
||||
- html
|
||||
finished: true
|
||||
category: 前端
|
||||
slug: the-download-attribute-for-the-a-tag
|
||||
description: download属性是如何定义的以及注意事项。 不能设置为null,可以直接设置成空串或者null。
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
## 对于 a 标签的 download 属性
|
||||
|
||||

|
||||
|
||||
[\<a\>: The Anchor element - HTML: HyperText Markup Language | MDN](<https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a>)
|
||||
|
||||
---
|
||||
|
||||
如何定义没有值?
|
||||
|
||||
`<a download>` 或者 `<a download="">`
|
||||
|
||||
---
|
||||
|
||||
在设置的需要注意类型转换:
|
||||
|
||||
``` js
|
||||
let temp1 = document.createElement('a');
|
||||
|
||||
temp1.download = null;
|
||||
|
||||
console.log(temp1.download); // 输出 undefined
|
||||
|
||||
```
|
||||
|
||||
但是如果先设置了 download = '', 再设置 download = null, 就会被转化为 'null'
|
||||
|
||||

|
||||
|
||||
所以要么直接设置 download = null,要么直接设置 download = ''
|
||||
|
||||
不要设置了 download = '' 之后去设置 download = null
|
@ -1,40 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: false
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 小红书长文切图笔记?其实 craft 就可以实现。
|
||||
date: 2025-02-06T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags: []
|
||||
finished: false
|
||||
category: 软件
|
||||
slug: use-craft-to-cut-the-long-text-note-of-xiaohongshu
|
||||
description: null
|
||||
date_created: 20250206
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
访问 craft.do,登录后在右上角新建 doc ,复制你要切图的长文内容到里面去。 (如果你创建数量达到上限,可以打开一个老的文档替换你新的内容)
|
||||
|
||||

|
||||
|
||||
点击右上角的 share - export - image 按钮,开启图片导出。
|
||||
|
||||

|
||||
|
||||
调整一下样式,检查没有问题后可以点击左下角的 save image 进行导出。
|
||||
|
||||

|
||||
|
||||
最终效果预览:
|
||||
|
||||
图片 1:
|
||||
|
||||

|
||||
|
||||
图片 2:
|
||||
|
||||

|
@ -1,31 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
category: null
|
||||
title: 屏蔽推特黄推
|
||||
date: 2023-09-17T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 开源项目
|
||||
- 项目推荐
|
||||
- 油猴脚本
|
||||
- gray
|
||||
- twitter
|
||||
finished: true
|
||||
slug: blocking-twitter-yellow-tweets
|
||||
description: >-
|
||||
推荐一个GitHub项目:daymade/Twitter-Block-Porn,该项目提供共享黑名单,可以一键拉黑所有发送假色情评论的诈骗账号,有效提升使用Twitter的体验。此方法比仅在网页上隐藏更有效,因为一旦拉黑,无论在手机端还是网页端,相关内容都会消失。
|
||||
date_created: 20250104
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 屏蔽推特黄推
|
||||
|
||||
[GitHub - daymade/Twitter-Block-Porn: 共享黑名单, 一键拉黑所有黄推诈骗犯. Block scammers who sending fake porn comments, and help you improve your experience using Twitter.](<https://github.com/daymade/Twitter-Block-Porn>)
|
||||
比仅在网页上隐藏好使,这个是直接 block 之后手机和网页端都会消失
|
||||
|
||||

|
@ -1,29 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 快速获取telegram chatId然后实现消息通知的方法
|
||||
date: 2023-09-14T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 工具
|
||||
- bot
|
||||
- telegram
|
||||
finished: true
|
||||
slug: quick-way-to-get-telegram-chatid-and-then-implement-message-notification
|
||||
description: >-
|
||||
本文介绍了如何快速获取Telegram的chatId并实现消息通知的方法。首先,设置Telegram账户的username,然后向@RawDataBot发送消息以获取chatId。最后,结合Telegram
|
||||
bot和apprise工具来实现消息通知功能。
|
||||
category: 前端
|
||||
date_created: 20241217
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
# 快速获取 telegram chatId 然后实现消息通知的方法
|
||||
|
||||
1. 给 telegram 账户设置 username
|
||||
2. 搜索 [@RawDataBot](<https://www.alphr.com/find-chat-id-telegram/>),给它发送一条消息。它会返回账户相关的信息给你。格式如下:,chat.id 就是所需要的 chatId
|
||||
3. 然后就能结合 [telegram bot](<https://api.telegram.org/>)+ [apprise](<https://github.com/caronc/apprise/wiki/Notify_telegram>) 做消息通知了。
|
@ -1,108 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 我自己常用的ffmpeg批处理
|
||||
date: 2024-10-14T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 视频处理
|
||||
- ffmpeg
|
||||
finished: false
|
||||
category: 软件
|
||||
slug: >-
|
||||
01-my-own-commonly-used-ffmpeg-batch-processingmy-own-commonly-used-ffmpeg-batching
|
||||
description: 转换FLV格式的视频成HDDP,用于弹幕压制。使用FFmpeg来实现该功能,支持多个操作系统,如Windows和macOS。
|
||||
date_created: 20241217
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
## 720x1080 批量转 1920x1080(两边黑屏)
|
||||
|
||||
手机直播的时候录播机录出来的分辨率是 720x1080,使用 ffmpeg 转成横屏的 1920x1080。这样 xml 转 ass 弹幕的时候,就不需要另外处理了,看起来很更舒服。
|
||||
|
||||
macos 的写法:
|
||||
|
||||
```bash
|
||||
input_folder="" # 要转化的录播的文件夹路径
|
||||
output_folder="" # 要输出的文件夹路径
|
||||
|
||||
# Create the output folder if it does not exist
|
||||
mkdir -p "$output_folder"
|
||||
|
||||
for f in "$input_folder"/*.flv; do
|
||||
ffmpeg -i "$f" -vf "scale=720:1080,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -c:a copy "$output_folder/$(basename "${f%.*}.mp4")"
|
||||
done
|
||||
```
|
||||
|
||||
windows 的写法:
|
||||
|
||||
```powershell
|
||||
$input_folder = "Z:\\rec\\48743-hanser\\20240731-又来画画了!" # 要转化的录播的文件夹路径
|
||||
$output_folder = "Z:\\rec\\48743-hanser\\20240731-又来画画了!" # 要输出的文件夹路径
|
||||
|
||||
# Create the output folder if it does not exist
|
||||
If (-Not (Test-Path $output_folder)) {
|
||||
New-Item -ItemType Directory -Path $output_folder | Out-Null
|
||||
}
|
||||
|
||||
Get-ChildItem -Path $input_folder -Filter *.flv | ForEach-Object {
|
||||
$input_file = $_.FullName
|
||||
$output_file = Join-Path $output_folder ($_.BaseName + ".mp4")
|
||||
$ffmpeg_args = @("-i", $input_file, "-vf", "scale=720:1080,pad=1920:1080:(ow-iw)/2:(oh-ih)/2", "-c:a", "copy", $output_file)
|
||||
& ffmpeg $ffmpeg_args
|
||||
}
|
||||
```
|
||||
|
||||
效果
|
||||
|
||||

|
||||
|
||||
## 弹幕压制
|
||||
|
||||
### windows 版 (使用 cuda)
|
||||
|
||||
```bash
|
||||
@echo off
|
||||
set input_folder=YourInputFolderPath
|
||||
set output_folder=YourOutputFolderPath
|
||||
|
||||
for %%a in ("%input_folder%\\*.flv") do (
|
||||
ffmpeg -hwaccel cuda -c:v h264_cuvid -i "%%a" -vf subtitles="%%~na.ass" -c:v h264_nvenc -b:v 6000k -c:a copy "%output_folder%\\%%~na_压制.mp4" -y
|
||||
)
|
||||
```
|
||||
|
||||
### macOS 版
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
input_folder="/path/to/input" # Replace with your input folder path
|
||||
output_folder="/path/to/output" # Replace with your output folder path
|
||||
|
||||
mkdir -p "$output_folder" # Create the output folder if it doesn't exist
|
||||
|
||||
for f in "$input_folder"/*.mp4; do
|
||||
subtitle_file="${f%.*}.ass" # Assumes subtitle file name is same as video file name but with .ass extension
|
||||
output_file="$output_folder/$(basename "${f%.*}_压制.mp4")" # Output file name with _ass suffix
|
||||
|
||||
ffmpeg -i "$f" -vf "ass=$subtitle_file" "$output_file"
|
||||
done
|
||||
```
|
||||
|
||||
## 帧截图
|
||||
|
||||
``` shell
|
||||
ffmpeg -i inputfilepath %d.jpg
|
||||
```
|
||||
|
||||
根据视频的帧率来提取截图,每帧都会被提取,并保存为 JPEG 图像文件
|
||||
|
||||
``` shell
|
||||
ffmpeg -i inputfilepath -vf "fps=1" %d.jpg
|
||||
```
|
||||
|
||||
每隔 1 秒从视频中提取一帧,并保存为 JPEG 图像文件
|
@ -1,50 +0,0 @@
|
||||
---
|
||||
toAstro: true
|
||||
astroType: null
|
||||
published: true
|
||||
toWexin: null
|
||||
toJuejin: null
|
||||
toZhihu: null
|
||||
title: 最近状态比较差
|
||||
date: 2024-11-14T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 焦虑症状管理,自我满足感,个人成长策略
|
||||
finished: true
|
||||
category: null
|
||||
slug: recently-the-state-has-been-relatively-poor
|
||||
description: >-
|
||||
个人不开心的原因主要是过度依赖外界获取快乐、身体自身问题、过于消极和关注他人的看法,以及欲望与现实不匹配。可以让自己开心的事情包括追星、产出、运动、挣钱和夸赞感谢。面对当下不确定的未来,目前可以安排锻炼和产出兴趣活动,保持分享的欲望以及实践费曼学习法,渐进式地提升身心健康和生活满意度。
|
||||
date_created: 20241114
|
||||
date_modified: 20250304
|
||||
---
|
||||
|
||||
## 分析自己不开心的原因
|
||||
|
||||
第一是太过依赖外界获取快乐,当关注的事物出现的频次降低时就会产生焦虑。➡️分离焦虑
|
||||
|
||||
第二是身体自身问题,缺乏锻炼,睡眠不足,且最近 debuff,因此可能出现很多负面情绪
|
||||
|
||||
第三是过于消极并且在意他人看法,喜欢预设最坏的事情走向,给自己带来不必要的压力
|
||||
|
||||
第四是欲望与现实不匹配,感觉想要的生活与现实差距比较大。
|
||||
|
||||
## 能让自己开心的事情
|
||||
|
||||
追星,需排除其中的不开心因素,例如和他人吵架
|
||||
|
||||
产出,拍到满意的照片,剪出满意的视频,写出满足需求的软件等
|
||||
|
||||
运动,运动完以后确实会开心很多
|
||||
|
||||
挣钱,喜欢看到存款变多的情况。
|
||||
|
||||
夸赞和感谢,一直都不会掩饰自己是个虚荣心很强的人,他人的夸赞和感谢会让我开心很久。
|
||||
|
||||
## 目前能做什么
|
||||
|
||||
既然关注的人出现的频次无法预测和掌控,因此只能处于有饭就吃,没饭可以扒拉两口别的饭,拓展兴趣点
|
||||
|
||||
由于目前比较忙,吃完晚饭回家已 8 点,没有太多时间做自己的事情和锻炼,因此尽量在自己身体和精神条件尚可的情况下,安排锻炼(更优先),然后在产出兴趣内的东西
|
||||
|
||||
其他的随缘吧,保持分享的欲望,实践费曼学习法,不刻意追求什么,慢慢积累就行。
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user