feat: update blog content and scripts

This commit is contained in:
KazooTTT
2024-10-10 21:35:42 +08:00
parent 950d014fdb
commit d2f4fa5fec
77 changed files with 4973 additions and 4862 deletions

View File

@ -3,7 +3,7 @@
"type": "module",
"version": "0.0.1",
"scripts": {
"dev": "astro check --watch & astro dev",
"dev": "astro check --watch & astro dev --port 2555",
"start": "astro dev",
"build": "astro check && astro build",
"preview": "astro preview",
@ -22,6 +22,7 @@
"astro-expressive-code": "^0.33.5",
"astro-icon": "^1.1.0",
"clsx": "^2.1.0",
"gray-matter": "^4.0.3",
"mdast-util-to-string": "^4.0.0",
"reading-time": "^1.5.0",
"rehype-external-links": "^3.0.0",

8201
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

42
scripts/sortByDate.cjs Normal file
View File

@ -0,0 +1,42 @@
const fs = require('fs')
const path = require('path')
const matter = require('gray-matter')
const contentDir = path.join(__dirname, '../src/content/post')
function processDirectory(dir) {
const files = fs.readdirSync(dir).filter((file) => path.extname(file) === '.md')
const fileInfos = files.map((file) => {
const filePath = path.join(dir, file)
const content = fs.readFileSync(filePath, 'utf8')
const { data } = matter(content)
return {
name: file,
path: filePath,
date: new Date(data.date)
}
})
// Sort files by date
fileInfos.sort((a, b) => a.date - b.date)
// Rename files
fileInfos.forEach((file, index) => {
const newName = `${index.toString().padStart(2, '0')} ${file.name}`
const newPath = path.join(dir, newName)
fs.renameSync(file.path, newPath)
console.log(`Renamed ${file.name} to ${newName}`)
})
}
function processAllDirectories(baseDir) {
const items = fs.readdirSync(baseDir)
items.forEach((item) => {
const itemPath = path.join(baseDir, item)
if (fs.statSync(itemPath).isDirectory()) {
processDirectory(itemPath)
}
})
}
processAllDirectories(contentDir)

View File

@ -0,0 +1,68 @@
// 批量修改 ./src/content/post/* 中的frontmatter中的category
const fs = require('fs')
const path = require('path')
const contentDir = path.join(__dirname, '../src/content/post')
function processDirectory(dir) {
fs.readdirSync(dir).forEach((item) => {
const itemPath = path.join(dir, item)
const stats = fs.statSync(itemPath)
if (stats.isDirectory()) {
processDirectory(itemPath)
} else if (stats.isFile() && path.extname(item) === '.md') {
processFile(itemPath)
}
})
}
function getCategoryFromPath(filePath) {
const relativePath = path.relative(contentDir, filePath)
const pathParts = relativePath.split(path.sep)
// The category is the first directory after "post"
if (pathParts.length > 1) {
return pathParts[0]
}
return null
}
function processFile(filePath) {
const fileContent = fs.readFileSync(filePath, 'utf8')
const category = getCategoryFromPath(filePath)
if (!category) {
console.log(`No category found for: ${filePath}`)
return
}
const frontmatter = fileContent.match(/^---\n[\s\S]*?\n---/)
if (frontmatter) {
const frontmatterContent = frontmatter[0]
const frontmatterLines = frontmatterContent.split('\n')
let categoryUpdated = false
const updatedFrontmatterLines = frontmatterLines.map((line) => {
if (line.startsWith('category:')) {
categoryUpdated = true
return `category: ${category}`
}
return line
})
// Add category if it doesn't exist
if (!categoryUpdated) {
updatedFrontmatterLines.splice(-1, 0, `category: ${category}`)
}
const updatedFrontmatter = updatedFrontmatterLines.join('\n')
const updatedFileContent = fileContent.replace(frontmatterContent, updatedFrontmatter)
fs.writeFileSync(filePath, updatedFileContent, 'utf8')
console.log(`Updated category to '${category}' for: ${filePath}`)
}
}
processDirectory(contentDir)

View File

@ -1,6 +1,5 @@
---
import type { CollectionEntry } from 'astro:content'
import { Image } from 'astro:assets'
import FormattedDate from '../FormattedDate.astro'
import Card from '../Card.astro'
import { Icon } from 'astro-icon/components'
@ -24,12 +23,11 @@ const dateTimeOptions: Intl.DateTimeFormatOptions = {
{
data.coverImage && (
<div class='aspect-h-9 aspect-w-16 mb-6'>
<Image
alt={data.coverImage.alt}
<img
src={data.coverImage}
class='rounded-2xl object-cover'
fetchpriority='high'
loading='eager'
src={data.coverImage.src}
/>
</div>
)

View File

@ -27,9 +27,7 @@ const postDate = post.data.date
</a>
{
withDesc && (
<p class='line-clamp-2 text-sm italic text-muted-foreground'>
{post.data.description}
</p>
<p class='line-clamp-2 text-sm italic text-muted-foreground'>{post.data.description}</p>
)
}
</Tag>

View File

@ -9,7 +9,7 @@ function removeDupsAndLowerCase(array: string[]) {
const post = defineCollection({
type: 'content',
schema: ({ image }) =>
schema: () =>
z.object({
title: z.string(),
description: z.string().optional().nullable(),
@ -17,17 +17,12 @@ const post = defineCollection({
.string()
.or(z.date())
.transform((val) => new Date(val)),
coverImage: z
.object({
src: image(),
alt: z.string()
})
.optional(),
coverImage: z.string().optional(),
draft: z.boolean().default(false),
tags: z.array(z.string()).default([]).transform(removeDupsAndLowerCase),
ogImage: z.string().optional(),
category: z.string().optional().nullable(),
finished: z.boolean().default(false),
finished: z.boolean().default(false)
})
})

View File

@ -10,7 +10,7 @@ tags:
- 工具
finished: true
published: true
category: 随手记
category: AI
slug: chainforge-intro
description: >-
ChainForge is a visual programming environment designed for prompt

View File

@ -20,7 +20,6 @@ description: 本文介绍了如何在 Cursor 中添加和使用 DeepSeek-Coder
![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)
@ -35,6 +34,7 @@ description: 本文介绍了如何在 Cursor 中添加和使用 DeepSeek-Coder
## 3. 配置 Base URL
在设置中找到 `Override OpenAI Base URL` 选项,并填入以下地址:
```
https://api.deepseek.com/v1
```

View File

@ -9,6 +9,7 @@ description: >-
rinId: 13
finished: true
date: 2024-02-07
category: web3
---
# web3资源收集

View File

@ -1,27 +0,0 @@
---
title: expo报错
slug: expo-error
published: true
description: >-
在expo开发中遇到报错TypeError: The 'compilation' argument must be an instance of
Compilation。错误的原因是项目中存在多个webpack版本特别是由于额外添加了依赖"metro-core":
"^0.80.1"。解决此问题的方法是删除node_modules目录移除该依赖然后重新安装依赖。
rinId: 10
finished: true
date: 2024-02-07
---
# Expo 报错
[angular cli - The 'compilation' argument must be an instance of Compilation - Stack Overflow](https://stackoverflow.com/questions/67727180/the-compilation-argument-must-be-an-instance-of-compilation)
expo TypeError: The 'compilation' argument must be an instance of Compilation
```
npm ls webpack
```
原因是有多个 webpack而具体的原因是我另外加了一个 dep
"metro-core": "^0.80.1",
解决方法:删除 node_modules以及把上面这个依赖移除再安装一次。

View File

@ -1,105 +0,0 @@
---
title: solidity_bootcamp学习笔记
date: 2023-11-16T00:00:00.000Z
author: KazooTTT
tags: []
published: true
slug: soliditybootcamp-study-notes
description: >-
在之前的博客文章中作者提到了报名参加了一个名为“web3课程”的openbuild课程。2023年11月16日是课程的第一天作者对课程内容感到有趣并计划继续学习并在博客中记录心得。第一节课主要讲解了区块链的基本原理和与web2的区别作者还计划完成课程中的项目部署并寻找其他资源进行额外学习。第二节课涉及了Solidity智能合约开发并提供了相关的学习资源和工具。作者还收集了一些web3相关的工具、案例和教程链接以便进一步学习和实践。
rinId: 11
finished: true
---
![[5578244-WechatIMG1695 1.webp]]
在之前的[3-周报 平淡的一周 | KazooTTT Blog](https://www.kazoottt.top/article/weekly3#194502abe9804dbc860fb9c0a1091819)中提到了一个 openbuild 的[web3 课程](https://openbuild.xyz/learn/challenges/91?from=Challenges)抱着尝试的心态报名了。2023-11-16 是开课的第一天,整体停下来觉得挺有意思,大家的氛围也不错。打算继续学习下去,并且在本文中记录学习心得。
# 待办事项
- [x] 完成[[#11.16 第一节课]]中的部署项目 (添加时间 2023-11-16
# 11.16 第一节课
今天主要讲了区块链的基本原理,与 web2 的区别。了解到在 web3 的开发中,比较注重的是合约(类似传统后端)和前端,而前端的技术栈主要是 react 那一套(这一点在后面收集到的案例中也有体现,大部分都是 nextjs 来实现的)
由于我从未接触过 web3听下来还是挺吃力的不过感觉挺有趣。打算在课程之余另外找一些课程来学习和实践做一些感兴趣的东西以及给开源项目提 pr。
要做的事:
完成课程中教学的例子:区块链开发例子-部署一个[ERC20 代币](<[https://github.com/meterio/tokenERC20](https://github.com/meterio/tokenERC20)>)
**对自己提升最快的应该是多参加一些 Hackathon**
# 2023-11-18 第二节课
课件如下:
![[solidity智能合约开发_20231118.pdf]]
## 备忘
问题咨询:
[https://github.com/openbuildxyz/solidity_bootcamp](https://github.com/openbuildxyz/solidity_bootcamp)
Meter 社区网站:
[https://docs.meter.io/developer-documentation/introduction](https://docs.meter.io/developer-documentation/introduction)
区块链查询网站:
[https://chainlist.org](https://chainlist.org)
ERC20 案例网站:
[https://github.com/meterio/tokenERC20](https://github.com/meterio/tokenERC20)
![[bootcamp.pdf]]
# 资源收集
## 工具
### [Chainlist](https://chainlist.org/)
查询可连接的网络
![[Pasted image 20231116230936.png]]
[GitHub - DefiLlama/chainlist](https://github.com/DefiLlama/chainlist)
基于 nextjs
![[Pasted image 20231116230929.png]]
[GitHub - DefiLlama/chainlist](https://github.com/DefiLlama/chainlist)
## 案例
### [Lens Protocol](https://www.lens.xyz/)
基于 web3 的社交平台
![[Pasted image 20231116231348.png]]
### [Dune](https://dune.com/home)
web3 交流论坛
报表做的很好看
![[Pasted image 20231116231145.png]]
![[Pasted image 20231116231033.png]]
(能从上面的技术栈看出来,绝大部分都是 react/nextjs)
## 教程
## 当前的课程链接
[Solidity Bootcamp](https://openbuild.xyz/learn/challenges/91?from=Challenges)
## Openbuild 的另一门课程
[Learn Smart Contract with Foundry](https://openbuild.xyz/learn/courses/83)
## 微信公众号的入门文章
[Web3 从入门到实战](https://mp.weixin.qq.com/s/OFmrKuyHYF-W6zTLEBXVoA)
## 其他人推荐的 Foundry-full-course-f23
[GitHub - Cyfrin/foundry-full-course-f23](https://github.com/Cyfrin/foundry-full-course-f23)
# 更新记录
2023-11-16 第一节课笔记,以及一些资源收集。

View File

@ -1,14 +0,0 @@
---
title: tokenERC20部署和学习
slug: tokenerc20-deployment-and-learning
published: true
description: >-
本内容涉及ERC20代币的部署与学习具体参考GitHub上的meterio/tokenERC20项目地址为https://github.com/meterio/tokenERC20。
rinId: 12
finished: true
date: 2024-02-07
---
# tokenERC20部署和学习
[GitHub - meterio/tokenERC20](https://github.com/meterio/tokenERC20)

View File

@ -1,41 +0,0 @@
---
title: __dirname is not defined in ES module scope
date: 2024-05-29T00:00:00.000Z
author: KazooTTT
type: Post
status: Published
tags:
- nodejs
- 前端
- esm
- module
finished: true
published: 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
rinId: 14
---
# __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,67 +0,0 @@
---
title: fetch 报错排查 SocketError other side closed
date: 2024-02-03T00:00:00.000Z
author: KazooTTT
tags:
- 网络
published: true
slug: fetch-socketerror-other-side-closed
link: >-
https://kazoottt.notion.site/fetch-SocketError-other-side-closed-d399e7db398c4f7faaa8d3e0003327fd
notionID: d399e7db-398c-4f7f-aaa8-d3e0003327fd
description: >-
在main.js文件中使用fetch方法时遇到了报错错误信息显示“fetch failed”并指出“other side
closed”。错误发生在getFansNum函数中具体是由于TLS连接的另一端关闭导致的。解决此问题的方法是关闭MitM中间人攻击工具这通常用于拦截和修改网络通信可能会导致不正常的连接关闭。
rinId: 15
finished: true
---
# Fetch 报错
# 常规
排查 SocketError other side closed
在main.js中使用了fetch但是在运行main.js的时候时候fetch报错。
```shell
% node main.js
(node:51258) Warning: Setting the NODE_TLS_REJECT_UNAUTHORIZED environment variable to '0' makes TLS connections and HTTPS requests insecure by disabling certificate verification.
(Use `node --trace-warnings ...` to show where the warning was created)
node:internal/deps/undici/undici:11730
Error.captureStackTrace(err, this);
^
TypeError: fetch failed
at Object.fetch (node:internal/deps/undici/undici:11730:11)
at async getFansNum (/Users/kazoottt/GitHub/bilibili-fans/main.js:11:20) {
cause: SocketError: other side closed
at TLSSocket.onSocketEnd (node:internal/deps/undici/undici:8280:26)
at TLSSocket.emit (node:events:526:35)
at endReadableNT (node:internal/streams/readable:1589:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
code: 'UND_ERR_SOCKET',
socket: {
localAddress: '198.19.0.1',
localPort: 55306,
remoteAddress: '198.18.2.185',
remotePort: 443,
remoteFamily: 'IPv4',
timeout: undefined,
bytesWritten: 607,
bytesRead: 0
}
}
}
Node.js v20.10.0
```
从报错信息中可以看出来是getFansNum这个方法中的fetch方法报了错。
解决方法:
关闭MitM
![[Pasted image 20240203205951.png]]

View File

@ -1,65 +0,0 @@
---
title: open graph简述
date: 2024-04-09T00:00:00.000Z
author: KazooTTT
tags: []
finished: true
published: 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'
rinId: 16
---
# 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,71 +0,0 @@
---
title: open graph introduction
date: 2024-04-09T00:00:00.000Z
author: KazooTTT
tags: []
finished: true
published: 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'
rinId: 17
---
# Open-graph Intro
[[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,93 +0,0 @@
---
title: 再次学习History.scrollRestoration
date: 2024-05-23T00:00:00.000Z
author: KazooTTT
type: Post
status: Published
tags:
- History API
- scrollRestoration
- Web Development
- JavaScript
- 浏览器
finished: true
published: 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
rinId: 18
---
# 再次学习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,90 +0,0 @@
---
title: 如何实现在markdown中渲染iframe
date: 2024-04-01T00:00:00.000Z
author: KazooTTT
tags: []
finished: true
published: true
slug: how-to-render-iframes-in-markdown
description: >-
本文介绍了如何在Markdown中渲染iframe的两种方法。第一种方法是通过直接在Markdown中嵌入iframe标签需要使用`rehypeRaw`插件来实现HTML内容的嵌入。第二种方法是通过重写Markdown中的`a`标签将其转换为iframe这种方法可以根据链接内容进行定制化处理例如将特定链接转换为iframe展示。文中还提供了相关的代码示例和项目源代码链接以及一个演示地址供参考。
NotionID-notionnext: a63f5e28-352a-48cc-8c89-f9dd5b5a18ac
link-notionnext: 'https://kazoottt.notion.site/markdown-iframe-a63f5e28352a48cc8c89f9dd5b5a18ac'
rinId: 19
---
# 如何实现在markdown中渲染iframe
demo展示地址[Create Next App](https://markdown-preview-eosin.vercel.app/demo)
项目源代码: [https://github.com/KazooTTT/markdown-iframe-preview/](https://github.com/KazooTTT/markdown-iframe-preview/)
[https://github.com/KazooTTT/markdown-iframe-preview/](https://github.com/KazooTTT/markdown-iframe-preview/)
使用的markdown渲染器是[GitHub - remarkjs/react-markdown: Markdown component for React](https://github.com/remarkjs/react-markdown)
![https://pictures.kazoottt.top/2024/04/20240401-99bfb1d8434e94e5b66182ed42bc09b7.png](https://pictures.kazoottt.top/2024/04/20240401-99bfb1d8434e94e5b66182ed42bc09b7.png)
有两种方案第一种是iframe以html的语法嵌入1第二种是重写a标签把它转化为iframe3
## Iframe直接嵌入markdown
```markdown
### Iframe
<iframe src="./" width="100%" height="500"></iframe>
```
参考:
[iFrame Not Rendering · Issue #661 · remarkjs/react-markdown · GitHub](https://github.com/remarkjs/react-markdown/issues/661)
[GitHub - remarkjs/react-markdown: Markdown component for React](https://github.com/remarkjs/react-markdown?tab=readme-ov-file#appendix-a-html-in-markdown)
也就是引入rehypeRaw这个rehypePlugin实现在markdown中嵌入html。
谨慎使用需要保证html内容安全的情况下嵌入
```tsx
import Markdown from "react-markdown"
import rehypeRaw from "rehype-raw"
const DempPage = () => {
return <Markdown rehypePlugins={[rehypeRaw]}>{markdownContent}</Markdown>
}
```
## A标签转化为iframe
在某些情况下我们需要把a标签的对应的网页直接展示出来这个时候就要把a标签转化为iframe了。实现的方法是重写a这个组件。
下面是我的写法,我需要把链接中有`/agent/special`的所有的链接都以iframe的形式展示出来。于是做了一个特殊判断来实现这个逻辑。对于其他的不满足要求的a标签则直接渲染为a标签即可。
这里还可以做一些拓展的写法比如检查到网易云的音乐链接就在前面加一个网易云的logo如果检测到外链那么点击的时候打开新的窗口等等。
```ts
import Markdown from "react-markdown";
const DemoPage = () => {
<Markdown
components={{
a(props) {
const { href, children } = props;
if (href && href.indexOf("/agent/special") != -1) {
return (
<iframe src={href} width="100%" height="500" allowFullScreen />
);
}
// 否则,渲染为普通的 <a> 链接
return (
<a href={href} target="_blank" rel="noopener noreferrer">
{children}
</a>
);
},
}}
>
{markdownContent}
</Markdown>;
};
```

View File

@ -1,32 +0,0 @@
---
title: 如何快速导出vercel project中的环境变量
date: 2024-02-23
author: KazooTTT
tags:
- vercel
finished: true
published: true
slug: how-to-quickly-export-environment-variables-in-vercel-project
description: >-
本文介绍了如何在Vercel中集成插件或链接数据库后快速导出环境变量的方法。首先需要全局安装Vercel然后通过命令链接Vercel账户并拉取环境变量到本地的.env.local文件中。这一过程简化了环境变量的管理提高了开发效率。
rinId: 3
---
# 如何快速导出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,22 +0,0 @@
---
title: 快速获取telegram chatId然后实现消息通知的方法
date: 2023-09-14T00:00:00.000Z
author: KazooTTT
tags:
- telegram
- bot
- 工具
finished: true
published: true
slug: quick-way-to-get-telegram-chatid-and-then-implement-message-notification
description: >-
本文介绍了如何快速获取Telegram的chatId并实现消息通知的方法。首先设置Telegram账户的username然后向@RawDataBot发送消息以获取chatId。最后结合Telegram
bot和apprise工具来实现消息通知功能。
rinId: 20
---
# 快速获取telegram chatId然后实现消息通知的方法
1. 给 telegram 账户设置 username
2. 搜索[@RawDataBot](https://www.alphr.com/find-chat-id-telegram/)给它发送一条消息。它会返回账户相关的信息给你。格式如下chat.id 就是所需要的 chatId![[Pasted image 20230914233217.png]]
3. 然后就能结合[telegram bot](https://api.telegram.org/)+ [apprise](https://github.com/caronc/apprise/wiki/Notify_telegram)做消息通知了。![[Pasted image 20230914233337.png]]

View File

@ -1,99 +0,0 @@
---
title: html | 浏览器滚动恢复属性History.scrollRestoration
date: 2022-11-27T00:00:00.000Z
author: KazooTTT
tags:
- history
- html
- scrollRestoration
- 前端
- 页面滚动
slug: browser-scroll-restoration-property-historyscrollrestoration
published: true
description: >-
在React新版官网的代码中发现了一个名为History.scrollRestoration的属性用于控制页面刷新或返回后是否恢复到原来的滚动位置。该属性有两个值'auto'表示自动恢复到用户滚动到的位置,而'manual'则表示不恢复用户需手动滚动到该位置。在React官网的实现中针对Safari浏览器设置了'auto',而其他浏览器则使用'manual'以优化不同浏览器的用户体验。这一设置有助于避免在Safari浏览器中出现返回时的灰色屏幕问题同时确保其他浏览器如Chrome和Firefox的用户体验。
NotionID-notionnext: 7dc13064-8325-4aa3-bf45-5450c89e0223
link-notionnext: >-
https://kazoottt.notion.site/History-scrollRestoration-7dc1306483254aa3bf455450c89e0223
rinId: 21
finished: true
---
## 后续 2024-05-23
后来发现我被注释给欺骗了,虽然\_app.tsx里面说让nextjs设置scrollRestoration为manual但是其实他们的项目中nextjs的scrollRestoration就是true。
与之前的注释不符...
```tsx
useEffect(() => {
// 取自StackOverflow。试图检测Safari桌面版和移动版。
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent)
if (isSafari) {
// 这有点不真实。
// 我们仍然依赖手动的Next.js滚动恢复逻辑。
// 但是,我们*也*不希望在Safari的回退滑动手势期间出现灰屏。
// 看起来启用自动恢复和Next.js逻辑同时使用似乎没有坏处。
history.scrollRestoration = "auto"
} else {
// 对于其他浏览器让Next.js将scrollRestoration设置为'manual'。
// 这似乎对Chrome和Firefox更有效因为它们没有动画回退滑动。
}
}, [])
```
![Pasted image 20240523112741](https://pictures.kazoottt.top/2024/05/20240523-fada302d05227c093278498fd1a41b16.png)![Pasted image 20240523112936](https://pictures.kazoottt.top/2024/05/20240523-e452f6186dff475a25570f749111141e.png)
[Re-enable scroll restoration behind flag (#14046) · vercel/next.js@38bd1a0 · GitHub](https://github.com/vercel/next.js/commit/38bd1a024cb25923d8ea15f269a7294d073684d8)
# 浏览器滚动恢复属性History.scrollRestoration
[GitHub - reactjs/react.dev: The React documentation website](https://github.com/reactjs/react.dev)
最近在阅读 React 新版官网的代码时,发现在[\_app.tsx](https://github.com/reactjs/reactjs.org/blob/main/beta/src/pages/_app.tsx)中有这样一段代码。
```typescript
useEffect(() => {
// Taken from StackOverflow. Trying to detect both Safari desktop and mobile.
const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent)
if (isSafari) {
// This is kind of a lie.
// We still rely on the manual Next.js scrollRestoration logic.
// However, we *also* don't want Safari grey screen during the back swipe gesture.
// Seems like it doesn't hurt to enable auto restore *and* Next.js logic at the same time.
history.scrollRestoration = "auto"
} else {
// For other browsers, let Next.js set scrollRestoration to 'manual'.
// It seems to work better for Chrome and Firefox which don't animate the back swipe.
}
}, [])
```
这里用到了我没有接触过的一个属性 History.scrollRestoration发现这个属性是用来控制页面刷新或者返回后是否滚动到原来的位置。
[MDN 文档](https://developer.mozilla.org/zh-CN/docs/Web/API/History/scrollRestoration)
属性的值:
1. auto 将恢复用户已滚动到的页面上的位置。
2. manual 未还原页上的位置。用户必须手动滚动到该位置。
在 mdn 文档中没有看到 auto 是默认值,但是自己手动验证以及在[google blog](https://developer.chrome.com/blog/history-api-scroll-restoration) 中提到:
> The good news is, however, that there's a potential fix: history.scrollRestoration. It takes two string values: auto, which keeps everything as it is today (and is its default value), and manual, which means that you as the developer will take ownership of any scroll changes that may be required when a user traverses the app's history.
所以 auto 确实是默认值没错。
## 举例
1. 如果 history.scrollRestoration = 'auto'; 自动回到原有位置。
![](https://pictures.kazoottt.top/2024/04/20240407-7667c40d30dd5df692f894b63de0e395.gif)
2. 如果 history.scrollRestoration = 'manual'; 回到顶部。
![](https://pictures.kazoottt.top/2024/04/20240407-cf4eabae0c082ae50dc617ae67e140d8.gif)
## 在 react.dev (新版官网)中为什么要使用 Manul
这是因为这个项目用的 next.js涉及到 ssr可能出现页面还没渲染完就滚动到了之前的位置。待补充例子。
可以看一下这篇文档[Next.js 中怎么保持页面的滚动位置](https://juejin.cn/post/7141235243326898213)

View File

@ -12,7 +12,7 @@ slug: 2024-W25
rinId: 99
---
日期范围: 2024/06/17 - 2024/06/23
日期范围: 2024/06/17 - 2024/06/23
很久没有写周报了,最近有一些值得记录的事情,有了记录的动力。

View File

@ -1,25 +1,29 @@
---
title: 2024-W17
date: 2024-04-26T00:00:00.000Z
title: Alice研究周报第20期OpenVoice2开源模型发布Cloudflare推出AI Playground
date: 2024-04-26
author: KazooTTT
type: Post
status: Draft
tags: []
finished: true
published: true
category: 周报
finished: false
published: false
slug: 2024-W17
description: >-
2024年4月22日至4月28日期间,人工智能领域有多项重要更新和发布。Myshell发布OpenVoice2开源语音模型能够通过少量音频样本复制说话人的声音并生成多种语言的语音且完全开源。Snowflake推出了Arctic一个面向企业的顶级语言模型具有高效的企业任务性能。Adobe发布了Firefly
Image
3模型用于文本到图像的生成。OpenAI为其API引入了更多企业级功能包括增强的安全性和更好的行政控制。此外GitHub上的多个项目如Speechless和Llama-3-8B-16K也进行了更新增强了语言处理和推理能力。在应用方面ComfyUI
Workflows提供了工作流模板Cloudflare推出了AI
PlaygroundPerplexity提供了企业会员和企业定制服务。此外还有多个教程和资料推荐如Llama
3的微调教程和大规模预训练语言模型的理论基础。这些更新和资源为AI领域的研究者和开发者提供了丰富的工具和知识。
rinId: 97
本文涵盖了从2024年4月22日至4月28日的一系列人工智能相关内容,包括多个模型的更新和应用,如Myshell发布OpenVoice2开源语音模型、Snowflake
Arctic企业级LLM、Adobe的Firefly Image 3模型等。此外还介绍了OpenAI API的企业级功能升级、Speechless
AI的特点和应用、以及Enterprise
Pro的强大功能和数据安全措施。文章还涉及了大规模预训练语言模型的教程、生成式人工智能在量化交易中的应用挑战以及基于科学的学习技巧等。整体上本文为读者提供了人工智能领域的最新动态和深入分析。
NotionID-notionnext: 178f73e6-c98c-4d2c-9f8b-53f8e3a33988
link-notionnext: >-
https://kazoottt.notion.site/Alice-20-OpenVoice2-Cloudflare-AI-Playground-178f73e6c98c4d2c9f8b53f8e3a33988
category: 周报
---
日期范围: 2024/04/22 - 2024/04/28
日期范围2024/04/22 - 2024/04/28
摘要:
本文主要介绍了一系列与人工智能相关的内容,包括 Snowflake Arctic 这一高效智能的企业级 LLMOpenAI API 的企业相关功能升级Speechless AI 的特点和应用Enterprise Pro 的强大功能、数据安全与隐私、安全管理与控制、单点登录、效益、定价模式和常见问题,一个基于 Hono 的后端 API大规模预训练语言模型的教程生成式人工智能与量化交易的相似性及应用挑战、在其他领域的应用前景和展望以及基于科学的学习技巧等。
# 1. 模型动态
@ -39,7 +43,7 @@ rinId: 97
## [Snowflake Arctic - LLM for Enterprise AI](https://www.snowflake.com/blog/arctic-open-efficient-foundation-language-models-snowflake/?continueFlag=5e163579825fe6026ed04354f826d987) 面向企业的LLM
![[Pasted image 20240426151951.png]]
![Pasted image 20240426151951](https://pictures.kazoottt.top/2024/04/20240426-e1fcd87425850593ba74cb2ad7222111.webp)
2024-04-24
@ -51,17 +55,17 @@ rinId: 97
## Firefly Image 3 Model - Adobe最新版文生图模型
![[Pasted image 20240426154127.png]]
![Pasted image 20240426154127](https://pictures.kazoottt.top/2024/04/20240426-ddc94e639a196cf103f91be39bb1d2a8.webp)
体验地址:
[Adobe Firefly](https://firefly.adobe.com/)
![[Pasted image 20240426153850.png]]
![Pasted image 20240426153850](https://pictures.kazoottt.top/2024/04/20240426-45c172b9f18ea1f3bc1efcba79bdfa64.webp)
## [Introducing more enterprise-grade features for API customers](https://openai.com/blog/more-enterprise-grade-features-for-api-customers?continueFlag=5e163579825fe6026ed04354f826d987) 为API引入更多企业级功能
![[Pasted image 20240426154613.png]]
![Pasted image 20240426154613](https://pictures.kazoottt.top/2024/04/20240426-e7d91592a7c15f38dfb42f0f4ef1926e.webp)
OpenAI发布了一篇博客来介绍对于API的与企业相关的功能升级内容。
@ -75,7 +79,7 @@ OpenAI发布了一篇博客来介绍对于API的与企业相关的功能升级
## [GitHub - uukuguy/speechless](https://github.com/uukuguy/speechless)
![[Pasted image 20240426154320.png]]
![Pasted image 20240426154320](https://pictures.kazoottt.top/2024/04/20240426-f532f983982cc28782a3d2bfc7bcde42.webp)
Speechless AI它是一个基于大型语言模型的人工智能助手专注于将强大的语言处理和深度推理能力集成到实际业务应用中。
@ -87,9 +91,9 @@ Speechless AI它是一个基于大型语言模型的人工智能助手
[X 上的 Matt Shumer“I've doubled LLaMA 3's context window to 16K tokens. Fully open-source. Link in thread: https://t.co/uPgmrVojHX” / X](https://twitter.com/mattshumer_/status/1782576964118675565)
![[Pasted image 20240426163550.png]]
![Pasted image 20240426163550](https://pictures.kazoottt.top/2024/04/20240426-73e6821d03dc5f7a229307e8a1e1a870.webp)
![[Pasted image 20240426163527.png]]
![Pasted image 20240426163527](https://pictures.kazoottt.top/2024/04/20240426-66b50077381574738308e992d308ca56.webp)
# 2. 优秀应用
@ -97,7 +101,7 @@ Speechless AI它是一个基于大型语言模型的人工智能助手
工作流模板网站,主要是
![[Pasted image 20240426165657.png]]
![Pasted image 20240426165657](https://pictures.kazoottt.top/2024/04/20240426-648def4f61b16cf6b1df013c169fc006.webp)
## Cloudflare推出AI Playground
@ -105,9 +109,9 @@ Speechless AI它是一个基于大型语言模型的人工智能助手
支持免费使用多种开源模型并且支持在playground调试好之后生成对应的调用代码。
![[Pasted image 20240426151413.png]]
![Pasted image 20240426151413](https://pictures.kazoottt.top/2024/04/20240426-48462d0fe312de01c7959949775dc744.webp)
![[Pasted image 20240426151522.png]]
![Pasted image 20240426151522](https://pictures.kazoottt.top/2024/04/20240426-b74a10d59b8f8c10fab4827f68993a4e.webp)
与此同时cf还提供了其他的各种好用的工具无论对于个人开发者还是企业都推荐使用。
@ -115,9 +119,9 @@ Speechless AI它是一个基于大型语言模型的人工智能助手
## Perplexity推出了企业会员和企业定制服务
![[Pasted image 20240426162849.png]]
![Pasted image 20240426162849](https://pictures.kazoottt.top/2024/04/20240426-70854f7b84ecc5521f57765d6298ca42.webp)
亮点:
亮点:
Enterprise Pro 的强大功能:能为团队提供快速、最新且可靠的复杂问题答案,无需频繁点击链接、比较答案或在网上无休止搜索。
数据安全与隐私:确保只有合适的人能看到数据,不会有不必要的信息被分享,且数据不会被用于训练,同时保障数据隐私和安全。
@ -138,13 +142,13 @@ Enterprise Pro 的效益:帮助企业加速研发,如 Databricks 估计每
选择模型和机器配置,可以查看这个配置能否运行对应的模型
![[Pasted image 20240426164521.png]]
![Pasted image 20240426164521](https://pictures.kazoottt.top/2024/04/20240426-728dbe0f0025262da7cbf93d8709f049.webp)
## [GitHub - feiandxs/duckrush](https://github.com/feiandxs/duckrush) 搜索关键词并返回LLM便于处理的数据格式
一个简单快速的后端API基于Hono可以使用关键字在互联网上搜索相关内容并将其转换为适合LLM处理的格式。支持在 Cloudflare 上部署。
![[Pasted image 20240426165342.png]]
![Pasted image 20240426165342](https://pictures.kazoottt.top/2024/04/20240426-479e01964874cf3394b7ba2b50ca237b.webp)
# 3. 推荐资料
@ -154,13 +158,13 @@ LLama3 微调教程
[How to Fine Tune Llama 3 for Better Instruction Following? - YouTube](https://www.youtube.com/watch?v=WxQbWTRNTxY&ab_channel=MervinPraison)
![[Pasted image 20240426152053.png]]
![Pasted image 20240426152053](https://pictures.kazoottt.top/2024/04/20240426-acdd5f47e127a0195ca3d4fc3eb98cac.webp)
## [GitHub - datawhalechina/so-large-lm: 大模型基础: 一文了解大模型基础知识](https://github.com/datawhalechina/so-large-lm)
[大模型理论基础](https://datawhalechina.github.io/so-large-lm/#/)
![[Pasted image 20240426154426.png]]
![Pasted image 20240426154426](https://pictures.kazoottt.top/2024/04/20240426-e63035220e42bd54a6485cbeed390a82.webp)
本项目是一个关于大规模预训练语言模型的教程,涵盖模型的各个方面,包括数据准备、模型构建、训练策略等,以及安全、隐私、环境和法律道德等方面的知识。项目以斯坦福大学课程为基础,结合开源贡献者的补充和更新,由项目团队成员分工撰写,预计三个月完成初始版本,后续根据社区贡献和反馈进行更新。旨在为相关领域的研究者和从业者提供知识和技术,拓宽受众的知识面,降低参与开源项目的门槛,并为大型语言模型研究领域贡献资源。
@ -172,11 +176,11 @@ LLama3 微调教程
“您将了解如何为您的用例选择正确的模型并亲身体验有效提示技术、函数调用、JSON模式和检索增强生成RAG等功能”
![[Pasted image 20240426162631.png]]
![Pasted image 20240426162631](https://pictures.kazoottt.top/2024/04/20240426-9459864e258450ddbf902e25501787a7.webp)
## [Financial Market Applications of LLMs](https://thegradient.pub/financial-market-applications-of-llms/?continueFlag=5e163579825fe6026ed04354f826d987) LLM在金融市场的应用
![[Pasted image 20240426163208.png]]
![Pasted image 20240426163208](https://pictures.kazoottt.top/2024/04/20240426-04a6b6a8da6a9bf077e005b44bb58a4a.webp)
重点:
@ -192,7 +196,7 @@ LLama3 微调教程
这篇文本主要讨论了多代理协作、语言模型的安全漏洞、GPT Store 的管理问题以及利用 RAG 改进语言模型性能等方面的内容。
![[Pasted image 20240426163818.png]]
![Pasted image 20240426163818](https://pictures.kazoottt.top/2024/04/20240426-ee28af1bf2b761a03aadd92364659781.webp)
## [Notion The all-in-one workspace for your notes, tasks, wikis, and databases.](https://airy-lunch-c6f.notion.site/Becoming-SMART-is-easy-using-science-85119819e23f423887265b3fc436d586?pvs=4)

View File

@ -217,4 +217,4 @@ Chain-of-Table: Evolving Tables in the Reasoning Chain for Table Understanding
[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)
### [温故而知新:大模型RAG问答研发的7个失分点及MOE专家组合模型的若干浅析](https://mp.weixin.qq.com/s/1p2VtmU-ClPQP1jEchGpGQ)

View File

@ -83,4 +83,4 @@ finished: true
## [API Vs SDK.](https://twitter.com/alexxubyte/status/1745847854961492384?s=12&t=UKmYswdLBh4dGuqwtKAXUA)
## [FFmpeg 教程](https://wklchris.github.io/blog/FFmpeg/)
## [FFmpeg 教程](https://wklchris.github.io/blog/FFmpeg/)

View File

@ -16,12 +16,16 @@ finished: true
## 最近的变化
最大的变动应该是工作内容的变化了。
在 11 月 23 的时候突然接到了一个其他部门的面试,去的时候发现部门的领导以及 HR 都在。简单聊了一下11 月 24 的时候就收到消息说面试通过了,可以转岗到对方的部门工作。
而我的工作也从 web 前端转成了类似于提示词工程师的角色?
最大的变动应该是工作内容的变化了。
在 11 月 23 的时候突然接到了一个其他部门的面试,去的时候发现部门的领导以及 HR 都在。简单聊了一下11 月 24 的时候就收到消息说面试通过了,可以转岗到对方的部门工作。
而我的工作也从 web 前端转成了类似于提示词工程师的角色?
真正转到这个岗位的时候,才发现自己对于大语言模型的认知是很缺乏的,应用层也好,模型层中间层也好,很多认知都是纸上谈兵(疯狂收藏资料,但是实际上看的很少。)
不过也借此机会,重拾了 python上一次写 python 还是大三的时候写了一个圣纳百川贴吧的爬虫以及数据分析。
不过也借此机会,重拾了 python上一次写 python 还是大三的时候写了一个圣纳百川贴吧的爬虫以及数据分析。
总体来说觉得是一个很好的机会,很新鲜的尝试,不过也挺有压力的。
后面的学习方向也会有很大的不同,想把重心放在 llm 的研究上,当然业余时间还是做我自己的项目,通过学习和项目实践来巩固对于 llm 和前端的理解。
@ -30,24 +34,34 @@ finished: true
其实以前的部门氛围很轻松,下班后可以按时回家。不过因为换了部门,有很多的东西不熟悉,所以这周下班时间还是比较晚。
父母决定来上海看我的时候,还没有换部门,所以突然换部门还是听猝不及防的。
他们是周三到的上海,周日离开的上海。
工作日的时候是他们自己在玩,只有周六和周日的时候陪他们出去玩了。
工作日下班后我会到他们酒店去一起聊天,给了我很多建议,感觉收获还是蛮大的。另外更坚定了想回川渝的心吧,还是想离家近一点。
父母决定来上海看我的时候,还没有换部门,所以突然换部门还是听猝不及防的。
他们是周三到的上海,周日离开的上海。
工作日的时候是他们自己在玩,只有周六和周日的时候陪他们出去玩了。
工作日下班后我会到他们酒店去一起聊天,给了我很多建议,感觉收获还是蛮大的。另外更坚定了想回川渝的心吧,还是想离家近一点。
周末陪他们玩的时候,行程也比较休闲,周六的时候去了城隍庙和豫园,然后去了南京东路买衣服(其实我不是很想买,但是感觉他们提出想给我买衣服,陪着他们逛街,他们也会比较开心),最后买了一件羽绒服(价格有点贵,如果是我自己买的话,绝对不会买这么贵的 😂,好肉疼)
## 收集资讯的方式发生了变化
值得一提的时候,换了新部门之后,部门刚好要求要收集资讯,这恰好是我最近开始做的事情。部门内比较注重的是 AI 方面的资讯,而对我自身而言,我还会收集一些前端方面的东西。
值得一提的时候,换了新部门之后,部门刚好要求要收集资讯,这恰好是我最近开始做的事情。部门内比较注重的是 AI 方面的资讯,而对我自身而言,我还会收集一些前端方面的东西。
![](https://pictures.kazoottt.top/2023/12/20231204-202312042355802-c89f2be7e4015627d27e2dd05f15b95d.webp)
收集资讯的方式由之前的 twitter + 其他平台复制链接到 cubox 的方式,转变了到转发到 telegram 或者 discord。
我发现直接转发到后面了两个平台会更直观以及便于查找,之前存了很多链接到 cubox但是几乎很少打开。
而选择 discord 还是 telegram 也是我比较纠结的一点discord 可以分子频道,相当于在这一层就完成了资源的分类,但它的缺点是对于部门平台的链接预览不友好。
例如 twitter由于之前 twitter 平台的限制discord 无法预览 twitter 链接,需要手动改写为 vxtwitter才能预览在转发的时候手动修改这个操作也算增加工作量了。
收集资讯的方式由之前的 twitter + 其他平台复制链接到 cubox 的方式,转变了到转发到 telegram 或者 discord。
我发现直接转发到后面了两个平台会更直观以及便于查找,之前存了很多链接到 cubox但是几乎很少打开。
而选择 discord 还是 telegram 也是我比较纠结的一点discord 可以分子频道,相当于在这一层就完成了资源的分类,但它的缺点是对于部门平台的链接预览不友好。
例如 twitter由于之前 twitter 平台的限制discord 无法预览 twitter 链接,需要手动改写为 vxtwitter才能预览在转发的时候手动修改这个操作也算增加工作量了。
![](https://pictures.kazoottt.top/2023/12/20231204-202312042355804-2dd05f3ccc51770e256b254fa35398e6.webp)
而 telegram 虽然可以很好地预览链接,但是个人来说并不太喜欢它的 UI。并且在后期如果要开发 bot学习成本相对来说会更大一些。因为 discord 直接支持 web hook并且文档完善有公开的 bot 市场)
而 telegram 虽然可以很好地预览链接,但是个人来说并不太喜欢它的 UI。并且在后期如果要开发 bot学习成本相对来说会更大一些。因为 discord 直接支持 web hook并且文档完善有公开的 bot 市场)
![](https://pictures.kazoottt.top/2023/12/20231204-202312042355805-f2797942be9d075ab825cd867ad0cf36.webp)
所以我很纠结应该选择哪种方式。目前是使用的 discord不过我觉得后期可能会转到 telegram。
@ -57,8 +71,10 @@ finished: true
### 发现了一个很炫酷的网站
<https://howieduhzit.best/>
这个网站实现了第一人称视角的交互,将交互映射到 blender 的操作中。
个人感觉很值得学习一下是如何实现的。
这个网站实现了第一人称视角的交互,将交互映射到 blender 的操作中。
个人感觉很值得学习一下是如何实现的。
![](https://pictures.kazoottt.top/2023/12/20231204-202312042355806-3d07be1aa1452e5401a8cca621437b93.webp)
### GPTS - Blender 助手
@ -69,8 +85,10 @@ finished: true
### GPTS - DesignerGPT
[ChatGPT - DesignerGPT](https://chat.openai.com/g/g-2Eo3NxuS7-designergpt)
这个 GPTS 的效果是输入提示词,它会返回给到你一个部署页面,这个部署页面就是根据提示词所生成的界面。
看了它的提示词后发现并不算复杂。
这个 GPTS 的效果是输入提示词,它会返回给到你一个部署页面,这个部署页面就是根据提示词所生成的界面。
看了它的提示词后发现并不算复杂。
[DesignerGPT.md](https://github.com/LouisShark/chatgpt_system_prompt/blob/main/prompts/gpts/DesignerGPT.md)
```plain text
@ -83,7 +101,8 @@ follow this structure closely: `<main class="container"><div class="grid"><secti
This action results in an actual webpage being created and hosted on the server. Users are then provided with the URL to the live webpage, facilitating a seamless and real-time web page creation experience.
```
我们可以分为三个部分,第一个部分是背景介绍,第二个是把网页的 html + 样式(样式用的是外链,这里的我的理解是其实 html 或者样式或者其他都能用外链,只要能访问)丢给它(输出 html第三个是提供一个用于接收 html 内容然后部署页面的 api把 html 内容丢给它,然后返回最终的静态部署的预览的地址。
我们可以分为三个部分,第一个部分是背景介绍,第二个是把网页的 html + 样式(样式用的是外链,这里的我的理解是其实 html 或者样式或者其他都能用外链,只要能访问)丢给它(输出 html第三个是提供一个用于接收 html 内容然后部署页面的 api把 html 内容丢给它,然后返回最终的静态部署的预览的地址。
从整个提示词或者最终的呈现效果来说并不算惊艳,但是为什么这个 GPTS 能在早期广受关注,我觉得是作者对于 GPT 的能力理解比较强,知道如何应用它的能力,以及它的“售后”是做的比较好的,提供预览链接这一点能够免去使用者很多成本。
### 配色方案限时免费(目前已恢复收费)
@ -113,7 +132,7 @@ This action results in an actual webpage being created and hosted on the server.
### Devv 搜索引擎
[https://devv.ai/zh](https://devv.ai/zh "https://devv.ai/zh")
[https://devv.ai/zh](https://devv.ai/zh 'https://devv.ai/zh')
很好用强推
### 截图方案汇总
@ -163,9 +182,9 @@ This action results in an actual webpage being created and hosted on the server.
### Ios 关于金融的组件
[GitHub - WillkYang/YYKline: iOS YYKlineKline、Chart、Volume、Scroll、Scale、MACD、KDJ、K 线图、分时图...](https://github.com/WillkYang/YYKline)
![[Pasted image 20231120000803.png]]
![Pasted image 20231120000803](https://pictures.kazoottt.top/2024/10/20241010-5809d42f65e6306eb6763ee8306de70e.png)
### React 关于金融的组件
[GitHub - rrag/react-stockcharts: Highly customizable stock charts with ReactJS and d3](https://github.com/rrag/react-stockcharts)
![[Pasted image 20231120001545.png]]
![Pasted image 20231120001545](https://pictures.kazoottt.top/2024/10/20241010-85ba8dfbe0a15efc2ad4c6c278dd867e.png)

View File

@ -171,4 +171,4 @@ Konva.js 是一个 HTML5 Canvas JavaScript 框架,它通过为桌面和移动
![img_72.png](https://pictures.kazoottt.top/2024/01/20240118-38f3415f6b6fea7eac4038912134130d.webp)
## [使用 HTML、CSS 和 JavaScript 👨🏻‍💻 创建 3D 产品卡片](https://twitter.com/flexipletech/status/1745455790667030581?s=12&t=UKmYswdLBh4dGuqwtKAXUA)
## [使用 HTML、CSS 和 JavaScript 👨🏻‍💻 创建 3D 产品卡片](https://twitter.com/flexipletech/status/1745455790667030581?s=12&t=UKmYswdLBh4dGuqwtKAXUA)

View File

@ -284,4 +284,4 @@ Konva.js 是一个 HTML5 Canvas JavaScript 框架,它通过为桌面和移动
### [API Vs SDK.](https://twitter.com/alexxubyte/status/1745847854961492384?s=12&t=UKmYswdLBh4dGuqwtKAXUA)
### [FFmpeg 教程](https://wklchris.github.io/blog/FFmpeg/)
### [FFmpeg 教程](https://wklchris.github.io/blog/FFmpeg/)

View File

@ -12,6 +12,7 @@ description: >-
在2020年度作者经历了一系列的学习和实习经历。6月参与省级大创7月获得中国高校微信小程序应用开发赛西南赛区三等奖并在上海某金融科技公司担任产品经理实习生。8月荣获中国大学生计算机设计大赛国家级二等奖并参与了中国好声音的录制。9月后回到成都在一家教育公司担任web前端开发工程师实习生。作者最初选择工作而非考研对前端开发有浓厚兴趣尽管在实习过程中曾尝试产品管理但最终决定回归前端开发。10月拒绝了国企的offer选择在教育科技公司继续实习使用Vue框架。作者计划在2021年继续提升技术并希望获得满意的offer同时计划学习电吉他、画画和MMD。
rinId: 32
finished: true
category: 生活
---
# Y1-2020 年度总结

View File

@ -12,6 +12,7 @@ description: >-
在Y2-2021年度总结中作者回顾了一年的重要事件和个人成长。年初意外成为主播房管随后经历了上海长达六个月的封控期间在家办公并感受到工作瓶颈。作者反思了自己的工作方式意识到需要更深入的调研和思考。此外作者还提到了部门的大变动包括人员离职和裁员以及自己对技术积累的不足。在个人生活方面作者购买了一些产品如Mac触控板和松下GX9相机同时也出售了一些不再使用的物品。最后作者总结了去年的计划完成情况并设定了新一年的目标包括找到成都的工作机会和继续学习设计技能。
rinId: 33
finished: true
category: 生活
---
# Y2-2021 年度总结
@ -91,6 +92,7 @@ finished: true
一些数据
1. 微信读书
1. 2020 122h
2. 2021 32h
3. 2022 29h
@ -107,6 +109,7 @@ finished: true
4. 2019 195h
5. 2018 327h
6. 2017 30h
1. github contributions
![image.png](https://pictures.kazoottt.top/2024/04/20240407-351ef7110d6c1110fff22167f7d1dc8b.png)

View File

@ -12,6 +12,7 @@ description: >-
在Y3-2022年度总结中作者回顾了一年的经历和感受。年初意外成为主播房管随后经历了上海长达六个月的封控期间在家办公感受到了工作和个人生活的压力。作者反思了自己的工作方式意识到需要更深入的调研和思考以及在遇到困难时及时寻求帮助。此外作者提到了部门的大变动包括人员离职和裁员以及对技术发展的担忧。在个人成长方面作者感到自己过于在意他人看法正在努力改善这一心理状态。产品方面作者购买了一些电子产品和健身设备但也有部分产品因各种原因被出售。最后作者总结了去年的计划完成情况并设定了新一年的目标包括找到成都的工作机会完成主站重构项目继续学习设计和UI/UX等。
rinId: 34
finished: true
category: 生活
---
# Y3-2022 年度总结
@ -91,6 +92,7 @@ finished: true
一些数据
1. 微信读书
1. 2020 122h
2. 2021 32h
3. 2022 29h
@ -107,6 +109,7 @@ finished: true
4. 2019 195h
5. 2018 327h
6. 2017 30h
1. github contributions
![image.png](https://pictures.kazoottt.top/2024/04/20240407-351ef7110d6c1110fff22167f7d1dc8b.png)

View File

@ -13,6 +13,7 @@ slug: national-day-trip-to-xiamen-and-hangzhoupicture-bed-version
description: >-
国庆期间作者记录了从上海出发前往厦门和杭州的旅行经历。在厦门作者体验了当地的美食如汉堡王、七星西鹭鸭胫店、宴遇1/2等并游览了鼓浪屿感受了当地的夜生活和自然风光。此外作者还尝试了野草莓餐厅和叽叽扎扎烤肉体验了不同的餐饮文化。在杭州作者参观了联动店铺并尝试了方老大的面食。整个旅程中作者不仅享受了美食还体验了当地的文化和生活方式感受到了旅行的乐趣。
rinId: 114
category: 生活
---
# 国庆厦门&杭州之行

View File

@ -3,13 +3,14 @@ title: 2023bw汇报
date: 2024-01-07
author: KazooTTT
tags:
- "2023"
- '2023'
- bw
- hanser
published: true
slug: bw2023
description: >-
本文详细记录了作者在2023年参加BW活动的经历从20号到23号的活动日程包括与队友的互动、周边包装、场地布置、直播观看以及与粉丝的交流等。文章中穿插了作者的个人感受和对活动的反思展现了从懵懂到逐渐融入圈子的成长过程以及对未来职业选择的思考。此外还提到了与队友的友情和团队合作的重要性以及活动结束后的情感落差和回忆。整体上这是一篇充满情感和细节的活动回顾。
category: 生活
---
# 2023bw 汇报

View File

@ -3,7 +3,7 @@ title: 2023跨年
date: 2024-01-07T00:00:00.000Z
author: KazooTTT
tags:
- "2023"
- '2023'
- 跨年
- 朋友
- 2023跨年
@ -12,10 +12,10 @@ slug: 2023-crossing
description: >-
2023年跨年作者与群友相约成都庆祝。由于年假已用完选择29号和1号晚上的飞机以最大化游玩时间。在飞机上体验了有屏幕的座位并观看了电影《小妇人》。抵达后与朋友们在KTV聚会感受四川话的亲切。30号品尝了跷脚牛肉和桌游店的乐趣晚上享用了陶德砂锅的肥肠。31号一起吃了谭豆花和火锅晚上在玉林路喝酒庆祝跨年。1号在川大望江附近吃了冒烤鸭后前往机场。此行让作者感慨成都美食众多决心今年回成都工作。
finished: true
category: 生活
coverImage: https://pictures.kazoottt.top/2024/10/20241010-5eef043c1bc397df87b6be5f1a4aaa3e.png
---
![[cover (2) 1.png]]
# 2023 跨年
一时兴起和群友约好了去成都跨年。
@ -25,45 +25,50 @@ finished: true
## 29 号与 30 号
第一次坐这种有屏幕的飞机,在座位上找耳机和耳机孔找了好久,后来才知道原来是起飞后才发耳机。=、=
![[IMG_4892.jpg]]
![IMG_4892](https://pictures.kazoottt.top/2024/20240107-9a46922a4a939d4d7a1b6ff534ecdea7.webp)
在飞机上看完了[小妇人 (豆瓣)](https://movie.douban.com/subject/26348103/), 已经很久没有看完一部完整的电影了,感觉飞机上是一个补电影、补小说的好地方。
下了飞机后就直奔 KTV 了, 虽然那几天本身就很累了, 但是和朋友们聚一块还是很开心的。
下了飞机后就直奔 KTV 了, 虽然那几天本身就很累了, 但是和朋友们聚一块还是很开心的。
在出租车上听到了熟悉的四川话,但自己有点不清楚应该讲普通话还是四川话了...甚至觉得说四川话有点不好意思,可能是太久没有回成都了吧。
30 号的中午,一起去吃了跷脚牛肉,感觉这家的干辣椒其实有一点湿 hhh,然后他们的炒菜都挺好吃的,虽然看着比较口味重,但还是挺清淡的。豆腐烧脑花很好吃!推荐~
![[Pasted image 20240107160401.png]]
![Pasted image 20240107160401](https://pictures.kazoottt.top/2024/20240107-ce0ec00bb0d62660fa9bf696d3922f4a.webp)
一起去桌游店玩了桌游
![[Pasted image 20240107160845.png]]
![[Pasted image 20240107160836.png]]
![Pasted image 20240107160845](https://pictures.kazoottt.top/2024/20240107-521812b8304f7ae0b15e041a6268d5e0.webp)
![Pasted image 20240107160836](https://pictures.kazoottt.top/2024/20240107-1d560a798460ec3e12b1f85163fc91b7.webp)
晚上吃了陶德砂锅!肥肠真好吃 555.
![[Pasted image 20240107160330.png]]
![Pasted image 20240107160330](https://pictures.kazoottt.top/2024/20240107-7f8ccd69ac2e7f4160821b9cb1de46d9.webp)
## 31 号
早饭/午饭一起去吃了谭豆花,冰醉豆花很好吃!推荐。
(原来成都有这么多好吃的...之前在这边读了 4 年书,好像都没这么出去玩过=、=
![[Pasted image 20240107160141.png]]
早饭/午饭一起去吃了谭豆花,冰醉豆花很好吃!推荐。
晚上去吃了火锅!
![[Pasted image 20240107160212.png]]
(原来成都有这么多好吃的...之前在这边读了 4 年书,好像都没这么出去玩过=、=
![Pasted image 20240107160141](https://pictures.kazoottt.top/2024/20240107-8c31289261f464106d3b9c48c0cd9cc0.webp)
晚上去吃了火锅!
![Pasted image 20240107160212](https://pictures.kazoottt.top/2024/20240107-a7955974be5051accc894a9a710d2e0d.webp)
吃完火锅去玉林路喝了酒,感觉这个金汤力还挺好喝的=、=
(打车到玉林路,一下车就跨年了,有被周围的摩托车发动起启动声吓到)
![[Pasted image 20240107160222.png]]
![Pasted image 20240107160222](https://pictures.kazoottt.top/2024/20240107-fed1bfd8c9774ea41f33b6ed28073fdd.webp)
## 1 号
在川大望江附近吃了冒烤鸭
![[Pasted image 20240107160229.png]]
![Pasted image 20240107160229](https://pictures.kazoottt.top/2024/20240107-4650006886db1222dd2feb0a33306c3b.webp)
甚至之前的校园卡流量还能用....
![[Pasted image 20240107160251.png]]
![Pasted image 20240107160251](https://pictures.kazoottt.top/2024/20240107-4ef293b956adc6b2bb28a2d3e4f20874.webp)
一个人点了两个菜(分量怎么这么多!),吃完就去机场了。
![[Pasted image 20240107160302.png]]
一个人点了两个菜(分量怎么这么多!),吃完就去机场了。
![Pasted image 20240107160302](https://pictures.kazoottt.top/2024/20240107-fee594430e0649e0778f57be0a63221e.webp)
最后的感想就是:

View File

@ -3,7 +3,7 @@ title: Y4-2023年度总结
date: 2024-01-07T00:00:00.000Z
author: KazooTTT
tags:
- "2023"
- '2023'
- 2023年度总结
published: true
slug: summary-of-fy2023
@ -11,10 +11,10 @@ description: >-
2023年个人总结作者回顾了一年的重要事件包括参加aigc比赛、第二次去bw、厦门之旅以及转岗开始AI
Agent的研究与开发。在这一年中作者还开始担任面试官并参与其他公司的面试体验了面试的双重角色。技术方面作者的GitHub热力图逐渐变绿参与了多个开源项目并与朋友一起参加了AI相关的比赛获得了奖项和奖金。此外作者还分享了技术栈的偏向性包括前端使用nextjs后端使用nextjs/flask设计使用figma和canva。最后作者总结了去年的目标完成情况并设定了新一年的计划包括继续学习blender、每周至少产出一次技术向内容等。
finished: true
category: 生活
coverImage: https://pictures.kazoottt.top/2024/10/20241010-747a24e5899b357928a58beafaa22faa.png
---
![[cover (1) 1.png]]
# 2023 总结
感觉时间过得好快,一年又过去了,还是像以往一样做一个总结吧。
@ -33,18 +33,18 @@ finished: true
### 终于开始面试
面试指两个方面,一个是我作为面试官面试他人(被迫的),另一个是我投简历面试其他公司。
我面试他人:由于部门很缺前端,更资深的前端都已离职,于是只能我被迫开始面试招人,在我自己面试别人的过程中,也能感受到自己的不足之处,比如对方回答了某问题之后,我很难接下去深入聊。也就是说其实我本身对于那个问题的了解也是比较浅的。
我被面试:投了几家公司,比较意外的是小公司投了后就没有下文了,但大厂的简历都过了,并且约了面试。结果以我目前的水平来说自然不用讲了, 还有很多东西要学习准备,不过我觉得起码我迈出了第一步,也知道自己的不足之处在哪里了。面试官都是很不错的人,面试过程中有很好地引导回答,并且面完之后给出了很多有用的建议。
面试指两个方面,一个是我作为面试官面试他人(被迫的),另一个是我投简历面试其他公司。
我面试他人:由于部门很缺前端,更资深的前端都已离职,于是只能我被迫开始面试招人,在我自己面试别人的过程中,也能感受到自己的不足之处,比如对方回答了某问题之后,我很难接下去深入聊。也就是说其实我本身对于那个问题的了解也是比较浅的。
我被面试:投了几家公司,比较意外的是小公司投了后就没有下文了,但大厂的简历都过了,并且约了面试。结果以我目前的水平来说自然不用讲了,还有很多东西要学习准备,不过我觉得起码我迈出了第一步,也知道自己的不足之处在哪里了。面试官都是很不错的人,面试过程中有很好地引导回答,并且面完之后给出了很多有用的建议。
### 热力图终于绿了起来
因为自己的做项目以及给开源项目提 pr,github 的绿格子终于多了起来,虽然还是有很多空白的地方,但我觉得这是一个好的开始。希望 2024 年继续保持,并且做出真正能够解决自己痛点,同时也能帮助他人的项目。
![[Pasted image 20240107150939.png]]
之前写的一个油猴脚本,收到了他人的反馈,感觉这样的反馈很能激励自己做更多的产出。
![[Pasted image 20240107151049.png]]
除此之外还对一些开源项目提了 pr虽然大多数都是很简单的 pr例如 typo fix但总算是迈出了第一步。
![[Pasted image 20240107151307.png]]
因为自己的做项目以及给开源项目提 pr,github 的绿格子终于多了起来,虽然还是有很多空白的地方,但我觉得这是一个好的开始。希望 2024 年继续保持,并且做出真正能够解决自己痛点,同时也能帮助他人的项目。
![IMG-20240902220155904](https://pictures.kazoottt.top/2024/10/20241010-c89c4acd4044c20f36eebf6700691788.png)
之前写的一个油猴脚本,收到了他人的反馈,感觉这样的反馈很能激励自己做更多的产出。
![IMG-20240902220155937](https://pictures.kazoottt.top/2024/10/20241010-7c87bb96de213bef044b67bd466b5960.png)
除此之外还对一些开源项目提了 pr虽然大多数都是很简单的 pr例如 typo fix但总算是迈出了第一步。
![IMG-20240902220155971](https://pictures.kazoottt.top/2024/10/20241010-870362102e36444878d13477590e8569.png)
### 和朋友一起参加了 Ai 相关的比赛
@ -52,92 +52,92 @@ finished: true
从前期的开会讨论,后期的设计对接,都很愉快。那段时间的时间安排差不多都是白天工作,晚上回家继续写比赛的代码,虽然比较累但是觉得很快乐,在最后也拿了奖,同时也有一笔奖金。这应该是我第一次在工作外用自己的能力挣钱,感觉很快乐。
![[Pasted image 20240107144605.png]]
![IMG-20240902220156003](https://pictures.kazoottt.top/2024/10/20241010-e6323006da6f86aa1ac30cc2a6738ec6.png)
下面详细聊一下这个 demo 的开发相关的感受以及不足之处。
框架使用的是 nextjsapp router) ,这个时候才意识到,原来我最顺手的框架是 nextjs而不是工作里用得最多的 umi、cra、vite 之类的东西,后面的这几个框架对我来说其实都不是开箱即用的。
框架使用的是 nextjsapp router),这个时候才意识到,原来我最顺手的框架是 nextjs而不是工作里用得最多的 umi、cra、vite 之类的东西,后面的这几个框架对我来说其实都不是开箱即用的。
后面要做的事情应该是针对这几个常见的框架自己另外几个适用于自己以及公司的脚手架,而不是每次用都重新配一次配置。
- [ ] [[常见框架脚手架]]
然后就是在写这个项目的过程中,充分体会到 chatgpt 的便捷之处了。在早期,设计老师还没有提供素材给我的时候,我使用是[Beautiful Free Images & Pictures | Unsplash](https://unsplash.com/) 的 api
然后就是在写这个项目的过程中,充分体会到 chatgpt 的便捷之处了。在早期,设计老师还没有提供素材给我的时候,我使用是[Beautiful Free Images & Pictures | Unsplash](https://unsplash.com/) 的 api
像下文这样随机生成图片,以及打乱顺序的 dirty work 就可以交给 chatgpt 来完成,减少了很多重复的工作量。
```javascript
const imagesList = [
[
"https://source.unsplash.com/128x128/?architecture",
"https://source.unsplash.com/128x128/?travel",
"https://source.unsplash.com/128x128/?books",
"https://source.unsplash.com/128x128/?dogs",
"https://source.unsplash.com/128x128/?beach",
"https://source.unsplash.com/128x128/?food",
"https://source.unsplash.com/128x128/?music",
"https://source.unsplash.com/128x128/?nature",
"https://source.unsplash.com/128x128/?fashion",
"https://source.unsplash.com/128x128/?cars",
"https://source.unsplash.com/128x128/?wildlife",
"https://source.unsplash.com/128x128/?art",
"https://source.unsplash.com/128x128/?sports",
"https://source.unsplash.com/128x128/?mountains",
"https://source.unsplash.com/128x128/?technology",
"https://source.unsplash.com/128x128/?city",
"https://source.unsplash.com/128x128/?cats",
"https://source.unsplash.com/128x128/?sunsets",
"https://source.unsplash.com/128x128/?animals",
"https://source.unsplash.com/128x128/?fitness",
],
[
"https://source.unsplash.com/360x640/?technology",
"https://source.unsplash.com/360x640/?music",
"https://source.unsplash.com/360x640/?sports",
"https://source.unsplash.com/360x640/?art",
"https://source.unsplash.com/360x640/?fashion",
"https://source.unsplash.com/360x640/?cars",
"https://source.unsplash.com/360x640/?books",
"https://source.unsplash.com/360x640/?architecture",
"https://source.unsplash.com/360x640/?fitness",
"https://source.unsplash.com/360x640/?nature",
"https://source.unsplash.com/360x640/?city",
"https://source.unsplash.com/360x640/?food",
"https://source.unsplash.com/360x640/?animals",
"https://source.unsplash.com/360x640/?mountains",
"https://source.unsplash.com/360x640/?beach",
"https://source.unsplash.com/360x640/?dogs",
"https://source.unsplash.com/360x640/?travel",
],
[
"https://source.unsplash.com/360x640/?nature",
"https://source.unsplash.com/360x640/?city",
"https://source.unsplash.com/360x640/?food",
"https://source.unsplash.com/360x640/?animals",
"https://source.unsplash.com/360x640/?mountains",
"https://source.unsplash.com/360x640/?beach",
"https://source.unsplash.com/360x640/?dogs",
"https://source.unsplash.com/360x640/?travel",
"https://source.unsplash.com/360x640/?architecture",
"https://source.unsplash.com/360x640/?technology",
"https://source.unsplash.com/360x640/?music",
"https://source.unsplash.com/360x640/?sports",
"https://source.unsplash.com/360x640/?art",
"https://source.unsplash.com/360x640/?fashion",
"https://source.unsplash.com/360x640/?cars",
"https://source.unsplash.com/360x640/?books",
"https://source.unsplash.com/360x640/?fitness",
],
[
'https://source.unsplash.com/128x128/?architecture',
'https://source.unsplash.com/128x128/?travel',
'https://source.unsplash.com/128x128/?books',
'https://source.unsplash.com/128x128/?dogs',
'https://source.unsplash.com/128x128/?beach',
'https://source.unsplash.com/128x128/?food',
'https://source.unsplash.com/128x128/?music',
'https://source.unsplash.com/128x128/?nature',
'https://source.unsplash.com/128x128/?fashion',
'https://source.unsplash.com/128x128/?cars',
'https://source.unsplash.com/128x128/?wildlife',
'https://source.unsplash.com/128x128/?art',
'https://source.unsplash.com/128x128/?sports',
'https://source.unsplash.com/128x128/?mountains',
'https://source.unsplash.com/128x128/?technology',
'https://source.unsplash.com/128x128/?city',
'https://source.unsplash.com/128x128/?cats',
'https://source.unsplash.com/128x128/?sunsets',
'https://source.unsplash.com/128x128/?animals',
'https://source.unsplash.com/128x128/?fitness'
],
[
'https://source.unsplash.com/360x640/?technology',
'https://source.unsplash.com/360x640/?music',
'https://source.unsplash.com/360x640/?sports',
'https://source.unsplash.com/360x640/?art',
'https://source.unsplash.com/360x640/?fashion',
'https://source.unsplash.com/360x640/?cars',
'https://source.unsplash.com/360x640/?books',
'https://source.unsplash.com/360x640/?architecture',
'https://source.unsplash.com/360x640/?fitness',
'https://source.unsplash.com/360x640/?nature',
'https://source.unsplash.com/360x640/?city',
'https://source.unsplash.com/360x640/?food',
'https://source.unsplash.com/360x640/?animals',
'https://source.unsplash.com/360x640/?mountains',
'https://source.unsplash.com/360x640/?beach',
'https://source.unsplash.com/360x640/?dogs',
'https://source.unsplash.com/360x640/?travel'
],
[
'https://source.unsplash.com/360x640/?nature',
'https://source.unsplash.com/360x640/?city',
'https://source.unsplash.com/360x640/?food',
'https://source.unsplash.com/360x640/?animals',
'https://source.unsplash.com/360x640/?mountains',
'https://source.unsplash.com/360x640/?beach',
'https://source.unsplash.com/360x640/?dogs',
'https://source.unsplash.com/360x640/?travel',
'https://source.unsplash.com/360x640/?architecture',
'https://source.unsplash.com/360x640/?technology',
'https://source.unsplash.com/360x640/?music',
'https://source.unsplash.com/360x640/?sports',
'https://source.unsplash.com/360x640/?art',
'https://source.unsplash.com/360x640/?fashion',
'https://source.unsplash.com/360x640/?cars',
'https://source.unsplash.com/360x640/?books',
'https://source.unsplash.com/360x640/?fitness'
]
]
```
### 去了 Bw2023
具体的内容可以看这篇汇报
[[2023bw汇报_图床版]]
[[生活/生活/2023bw汇报_图床版]]
### 去了厦门
具体的内容可以看这篇游记
[[国庆厦门&杭州之行_图床版]]
[[生活/生活/国庆厦门&杭州之行_图床版]]
### 转岗开启 AI Agent 开发 + 父母来上海看我
@ -146,7 +146,7 @@ const imagesList = [
### 和朋友一起在成都跨年
[[2023跨年]]
[[生活/生活/2023跨年]]
## 技术栈的偏向性
@ -173,7 +173,7 @@ const imagesList = [
2018 327h
2017 30h
wakatime 的数据查看:[Code stats for all users in 2023 - WakaTime](https://wakatime.com/a-look-back-at-2023)
![[下载.png]]
![IMG-20240902220156039](https://pictures.kazoottt.top/2024/10/20241010-60743ea1e38816464883d4a77add6485.png)
### 音乐
@ -186,7 +186,7 @@ wakatime 的数据查看:[Code stats for all users in 2023 - WakaTime](https:/
1. [ ] 【工作】拿一个 base 地是成都的 offer
2. [ ] 【开源】把主站重构项目写完并上线
3. [ ] 【设计】继续学习 blender
4. [ ] 【设计】 学习 UI/UX熟悉 ps、figma
4. [ ] 【设计】学习 UI/UX熟悉 ps、figma
5. [x] 【学习】重拾阅读习惯
## 今年的计划

View File

@ -7,6 +7,7 @@ description: >-
本文讲述了一位大学生在成都春熙路地下商场遭遇的骗局。作者被诱导进入一家店铺,经历了从免费面部检测到被迫支付高额费用的过程。在被骗后,作者通过寻求帮助,最终成功追回了大部分损失。这次经历让作者学会了更加小心谨慎,并感激那些在困难时刻给予帮助的人。文章旨在提醒读者警惕类似的消费陷阱。
finished: true
rinId: 111
category: 生活
---
# 一次受骗经历

View File

@ -14,6 +14,7 @@ description: >-
文章中作者分享了多个餐饮体验包括奶茶店“薄荷森林”的薄荷生打椰以及“野台风”的圆规和dirty咖啡。在“seven
bus”尝试了杏仁牛油果冰淇士。正餐方面作者品尝了“野草莓”的高性价比美食以及“宴遇1/2”的酸菜鱼、火焰黑椒安格斯小牛肉等。此外还体验了“叽叽扎扎烤肉”和“七星西鹭鸭胫店”的特色菜肴。最后作者在“傲客夜食”尝试了麻辣烤鱼和冰粉。整体上作者对所尝试的食物给予了积极的评价并表达了对某些美食的特别喜爱。
rinId: 113
category: 生活
---
# 奶茶与咖啡

View File

@ -9,6 +9,7 @@ slug: a-very-abrupt-trip-to-hong-kong
description: >-
作者在生日假期冲动地决定去香港旅行,提前一周购买机票和预订酒店。旅程中遇到了一些小插曲,如机票信息错误和插头转换器购买错误,但都顺利解决。在香港,作者体验了当地的美食,如一兰拉面和各种点心,并与久未见面的高中同学共进午餐,享受了愉快的时光。尽管行程紧凑,但这次旅行给作者留下了深刻的印象和美好的回忆。
rinId: 112
category: 生活
---
# 一次很突然的香港之行
@ -17,7 +18,7 @@ rinId: 112
出发的时间是周三晚上,下班后坐地铁去了机场,吃了一顿不太划算的意面。
![[04FED0A5-000A-4FB5-9DC4-E6177093BE68_1_102_o.jpeg]]
![04FED0A5-000A-4FB5-9DC4-E6177093BE68_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-71e2e34aef69446c67c26de928432da5.jpeg)
然后我就犯了第一个错,去自助值机的时候提示购票人的信息和证件(通行证)的信息不符合,这个时间我才发现我打错拼音了,我服了我自己这种低级错误也会犯。
@ -29,11 +30,11 @@ rinId: 112
拍拍路灯
![[1FBDB24F-50EB-4591-82C7-44D790FAA8E1_1_102_o.jpeg]]
![1FBDB24F-50EB-4591-82C7-44D790FAA8E1_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-f3ac20327086aed4a771b6111ae74dbf.jpeg)
街边的广告,有点让我联想到椰树椰汁
![[6E4C12DE-564E-495A-9757-A71F2FCA93F2_1_102_o.jpeg]]
![6E4C12DE-564E-495A-9757-A71F2FCA93F2_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-7bd8639a20d26c2432e8bfeddda47a18.jpeg)
大概坐了一个小时到了铜锣湾之前订酒店的时候发现铜锣湾有家一兰拉面抱着一个想试试主播之前吃过的同款的想法我下车后没有去酒店而是先去了一兰拉面这家店营业到凌晨4点。
@ -43,23 +44,23 @@ rinId: 112
个人感觉还是挺好吃的不过确实有点贵hhh
![[B3ECF3CA-48DB-44EF-9653-5F1550B8B3F9_1_102_o.jpeg]]
![B3ECF3CA-48DB-44EF-9653-5F1550B8B3F9_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-a718374339d138f47a3c73fe2430ce66.jpeg)
![[656038D5-1DD9-448A-B87F-CD06B3D9F9D8_1_102_o.jpeg]]
![656038D5-1DD9-448A-B87F-CD06B3D9F9D8_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-03b52d70869019745f85935ae21a6447.jpeg)
吃完拉面就回酒店休息了。 犯了第二个错是插头转化器买成了内地插头转香港插头的...从包里拿出来我才发现。
吃完拉面就回酒店休息了。犯了第二个错是插头转化器买成了内地插头转香港插头的...从包里拿出来我才发现。
![[9D4EF7F8-2C59-49DF-8F4B-945C1C199EC7_1_102_o.jpeg]]
![9D4EF7F8-2C59-49DF-8F4B-945C1C199EC7_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-8817755eb1b6d5890bc915e85c29578f.jpeg)
白天起了个大早去干活~ 这天中午和高中同学约了午饭不过她12点下班于是我继续开始闲逛。
在公交车站看到了崩铁广告2333
![[A58CB566-63A9-4F80-86CB-D997B5D3E3F2_1_102_o.jpeg]]
![A58CB566-63A9-4F80-86CB-D997B5D3E3F2_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-bbbf8f684509a863b2d0db990e2f7cd2.jpeg)
凉果零食专卖店
![[8FF79095-1EFA-49AE-AE73-2099BACB20B1_1_102_o.jpeg]]
![8FF79095-1EFA-49AE-AE73-2099BACB20B1_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-4efc23797557653a21d9ab25ab16a52a.jpeg)
然后还去了时代广场和维港,初中的时候来过,但已经没有什么印象了,只记得林青霞的手印😂
@ -71,29 +72,29 @@ rinId: 112
烤酸奶
![[D7D9B20C-21B5-4873-9CC7-7621647772DB_1_102_o.jpeg]]
![D7D9B20C-21B5-4873-9CC7-7621647772DB_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-ec15ba75b64d24313b14bf4e1cb00070.jpeg)
肠粉(第一次吃这种肠粉,里面还有油条,感觉口感很神奇
![[1651BC89-6433-4A56-A773-70ABDFEC7195_1_102_o.jpeg]]
![1651BC89-6433-4A56-A773-70ABDFEC7195_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-8e1ef08968287fe823d055bea7da7994.jpeg)
虾饺
![[0F5D3FA0-ADD0-45B0-A550-165F6F3461D1_1_102_o.jpeg]]
![0F5D3FA0-ADD0-45B0-A550-165F6F3461D1_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-823ca4f0b3f5d92ee30a7a997390234f.jpeg)
炒牛河
![[BC992799-52F6-47E7-A550-AAF99926D2AF_1_102_o.jpeg]]
![BC992799-52F6-47E7-A550-AAF99926D2AF_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-59e763dd7be787da20c11f9b23e0ba66.jpeg)
蒸排骨
![[7DC8D773-5E72-4674-B6E3-8A09C6349C61_1_102_o.jpeg]]
![7DC8D773-5E72-4674-B6E3-8A09C6349C61_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-553c4138aa8aa49544be78928b07b3f3.jpeg)
然后还请我喝了冰抹茶,我点的时候没注意菜单,没有加奶😂感觉一股草的味道,看来我还是不太能接受纯抹茶。
![[8BE4D114-A064-4F5B-A6FC-FD26D2766C38_1_102_o 1.jpeg]]
![8BE4D114-A064-4F5B-A6FC-FD26D2766C38_1_102_o 1](https://pictures.kazoottt.top/2024/10/20241010-7923810f32dbb6d59c11b69287a72aaa.jpeg)
![[8F7B7ED6-B197-456D-AD14-B7E9F36CC7EA_1_102_o.jpeg]]
![8F7B7ED6-B197-456D-AD14-B7E9F36CC7EA_1_102_o](https://pictures.kazoottt.top/2024/10/20241010-b02a44afcbda0634bb86486150e15f18.jpeg)
吃完午饭散了散步她又要回去工作了于是走到她公司楼下跟她抱了抱就告别了T T

View File

@ -12,6 +12,7 @@ description: >-
link: 'https://kazoottt.notion.site/4168e936345444f4b625a86309a5b320'
notionID: 4168e936-3454-44f4-b625-a86309a5b320
rinId: 57
category: 生活
---
# 与其倒腾,不如静下心来

View File

@ -11,6 +11,7 @@ slug: recent-feelings-a-lot-of-hard-work
description: >-
在23年年末作者内转至大模型应用部门初期充满激情能接触前沿项目并利用大模型厂商服务。然而随着时间推移工作中的不适感逐渐增强。主要问题包括基建不足如缺乏CI/CD流程发布版本耗时且需加班项目框架笨重且存在性能问题对项目信心下降代码质量差缺乏规范以及对未来职业发展的担忧如工作与学习时间冲突薪资涨幅低。这些因素共同导致了作者对当前工作的不满和焦虑。
rinId: 116
category: 生活
---
# 最近的感受-积重难返

View File

@ -11,7 +11,7 @@ tags:
- 端午节
finished: true
published: true
category: 随笔与生活
category: 生活
slug: duanwu-guangzhou-trip
description: 在端午节期间,我和朋友们相约去广州,参观了大咩老师的毕业展,品尝了各种美食,体验了广州的文化和风景。这次旅行充满了美好的回忆,让我感受到了广州的独特魅力。
rinId: 5
@ -245,13 +245,13 @@ rinId: 5
闭馆的时候,很多人来给玩偶拍照~
![未命名的设计 (3)](https://pictures.kazoottt.top/2024/07/20240708-%E6%9C%AA%E5%91%BD%E5%90%8D%E7%9A%84%E8%AE%BE%E8%AE%A1%20(3).png)
![未命名的设计 (3)](<https://pictures.kazoottt.top/2024/07/20240708-%E6%9C%AA%E5%91%BD%E5%90%8D%E7%9A%84%E8%AE%BE%E8%AE%A1%20(3).png>)
![🤓 (1) 1](https://pictures.kazoottt.top/2024/07/20240708-%F0%9F%A4%93%20(1)%201.png)
![🤓 (1) 1](<https://pictures.kazoottt.top/2024/07/20240708-%F0%9F%A4%93%20(1)%201.png>)
合照~
![未命名的设计 (4)](https://pictures.kazoottt.top/2024/07/20240708-%E6%9C%AA%E5%91%BD%E5%90%8D%E7%9A%84%E8%AE%BE%E8%AE%A1%20(4).png)
![未命名的设计 (4)](<https://pictures.kazoottt.top/2024/07/20240708-%E6%9C%AA%E5%91%BD%E5%90%8D%E7%9A%84%E8%AE%BE%E8%AE%A1%20(4).png>)
结束后我们在广美拍了合照,虽然毕业了几年了,但还是觉得自己是学生...

View File

@ -1,5 +1,5 @@
---
title: BW记录-个人向流水账版
title: 2024BW记录-个人向流水账版
date: 2024-07-17
author: KazooTTT
type: Post
@ -10,10 +10,10 @@ tags:
- 个人流水账
- 毛怪
- 小缘
- "2024"
- '2024'
finished: true
published: true
category: 随笔与生活
category: 生活
slug: bw-record-personal-notes
description: 记录了 KazooTTT 在 BW 活动中的个人体验和感受,包括与朋友和偶像的合照、工作餐和摊位的点滴。
rinId: 1

View File

@ -1,21 +0,0 @@
---
title: 摘抄
date: 2024-03-27T00:00:00.000Z
author: KazooTTT
tags: []
finished: true
published: true
slug: extract
description: >-
编程大师Martin
Fowler强调了代码中重复问题的严重性认为重复是代码中最坏的“味道”。同时提到了关于开源的心理建设资源暗示了在编程和开源项目中维护心理健康的重要性。
rinId: 31
---
# 摘抄
> 编程大师*Martin Fowler*先生曾经说过:“**代码有很多种坏味道,重复是最坏的一种!**”
[开源的心理建设](https://antfu.me/posts/mental-health-oss-zh)
![[Pasted image 20240328230737.png]]

View File

@ -1,36 +0,0 @@
---
title: 一些烦心事
date: 2023-01-19T00:00:00.000Z
author: KazooTTT
tags: []
finished: true
published: true
slug: somethings-bothering-me
description: >-
在飞机上,作者通过写作来缓解心中的烦闷。上周状态良好,但本周因熬夜和粉丝圈的负面影响感到状态下滑。作者计划在春节期间调整作息,并反思了过去几年对粉丝圈的感受变化,包括从极度社恐到逐渐适应公共表达的过程,以及对粉丝圈中个体信任的思考。同时,作者也回顾了与主播和粉丝圈的互动,以及个人情感和观点表达的冲突与反思。
rinId: 110
---
# 一些烦心事
在飞机上,闲着也是闲着,不妨写点碎碎念,缓解一下心中的阴郁。
上周也就是 1.9-1.23 这个时间段,我的状态挺好的,无论是工作、学习还是对其他感兴趣事物的产出,那种在对应的时间场所做对应的事情,然后同时又有的积极反馈,真的很棒。
但是这周突然状态又变差了,想了想主要原因,第一是周末熬夜打乱了作息导致周一失眠,后续也没能调整好状态;第二是,受到了喜欢事物所在圈子某些事件、氛围的影响,进一步使心情变得更差。
对于第一点,我决定春节放假期间,调整作息,可以赖床,但绝不能晚睡。
对于第二点,也就是粉丝氛围,其实一直都在困扰着我,去年前大半年,尤为严重,后小半年稍微好一点,但没想到最近又被影响到了心情。
从什么地方开始聊呢?先聊聊这几年的感受变化吧。
一个人对某一事物感受的变化,受到多方面影响,无论是自己、事物本身还是大环境等等,多会有一定占比。
小时候的我可以说极度社恐第一次坐飞机的时候空姐问我要喝什么饮料我都不敢说话只能用手指指一下我想要的东西。17 年,到了大学,觉得不能一直畏畏缩缩,决定换个状态重新开始,于是逼自己加了辩论队,从那个时候开始慢慢地变得和普通人一样,虽然性格依然很闷,但终于可以在公共场合表达观点了。
自身心态发生改变的时间点18 年-20 年,也刚好是我混我葱圈子最深入的时候,和大家共同经历了某些事,在非主要舆论场一起直面了很多恶意,也在某些事情上明白了现在喜欢不代表会一直喜欢,为了现圈利益撕破脸皮背刺前圈的事情还挺常见,可以信任粉丝整体,但不能信任某个个体。
当然也有很多暖心的事情,一起庆祝生日、一起为某个线下准备惊喜。当有投票或出专辑,有时会帮一点点忙(那时候大学,时间真的多哇),当时教过四十多岁的玉米怎么购买专辑,之后偶然刷到她的微博,除了分享花花草草,就是转发微博关心我葱身体了,无论是当时还是现在回想起都很感动,这样的事情太多太多。
而同一时期,也刚好遇到了主播以及她的直播。当时看直播的时候,不太敢发弹幕和回帖,回复被念到的时候会下意识地关掉直播间,过几分钟再打开。并且我算是误打误撞入坑的类型,不了解 ACG不看音乐区兴趣点和主播的产出内容毫无重合但还是在随机到主播的歌的时候产生了兴趣。所以当时的我属于非常懵懂的旁观者、圈外人看着大家互动想着说原来这个圈子的大家是这样表达喜欢的好不一样。
这样的状态一直持续到 19 年年初,遇到了一件让我个人不太舒服的事情。那时的我已不是内心极度社恐和卑微的状态了,打字也喜欢带着辩论的一些架子,当时气在头上,在评论区选择了比较直白的提醒,后来有人评论反驳我,我也直接回怼了过去,在那之后选择了渐渐不看直播,投稿刷到了才看。
19 年成都 bw 短暂的回坑了一下,但重新高强度看直播应该是说唱新世代时期,突然刷到了主播的 vlog这个节目我葱也在这种交集让我觉得有些奇妙。根据录制时间拉了点录播后面又刷了某些切片上下文看心里又慢慢释然了。
这让我开始思考当初的做法有没有问题?从道理上讲,主播和观众看法、表达方式不一样太正常不过,无论哪一方,都不应该把自己的观点强加对方,应该做的是求同存异。从情感上讲,某些看法触及到自己所在意的点时,生气也很正常,如果别的地方有人嘴主播我也会表示不满,所以当时评论区也有反驳我也很正常。
但正确的做法到底是什么我真的不清楚,做法随着自身情感倾斜程度变化吗?
好像有点扯太远了,本来是想聊粉丝氛围的。

View File

@ -23,6 +23,7 @@ update_time: '2023/10/20 13:55:39'
publish_time: '2023/10/20 13:50:45'
finished: true
rinId: 61
category: 软件
---
# messAuto + iMessage 实现iPhone和mac信息同步和自动复制验证码

View File

@ -12,10 +12,11 @@ tags:
finished: true
published: true
slug: possible-causes-and-solutions-for-focusee-switching-system-audio-to-speaker-playback-forcibly-zh
description:
description:
NotionID-notionnext: 8ac966eb-66b4-4f39-b2fa-3fd4e4911a41
link-notionnext: https://kazoottt.notion.site/focusee-8ac966eb66b44f39b2fa3fd4e4911a41
rinId: 41
category: 软件
---
# Focusee录制系统声音被强制切换为扬声器播放的可能原因和解决方法
@ -41,7 +42,7 @@ rinId: 41
具体的操作是:
1. 点击来源下方的添加按钮选择macOS音频采集
![SCR-20240525-qcob-2.png](https://pictures.kazoottt.top/2024/05/20240525-862b985a72997075bf72d8dd84efa46c.png)
![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)
![image.png](https://pictures.kazoottt.top/2024/05/20240525-b1ea5d3a03406f26588601ed66067a05.png)

View File

@ -12,7 +12,7 @@ tags:
- 退款
finished: true
published: true
category: 编程与技术
category: 软件
slug: focusee-macos-review
description: 分析了Focusee在macOS上的缺陷包括色差严重、导出速度慢以及声卡配置冲突等问题并分享了作者的退款经历。
NotionID-notionnext: c6b6e2f5-9da1-43f9-b531-b07d974815ed

View File

@ -11,7 +11,7 @@ tags:
- deepseek
finished: true
published: true
category:
category: 软件
slug: free-tokens-large-model-service
description:
NotionID-notionnext: 30a20483-ea28-4daf-b8be-155f0e690bc7

View File

@ -19,6 +19,7 @@ description: 通过自动操作实现将指定文件夹中的图片自动导入
NotionID-notionnext: d451ee94-44f7-44af-83c0-a6e8a30d26c8
link-notionnext: https://kazoottt.notion.site/d451ee9444f744af83c0a6e8a30d26c8
rinId: 44
category: 软件
---
# 如何自动同步某个文件夹的图片到某个相册中
@ -69,6 +70,6 @@ rinId: 44
如果想要删除文件夹操作,可以前往以下路径:
``` shell
```shell
/Users/{这里替换为你的用户名}/Library/Workflows/Applications/Folder Actions
```

View File

@ -10,6 +10,7 @@ description: >-
finished: true
date: '2024-07-11T02:17:53.456Z'
rinId: 122
category: 软件
---
# 如何让你的截图更加好看

View File

@ -1,45 +0,0 @@
---
title: Possible Causes and Solutions for Focusee Switching System Audio to Speaker Playback forcibly
date: 2024-05-25
author: KazooTTT
type: Post
status: Draft
tags:
- focusee
- obs
- VirtualSoundCard
- BlackHole2ch
finished: true
published: true
slug: possible-causes-and-solutions-for-focusee-switching-system-audio-to-speaker-playback-forcibly
description:
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
rinId: 39
---
# 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,75 +0,0 @@
---
title: Reasons Not to Recommend Purchasing Focusee for macOS Users
date: 2024-06-20
author: KazooTTT
type: Post
status: Published
tags:
- macOS
- Focusee
- Screen Recording Software
- Review
- Refund
finished: true
published: 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
rinId: 40
---
# 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]]
[Possible Causes and Solutions for Focusee Switching System Audio to Speaker Playback forcibly](https://www.kazoottt.top/article/possible-causes-and-solutions-for-focusee-switching-system-audio-to-speaker-playback-forcibly)
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,32 +0,0 @@
---
title: Telegram bot推荐 VidDlPBot
date: 2024-06-26T00:00:00.000Z
author: KazooTTT
type: Post
status: Published
tags:
- Telegram
- 视频下载
- VidDlPBot
- Twitter
- TikTok
- YouTube
- Instagram
finished: true
published: true
slug: telegram-bot-recommendation-viddlpbot
description: 推荐一款Telegram bot——VidDlPBot可以轻松下载Twitter、TikTok、YouTube、Instagram的视频操作简便。
rinId: 60
---
# Telegram Bot推荐 VidDlPBot
![CleanShot 2024-06-23 at 13.26.57@2x](https://pictures.kazoottt.top/2024/06/20240626-ab6dac2fda86c4569f09c9067e0616d6.png)
目前已支持Twitter、TikTok、YouTube、Instagram
添加bot之后直接输入要下载的链接给bot它就会返回下载好的视频给你了。超级方便。gemoo
教学视频:
[如何快速下载视频(手机端同理)\[telegram bot推荐#1\]\_哔哩哔哩\_bilibili](https://www.bilibili.com/video/BV1dGgkecEr7/)

View File

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

View File

@ -14,6 +14,7 @@ description: >-
为了在公共场合保护个人隐私防止他人查看自己的Twitter账号信息如ID、昵称和头像作者开发了一个油猴脚本。该脚本专门用于屏蔽Twitter首页上显示的个人信息。用户可以通过greasyfork安装此脚本源代码可在GitHub上查看。脚本使用前后对比图展示了隐藏个人信息的效果。
finished: true
rinId: 125
category: 项目
---
# Hide-your-twitter-info

View File

@ -16,6 +16,7 @@ description: >-
函数则用于从Blob对象下载文件同样支持自定义文件名。这两个函数均来自 `@kzttools/file-downloader`
该包的NPM地址和GitHub地址均已提供。项目遵循MIT许可证作者为kazoottt。
rinId: 63
category: 项目
---
# File Download

View File

@ -13,6 +13,7 @@ description: >-
slugs. Check out the live demo at https://slugify.kazoottt.top/. This tool is
based on the auto-slugify library available on GitHub.
rinId: 65
category: 项目
---
# Auto Slugify Webapp

View File

@ -9,6 +9,7 @@ finished: true
published: true
slug: write-an-oil-monkey-script-that-automatically-selects-the-latest-tweets
rinId: 64
category: 项目
---
# 写一个油猴脚本,自动地选择最新微博

View File

@ -1,51 +0,0 @@
---
title: 关于农业CMS要做的事情
date: 2024-02-11T00:00:00.000Z
author: KazooTTT
tags:
- CMS
- grain
finished: true
published: true
slug: things-to-do-about-agriculture-cms
description: >-
这个项目是由我的同学吴泓志委托我开发的主要包括前端和后端两部分。前端代码基于React、Ant
Design和Vite托管在GitHub上地址为[https://github.com/KazooTTT/grain-database-webapp](https://github.com/KazooTTT/grain-database-webapp)。后端代码则基于Flask同样在GitHub上地址为[https://github.com/KazooTTT/grain_database_backend](https://github.com/KazooTTT/grain_database_backend)。项目涉及的农业CMS功能包括模板修改和多项列表页及详情页的开发任务如级联选择、多选功能、数据下载支持以及属性统计和图表展示等。
rinId: 123
---
这个项目是我的同学吴泓志委托我做的
# The Source Code
[frontend source code](https://github.com/KazooTTT/grain-database-webapp)
based on react + antd + vite
[backend source code](https://github.com/KazooTTT/grain_database_backend)
based on flask
# 关于农业CMS要做的事情
## 2024-04-08 上传模板修改
## 2024-02-11
- [x] 列表页 把Material和Variety的级联选择给做好
- [x] 列表页 Property是多选
- [x] 列表页 Year是多选
- [x] 列表页 支持下载。参考格式如下: 每一个property都有对应的其他的column。1
- [x] 详情页 每个属性都需要画一张累计频率图
- [x] 详情页 每个属性都需要有统计
- [x] 详情页 需要支持下载2
1
![[Pasted image 20240211211126.png]]
![[Pasted image 20240211212504.png]]
2
![[Pasted image 20240211211006.png]]

View File

@ -1,30 +0,0 @@
---
title: 博客改造日志
subtitle: 改造自黄玄老师提供的博客模板
date: 2022-10-12T00:00:00.000Z
author: KazooTTT
tags:
- 博客
- 前端
slug: blog-makeover-log
published: true
description: >-
本博客改造日志记录了对基于Jekyll的模板[GitHub - Huxpro/huxpro.github.io: My Blog / Jekyll
Themes / PWA](https://github.com/Huxpro/huxpro.github.io)的修改。主要更新包括当featured
tags数量为0时隐藏该组件以及使用rake命令`rake post title="xxx" subtitle="xxx"`快速创建博客文章。
finished: true
rinId: 124
---
# 博客改造日志
The blog template is [GitHub - Huxpro/huxpro.github.io: My Blog / Jekyll Themes / PWA](https://github.com/Huxpro/huxpro.github.io), which is based on Jekyll.
## 1. Featured Tags 数量为 0 时,隐藏该组件
在组件外层新增一道 tags 数量判断
![img](https://pictures.kazoottt.top/2024/04/20240407-05bf6c42df8ad16eada65d5a9705e2f5.png)
## 2. Rake 快速创建博客
`rake post title="xxx" subtitle="xxx"`

2
src/env.d.ts vendored
View File

@ -1,2 +1,2 @@
/// <reference types="astro/client" />
/// <reference path="../.astro/types.d.ts" />
/// <reference path="../.astro/types.d.ts" />

View File

@ -31,7 +31,7 @@ export const menuLinks: Array<{ title: string; path: string }> = [
{
title: 'Blog',
path: '/blog/'
},
}
]
// https://expressive-code.com/reference/configuration/

View File

@ -1,5 +1,13 @@
export { cn } from './tailwind'
export { getAllPosts, sortMDByDate, getUniqueTags, getUniqueTagsWithCount, getAllCategories, getUniqueCategories,getUniqueCategoriesWithCount } from './post'
export {
getAllPosts,
sortMDByDate,
getUniqueTags,
getUniqueTagsWithCount,
getAllCategories,
getUniqueCategories,
getUniqueCategoriesWithCount
} from './post'
export { getFormattedDate } from './date'
export { generateToc } from './generateToc'
export type { TocItem } from './generateToc'

View File

@ -40,10 +40,9 @@ export function getUniqueTagsWithCount(
/** Note: This function doesn't filter draft posts, pass it the result of getAllPosts above to do so. */
export function getAllCategories(posts: Array<CollectionEntry<'post'>>): string[] {
return posts.map(post => post.data.category ?? "未分类")
return posts.map((post) => post.data.category ?? '未分类')
}
/** Note: This function doesn't filter draft posts, pass it the result of getAllPosts above to do so. */
export function getUniqueCategories(posts: Array<CollectionEntry<'post'>>) {
return [...new Set(getAllCategories(posts))]
@ -62,8 +61,11 @@ export function getUniqueCategoriesWithCount(
}
export function getIdToSlugMap(posts: Array<CollectionEntry<'post'>>) {
return posts.reduce((acc, post) => {
acc[(post.id.split(".md")[0])] = post.slug
return acc
}, {} as Record<string, string>)
return posts.reduce(
(acc, post) => {
acc[post.id.split('.md')[0]] = post.slug
return acc
},
{} as Record<string, string>
)
}

View File

@ -60,7 +60,7 @@ const config = {
},
fontFamily: {
sans: [...fontFamily.sans],
satoshi: ['Satoshi', 'sans'],
satoshi: ['Satoshi', 'sans']
}
}
}