docs: remove notes

This commit is contained in:
KazooTTT
2025-04-09 12:12:48 +08:00
parent 37d80c7d79
commit ea0268259d
116 changed files with 0 additions and 7152 deletions

View File

@ -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

View File

@ -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 -->
## 直播
> 不需要 背负任何
> 只需要空行囊和彼此就够

View File

@ -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] 游泳

View File

@ -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>

View File

@ -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 组
下次要把拖鞋带来,洗完澡直接穿拖鞋回家。

View File

@ -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 数据:
![IMG-20241021113029099](<https://pictures.kazoottt.top/2024/11/20241125-7139a104f1df9b03b462a7d8b582b109.png>)
## React-noiton-x
今天一直在看 react-noiton-x 的问题,因为博客里依赖了这个库的搜索接口,而该接口虽然在源代码里更新了,但是最新一次打包是二月份
![IMG-20241021113029126](<https://pictures.kazoottt.top/2024/11/20241125-e05ed84ba105012a9d605957c3813d65.png>)
所以尝试自己从源代码打包一份,然后新发一个版本给自己使用。
遇到的问题有:
1. 忘记修改过 yarn 的代理(公司内网),导致安装失败。代理优先级应该是 yarn 自身代理>npm 代理
2. 对于 workspace 的概念不熟悉
3. 对于 npm 发布不熟悉
后续要做的事:
打包,然后发布
## Blog
然后继续折腾了一下博客,接入了 sentry,
之前的 giscus 评论区的样式是比较怪异的(即使切换了主题,背景色还是白色),今天做成适配的了。不过这个切换有些生硬,后续要加个过渡
![IMG-20241021113029153](<https://pictures.kazoottt.top/2024/11/20241125-c8924e57d362b973da60017a4ad7bbdd.gif>)
## 健身
状态不好没去健身房在家踩了椭圆机3-11 档阻力交叉 30 分钟
=、= 感觉该换手表了,突然发现这个手表表盘市场都不兼容了
![IMG-20241021113029196](<https://pictures.kazoottt.top/2024/11/20241125-4cd6f6565440bf5c21b6ee94587de167.jpeg>)
![IMG-20241021113029229](<https://pictures.kazoottt.top/2024/11/20241125-16152535d36b14dc442cccfd8484b72b.jpeg>)

View File

@ -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)

View File

@ -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的问题)

View File

@ -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 拦截 + 第一页数据填充
后面要做的事:
实现滚动加载后,填充对应的数据
![IMG-20241021113029272](<https://pictures.kazoottt.top/2024/11/20241125-15619d7536bbeb8537e13a5580d60fbd.png>)
## Inbox
[屏蔽推特黄推](/notes/blocking-twitter-yellow-tweets)
[shot.so - 图片美化工具](/notes/shotso-image-beautification-tool)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 -->
## 打卡
![IMG-20241021113029319](<https://pictures.kazoottt.top/2024/11/20241125-2c8dfa24dd6c560da504635981725bb0.png>)
## Inbox

View File

@ -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

View File

@ -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
---
## 打卡
![IMG-20241021113029371](<https://pictures.kazoottt.top/2024/11/20241125-d50f8d9b645bbfacc13485c8594b5f18.png>)
今天的 wakatime 有点恐怖了
## Inbox
<!-- start of weread -->
<!-- end of weread -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 -->

View File

@ -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 提了 prautogen 的已经被合并了,这是第二次被 autogen 合并,
🙏非常感谢。
然后开通了 notion ai发现它支持 google pay这点对我来说挺友好的。开通的原因是想用它的自动生成 tags 和 summary 的功能。搭配 notionnext比较方便。然后迁移了一部分本地的内容到博客上去。
买的时尚小垃圾到了,挺喜欢的。
![IMG-20241021113029511](<https://pictures.kazoottt.top/2024/11/20241125-30be30b76c47cff90a88e37b7562e1ed.png>)
![IMG-20241021113029604](<https://pictures.kazoottt.top/2024/11/20241125-15265af8fa83af8ec5365f588256f85b.jpeg>)
![IMG-20241021113029671](<https://pictures.kazoottt.top/2024/11/20241125-c33b78a016b48a6729cb3aa8e939e125.jpeg>)
今天的不足之处是没有学习也没有刷题。
昨天太累了,今天早睡吧。晚安。
# Inbox
<!-- start of weread -->
<!-- end of weread -->

View File

@ -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: 碎片
---
使用飞书来记账
![IMG-57FB4A797CCE28DF5413ACAC19610F28](</mdImages/IMG-57FB4A797CCE28DF5413ACAC19610F28.png>)
![IMG-7F9EB8A6DF15D7814E3A8AEBB48D1E6B](</mdImages/IMG-7F9EB8A6DF15D7814E3A8AEBB48D1E6B.png>)

View File

@ -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: 碎片
---
![IMG-69C73A35AE6AA1B14805360168652323](</mdImages/IMG-69C73A35AE6AA1B14805360168652323.png>)
**Vintage Camera Lab复古相机爱好者的数字中心**
**地址**[Vintage Camera Lab](<https://vintagecameralab.com/>)
**日期**20241025
**摘要**Vintage Camera Lab 是专注于复古相机的网站,涵盖多种型号的详细信息与历史,按品牌、格式和类型分类,便于摄影师、收藏家等了解相机的背景与特点。同时,该网站还提供复古相机风格的周边产品。
**亮点**
- 丰富的相机数据库,包含规格与历史背景。
- 支持按品牌、格式和类型分类。
- 提供复古相机主题的周边商品。
- 面向复古摄影爱好者和相机收藏家。
---
Vintage Camera Lab复古相机爱好者的数字中心
Vintage Camera Lab 是专注于复古相机的网站,涵盖多种型号的详细信息与历史,按品牌、格式和类型分类,便于摄影师、收藏家等了解相机的背景与特点。同时,该网站还提供复古相机风格的周边产品。
亮点:
• 丰富的相机数据库,包含规格与历史背景。
• 支持按品牌、格式和类型分类。
• 提供复古相机主题的周边商品。
• 面向复古摄影爱好者和相机收藏家。

View File

@ -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: 碎片
---
![IMG-50A2519769D27745F083E18F4D48FC55](</mdImages/IMG-50A2519769D27745F083E18F4D48FC55.png>)
Tapedeck.org 提供了从 60 年代初的功能型磁带到 90 年代的各种形状变化的磁带盒设计。
- 记录了丰富的磁带设计历史和信息,从早期的功能性设计到后来的色彩丰富和形状变化。
- 网站鼓励用户分享自己的磁带收藏,提供了详细的提交指南。
- 网站还提供了一个在线商店销售与磁带相关的周边。

View File

@ -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 的兼容性和美观程度是更好的。
![IMG-C58CD0BCE8298B39A32CF9B5698EF4DC](</mdImages/IMG-C58CD0BCE8298B39A32CF9B5698EF4DC.png>)
![IMG-19B31E2B37A4ADD4C3F65725068BCAC4](</mdImages/IMG-19B31E2B37A4ADD4C3F65725068BCAC4.png>)
![IMG-330ABC2555F1F3E34E3D9FBB55B9C8F9](</mdImages/IMG-330ABC2555F1F3E34E3D9FBB55B9C8F9.png>)
我一直以为 Craft 是免费的,今天才发现是最开始免费 10 个 doc后面每周可以免费创建 2 个 doc。

View File

@ -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>)
![7101901680_P28tdryDc_3_007KCR3ily1hw00ujf2kdj30ok0wrhdt](<https://pictures.kazoottt.top/2024/11/20241127-146e50893c94f9353d1dc1b4fb57cf9f.jpg>)
![7101901680_P28tdryDc_2_007KCR3ily1hw00uoshooj30ok0wrhdt](<https://pictures.kazoottt.top/2024/11/20241127-2fbf4d6dd6bfbab6f90dc9bb07616302.jpg>)
![7101901680_P28tdryDc_1_007KCR3ily1hw00umrpncj30ok0wrhdt](<https://pictures.kazoottt.top/2024/11/20241127-5ccf20fa63efa8c2cbb5fb96f24a9165.jpg>)
[幸福的具象化](<https://weibo.com/6083416567/P28jkx9MS#comment>)
![IMG-20241127003154185](<https://pictures.kazoottt.top/2024/11/20241127-116eefa7b7e4f45a768949a17c5eb2e1.gif>)
![Pasted image 20241127003452](<https://pictures.kazoottt.top/2024/11/20241127-05fca095f483c27c58e0f5b092b3d69a.png>)
[girl rule cut](<https://weibo.com/1750538651/P27NfAOja#comment>)
[亲亲](<https://weibo.com/1825971940/P288xfVxF#comment>)
![lJxtFWEflx08jTFnm57i0104120011iE0E010](<https://pictures.kazoottt.top/2024/11/20241127-3f6f17edcb438269258e15de9e0a885d.gif>)
[二搭 预告片 婉司姬](<https://weibo.com/1753015991/P27pq9oJU#comment>)
![Pasted image 20241127003346](<https://pictures.kazoottt.top/2024/11/20241127-cec219a8dbcaef9195964df8a2775832.png>)
[二搭 预告片 弯弯字幕组](<https://weibo.com/7392264056/P27lQtUnd#comment>)
![Pasted image 20241127003356](<https://pictures.kazoottt.top/2024/11/20241127-80e0bb6d50b0e8356ea53361e771365a.png>)
[Findwichh推介会汇总](<https://weibo.com/6613951279/P29c7fgx9#comment>)

View File

@ -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 赠送了试用的天数
![Pasted image 20241127102521](<https://pictures.kazoottt.top/2024/11/20241129-f78ed74651c9e92353b0b3f88033b873.png>)
个人感觉 cursor 的自动补全速度比 windsurf 快和智能很多
volview 也这么多 store谁能看懂...
![Pasted image 20241127182204](<https://pictures.kazoottt.top/2024/11/20241129-aa7cb1a643a25a79e8726605fd2b1106.png>)
`src\components\tools\crop\Crop2D.vue`
啥意思
![Pasted image 20241127182701](<https://pictures.kazoottt.top/2024/11/20241129-5550cf97c227b40010dffa544417d125.png>)
安装 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>)

View File

@ -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
![image.png](<https://pictures.kazoottt.top/2024/11/20241128-365eae5fe7493a84658fb9bbfa7555cb.png>)
[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 真好玩
我怎么这么久了才开始玩(谢谢酱紫表的安利)
![CleanShot 2024-11-28 at 23.40.12@2x.png](<https://pictures.kazoottt.top/2024/11/20241128-bde60eeee02f234a59d87d2144a4a4d3.png>)
[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>)

View File

@ -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 (需要登录)
![image.png](<https://pictures.kazoottt.top/2024/11/20241129-771df278cae6c89066af0a9a882f3ff9.png>)
[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 手搓这种图
![image.png](<https://pictures.kazoottt.top/2024/11/20241129-60d83ca2693fd5e9774743f352039c2b.png>)
最近可以做的事情:
编辑器图片上传重构
编辑器高度修改
行间高度调整
用 rn 重写移动端
ml 资源整合
vtk、图形学学习
obsidian 插件 ollama generate slug tags

View File

@ -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 CodeVSCodeextention先按下 Ctrl+Shift+P或Cmd+Shift+P进入
Command Pallete。然后输入“Startup Performance”并选择相关选项完成后记得激活功能以保持其设置。
如果存在占用特定端口的程序请使用命令“lsof -i :<PORT>”识别端口对应的进程IDPID再使用命令“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+PWindows/Linux或 Cmd+Shift+PmacOS输入 “Startup Performance” 并选择该选项。 关注Finish Activate
kill 端口为 x 的进程
```
lsof -i :<PORT>
kill -9 <PID>
```
```
kill -9 $(lsof -t -i :<PORT>)
```

View File

@ -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 了
![image.png](<https://pictures.kazoottt.top/2024/12/20241210-c47db55ce8a5198e2eafb096444aab6f.png>)
![image.png](<https://pictures.kazoottt.top/2024/12/20241210-a064bc9e2410f0bfba01ba7323277e64.png>)
上周在忙什么?主要是做 vtk.js 的开发花了很多时间,不然后续的需求查漏补缺我不会做的这么着急。
对于 vtk.js 的掌握程度还是太低了,甚至连 polydata 的变化要怎么写都是临时掌握的。不过好在上周耐心理了一下项目里复杂的数据流转,清晰了很多。
![image.png](<https://pictures.kazoottt.top/2024/12/20241211-20241211214029.png>)
然后今天主要再写文档,写得头昏眼花的,好容易走神。
---
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/>)
![image.png](<https://pictures.kazoottt.top/2024/12/20241210-bc4eadb59b028a2fac538771dae2c303.png>)

View File

@ -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靠一些不切实际的信念感在往下走
但是感觉明年就该清醒了

View File

@ -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/>)
![739C4785-E7F0-412D-B4CC-BC3EA1A7BD7A_1_105_c.jpeg](<https://pictures.kazoottt.top/2024/12/20241220-789854cabb309452d0dd3ef21f666e62.jpeg>)
## 碎片化记录(基于 n8n + rss + 飞书 webhook 生成)
11:53昨天的打卡
12:27这个真的很好用
不打游戏,办公够了
安利安利
13:1121 牛爱能闪耀运动会吗
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转发微博
- 转发 @全是狗狗啊: 只要一碰小狗狗的鼻子,狗狗就会自动地吐舌头!这也太可爱了吧!啊啊啊啊我能玩一天 全是狗狗啊的微博视频

View File

@ -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方便自己也能增加熟练度。比如前端封装 sliderunity 中也封装 slider
最后就是直接阅读后续要上手的项目代码并学习使用 remote app 快速看效果。
其实在大学的时候有参加过 VR 的社团,当时看过 B 站上一个虚拟小屋的教学视频也体验过 VR 设备。后来大创也申报过 VR + 医疗相关的项目,不过被砍后已经很久没有接触过 unity。
然后去年和同担一起有策划过一个模拟经营类的游戏,但是因为我太忙并且主动性不高这个项目搁置了。希望能通过这次好好学一下 unity 并把这个项目重新做起来。(做到一定阶段再跟别人说,而不是还没开始就大范围告诉他人,我觉得我一直都是这种喜欢给自己画饼之余也爱给别人画饼的,这样的缺点真的需要改)
今天同组同事也跟我聊了一下,教了我一些技巧,有句话对我来说印象比较深刻就是“你就是缺了迈出去的那一步。”
不管怎么样实践和学习总是没错,不要抵触新的事物,先做一个垃圾出来至少也算是做出来了。
![image.png](<https://pictures.kazoottt.top/2024/12/20241224-2c04f98a1db13b96bed1735f7fc684e6.png>)

View File

@ -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
![img_80.png](<https://pictures.kazoottt.top/2024/01/20240119-be50f9aad8ddea1ed678b0d46a11b38a.webp>)
介绍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
![img_16.png](<https://pictures.kazoottt.top/2024/01/20240119-05cc41e89e5243dd0f5bfef9c5fabcee.webp>)
这篇文章详细介绍了智谱 AI 发布的国产大模型 GLM4 的能力,并且介绍了 GLMs 商店与开发者分成计划。
[GLM-3,GLM-4体验地址](<https://chatglm.cn/main/detail>)
![img_18.png](<https://pictures.kazoottt.top/2024/01/20240119-0f421e32fab4915dd9055b29e38cbc7d.webp>)
GLMs 商店截图如下:
![img_17.png](<https://pictures.kazoottt.top/2024/01/20240119-d1f2ea2c654b0d579e44fd76f77fd6bf.webp>)
### [全球最长开源元象开源大模型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 万汉字,让大模型应用进入“长文本时代”。该模型全开源,无条件免费商用,且附带手把手训练教程,让海量中小企业、研究者和开发者更早一步实现“大模型自由”。
![img_7.png](<https://pictures.kazoottt.top/2024/01/20240119-2052e7acb15df8f56ed9210b68dc5442.webp>)
这篇公众号文章详细地介绍了元象所发布的模型,并且给出了一个简单的实践教程。
### OpenAI 完善了 GPT Builders 的文档
2024-01-13
[文档地址](<https://platform.openai.com/docs/actions/introduction>)
![img_75.png](<https://pictures.kazoottt.top/2024/01/20240119-648909543d858cae67655cf7bbe5a186.webp>)
### 继 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>)
![img_84.png](<https://pictures.kazoottt.top/2024/01/20240119-0e898ee941f76379e1b3d67be3e95d1b.webp>)
### AutoGen Studio
AutoGen Studio 是一个基于 autogen 的 web ui, 支持多个 agent、多模态。
<https://microsoft.github.io/autogen/blog/2023/12/01/AutoGenStudio/>
![img_83.png](<https://pictures.kazoottt.top/2024/01/20240119-5c4e05baa13c3a077e6fa5428a381c2d.webp>)
构建流程构建
1. 配置技能:技能是描述如何解决任务的函数(如 Python 函数)。一般来说,一个好的技能有一个描述性的名称(如 generate_images、大量的文档说明和良好的默认设置如将文件写入磁盘以实现持久化和重复使用。您可以通过提供的用户界面向 AutoGen Studio 添加新技能。在推理过程中,这些技能将在助理代理处理您的任务时提供给他们。
2. 配置 agent
3. 配置 agent 工作流:代理工作流程是一组代理的规格说明,这些 agents 可以共同完成一项任务。最简单的版本是设置两个 agents-- 一个 assistant agent一个 user agent.
### [Moodboard Creator —— AI 生成情绪板](<https://www.moodboardcreator.de/>)
![img_60.png](<https://pictures.kazoottt.top/2024/01/20240119-24f846ee004afa05b0117c185d358ff9.webp>)
[推特地址](<https://twitter.com/ftium4/status/1746419029961814098?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
### [AI Gateway](<https://github.com/Portkey-AI/gateway>)
![img_6.png](<https://pictures.kazoottt.top/2024/01/20240119-a687b322e7ca8a9198bc9bfaf75efb14.webp>)
✅ 极速性能(速度是常规的 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 处理的工具。
![img_15.png](<https://pictures.kazoottt.top/2024/01/20240119-111fd19ddec3b21191907a90fcc518fa.webp>)
### [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>)
![img_19.png](<https://pictures.kazoottt.top/2024/01/20240119-9d32c1cea255a5e5ceee86823e076cdd.webp>)
本文对 OpenAI 的工程能能力做出了很高的评价作者认为“OpenAI 最持久的护城河是,他们的产品拥有最广的使用率、领先的工程人才,并且可以继续在未来的模型中领先于其他模型。”
然后对“模型架构、训练基础架构、推理基础架构、参数数量、训练数据集组成、标记数量、层数、并行策略、多模态视觉适应、不同工程折衷背后的思考过程、独特的实施技术,以及他们如何缓解与巨型模型推理相关的一些最大瓶颈。”等方面进行了详细的分析。
如果你想了解 GPT-4 的一些细节,可以阅读一下这篇文章。
### [ChatGPT Prompt Engineering](<https://www.promptingguide.ai/models/chatgpt>)
这个网站主要与提示词工程有关,它介绍了大模型相关的基础知识,并且根据各种维度(例如技术、应用、模型、风险与误用、大模型研究成果以及各种工具等)分别介绍了相关的技巧。
在近期的更新中,他们新增了针对不同模型的提示词技巧的教程。
![img_21.png](<https://pictures.kazoottt.top/2024/01/20240119-d32ddbbc1e3117f7fd60cb3f43202393.webp>)
与此同时,这也是一个开源的教程,如果感兴趣,也可以参与到这个项目中来。
[github地址](<https://github.com/dair-ai/Prompt-Engineering-Guide>)
### [fuxiang对于【devv.ai团队分享的RAG原理】的再整理](<https://twitter.com/fuxiangPro/status/1747242297975062666>)
![img_38.png](<https://pictures.kazoottt.top/2024/01/20240119-020bd33e057f6a0642ead0b113320c5f.webp>)
[devv.ai团队分享的RAG原理原文](<https://twitter.com/Tisoga/status/1731478506465636749>)
### [dify的博客](<https://dify.ai/blog>)
![img_39.png](<https://pictures.kazoottt.top/2024/01/20240119-1aa4faeddea36ea5424971865d97adff.webp>)
博客的 Developer 栏目会介绍一 Dify 的技术实现,例如 [他们是如何提升RAG精确度的](<https://dify.ai/blog/hybrid-search-rerank-rag-improvement>)。
![img_40.png](<https://pictures.kazoottt.top/2024/01/20240119-d59e03ba71cc20bccae57832bc27febc.webp>)
### [艾瑞咨询2023年AIGC场景应用展望研究报告](<https://waytoagi.feishu.cn/record/VQtLrDQWeehexvcTWxJcmSjMnPc>)
![img_41.png](<https://pictures.kazoottt.top/2024/01/20240119-682d05781766550c93e92c5cf6f1dbb5.webp>)
该报告从技术角度、产业角度、经典企业案例、优秀 AI 场景应用四个方面对 2023 年的 AIGC 场景做出了总结。
### [Prompt技巧](<https://weibo.com/1727858283/Naqzz5TOc#comment>)
![img_63.png](<https://pictures.kazoottt.top/2024/01/20240119-f9161fafd4a7679a7c486676ddb56307.webp>)
这篇微博汇总了 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>)
![img_64.png](<https://pictures.kazoottt.top/2024/01/20240119-a1cb841d8427cdf6a7d8e53471be0f57.webp>)
[论文地址](<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>)
![img_66.png](<https://pictures.kazoottt.top/2024/01/20240119-054e11be2362f9722ece258927e79777.webp>)
[译文](<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>)

View File

@ -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>)
![img_77.png](<https://pictures.kazoottt.top/2024/01/20240118-9306b3afea23596aa44c711d2d347eec.webp>)
## [Input Source Pro](<https://inputsource.pro/zh-CN>)
自动切换输入法加上适时的提示,让每一次输入都游刃有余。
![img_51.png](<https://pictures.kazoottt.top/2024/01/20240118-8b12e8b151eb4a1863bf7a4d7db66fc3.webp>)
## [outline 一个知识库应用](<https://github.com/outline/outline>)
为成长型团队提供最快的知识库。美观、实时协作、功能丰富且兼容 Markdown。
![img_28.png](<https://pictures.kazoottt.top/2024/01/20240118-69d1a63e120ba577b39ac7928984b010.webp>)
[官网地址](<https://www.getoutline.com/>)
特点:
- 一个极快的编辑器,具有 Markdown 支持、斜杠命令、交互式嵌入等。.....
- 与团队成员实时协作处理文档。评论和话题使对话井井有条。
- 将文档嵌套在层次结构中,自动构建反向链接网络,并在几毫秒内搜索所有内容。
- 在不离开聊天的情况下搜索、共享和提问您的文档。文档更新时,将通知发布到频道。
- 通过链接公开共享文档,或与团队私下共享文档。使用您自己的品牌颜色、徽标和域名。
## [一个帮你一次提交 100 多个目录站的目录站](<https://twitter.com/readyfor2025/status/1747297388476395636?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
[应用地址](<https://www.affordhunt.com/>)
![img_29.png](<https://pictures.kazoottt.top/2024/01/20240118-7939a74326a18689d6d580b22a393763.webp>)
## [画图工具 - whimsical](<https://whimsical.com/>)
[推特地址](<https://twitter.com/blackanger/status/1747582658052522089?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
![img_36.png](<https://pictures.kazoottt.top/2024/01/20240118-9a461344df3bced078f11d2cc132a592.webp>)

View File

@ -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/>)
![img_4.png](<https://pictures.kazoottt.top/2024/01/20240118-34e9f10d1d8eec956fc4194448cd4a76.webp>)
## [推荐一本行动之书,醍醐灌顶](<https://twitter.com/hiyuekun/status/1747085105037021670?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
![img_3.png](<https://pictures.kazoottt.top/2024/01/20240118-49ea3a464df0ab2caafb0537c4c794ba.webp>)
## [玩转苹果流量生态解锁App流量新密码](<https://x.com/liuyi0922/status/1747792720750682143?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
![img_23.png](<https://pictures.kazoottt.top/2024/01/20240118-d98a6cbfcf54d08ef37f30c37f5d0ace.webp>)
## [科技爱好者周刊(第 286 期):蓝色指示灯的解决方案](<https://www.ruanyifeng.com/blog/2024/01/weekly-issue-286.html?continueFlag=61db114b5bb3eda119c3b0a42a3f0791>)
作者:阮一峰
![img_34.png](<https://pictures.kazoottt.top/2024/01/20240118-32886b96d21732072e52b5ed6c487cd5.webp>)
![img_33.png](<https://pictures.kazoottt.top/2024/01/20240118-61d3ac9d6f707faf8a82c12b026bb844.webp>)
## [fuxiang对于【devv.ai团队分享的RAG原理】的再整理](<https://twitter.com/fuxiangPro/status/1747242297975062666>)
![img_38.png](<https://pictures.kazoottt.top/2024/01/20240118-020bd33e057f6a0642ead0b113320c5f.webp>)
[devv.ai团队分享的RAG原理原文](<https://twitter.com/Tisoga/status/1731478506465636749>)
## [HackerNews 趋势, Github 趋势, Google 趋势](<https://chasetrend.news/zh>)
![img_48.png](<https://pictures.kazoottt.top/2024/01/20240118-25370cd9e4dc25874ab14859930bc8b9.webp>)
## [使用自动化工作流聚合信息摄入和输出](<https://reorx.com/blog/sharing-my-footprints-automation/#new-tweet-to-telegram>)
![img_49.png](<https://pictures.kazoottt.top/2024/01/20240118-7557245c55da389558862a155932c527.webp>)
作者使用 n8n 来进行信息聚合,并在文中做了详细的介绍,以及 n8n 工作流开源。
## [Airing -姗姗来迟的 2023 年终总结](<https://blog.ursb.me/posts/summary-2023/>)
![img_58.png](<https://pictures.kazoottt.top/2024/01/20240118-13bf430a8615552a0a914a805c05a828.webp>)
## [对 React 团队工作经历的思考](<https://gist.github.com/mondaychen/3c530604e44b9cd15e4f69735d99fef4>)
![img_61.png](<https://pictures.kazoottt.top/2024/01/20240118-2bea379994d9f34ea9655eac74e6a958.webp>)
[推特地址](<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>)
![img_65.png](<https://pictures.kazoottt.top/2024/01/20240118-a255cb507b88fc1675ce614b7502e17b.webp>)
## [Flutter完整开发实战详解](<https://guoshuyu.cn/home/wx/?continueFlag=61db114b5bb3eda119c3b0a42a3f0791>)
![img_67.png](<https://pictures.kazoottt.top/2024/01/20240118-1c3b1725c08e70c867c4bd3628152fbd.webp>)
## [《Tw93-我的开源成长之旅》](<https://tw93.fun/2024-01-12/open.html>)
![img_73.png](<https://pictures.kazoottt.top/2024/01/20240118-25810db413c96d9eb2efa0cb6cf6cda6.webp>)
## [𝗛𝗼𝘄 𝗗𝗡𝗦 𝗪𝗼𝗿𝗸𝘀?-DNS是如何工作的](<https://twitter.com/milan_milanovic/status/1745796543322435885?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
![img_74.png](<https://pictures.kazoottt.top/2024/01/20240118-1c6e85b671affc27859c09cbf47e51be.webp>)
## [从第一天起就在全球范围内稳步发展Linktree 的故事](<https://startupnation.com/start-your-business/bootstrapped-global-linktree/>)
![img_76.png](<https://pictures.kazoottt.top/2024/01/20240118-66593c51fe9a8d08b11687d40f3da559.webp>)
## [API Vs SDK.](<https://twitter.com/alexxubyte/status/1745847854961492384?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
## [FFmpeg 教程](<https://wklchris.github.io/blog/FFmpeg/>)

View File

@ -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>)
![img_69.png](<https://pictures.kazoottt.top/2024/01/20240118-4cea36f07c4a42cf9af7e1bc39a5efb0.webp>)
## [阿文推荐:德拉黑体 可商用字体](<https://weibo.com/1757693565/NBWrw00hq#comment>)
![img_50.png](<https://pictures.kazoottt.top/2024/01/20240118-5aaeb4c0f4ba7d137f3ad58a08913c98.webp>)
## [svghub 免费 svg 素材](<https://svghub.vercel.app/>)
![img_44.png](<https://pictures.kazoottt.top/2024/01/20240118-61c37e76ded44826cb90966d86864711.webp>)
## [Free Sound Effects, Music, Loops | Orange Free Sounds - 免费声音素材](<https://orangefreesounds.com/>)
![img_43.png](<https://pictures.kazoottt.top/2024/01/20240118-20ec17828fb963700d1b336b0c4728b4.webp>)
## [通过 framer 赚钱](<https://twitter.com/hxmzaehsan/status/1747562036962181210?s=12&t=UKmYswdLBh4dGuqwtKAXUA>)
![img_25.png](<https://pictures.kazoottt.top/2024/01/20240118-8af5dcf63737d5ac269e4cdabffd75cb.webp>)

View File

@ -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 切换器
新版布局

View File

@ -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 #插件
![IMG-D00ECA1A03C7ED8C2D3C6B2350F49493](</mdImages/IMG-D00ECA1A03C7ED8C2D3C6B2350F49493.png>)
- 23:01
1 月份都一直在用 deepseek v3 当翻译 api,便宜又好用
![IMG-C904F87DB6FF60DE95982CB164FE976A](</mdImages/IMG-C904F87DB6FF60DE95982CB164FE976A.png>)
2 月份几乎没调通过 😭
![IMG-52AB966C8BE3F1DE7D2F91B261A9CF8A](</mdImages/IMG-52AB966C8BE3F1DE7D2F91B261A9CF8A.png>)
![Pasted image 20250224234657](</mdImages/Pasted image 20250224234657.png>)
- 23:06 我是真的看不懂老牛说话
- 23:21
#dicom
之前一直都想错了方向,维度指的并不是 rgb,rgba
![CleanShot2025-02-2423](</mdImages/CleanShot2025-02-2423.21.29@2x.png>)
- 23:24
备忘一下
手表无法充电大概是因为插头不对或者电压不对
- 23:28 超级讨厌那种动不动就震惊吊打失业已死的博主的

View File

@ -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
![IMG-2CBB4266E3AABE21E9AF0FCAF7F00469](</mdImages/IMG-2CBB4266E3AABE21E9AF0FCAF7F00469.png>)
- 12:08 就这么大的池子 像个宝一样盯着也是挺搞笑的
- 13:46 我是玻璃心😭
- 19:27
最近喜欢坐地铁通勤
回去的路上还能吃点路边摊
- 19:54 不吃火锅就吃烤匠 这个宣传语好洗脑
- 20:57 bun 还是省心的
- 23:44 为什么就这么让人不省心
- 23:56
做什么都觉得挺无聊的
该让自己吃点苦了
- 23:56
有什么事情是躺在床上也能做
然后对自己有帮助的或者算是有意义产出的

View File

@ -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
![IMG-A057E6D98847314E2A2742FB44382803](</mdImages/IMG-A057E6D98847314E2A2742FB44382803.png>)
![IMG-C4F896C16386AFFB89F1ED856D4D8319](</mdImages/IMG-C4F896C16386AFFB89F1ED856D4D8319.png>)
这个网站的设计好好看
[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  #工作流
![IMG-2025-02-27-9CB204EEDBCD1BCF3D2EDFBD6744C8D0](</mdImages/IMG-2025-02-27-9CB204EEDBCD1BCF3D2EDFBD6744C8D0.png>)
![IMG-2025-02-27-E106A5338A221E70CFCC67E397E2E7D4](</mdImages/IMG-2025-02-27-E106A5338A221E70CFCC67E397E2E7D4.png>)

View File

@ -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
其实可以写一个面向于粉丝的教程
![Pasted image 20250228111717](</mdImages/Pasted image 20250228111717.png>)
- 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
![Pasted image 20250228175738](</mdImages/Pasted image 20250228175738.png>)
调用 grop 调不通,然后发现官方 dev console 也直接 404 了
![Pasted image 20250228175843](</mdImages/Pasted image 20250228175843.png>)
![Pasted image 20250228180112](</mdImages/Pasted image 20250228180112.png>)

View File

@ -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 了
![IMG-B1FFDA204911256BC9A3C0BC465FE803](</mdImages/IMG-B1FFDA204911256BC9A3C0BC465FE803.png>)
- 14:01
[Developer Roadmaps - roadmap.sh](<https://roadmap.sh/>)
学习路线图
- 14:22
Groq 的 dev console 以及 api 调用报 404 的解决方法:
使用非香港地区的代理
- 14:23
Zen browser 如果出现了一些奇怪的网络问题,请去: `about:preferences#searchResults` 开启代理。
![IMG-3E1B27318067CBA0326348E9A3CD245A](</mdImages/IMG-3E1B27318067CBA0326348E9A3CD245A.png>)
![IMG-182545B738A61E339A98C367918487E2](</mdImages/IMG-182545B738A61E339A98C367918487E2.png>)
- 14:26
[LINUX DO - 新的理想型社区](<https://linux.do/>)
感觉是个不错的社区一些有用的解决方法都是从这里找到的
- 18:35 满怀期待等来的是失望真的会哭
- 19:06 其实感觉这些 vscode like ide 体验不如 vscode 的一点是不支持 profile 同步

View File

@ -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 的网盘
![IMG-4E7CA2B2820C13BC264E9520D61AEA71](</mdImages/IMG-4E7CA2B2820C13BC264E9520D61AEA71.png>)
![IMG-CEE59951BA3BB4CA797AE4C3A79CF229](</mdImages/IMG-CEE59951BA3BB4CA797AE4C3A79CF229.png>)
![IMG-0ED8EABB243959CF7C1FD45311857231](</mdImages/IMG-0ED8EABB243959CF7C1FD45311857231.png>)
- 10:37
其实一直分不清楚 last name, first name
有什么记忆的方法吗
**Last name 是姓, First name 是名**
- 13:52
如果视频没有泰语字幕
Huggingface 的 whisper 可以直接输入油管的链接
![IMG-8CB8741AA4B7D8C9DBCD3251DECF4F5C](</mdImages/IMG-8CB8741AA4B7D8C9DBCD3251DECF4F5C.png>)
或者可以先下载音频、视频转音频。
另外 groq 有免费的 whisper 模型可以使用,加速后转译成字幕更加快速。
![IMG-FCDEC2838ACED54D21628E731B7A18FA](</mdImages/IMG-FCDEC2838ACED54D21628E731B7A18FA.png>)
8 MB 超限了切分一下就可以(怕切到中间了可以 lossless cut 看着波形图剪,最后可以导出带有 index 后缀的音频)
还是不满意再用 whisperX, 功能更丰富,识别更准确(得本地下载 whisper 模型
![IMG-E24439522EA08DF76BD98B66DBD7ED54](</mdImages/IMG-E24439522EA08DF76BD98B66DBD7ED54.png>)
![Pasted image 20250305135535](</mdImages/Pasted image 20250305135535.png>)
- 14:14
- [ ] 写一个油猴脚本快速切换微博的版本

View File

@ -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 到期了
![Snipaste_2025-03-06_14-51-41](</mdImages/Snipaste_2025-03-06_14-51-41.png>)
- 15:09 把 cursor 的订阅停掉了,试用一下免费的 copilot

View File

@ -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>)

View File

@ -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
![IMG-F705691552F356BAFA7C7FEB418ED0B4](<https://pictures.kazoottt.top/2025/01/20250131-IMG-F705691552F356BAFA7C7FEB418ED0B4.png>)
- Steam provides **Intel-chip compatible version** only
- If you are Apple Silicon user, the performance may be affected

View File

@ -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 简单介绍
![Pasted image 20240417222811](<https://pictures.kazoottt.top/2024/05/20240522-c31876b89dcb822e411af1ef7992eb49.png>)
官网:
[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>)
## 简介
![Pasted image 20240417223400](<https://pictures.kazoottt.top/2024/05/20240522-a9e96bff073602718c11943e61bcf758.png>)
## 使用场景
评估提示词
攻击性测试
评估模型
评估某项指标
## 实践
![Pasted image 20240417231517](<https://pictures.kazoottt.top/2024/05/20240522-5fea389ac9bca4a43c076dc442d374e6.png>)
这两个例子单独拿出来讲
## 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 提示注入攻击和漏洞测试

View File

@ -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 搜索引擎
![IMG-20240904094448497](<https://pictures.kazoottt.top/2024/10/20241012-IMG-20240904094448497.png>)
<https://www.perplexity.ai/>
### 普通和 Pro 的区别
![IMG-20240904001354592](<https://pictures.kazoottt.top/2024/09/20240904-82efc9478928cf3428241d5cdbe1f7e2.png>)
![IMG-20240904001354629](<https://pictures.kazoottt.top/2024/09/20240904-b48e87c80c053f5afc32f440ab36959c.png>)
### 频繁人工验证怎么办
![IMG-20240904001354676](<https://pictures.kazoottt.top/2024/09/20240904-aa07d424f893146a987cccdcf7ae5bcf.png>)
[Perplexity - AI Search - Chrome 应用商店](<https://chromewebstore.google.com/detail/perplexity-ai-search/bnaffjbjpgiagpondjlnneblepbdchol>)
![IMG-20240904001354729](<https://pictures.kazoottt.top/2024/09/20240904-836c90b245302d2dd60fc14009e8aab1.png>)
### 同类别产品
[Devv AI](<https://devv.ai/>) (编程向)
![IMG-20240904094534311](<https://pictures.kazoottt.top/2024/10/20241012-IMG-20240904094534311.png>)
## 产品 2 Perplexity Playground
体验最新大模型
<https://labs.perplexity.ai/>
![IMG-20240904001354800](<https://pictures.kazoottt.top/2024/09/20240904-4a2f2948f9bda0d445948efd5d021e8c.png>)
![IMG-20240904001354854](<https://pictures.kazoottt.top/2024/09/20240904-9988cdc07d33329b209ee5f44269caef.png>)
[Introducing Llama 3.1: Our most capable models to date](<https://ai.meta.com/blog/meta-llama-3-1/>)
![IMG-20240904001354881](<https://pictures.kazoottt.top/2024/09/20240904-e5c298074d3edb3aa59b00a86c20ef0e.png>)
[Changelog - Perplexity](<https://docs.perplexity.ai/changelog/changelog#introducing-new-and-improved-sonar-models>)
![IMG-20240904001354925](<https://pictures.kazoottt.top/2024/09/20240904-6757a9b6e9c488d8faad8ae28a2e48e1.png>)
## 产品 3 Perplexity 播客
[资讯汇总 Discover](<https://www.perplexity.ai/discover>)
![IMG-20240904001354996](<https://pictures.kazoottt.top/2024/09/20240904-c06edb7427f2885aa1d8b3bd69659719.png>)
Perplexity 和 eleventlab 合作,把 Discover 的内容转成播客了。
![Pasted image 20240308104550 1](<https://pictures.kazoottt.top/2024/09/20240904-c2dbdcea85e283af86a34fe244f1b8e4.png>)
![IMG-20240904001355089](<https://pictures.kazoottt.top/2024/09/20240904-a904a8102ea53bd3a8619b43f6e4a770.png>)
很适合练习听力以及了解科技资讯。地址:[Discover Daily by Perplexity](<https://discoverdaily.ai/>)
[spotify](<https://open.spotify.com/episode/1CaSWrm7uUAOkaKjE9KI47?si=WPbA0x73QkGEPm-DFh4big>)
[pca.st](<https://pca.st/03qazv0d>)
支持 rss
![IMG-20240904001355142](<https://pictures.kazoottt.top/2024/09/20240904-51cb08cfa94e457d09ca0cfbaec6d604.png>)

View File

@ -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.
![image.png](<https://pictures.kazoottt.top/2024/05/20240525-26e60249b527dc5dc46c78eb123769bf.png>)
---
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.
![SCR-20240525-qcob-2.png](<https://pictures.kazoottt.top/2024/05/20240525-862b985a72997075bf72d8dd84efa46c.png>)
2. Choose whether to capture desktop audio or application audio based on your needs.
![image.png](<https://pictures.kazoottt.top/2024/05/20240525-b1ea5d3a03406f26588601ed66067a05.png>)

View File

@ -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:
![8c214f3f-65f7-49d6-8abd-7011886b3392-spark-clipboard](<https://pictures.kazoottt.top/2024/06/20240620-f8632859027aa520b2acfe05f8010997.jpg>)
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.
![CleanShot 2024-06-20 at 14.48.02](<https://pictures.kazoottt.top/2024/06/20240620-7c6bb9ad347fed77aba7ee6ec6316dd0.png>)
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).
![CleanShot 2024-06-20 at 14.55.42](<https://pictures.kazoottt.top/2024/06/20240620-0edca0a2dee7d10c1877c25a3aa1fbd3.png>)
### 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.

View File

@ -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)
```

View File

@ -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 爬虫
![IMG-10B1F940E0B13DE5FDFB9493A2502DE0](<https://pictures.kazoottt.top/2025/02/20250205-IMG-10B1F940E0B13DE5FDFB9493A2502DE0.png>)
于是心血来潮去想去回顾一下 askfm发现网站已经无法访问了。
![IMG-166598D5810641495277DB4DE4F67686](<https://pictures.kazoottt.top/2025/02/20250205-IMG-166598D5810641495277DB4DE4F67686.png>)
然后在 reddit 上搜到这个网站在 20241201 的时候关停了
![IMG-3B8AC1BA520FBB7E13D5029AC1D59765](<https://pictures.kazoottt.top/2025/02/20250205-IMG-3B8AC1BA520FBB7E13D5029AC1D59765.png>)
突然感觉承载了一些记忆的平台就这样关停了,还是挺可惜的。
而且如果不及时关注网站发布的公告,可能连最后备份的机会都没有,所有的数据就这样瞬间清空。

View File

@ -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>)

View File

@ -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 对应的文件夹即可
![image.png](<https://pictures.kazoottt.top/2024/05/20240525-26e60249b527dc5dc46c78eb123769bf.png>)
---
顺带一提,当时安装 BlackHole2ch 的原因是想要在录屏或者直播的时候录制到系统的声音,今天我突然发现 obs 已经支持了直接录制系统声音的功能。
具体的操作是:
1. 点击来源下方的添加按钮,选择 macOS 音频采集
![SCR-20240525-qcob-2.png](<https://pictures.kazoottt.top/2024/05/20240525-862b985a72997075bf72d8dd84efa46c.png>)
2. 根据你的需求选择是采集桌面音频还是应用音频。
![image.png](<https://pictures.kazoottt.top/2024/05/20240525-b1ea5d3a03406f26588601ed66067a05.png>)

View File

@ -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.
![alt text](<https://pictures.kazoottt.top/2025/01/20250115-cf0f5589dff49f5bd74887545528245b.png>)
method 2: at the left top of the screen, click `add - mesh - cylinder`, we can create a cylinder in the scene, too.
![alt text](<https://pictures.kazoottt.top/2025/01/20250115-3a42f7aaeffe74d9161f35d1fa18068f.png>)
## (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.
![alt text](<https://pictures.kazoottt.top/2025/01/20250115-c15b02c04a8415e7f8188effa98f6bed.png>)
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,0unit 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:
![alt text](<https://pictures.kazoottt.top/2025/01/20250115-94ed6520719664ee3dfebab331d0adda.png>)
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:
![alt text](<https://pictures.kazoottt.top/2025/01/20250115-2eeef440bbc377405873689b4560b32b.png>)
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)
![alt text](<https://pictures.kazoottt.top/2025/01/20250115-6439ce14f7229427723f0694cfcae425.png>)
now we can see the cylinder is hollow.
![alt text](<https://pictures.kazoottt.top/2025/01/20250115-89fe97d1445513d78f54e6b99fbf45c3.png>)

View File

@ -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
![alt text](<https://pictures.kazoottt.top/2025/01/20250120-302a1f29e54896d6be02c74a2afadfa7.png>)
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>

View File

@ -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.
![IMG-FA35689E9D95A1999D07D88BEC3058CE](<https://pictures.kazoottt.top/2025/01/20250131-IMG-FA35689E9D95A1999D07D88BEC3058CE.gif>)

View File

@ -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>)
![image-20221024194858508](<https://pictures.kazoottt.top/2024/04/20240407-b69c9109c55cd58f0f5920723ff9cb51.png>)
此段代码意在配置静态资源路径,由于错误使用\_\_dirname导致静态资源加载失败。
```
xxx/server_build/client_build // 前者返回
xxx/client_build // 后者返回
```
![image-20221024195247050](<https://pictures.kazoottt.top/2024/04/20240407-f029c7528e83b5f3cb61c09adc67d4d2.png>)
而目录结构为上图express- 对应 server 打包在 server_bulid,需要加载的 client scripts 在 client_buiild为同级目录所以第一张图右边的写法才能正确配置静态资源路径。
2. path.join() 和 path.resolve() 的区别
连接路径
path.resolve() ==> 解析为绝对路径

View File

@ -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>)

View File

@ -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`,所以系统命令也可以调用。

View File

@ -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]
```

View File

@ -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 的时候,会发现有的链接会显示预览卡片,有的不会。
![Pasted image 20240409203435](<https://pictures.kazoottt.top/2024/04/2024049-bc909874e20bb629c839253d3943d659.png>)
![Pasted image 20240409204440](<https://pictures.kazoottt.top/2024/04/2024049-4a9e81697a9703fe745e3052d4cbd1cd.png>)
这是因为有的网站设置了 open graph有的没有。
![Pasted image 20240409103122](<https://pictures.kazoottt.top/2024/04/2024049-087f0fbb7b7c5f497748c7fb9a12cdda.png>)
## 那么什么是 open graph
open graph 是一个由 facebook 在 2010 年发布的协议,用于在社交网络上分享链接时,显示预览卡片。
![Pasted image 20240409204654](<https://pictures.kazoottt.top/2024/04/2024049-3dd20b82e78f86d49d9b7994a75ecb5c.png>)
我觉得无论是它的名称还是意图,都能看出 facebook 以及其他支持这种协议的社交平台的开放性, 特别是在某些平台会屏蔽外链或者限流带有外链的衬托下。
![Pasted image 20240409205145](<https://pictures.kazoottt.top/2024/04/2024049-df5e5b3488dffbd26760c4e44ee0914a.png>)
和 open graph 类似还有 twitter 自己的 card如果 twitter card 和 open graph 同时存在的话,会先显示在 twitter card。如果 twitter card 没有定义,才会显示 open graph。
![Pasted image 20240409213244](<https://pictures.kazoottt.top/2024/04/2024049-4621b20b74ec8f5aed0a133d5f38d28e.png>)
![Pasted image 20240408163056](<https://pictures.kazoottt.top/2024/04/2024049-ab3a3a2fdeb0b839edc4ad6b2b226515.png>)
## 预览和检查工具
[OpenGraph - Preview Social Media Share and Generate Metatags - OpenGraph](<https://www.opengraph.xyz/>)
![Pasted image 20240409201933](<https://pictures.kazoottt.top/2024/04/2024049-ef4f78169782a186e08463a76ff65f1f.png>)
[OpenGraph - Preview Images and Generate Open Graph Meta Tags](<https://opengraph.dev/>)
![Pasted image 20240409195616](<https://pictures.kazoottt.top/2024/04/2024049-6901afe74ffbf8affe03e69a0ffecfa4.png>)
![Pasted image 20240409131420](<https://pictures.kazoottt.top/2024/04/2024049-c92de25d68dbdfbd37639c11df5bb091.png>)
## 一些例子
[Open Graph Examples](<https://opengraphexamples.com/>)
![Pasted image 20240409131603](<https://pictures.kazoottt.top/2024/04/2024049-188a013e0965f2e4b004de4a915b07b7.png>)

View File

@ -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.
![Pasted image 20240409203435](<https://pictures.kazoottt.top/2024/04/2024049-bc909874e20bb629c839253d3943d659.png>)
![Pasted image 20240409204440](<https://pictures.kazoottt.top/2024/04/2024049-4a9e81697a9703fe745e3052d4cbd1cd.png>)
This is because some websites have set up Open Graph, while others have not.
![Pasted image 20240409103122](<https://pictures.kazoottt.top/2024/04/2024049-087f0fbb7b7c5f497748c7fb9a12cdda.png>)
## 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.
![Pasted image 20240409204654](<https://pictures.kazoottt.top/2024/04/2024049-3dd20b82e78f86d49d9b7994a75ecb5c.png>)
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.
![Pasted image 20240409205145](<https://pictures.kazoottt.top/2024/04/2024049-df5e5b3488dffbd26760c4e44ee0914a.png>)
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.
![Pasted image 20240409213244](<https://pictures.kazoottt.top/2024/04/2024049-4621b20b74ec8f5aed0a133d5f38d28e.png>)
![Pasted image 20240408163056](<https://pictures.kazoottt.top/2024/04/2024049-ab3a3a2fdeb0b839edc4ad6b2b226515.png>)
## Preview and Inspection Tools
[OpenGraph - Preview Social Media Share and Generate Metatags - OpenGraph](<https://www.opengraph.xyz/>)
![Pasted image 20240409201933](<https://pictures.kazoottt.top/2024/04/2024049-ef4f78169782a186e08463a76ff65f1f.png>)
[OpenGraph - Preview Images and Generate Open Graph Meta Tags](<https://opengraph.dev/>)
![Pasted image 20240409195616](<https://pictures.kazoottt.top/2024/04/2024049-6901afe74ffbf8affe03e69a0ffecfa4.png>)
![Pasted image 20240409131420](<https://pictures.kazoottt.top/2024/04/2024049-c92de25d68dbdfbd37639c11df5bb091.png>)
## Some Examples
[Open Graph Examples](<https://opengraphexamples.com/>)
![Pasted image 20240409131603](<https://pictures.kazoottt.top/2024/04/2024049-188a013e0965f2e4b004de4a915b07b7.png>)

View File

@ -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->)
![IMG-CDC2BAD93093406D70B0F9A6F01B86BF](</mdImages/IMG-CDC2BAD93093406D70B0F9A6F01B86BF.png>)
<!--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
```
![IMG-54444FCBA889BF74A543004B4163532D](</mdImages/IMG-54444FCBA889BF74A543004B4163532D.png>)
能够看到这里面的 location, 所以实际的 script 的路径就是这个site-packges 替换为 Scripts)
``` shell
C:\Users\turbo\AppData\Roaming\Python\Python312\Scripts
```
把这个路径复制一下或者暂存到一个地方,我们需要把它保存在环境变量里面去(一般 windows 出现这个问题比较多,所以只写了对应的教程)
### 如何编辑环境变量
![IMG-647D50202A16E26E1BE25AE4FC4E5DA1](</mdImages/IMG-647D50202A16E26E1BE25AE4FC4E5DA1.png>)
搜索环境变量,进入编辑窗口
![IMG-D9D3E5481059773AA8CCB5718E5EFB06](</mdImages/IMG-D9D3E5481059773AA8CCB5718E5EFB06.png>)
然后编辑系统变量把刚刚的那段路径添加到里面就可以了
![IMG-3F25D1B9A693916B658415B17B64FDF4](</mdImages/IMG-3F25D1B9A693916B658415B17B64FDF4.png>)
然后再打开一个命令行运行
```
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>)

View File

@ -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 的画面闪烁监听。
![image.png](<https://pictures.kazoottt.top/2024/12/20241217-1db17bd2dcccf168976cdc833df6f6a3.png>)
## 参考
[还有这种前端技巧REACT-SCAN 代码鉴赏|精简版\_哔哩哔哩\_bilibili](<https://www.bilibili.com/video/BV1JrzvYgERi/>)

View File

@ -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>)
![image.png](<https://pictures.kazoottt.top/2024/11/20241113-9c3c37d82dd684dc8ca2b75cfb16784e.png>)
使用 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;
};
```
![](<https://pictures.kazoottt.top/2024/11/20241113-157c9570908a6b1f584ae28db3eebf1d.png>)
正确使用:
``` ts
const getQueryParam = (): QueryParams => {
// use qs to parse the query params
const queryParams: QueryParams = qs.parse(window.location.search.slice(1));
return queryParams;
};
```
![image.png](<https://pictures.kazoottt.top/2024/11/20241113-48ad512e7639c8027216269380b7cacf.png>)

View File

@ -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 等。内置模板很多,且均免费。
![Shots - Create Amazing Mockups](<https://pictures.kazoottt.top/2024/10/20241017-766f28bad432778d346657bc238dfb73.png>)
![954shots_so](<https://pictures.kazoottt.top/2024/10/20241017-d72ee84203b24856d4dac28d1427c368.png>)

View File

@ -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>)
(不太好用)
![Pasted image 20240626165118](<https://pictures.kazoottt.top/2024/06/20240626-107e2d31780d2e0e825f4f83caff1e21.png>)
[Free Tweet to Image Converter Online - PostWizz](<https://postwizz.com/tweet-to-image-converter/>)
![CleanShot 2024-06-26 at 16.51.23](<https://pictures.kazoottt.top/2024/06/20240626-569afec94aad21e529e2ebc1b7faf3c3.png>)
[Tweet to Image Converter: Tweet Screenshots Online | 10015 Tools](<https://10015.io/tools/tweet-to-image-converter>)
![CleanShot 2024-06-26 at 16.51.45](<https://pictures.kazoottt.top/2024/06/20240626-876ad7be2e0d7ffa185281d8a6494fad.png>)
ref
[The Top 6 Free Tools to Convert Tweets Into Shareable Images](<https://www.makeuseof.com/free-tools-convert-tweets-into-images/>)

View File

@ -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>)

View File

@ -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/>)

View File

@ -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
---
打开设置 - 时间和语言 - 选择国家和地区为美国
![IMG-20250104114646389](<https://pictures.kazoottt.top/2025/01/20250130-IMG-20250104114646389.png>)
在 microsoft store 中搜索 chatgpt 下载即可
![IMG-20250104114647117](<https://pictures.kazoottt.top/2025/01/20250130-IMG-20250104114647117.png>)

View File

@ -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/>)
![IMG-20250104114722956](</mdImages/IMG-20250104114722956.png>)

View File

@ -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>)

View File

@ -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这个节目我葱也在这种交集让我觉得有些奇妙。根据录制时间拉了点录播后面又刷了某些切片上下文看心里又慢慢释然了。
这让我开始思考当初的做法有没有问题?从道理上讲,主播和观众看法、表达方式不一样太正常不过,无论哪一方,都不应该把自己的观点强加对方,应该做的是求同存异。从情感上讲,某些看法触及到自己所在意的点时,生气也很正常,如果别的地方有人嘴主播我也会表示不满,所以当时评论区也有反驳我也很正常。
但正确的做法到底是什么我真的不清楚,做法随着自身情感倾斜程度变化吗?
好像有点扯太远了,本来是想聊粉丝氛围的。

View File

@ -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、微信公众号。
我认为记录的初心是为了自己,然后再是分享。因此质量低一点只是给自己看没有关系,后面有比较好的内容再放到更公开的平台分享,是比较合适的方式。
而不是每次更新内容就想着要传播,这是不对的。

View File

@ -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 上的截图工具,免费好用)
- CleanShotMac 上的截图工具,需要付费,支持截图、录屏,截图加 border
- QuickRecorderMac 上的录屏工具,开源,免费)
- OBS录屏工具直播推流工具
### 媒体与娱乐
- Apple Music主力
- 网易云音乐
### 知识管理
- Milanote白板型笔记用于一个项目的初期输入和梳理
- Flomo用于碎片化的记录
- Dinox用于碎片化的记录支持语音输入和联动大模型
- Obsidian初期碎片化记录和梳理完成后会在 Obsidian 中进行整理,完成最终的输出)
### 资讯收集与阅读
- n8n 自动化(用于定时监听社交平台或其他信息的更新,然后通过 webhook 推送到其他平台)
- Raindrop用于收集网页、内容标记
- Follow用于阅读 RSS 内容)
### 阅读平台
- 微信读书(主力,主要阅读线上书城的内容,偶尔导入离线的内容)
- Apple Books主要阅读离线的内容
### 生产力工具
- 1Password和别人拼车的已经续费 2 年)
### AI 助手
- Claude编程主力
- DeepSeek编程主力沉浸式翻译主力 API
- ChatGPTmacOS 的客户端体验依旧很好,所以在 macOS 上使用很多)
- Poe体验各种大模型
- Google Notebook LLM用于书籍或者文档的深度阅读
### 任务管理
- 滴答清单
- Mermaid 绘制甘特图、流程图等
- 飞书多维表格(进行项目管理)
### 记账工具
- 飞书多维表格
### 浏览器
- Arc主力
- Google Chrome
- Edge
### 博客平台
- Astro 自建博客(随心所欲发布内容的地方)
- 微信公众号(从自建播客中筛选长内容发布到公众号)
- Hashnode、Medium主要输出英文内容
## 软件工具(移动端)
### 图片处理
- Picsew手机上的截图工具支持长截图、截图加壳、截图拼接等等
- 美图秀秀(图片编辑)
- dama (一键给图片敏感数据打码)
### 健康管理
- AutoSleep睡眠追踪
- Grow运动追踪
- Keep运动追踪
## 硬件设备
### 电脑
- Mac Mini M2 Pro32GB 内存512GB 存储10000+ 买的官方翻新机,是家里的开发主力机
- MacBook Air M116GB 内存256GB 存储3000+ 收的二手,个人觉得性价比很高,用于移动办公是绝对够用的
- 机械师整机i5206032GB 内存512GB 存储)为了和朋友玩游戏和使用一些只有 Windows 上的支持的软件购买的
### 移动设备
- iPhone 13256GB 存储)
- iPad Mini 5 购入多年的老物,电池已经不堪重负,现在主要用于看视频和阅读
### 智能穿戴
- Apple Watch S9
- AirPods Pro 2
### 影像设备
- 松下 GX9
- 松下 GX9 使用镜头: 14-140mm、25mm 定焦、100-300mm用来用去还是 25 定好用😭)
- 大疆 Action 5 Pro运动相机主要用于记录日常生活碎片

View File

@ -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 中
![alt text](<https://pictures.kazoottt.top/2025/02/20250205-IMG-0206ECC45CDD254EB4459701C4E4BBEB.png>)
如图所示,提示词的标题以 `[提示词-标题]` 的形式命名。
然后通过快捷键唤起搜索框,输入 `提示词` 关键词,就可以搜索到所有的提示词。然后通过 `cmd + c` 复制内容即可。
![alt text](<https://pictures.kazoottt.top/2025/02/20250205-IMG-604CC2FCEB905F96DFD11F7F9FCB5704.png>)
这样的好处是:
1. 云端存储,只要登录了 1password就可以查看之前存储的提示词。
2. 跨平台使用macos、pc、手机等都可以使用。
3. 快捷键唤起搜索框,快速复制提示词。
[[使用 copyQ 存储提示词 ]]

View File

@ -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 仓库然后部署是无效的。部署完成后点击对应的域名访问,会无响应。
![image.png](<https://pictures.kazoottt.top/2024/12/20241219-1d0058a3ba6bd4c0ac6ebda427dc0cdc.png>)
正确的做法是:
参考 [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它会帮你填好默认的配置保留该配置即可。
![image.png](<https://pictures.kazoottt.top/2024/12/20241219-d5b37df23d2adfaf0e24d0436d26405c.png>)
## 参考
[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>)

View File

@ -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" 然后提交请求,搞定!简洁明了。
```
![IMG-20241112141124094](<https://pictures.kazoottt.top/2024/11/20241112-5ddd01234e9ab24764328e01034144e8.png>)
---
我是这样,在暂存前使用 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>
```
![Pasted image 20241112141218](<https://pictures.kazoottt.top/2024/11/20241112-906ab65b44b91d7ef7b240ddd76167f9.png>)

View File

@ -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>)
![CleanShot 2024-12-15 at 21.38.06@2x.png](<https://pictures.kazoottt.top/2024/12/20241215-1d48251e5fc8c4b10db40df0be42ec44.png>)
## 操作教程
第一步,在 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 这里,跳转到脚本配置界面。
![CleanShot 2024-12-15 at 21.40.14@2x.png](<https://pictures.kazoottt.top/2024/12/20241215-67500f88d9213bc751ab385fabc8ba4d.png>)
点击左侧的 services 的加号,添加 YouTube Data API v3标识符、版本直接默认就可以了。
![CleanShot 2024-12-15 at 21.44.17@2x.png](<https://pictures.kazoottt.top/2024/12/20241215-910db7890a903b9cd74b173ad34fa0ad.png>)
第三步,把代码复制到 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()) // 设置错误信息
}
}
```
![CleanShot 2024-12-15 at 21.41.33@2x.png](<https://pictures.kazoottt.top/2024/12/20241215-bc187c06a7f8ff245814034294da6035.png>)
然后如果要验证是否正确,选择 recordYouTubeViewCount然后点击 run 按钮。不出意外的话会在 sheet 中新增一行记录。
![CleanShot 2024-12-15 at 21.42.08@2x.png](<https://pictures.kazoottt.top/2024/12/20241215-9e27a00e167349a672a56770393fb680.png>)
第四步,也是最后一步,我们要设置一下 trigger,来实现定时地查询播放量并且写入到 sheet 中。点击左边侧边栏的 trigger 菜单,再点击右下角的 add trigger.
![CleanShot 2024-12-15 at 21.47.04@2x.png](<https://pictures.kazoottt.top/2024/12/20241215-9cc933a553b36a5f35cb1310ee5f455f.png>)
设置如下,配置完成后点击 save 按钮。
![image.png](<https://pictures.kazoottt.top/2024/12/20241215-2158ed0c440adc3d3bae20f2bfdc5355.png>)
点击完之后,可能出现一个验证弹窗,需要你选择自己的 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.

View File

@ -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 生成助手
![IMG-BF22CA923126747336FA047AD2FFE0B3](</mdImages/IMG-BF22CA923126747336FA047AD2FFE0B3.png>)
具体效果
![IMG-42E5510D67C42284041E3402E4D459AD](</mdImages/IMG-42E5510D67C42284041E3402E4D459AD.png>)

View File

@ -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
![2024-05-23-23-52-40](<https://pictures.kazoottt.top/2024/05/20240523-96faf635fa38b9f54a7567a75d91e46c.jpeg>)
之前在 react.dev 的源代码中了解到了这个 HIstory 的属性,当时写了一篇笔记来记录我对它的理解,现在看来还是一知半解。所以今天打算重新学习一下这个属性,主要从属性以及所属对象的介绍、使用方法,是否开启标准这几个方面来简单展开。
## 什么是 scrollRestoration
scrollRestoration 是一个属性,它所属的实例是浏览器的 History。
这个属性是做什么的?它用来控制我们在切换历史页面的时候,滚动条的位置会不会恢复到之前的位置。
![屏幕录制2024-05-23 10.48.05](<https://pictures.kazoottt.top/2024/05/20240523-247544493f4d8292bbac76db53881606.gif>)
如图所示,我们切换历史页面,又切换回最之前的页面,发现滚动条的位置依然保持底部,也就是之前的位置。
什么是切换历史页面,从操作上来讲就是点击浏览器的回退(有的浏览器长按回退键会弹出历史的前面多个页面供选择)、前进按钮
从代码上来讲就是执行下面的这些操作:
```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>)

View File

@ -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
![CleanShot 2024-06-20 at 09.58.30 1](<https://pictures.kazoottt.top/2024/06/20240620-b6a661ebf938593cab5426b2f50aebe6.png>)
## [DeepSeek | 深度求索](<https://www.deepseek.com/>)
注册获 500 万 tokens限中国大陆地区
![CleanShot 2024-06-20 at 09.30.27](<https://pictures.kazoottt.top/2024/06/20240620-7edd0407a5c68489aec406c561140a6d.png>)
## [SiliconCloud](<https://siliconflow.cn/zh-cn/siliconcloud>)
手机号注册,一个手机号可以约 1 亿 token。
目前支持的模型有:
deepseek, qwen 等
![CleanShot 2024-06-20 at 09.24.17](<https://pictures.kazoottt.top/2024/06/20240620-3f55351a8f7211270a2b35a2468a7be4.png>)
---
小红书输出:
目前可以免费领 tokens 的平台
一、豆包大模型 p1
在 8 月 30 日之前可以领取 5 亿 tokens
二、DeepSeek
注册获 500 万 tokens限中国大陆地区
三、SiliconCloud p3
手机号注册,一个手机号可以领约 1 亿 token。
目前支持的模型有deepseek, qwen 等

View File

@ -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>)
![image.png](<https://pictures.kazoottt.top/2024/12/20241219-e086ea78a460bd093313ad11e4c223ba.png>)
然后由于是分章节每个章节有对应的 pdf而我比较喜欢使用微信读书来进行阅读所以产生了想要把所有的 pdf 合并为一个的需求。
虽然现在随便搜索都能搜到有这样现成的工具,但是出于学习目的,还是自己写了一个合并 pdf 的网站。
## 鸣谢
使用了 [GitHub - nbesli/pdf-merger-js](<https://github.com/nbesli/pdf-merger-js>) 这个库来进行 pdf 的合并

View File

@ -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>)

View File

@ -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);
```

View File

@ -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 (
...
)
}
```

View File

@ -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();
```

View File

@ -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、生成测试等提高编程效率。
可以免费使用,但是具有一定的额度。
![Pasted image 20240725133801](<https://pictures.kazoottt.top/2024/07/20240725-Pasted%20image%2020240725133801.png>)
但是它也可以使用自己的 key 和模型具体的操作如下。
![Pasted image 20240725133037](<https://pictures.kazoottt.top/2024/07/20240725-Pasted%20image%2020240725133037.png>)
## 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
![Pasted image 20240725134803](<https://pictures.kazoottt.top/2024/07/20240725-Pasted%20image%2020240725134803.png>)
这样配置就完成了

View File

@ -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 中的环境变量
![Pasted image 20240223222337](<https://pictures.kazoottt.top/2024/02/20240223-45a401aedb0bd0b7e4a1bc708cc368a9.png>)我在 vercel 中集成了某些插件或者链接了数据库,要如何快速的导出这些环境变量呢?
具体方法如下:
``` shell
npm i -g vercel
vercel link
vercel env pull .env.local
```
1. 首先是安装 vercel
2. 然后登录 vercel ![Pasted image 20240223222531](<https://pictures.kazoottt.top/2024/02/20240223-d958cd13a2bb101e2c056074826d1f37.png>)
3. 最后拉取环境变量到.env.local
![Pasted image 20240223222605](<https://pictures.kazoottt.top/2024/02/20240223-da07828b4f8288c2015ae659271c8b06.png>)

View File

@ -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>)

View File

@ -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/>)
![Untitled](<https://pictures.kazoottt.top/2024/02/20240225-2d3f0e52beafd80331b3c8e048547045.png>)
目前仅支持电脑端,移动端正在开发中。
这款截图工具提供了很全面的功能,包括但不限于:改变背景色、修改边框、添加阴影、模拟截图在设备上的展示效果等等。
效果:
![Untitled](<https://pictures.kazoottt.top/2024/02/20240225-6791524efb85adf7826ae794fc2f723a.png>)
## 二、jellylade
[Turn your screenshots into beautiful posts](<https://app.jellylade.com/>)
![Untitled](<https://pictures.kazoottt.top/2024/02/20240225-82aa80c8b5a357de11750faf12b1703a.png>)
与 shots.so 类似,都可以体验一下看看效果。
![Untitled](<https://pictures.kazoottt.top/2024/02/20240225-9a49aef555390eaf92a5647d592769be.jpeg>)
## 三、Arc 浏览器
**目前仅适用于 macos 平台**
没错 arc 浏览器自带截图美化功能。
使用方式有两种:
1. `cmd + t` 然后搜索选择 **capture in portrait mode** 即可
![Untitled](<https://pictures.kazoottt.top/2024/02/20240225-2249830743a1eb711120a269f14a1901.png>)
1. 另外一种方式是开启 developer mode
![Untitled](<https://pictures.kazoottt.top/2024/02/20240225-202a3577ed0433710c02b1d567f4cb20.png>)
然后在右侧点击按钮
![Untitled](<https://pictures.kazoottt.top/2024/02/20240225-a04995922000f6d88e24f045d13b828f.png>)
触发后你可以选择背景色以及要不要带上 arc 浏览器的水印
![Untitled](<https://pictures.kazoottt.top/2024/02/20240225-06de8c20aa0ba6d80a243acb5cf0bf3e.png>)
最终效果
![Untitled](<https://pictures.kazoottt.top/2024/02/20240225-1f3df06697ecb0ced94049e713dcf14f.png>)

View File

@ -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/>)
![image](<https://github.com/KazooTTT/auto-slugify-webapp/assets/31075337/e391b919-a2e8-411b-b466-c53ce79b16fc>)
based on
[auto-slugify](<https://github.com/kzttools/auto-slugify>)

View File

@ -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 属性
![image.png](<https://pictures.kazoottt.top/2024/10/20241012-b044604cec83cd5e0b281b9e63562f11.png>)
[\<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'
![image.png](<https://pictures.kazoottt.top/2024/10/20241012-1e0e4270de68707c51966174e2f2a063.png>)
所以要么直接设置 download = null要么直接设置 download = ''
不要设置了 download = '' 之后去设置 download = null

View File

@ -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 ,复制你要切图的长文内容到里面去。 (如果你创建数量达到上限,可以打开一个老的文档替换你新的内容)
![IMG-4A2263AE049DF9303F93F37EFCE8C9A4](<https://pictures.kazoottt.top/2025/02/20250206-IMG-4A2263AE049DF9303F93F37EFCE8C9A4.png>)
点击右上角的 share - export - image 按钮,开启图片导出。
![IMG-B479DBAD1C6B3C040B769DA8188B31EA](<https://pictures.kazoottt.top/2025/02/20250206-IMG-B479DBAD1C6B3C040B769DA8188B31EA.png>)
调整一下样式,检查没有问题后可以点击左下角的 save image 进行导出。
![IMG-5A38B60FA4C5B7998BA40F6CA64BA8B6](<https://pictures.kazoottt.top/2025/02/20250206-IMG-5A38B60FA4C5B7998BA40F6CA64BA8B6.png>)
最终效果预览:
图片 1
![IMG-965BBD8CA64A9C809E7B6B3D23E77044](<https://pictures.kazoottt.top/2025/02/20250206-IMG-965BBD8CA64A9C809E7B6B3D23E77044.png>)
图片 2
![IMG-8F2DC02EF85889CCEF25F30E68FC6DF5](<https://pictures.kazoottt.top/2025/02/20250206-IMG-8F2DC02EF85889CCEF25F30E68FC6DF5.png>)

View File

@ -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 之后手机和网页端都会消失
![IMG-45EFC10972681E6F15A6C1944A81CD47](<https://pictures.kazoottt.top/2025/01/20250122-45efc10972681e6f15a6c1944a81cd47.png>)

View File

@ -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![Pasted image 20230914233217](<https://pictures.kazoottt.top/2024/10/20241017-cd326efab542823c73ab2e2542e89dd7.png>)
3. 然后就能结合 [telegram bot](<https://api.telegram.org/>)+ [apprise](<https://github.com/caronc/apprise/wiki/Notify_telegram>) 做消息通知了。![Pasted image 20230914233337](<https://pictures.kazoottt.top/2024/10/20241017-74884e2c10edcede13696599c163ffe4.png>)

View File

@ -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
}
```
效果
![image.png](<https://pictures.kazoottt.top/2024/10/20241014-20241014224347.png>)
## 弹幕压制
### 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 图像文件

View File

@ -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