mirror of
https://github.com/KazooTTT/kazoottt-blog.git
synced 2025-06-21 09:41:30 +08:00
docs: update
This commit is contained in:
@ -7,10 +7,12 @@ import Label from '../Label.astro'
|
||||
|
||||
interface Props {
|
||||
content: CollectionEntry<'post'>
|
||||
simple?: boolean
|
||||
}
|
||||
|
||||
const {
|
||||
content: { data, render }
|
||||
content: { data, render },
|
||||
simple = false
|
||||
} = Astro.props
|
||||
|
||||
const { remarkPluginFrontmatter } = await render()
|
||||
@ -39,24 +41,30 @@ const dateTimeOptions: Intl.DateTimeFormatOptions = {
|
||||
<FormattedDate date={data.date} dateTimeOptions={dateTimeOptions} /> /{' '}
|
||||
{remarkPluginFrontmatter.minutesRead}
|
||||
</p>
|
||||
<Label
|
||||
title={data.category ?? '未分类'}
|
||||
as='a'
|
||||
href={`/categories/${data.category ?? '未分类'}/`}
|
||||
>
|
||||
<Icon name='category' slot='icon' />
|
||||
</Label>
|
||||
{
|
||||
!simple && (
|
||||
<>
|
||||
<Label
|
||||
title={data.category ?? '未分类'}
|
||||
as='a'
|
||||
href={`/categories/${data.category ?? '未分类'}/`}
|
||||
>
|
||||
<Icon name='category' slot='icon' />
|
||||
</Label>
|
||||
|
||||
<Label title={data.finished ? '已完成' : '未完成'} as='a'>
|
||||
<Icon name='progress' slot='icon' />
|
||||
</Label>
|
||||
<Label title={data.finished ? '已完成' : '未完成'} as='a'>
|
||||
<Icon name='progress' slot='icon' />
|
||||
</Label>
|
||||
</>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
<h1 class='mt-2 text-3xl font-medium sm:mb-1'>
|
||||
{data.title}
|
||||
</h1>
|
||||
|
||||
{
|
||||
!!data.tags?.length && (
|
||||
!simple && !!data.tags?.length && (
|
||||
<div class='mt-3 flex flex-row items-center gap-x-1'>
|
||||
<svg
|
||||
aria-hidden='true'
|
||||
|
@ -6,10 +6,11 @@ import FormattedDate from '../FormattedDate.astro'
|
||||
|
||||
type Props<Tag extends HTMLTag> = Polymorphic<{ as: Tag }> & {
|
||||
post: CollectionEntry<'post'>
|
||||
prefix?: string
|
||||
withDesc?: boolean
|
||||
}
|
||||
|
||||
const { as: Tag = 'div', post, withDesc = false } = Astro.props
|
||||
const { as: Tag = 'div', post, prefix = '/blog/', withDesc = false } = Astro.props
|
||||
const postDate = post.data.date
|
||||
---
|
||||
|
||||
@ -20,7 +21,7 @@ const postDate = post.data.date
|
||||
{post.data.draft && <span class='text-red-500'>(Draft) </span>}
|
||||
<a
|
||||
data-astro-prefetch
|
||||
href={`/blog/${post.slug}/`}
|
||||
href={`${prefix}${post.slug}/`}
|
||||
class='transition-all hover:text-muted-foreground'
|
||||
>
|
||||
{post.data.title}
|
||||
|
@ -71,6 +71,13 @@ import { Image } from 'astro:assets'
|
||||
>
|
||||
Tags
|
||||
</a>
|
||||
<a
|
||||
href='/diary'
|
||||
class={`block px-6 py-3 text-[1.05rem] font-medium transition-colors hover:bg-gray-100 ${Astro.url.pathname.startsWith('/diary') ? 'text-green-400' : ''} dark:hover:bg-gray-700`}
|
||||
aria-label='Diary Page'
|
||||
>
|
||||
Diary
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<a
|
||||
|
@ -11,7 +11,7 @@ const post = defineCollection({
|
||||
type: 'content',
|
||||
schema: () =>
|
||||
z.object({
|
||||
title: z.string(),
|
||||
title: z.string().optional(),
|
||||
description: z.string().optional().nullable(),
|
||||
date: z.union([
|
||||
z.string(),
|
||||
|
27
src/content/post/日记/2023/02/2023-02-11.md
Normal file
27
src/content/post/日记/2023/02/2023-02-11.md
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
title: 2023-02-11 星期六
|
||||
date: 2023-02-11T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-02-11-saturday
|
||||
published: true
|
||||
description: >-
|
||||
2023年2月11日星期六,菜单包括外婆菜炒蛋搭配土豆箜饭,饮料为冰糖加柠檬片。当天的计划包括使用tailwind编写样式,学习Photoshop或Figma操作以制作视频封面模板,以及进行AI
|
||||
Hanser的相关工作。
|
||||
rinId: 22
|
||||
category: 日记-2023-02
|
||||
---
|
||||
|
||||
# 2023-02-11 星期六
|
||||
|
||||
## 今日菜单+饮料
|
||||
|
||||
外婆菜炒蛋+土豆箜饭
|
||||
冰糖+柠檬片
|
||||
|
||||
## 今日计划
|
||||
|
||||
- [ ] 使用 tailwind 编写样式
|
||||
- [ ] 学习 ps 或者 figma 操作,制作视频封面模板
|
||||
- [ ] AI Hanser
|
22
src/content/post/日记/2023/02/2023-02-21.md
Normal file
22
src/content/post/日记/2023/02/2023-02-21.md
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
title: 2023-02-21 星期二
|
||||
date: 2023-02-21T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-02-21-tue
|
||||
published: true
|
||||
description: >-
|
||||
在2023年2月21日的内容中,讨论了数组元素索引为何从0开始编号的问题。根据地址计算公式,索引实际上代表了内存地址的偏移量,首个元素的地址偏移量为0,因此索引从0开始是合理的。文章中还提供了一张图示,进一步解释了这一概念。
|
||||
rinId: 23
|
||||
category: 日记-2023-02
|
||||
---
|
||||
|
||||
# 2023-02-21 星期二
|
||||
|
||||
## 数组
|
||||
|
||||
[4.1. 数组(Array) - Hello 算法 (hello-algo.com)](https://www.hello-algo.com/chapter_array_and_linkedlist/array/#411)
|
||||
**为什么数组元素索引从 0 开始编号?** 根据地址计算公式,**索引本质上表示的是内存地址偏移量**,首个元素的地址偏移量是 0 ,那么索引是 0 也就很自然了。
|
||||
|
||||

|
28
src/content/post/日记/2023/09/2023-09-08.md
Normal file
28
src/content/post/日记/2023/09/2023-09-08.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
title: 2023-09-08 星期五
|
||||
date: 2023-09-08T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
- 歌词
|
||||
- hanser
|
||||
slug: 2023-09-08-friday
|
||||
published: true
|
||||
description: 2023年9月8日星期五的记录中提到了一段关于直播的内容,强调不需要背负任何负担,只需带着空行囊和彼此即可。
|
||||
rinId: 24
|
||||
category: 日记-2023-09
|
||||
---
|
||||
|
||||
# 2023-09-08 星期五
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 直播
|
||||
|
||||
> 不需要 背负任何
|
||||
> 只需要空行囊和彼此就够
|
||||
|
||||
不再用 背负任何
|
||||
|
||||
只需要 空行囊和彼此就够
|
23
src/content/post/日记/2023/09/2023-09-09.md
Normal file
23
src/content/post/日记/2023/09/2023-09-09.md
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
title: 2023-09-09 星期六
|
||||
date: 2023-09-09T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-09-09-saturday
|
||||
published: true
|
||||
description: 2023年9月9日星期六的日程安排包括已完成的项目升级和游泳,以及待完成的nextjs+node运行时脚本测试。
|
||||
rinId: 25
|
||||
category: 日记-2023-09
|
||||
---
|
||||
|
||||
# 2023-09-09 星期六
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
- [x] 版本升级
|
||||
- [ ] nextjs+node 运行时 脚本运行测试
|
||||
- [x] 游泳
|
17
src/content/post/日记/2023/09/2023-09-10.md
Normal file
17
src/content/post/日记/2023/09/2023-09-10.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
title: 2023-09-10 星期日
|
||||
date: 2023-09-10T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-09-10-sunday
|
||||
published: true
|
||||
description: >-
|
||||
2023年9月10日,某博客讨论了其支持的模板语法,指出虽然功能丰富,但使用起来感觉不够灵活且学习成本较高。文章中提出疑问,低代码是否是一种高效但可能过于简化的编程方式。
|
||||
rinId: 26
|
||||
category: 日记-2023-09
|
||||
---
|
||||
|
||||
# 2023-09-10 星期日
|
||||
|
||||
- 13:17 某博客支持各种模板语法,但是使用的时候反而觉得不灵活以及学习成本过高了。<br>觉得突然想到,是不是低代码是一种含糖量极高的编程方式。<br>
|
36
src/content/post/日记/2023/09/2023-09-12.md
Normal file
36
src/content/post/日记/2023/09/2023-09-12.md
Normal file
@ -0,0 +1,36 @@
|
||||
---
|
||||
title: 2023-09-12 星期二
|
||||
date: 2023-09-12T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
- 健身
|
||||
slug: 2023-09-12-tuesday
|
||||
published: true
|
||||
description: >-
|
||||
今天的任务包括完成多项链表相关的编程题目,其中已完成的有“86.分隔链表”和“141.环形链表”,未完成的有“142.环形链表-ii”和“160.相交链表”。此外,已完成的任务还包括在Obsidian中链接外部代码文件。健身方面,进行了跑步、椭圆机和器械锻炼,并计划下次带拖鞋以便洗完澡后直接穿回家。
|
||||
rinId: 27
|
||||
category: 日记-2023-09
|
||||
---
|
||||
|
||||
# 2023-09-12 星期二
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
- [ ] 刷题回顾
|
||||
- [x] [[86.分隔链表]]
|
||||
- [x] [[141.环形链表]]
|
||||
- [ ] [[142.环形链表-ii]]
|
||||
- [ ] [[160.相交链表]]
|
||||
- [x] [[obsidian链接外部代码文件]]
|
||||
|
||||
## 打卡
|
||||
|
||||
## 健身
|
||||
|
||||
【打卡】跑步 15 分钟,椭圆机 15 分钟,器械(大腿 腹部 背部)4 组
|
||||
|
||||
下次要把拖鞋带来,洗完澡直接穿拖鞋回家。
|
72
src/content/post/日记/2023/09/2023-09-13.md
Normal file
72
src/content/post/日记/2023/09/2023-09-13.md
Normal file
@ -0,0 +1,72 @@
|
||||
---
|
||||
title: 2023-09-13 星期三
|
||||
date: 2023-09-13
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
- todo
|
||||
slug: 2023-09-13-wednesday
|
||||
published: true
|
||||
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: 日记-2023-09
|
||||
---
|
||||
|
||||
# 2023-09-13 星期三
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
- [ ] 刷题回顾
|
||||
- [x] [[141.环形链表]]
|
||||
- [ ] [[142.环形链表-ii]]
|
||||
- [ ] [[160.相交链表]]
|
||||
|
||||
## 打卡
|
||||
|
||||
wakatime 数据:
|
||||

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

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

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

|
||||

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

|
||||
|
||||
## Inbox
|
||||
|
||||
[[屏蔽推特黄推]]
|
||||
[[shot.so - 图片美化工具]]
|
28
src/content/post/日记/2023/09/2023-09-24.md
Normal file
28
src/content/post/日记/2023/09/2023-09-24.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
title: 2023-09-24 星期日
|
||||
date: 2023-09-24
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
- 翻译
|
||||
slug: 2023-09-24-sunday
|
||||
published: true
|
||||
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: 日记-2023-09
|
||||
---
|
||||
|
||||
# 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
|
26
src/content/post/日记/2023/10/2023-10-06.md
Normal file
26
src/content/post/日记/2023/10/2023-10-06.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
title: 2023-10-06 星期五
|
||||
date: 2023-10-06
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-10-06-friday
|
||||
published: true
|
||||
description: >-
|
||||
今天的任务包括给手表充电和录制关于如何使用MessAuto和iMessage实现iPhone和mac信息同步及自动复制验证码的视频,并计划将视频发布到B站和小红书上。
|
||||
category: 日记-2023-10
|
||||
---
|
||||
|
||||
# 2023-10-06 星期五
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
- [ ] 给手表充电
|
||||
- [ ] 录[[安利/MessAuto + iMessage 实现iPhone和mac信息同步和自动复制验证码]]的视频,发布到 b 站和小红书
|
||||
|
||||
## 打卡
|
||||
|
||||
## Inbox
|
24
src/content/post/日记/2023/10/2023-10-07.md
Normal file
24
src/content/post/日记/2023/10/2023-10-07.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
title: 2023-10-07 星期六
|
||||
date: 2023-10-07
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-10-07-saturday
|
||||
published: true
|
||||
description: 2023年10月7日星期六的计划包括国庆期间的厦门和杭州旅行,以及当天的打卡和待办事项。
|
||||
category: 日记-2023-10
|
||||
---
|
||||
|
||||
# 2023-10-07 星期六
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
[[2023 国庆厦门和杭州之行]]
|
||||
|
||||
## 打卡
|
||||
|
||||
## Inbox
|
24
src/content/post/日记/2023/10/2023-10-10.md
Normal file
24
src/content/post/日记/2023/10/2023-10-10.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
title: 2023-10-10 星期二
|
||||
date: 2023-10-10
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-10-10-tuesday
|
||||
published: true
|
||||
description: 今天的计划包括阅读vite文档,并进行打卡和处理inbox事项。
|
||||
category: 日记-2023-10
|
||||
---
|
||||
|
||||
# 2023-10-10 星期二
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
[[从零开始阅读vite文档]]
|
||||
|
||||
## 打卡
|
||||
|
||||
## Inbox
|
24
src/content/post/日记/2023/10/2023-10-18.md
Normal file
24
src/content/post/日记/2023/10/2023-10-18.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
title: 2023-10-18 星期三
|
||||
date: 2023-10-18
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-10-18-wednesday
|
||||
published: true
|
||||
description: 今天的日程包括图片上传测试和打卡活动,同时有一个待处理的inbox事项。
|
||||
category: 日记-2023-10
|
||||
---
|
||||
|
||||
# 2023-10-18 星期三
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
[[图片上传测试]]
|
||||
|
||||
## 打卡
|
||||
|
||||
## Inbox
|
24
src/content/post/日记/2023/10/2023-10-19.md
Normal file
24
src/content/post/日记/2023/10/2023-10-19.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
title: 2023-10-19 星期四
|
||||
date: 2023-10-19
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-10-19-thursday
|
||||
published: true
|
||||
description: 2023年10月19日星期四的日程包括发布xlsx util工具包,该工具能够根据输入的列索引返回如A、B等实际列名。此外,还包括打卡和处理inbox事项。
|
||||
category: 日记-2023-10
|
||||
---
|
||||
|
||||
# 2023-10-19 星期四
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
xlsx util 发包,实现输入列的索引,输出 A B 这样真实的列名
|
||||
|
||||
## 打卡
|
||||
|
||||
## Inbox
|
24
src/content/post/日记/2023/10/2023-10-21.md
Normal file
24
src/content/post/日记/2023/10/2023-10-21.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
title: 2023-10-21 星期六
|
||||
date: 2023-10-21
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-10-21-saturday
|
||||
published: true
|
||||
description: 2023年10月21日星期六的日程安排包括打卡和处理inbox事务。具体打卡内容通过一张图片展示,而inbox的具体内容未详细说明。
|
||||
category: 日记-2023-10
|
||||
---
|
||||
|
||||
# 2023-10-21 星期六
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
## 打卡
|
||||
|
||||

|
||||
|
||||
## Inbox
|
24
src/content/post/日记/2023/10/2023-10-22.md
Normal file
24
src/content/post/日记/2023/10/2023-10-22.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
title: 2023-10-22 星期日
|
||||
date: 2023-10-22
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-10-22-sunday
|
||||
published: true
|
||||
description: 今天的计划包括防抖技术的学习和打卡任务,同时还有待处理的邮件。
|
||||
category: 日记-2023-10
|
||||
---
|
||||
|
||||
# 2023-10-22 星期日
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
[[防抖]]
|
||||
|
||||
## 打卡
|
||||
|
||||
## Inbox
|
26
src/content/post/日记/2023/10/2023-10-28.md
Normal file
26
src/content/post/日记/2023/10/2023-10-28.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
title: 2023-10-28 星期六
|
||||
date: 2023-10-28
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-10-28-saturday
|
||||
published: true
|
||||
description: >-
|
||||
Today's schedule includes learning from the dom-to-image topic, with a note on
|
||||
weread content in the inbox.
|
||||
category: 日记-2023-10
|
||||
---
|
||||
|
||||
# 2023-10-28 星期六
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
[[What I learn from dom-to-image]]
|
||||
|
||||
## 打卡
|
||||
|
||||
## Inbox
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
25
src/content/post/日记/2023/11/2023-11-06.md
Normal file
25
src/content/post/日记/2023/11/2023-11-06.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
title: 2023-11-06 星期一
|
||||
date: 2023-11-06
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 日记
|
||||
slug: 2023-11-06-monday
|
||||
published: true
|
||||
description: 2023年11月6日,星期一,记录了当天的打卡情况,显示Wakatime的使用时间较长,给人留下了深刻印象。此外,还提到了inbox,但未详细说明内容。
|
||||
category: 日记-2023-11
|
||||
---
|
||||
|
||||
# 2023-11-06 星期一
|
||||
|
||||
## 今天要做的事情
|
||||
|
||||
## 打卡
|
||||
|
||||

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

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
今天的不足之处是没有学习也没有刷题。
|
||||
|
||||
昨天太累了,今天早睡吧。晚安。
|
||||
|
||||
# 今天记录的内容
|
||||
|
||||
```dataview
|
||||
table file.path
|
||||
from ""
|
||||
where dateformat(file.ctime, "yyyy-MM-dd") = "2024-03-06"
|
||||
```
|
||||
|
||||
# 明天要做的事情
|
||||
|
||||
# Inbox
|
||||
|
||||
<!-- start of weread -->
|
||||
<!-- end of weread -->
|
239
src/content/post/生活/生活/2023 bw汇报.md
Normal file
239
src/content/post/生活/生活/2023 bw汇报.md
Normal file
@ -0,0 +1,239 @@
|
||||
---
|
||||
title: 2023 bw汇报
|
||||
date: 2024-01-07
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- "2023"
|
||||
- bw
|
||||
- hanser
|
||||
published: true
|
||||
slug: bw2023
|
||||
description: 本文详细记录了作者在2023年参加BW活动的经历,从20号到23号的活动日程,包括与队友的互动、周边包装、场地布置、直播观看以及与粉丝的交流等。文章中穿插了作者的个人感受和对活动的反思,展现了从懵懂到逐渐融入圈子的成长过程,以及对未来职业选择的思考。此外,还提到了与队友的友情和团队合作的重要性,以及活动结束后的情感落差和回忆。整体上,这是一篇充满情感和细节的活动回顾。
|
||||
category: 生活-生活
|
||||
---
|
||||
|
||||
# 2023bw 汇报
|
||||
|
||||
这是我第二次去 bw,上一次去是 2021 年,刚来上海工作的年份。时间过得真的好快,我也发生了很多变化。
|
||||
|
||||
21 年的时候,感觉自己对于这个圈子很懵懂,一直处于观察状态没有可以交流的人。但是到了 23 年,已经认识了许多观点契合的同好,可以一起交流真的很开心。
|
||||
|
||||
与本次 bw 有关的回忆从 20 号中午持续到 23 号晚上,直接从时间顺序开始汇报吧。情感整体比较平淡,一些私人的情绪和想法就留在私底下吧,不想公开去聊这些东西。
|
||||
|
||||
## 一、20 号
|
||||
|
||||
提前一天请了 20 号下午的假,中午一下班就打车前往酒店与小伙伴们汇合。其实去的路上已经开始狂风暴雨甚至路上积水了,但完全沉浸在出行的兴奋中,没有想太多,更没有想过自己明天要经历什么。
|
||||
|
||||

|
||||
|
||||
1 点半达到酒店后,和队友们见了面打了招呼,虽然从未在现实中见过他们,但是猜 id 和记住 id 一点也不困难。并且对于我这种社恐来说,没有感受到任何不适和紧张感,就像在网上相处一样放松。
|
||||
|
||||
然后还吃了主播安利的黯然销魂饭,确实是挺好吃的,bw 结束之后我还自己又单独点了一次外卖。吃完饭稍微休息了一会儿,便开始工作,工作内容也就是包周边,前期包周边的过程是一个人走一圈然后拿一圈周边包一份,这样会有一些走动和下蹲起立的动作,还是挺累的,在空调房里已经出汗了。当时甚至感觉是今年最大的运动量了(后来才发现是我太乐观了)。
|
||||
|
||||
包了一阵子周边后就和打工毛怪们一起去看了展馆场地的情况,还拉了下围栏,非常乐观地模拟了下 21 号排队的样子。当时看完场馆,最大的感想就是为什么员工入口到 8.1 馆那么远,以及为什么 vr 站台在 8.1 的最里面!好难走,好容易迷路。
|
||||
|
||||

|
||||
|
||||
看完场地后又回到了酒店,发现队友们都到齐了~
|
||||
|
||||
一进房间就看到了大咩和卡密,然后走上去不自觉地和大咩老师来了一点身体接触,感觉很亲切!(但是为什么会这样呢 🤔)
|
||||
|
||||
打了招呼后,又继续开始包周边,一直工作到饭点时间,一起出门去吃了一家本帮菜。这也是我第一次吃响油鳝丝,店里的可乐竟然只有百事的,惊了怎会如此!
|
||||
|
||||
吃完饭又继续开始包周边,装箱封箱,约了货拉拉,把要准备的东西都搞定后就回自己房间休息了。
|
||||
|
||||
顺带一提,感觉关上灯后和 73 老师聊天就跟在 yy 聊天一样。
|
||||
|
||||
## 二、21 号
|
||||
|
||||
### 上午
|
||||
|
||||

|
||||
|
||||
这一天早早地起了床,按约好的时间(6 点)到酒店大厅集合。由于货车只能停在停车场,无法开进场馆,所以我们在停车场开始卸货。由于我们只有 5 张可以提前入场的证(2 张参展证,3 张 cos 证),所以只能由我们 5 个人把几大箱周边从员工入口全部运进场 QAQ。然后上午前前后后跑了四趟。
|
||||
|
||||

|
||||
|
||||
第一趟:
|
||||
|
||||
虽然有提前预想到需要使用推车帮忙搬运,主播也提前帮忙买了两个推车,但是万万没想到的是我们在运第一批货进场的时候,其中一个推车的轮子就被磨损到无法正常使用了,大大降低了运输的速度。并且员工入口到 8.1 馆的距离实在太远了,过程十分艰辛。
|
||||
|
||||
第二趟:
|
||||
|
||||
气喘吁吁运完第一趟后,我又抱着推车跑去场馆外接第二批货,结果更是没想到刚把获取搬到仅剩的一个推车上时候,轮子直接脱落了,怎么装也装不上去,最后实在没办法,只能让 ask 和安可先人工把东西抱进去,我留在原地照看剩下的周边。
|
||||
|
||||
我一边在路边尝试组装车轮,一边查看工作群的消息,发现由于 VIP 提前放人,摊位那边已经有人聚集,并且由于除了 173,其他基本都在路上运周边。再后来看到消息,就是场馆那边觉得摊位人聚集太多,要求我们强制发放周边了…
|
||||
|
||||
看着群里的消息焦虑的同时,我选择放弃组装车轮,直接用三轮车 + 手压改变重心的方式运输货物,勉强可以运输动。就先和 ask 一起把东西运进去了。
|
||||
|
||||
这个时候场馆里可以说是水泄不通,寸步难行,没走几步都要喊一句“可以让一下吗,谢谢”“麻烦让一下谢谢”
|
||||
|
||||
第三趟:
|
||||
|
||||
然后和第二趟类似的,把三轮车抱出来和安可一起再把东西运进去。
|
||||
|
||||
第四趟:
|
||||
|
||||
安可先出去接了卡套,但是放身份证的包放在摊位了,没有身份证无法进场,于是我拿着他的包又去了一次场馆外和他一起进来。卡套比较重,虽然提出和安可一起搬,但他拒绝了还是想一个人搬。于是我就在大群里开始摇人,让其他人来 8.1 门口帮我们搬。
|
||||
|
||||
在 8.1 门口见到了星谜和迟到,发现我对声音并不是很敏感,单纯听声音不太能分清楚谁是谁,并且他们的发型和整个人给我的感觉都挺像的,听了他们的自我介绍后,终于分清楚了矮一点的是迟到,高一点是星谜。
|
||||
|
||||
终于忙完回到摊位的时候已经差不多 11 点了,开始帮来摊位的人发憨憨报和专辑兑换卡,偶尔帮忙收一下要交给主播的信件。印象很深的一个 id 是德古马都·绝帝,应该是他来交了信件然后送了咖啡糖。(虽然我不怎么混圈,也不怎么和其他毛怪聊天,但那种线上有印象,然后线下见到真人的感觉还是挺令人开心的。)
|
||||
|
||||
陆陆续续有人过来问周边发放的事情,跟他们解释后,他们也表示谅解然后离开了,感觉挺多人还是很友善的。
|
||||
|
||||
快中午 11 点半的时候,摊位突然又拥堵了起来,发生了一些不太愉快的插曲。和去年同时间段的某些事情带给我的感受还挺类似的,但不想过多展开。
|
||||
|
||||
到了中午才意识到原来自己没吃早饭也没吃午饭,但一点没有不适的感觉,或许是肾上腺素在帮助我高强度运作吧。
|
||||
|
||||
### 下午
|
||||
|
||||
主播的互动节目是下午 1 点,互动地点就在我们摊位的背后,不过我们一群人还是在摊位上看的直播(这也算一个小成就吧,在现场看直播 hhh)
|
||||
|
||||

|
||||
|
||||
其实这一天的心情一直都挺压抑的,虽然我主要时间是花在往返员工入口和 8.1 运东西这块了,忙完摊位附近的拥堵和混乱已临近尾声,没有直面那样的场景。但即使这样心里还是很焦虑和压抑。看主播直播的时候,虽然网络很卡,好几次卡到黑屏,但还是把这些情绪压下去了,那时候觉得还挺开心的。(看主播真的能续命=、=)
|
||||
|
||||
### 晚上
|
||||
|
||||
看完直播后便一起装箱,等仓库空出来把周边搬进仓库。快闭馆的时候,突然听说场馆外开始下雨了。bw 散场很难打车这点我之前有体会过,但加上下暴雨甚至水淹场馆的体验,还是第一次。
|
||||
|
||||
很疲惫地走到出口,开始打车,前面排了几十号人,加价很多也没司机接单。无奈前往便利店先吃点东西垫肚子然后坐着休息一下。
|
||||
|
||||
然后主播突然发消息说帮我们找了一辆 up 主小镇的大巴,于是我们又一起赶往对应地点。
|
||||
|
||||
去的过程中,我突然想到 bw 的门票没抢到 cos 证是主播搞的,打车打不到大巴车也是主播帮忙联系的,觉得主播好厉害,就下意识感叹了一句“主播好厉害啊,我好没用。”(类似于感叹“大手”的说法)。
|
||||
|
||||
没想到这句话让其他人联想到了这一天的工作状况然后影响到了他们的心情,真的不好意思 555。
|
||||
|
||||
见到对接人后,对接人对我们很友好说让我们先在休息区休息,有问题可以找他。
|
||||
|
||||
在 up 主小镇坐下后,感觉像进入了一个光鲜靓丽的新世界吧,有好多 up 主也在那边一起玩一起大笑后来甚至还去舞台那边表演节目跳舞等。
|
||||
|
||||
一开始我坐在位置上耍手机。刷着刷着抬头发现好像对面的好几个 up 主都在直播,有时候还会把镜头对着我们。后来去翻了录播,发现确实有出现在别人的直播里 hhh。
|
||||
|
||||

|
||||
|
||||
后来看到 ask 和安可都去看 up 的表演了,我也跟着去了,好像大部分都是舞蹈区 up 主,我不太认识,但听到有人讲四川话和听到有人放三无唱的《花月成双》,还是觉得很亲切的。
|
||||
|
||||
与此同时,突然看到队友的房间漏水的视频,真的很好笑。
|
||||
|
||||

|
||||
|
||||
等了一段时间后我们便登了上回程的大巴,对接人跑过来的时候问我们“你们五位是 hanser 吗?”,那一刻觉得有点尴尬又很好笑 hhh。虽然回程路上也因为暴雨而堵车,但是速度比我们自己打车快太多了啦,在 10 点钟回到了酒店。
|
||||
|
||||
回到酒店先吃了个饭,队友们已经差不多把预约信息审核好了,大家又继续开始发送第二天预约的消息。忙到差不多 2 点才休息。
|
||||
|
||||
这是这天的步数数据
|
||||
|
||||

|
||||
|
||||
## 三、22 号
|
||||
|
||||
### 白天
|
||||
|
||||

|
||||
|
||||
其实一直都有惦记着合照的事情,但前一天时间不够没来得及合照,所以这一天在到摊位收拾好后拍了一张合照。
|
||||
|
||||

|
||||
|
||||
基于第一天的经验,我们又购买了白板和喇叭,用于写告示和提醒他人。以及由于有预约机制,这一天的工作轻松了许多,没有出什么问题。不过还是有一些小插曲的。↓
|
||||
|
||||
由于 173 带了主播同款的眼镜,可能身高也比较符合别人对主播的身高的想象吧(但是主播真的没那么矮),再加上是在 bw 这样的地方,每个人对于主播的熟悉程度和理解不太相同,于是有部分人把 173 认成了主播。
|
||||
|
||||
有时候抬头能看到周围有人指指点点,或者拿手机拍照…
|
||||
|
||||
甚至有人来拿周边,他朋友来问我“我没有预约,可以和 hanser 拍照吗?”,我回复他说:“那个不是 hanser,那是工作人员。”,那一刻感觉更尴尬的是我自己。
|
||||
|
||||
### 晚上
|
||||
|
||||
然后这天晚上有聚餐活动,去的是一家烧烤店。其实我是不太能喝酒的类型,喝了酒就头昏犯困。可能是提前叮嘱过酒的度数不要太高,所以那天晚上我喝了几杯酒都没有想睡觉的感觉,反而变得很亢奋。
|
||||
|
||||
那时候大咩老师坐在我旁边,醉酒表现真的好可爱!一直要我点歌让她唱,笑死。
|
||||
|
||||
比较巧的时,我前几周才学会剥小龙虾,感觉就是专门为这次吃饭学的!(不是)
|
||||
|
||||
不过把狼宝和 91 认混了 555,对不起
|
||||
|
||||
吃饭差不多吃完了,大伙儿就在场地内开始唱歌和玩击鼓传花接歌词+真心话大冒险。
|
||||
|
||||
## 四、23 号
|
||||
|
||||
### 上午
|
||||
|
||||

|
||||
|
||||
最后一天可以稍微晚一点到场馆,并且因为剩下的份数不算太多,所以也可以早点下班了。
|
||||
|
||||
帮忙把预约的便利贴发出后,后面发周边主要还是 73 和 ask 在搞,我偶尔维护一下秩序。
|
||||
|
||||
后来闲下来后,我坐在折叠凳上开始刷各个平台的动态,有看到一些不太好的言论,那个时候已经有点挤不出笑了。(明明平时天天给自己喂垃圾,按理来说承受能力很强的,不至于影响心情的)
|
||||
|
||||
然后后来又刷到主播的帖子,心里更压抑了,一个人捏着手机盯着空处发呆。不知道为什么越想越难受,又觉得在公共场合应该控制好自己情绪,两种心情在打架。
|
||||
|
||||
但真的抑制不住,最开始还好只是有点红眼眶,后来就直接哭了。不过我觉得我应该掩饰得挺好的,只在想要纸巾的时候找卡密帮忙了一下,其他时间都在低着头捂着眼睛。
|
||||
|
||||
那时候安可还过来问我“还好吗,要不要先回酒店”,感觉我给人的感觉应该只是身体不适 hhh
|
||||
|
||||
哭完后心里舒服多了(可能哭真的很解压=、=),然后中午收拾完下班后和队友们一起合照了。
|
||||
|
||||

|
||||
|
||||
### 下午和晚上
|
||||
|
||||
回到酒店后,先是吃了顿饭,然后看了主播的直播,后来看到卡密说冰淇淋蛋糕再不吃要化了!又一起去吃冰淇淋蛋糕了~
|
||||
|
||||
没有拍照,偷个图
|
||||
|
||||

|
||||
|
||||
下午吃完蛋糕后,大家都陆陆续续要走了 😣 其实一直都很期待聊天八卦环节,这次由于太忙了所有人都一直处于高强度工作状态,没有时间聊天,还是挺可惜的。
|
||||
|
||||
虽然定了 4 天房,但我周一要工作,所以也在周日也就是 23 号晚上选择了回家。
|
||||
|
||||
那一刻心里落差还蛮大的吧,虽然 bw 这三天的经历也很累但挺快乐的,一想到明天只要回归日常工作,而且不知道下次线下是什么时候,也不知道自己还能不能去,就觉得挺失落的。
|
||||
|
||||
bw 结束后开始了差不多为期一周的后遗症,症状是脑袋空白,总是回忆起那几天发生的事实,无法好好工作。😶
|
||||
|
||||
## 五、一些想法
|
||||
|
||||
这三天的流水账差不多就结束了,心里也有挺多感想的。
|
||||
|
||||
很感谢主播,让我有机会体验到另一种岗位是什么样的,这种体验给了我未来职业选择的一些指导性。或许以后不做程序员,做点其他的也挺好的?
|
||||
|
||||
也从和他人共事的过程中学到了一些东西,例如确认内容有没有传达清楚的时候,使用先讲内容然后营造一个具体场景询问解决方案的方式,这样既可以确认是否讲清楚也可以加深别人的认知。这样的方法在平时也能用到。
|
||||
|
||||
然后也意识到自己线下的表达真的很差,很多时候话说到一半就不知道自己在说啥了,几年前练好了一点现在又还回去了。
|
||||
|
||||
然后也很谢谢队友们吧,大家都很好,在一起很愉快。
|
||||
|
||||
有时候常常在想生活的意义是什么,现在觉得大家大部分时间过着平淡的生活偶尔有些盼头让大家聚在一起,这也算是意义之一吧。
|
||||
|
||||
## 六、备忘
|
||||
|
||||
一些相关的记录
|
||||
|
||||
1. 73 老师的汇报
|
||||
|
||||
[姗姗来迟的 BW 流水账~](https://2550505.com/postDetails/113481)
|
||||
|
||||
2. bw 邮件环节录播(bw 回忆录)
|
||||
|
||||
[hanser】有盼头才有动力生活/2023.8.9](https://www.bilibili.com/video/BV1n44y1A7j8/)
|
||||
|
||||
[hanser】加播 邮件念完~/2023.8.10](https://www.bilibili.com/video/BV1j44y1c7nh/)
|
||||
|
||||
3. 大咩老师的 vlog
|
||||
|
||||
[BW 毛怪 vlog 大咩视角喵=^\_^=](https://www.bilibili.com/video/BV1TV4y1q7Nr/)
|
||||
|
||||
4. 91 的 vlog
|
||||
|
||||
[2023bw 之旅](https://www.bilibili.com/video/BV1RV411g7xq/)
|
||||
|
||||
---
|
||||
|
||||
你也可以在 craft 上访问这篇博文。
|
||||
|
||||
[2023bw 汇报](https://www.craft.me/s/8xGTFTpuCQi3uD)
|
427
src/content/post/生活/生活/2023 国庆厦门和杭州之行.md
Normal file
427
src/content/post/生活/生活/2023 国庆厦门和杭州之行.md
Normal file
@ -0,0 +1,427 @@
|
||||
---
|
||||
title: 国庆厦门和杭州之行
|
||||
date: 2023-10-08
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- hanser
|
||||
- 厦门
|
||||
- 国庆
|
||||
- 旅游
|
||||
- 杭州
|
||||
published: true
|
||||
slug: national-day-trip-to-xiamen-and-hangzhoupicture-bed-version
|
||||
description: 国庆期间,作者记录了从上海出发前往厦门和杭州的旅行经历。在厦门,作者体验了当地的美食,如汉堡王、七星西鹭鸭胫店、宴遇1/2等,并游览了鼓浪屿,感受了当地的夜生活和自然风光。此外,作者还尝试了野草莓餐厅和叽叽扎扎烤肉,体验了不同的餐饮文化。在杭州,作者参观了联动店铺,并尝试了方老大的面食。整个旅程中,作者不仅享受了美食,还体验了当地的文化和生活方式,感受到了旅行的乐趣。
|
||||
rinId: 114
|
||||
category: 生活-生活
|
||||
---
|
||||
|
||||
# 国庆厦门&杭州之行
|
||||
|
||||
## 2023-09-30
|
||||
|
||||
我们买的高铁时间是 6 点多,由于虹桥火车站并不允许过夜,于是我选择了睡到 4 点半,然后打车前往虹桥火车站。国庆出行的人确实很多,在 5 点多的时候,已经开始堵车了。
|
||||
|
||||

|
||||
|
||||
到了的时候发现还能吃个早饭,于是去汉堡王点了这个,感觉还挺好吃的。
|
||||
|
||||

|
||||
|
||||
这是凌晨 6 点的虹桥火车站,好多人啊.jpg
|
||||
|
||||

|
||||
|
||||
在高铁上实在是太困了,大部分时间都在补觉,遮光性比较好的眼罩真的是出行必备。另外发现现在高铁上都能直接充电了,对于 iPhone 用户真是太友好了。
|
||||
|
||||
记录一下车速:155km/h
|
||||
|
||||

|
||||
|
||||
到厦门了
|
||||
|
||||

|
||||
|
||||
天气很好
|
||||
|
||||

|
||||
|
||||
一到厦门就收到了短信提示 hhh,突然有种仪式感。
|
||||
|
||||

|
||||
|
||||
当天的气温虽然是 30+摄氏度,但是在没有太阳的地方,就不会觉得很热。如果有风吹过,还会觉得很凉爽。
|
||||
|
||||

|
||||
|
||||
喝到了主播推荐的薄荷森林的薄荷生打椰,确实有一点薄荷牙膏的味道,但是很好喝,很清爽不腻~ 什么时候开到上海啊,还想再喝一次。
|
||||
|
||||

|
||||
|
||||
休息了一阵子后,便去吃了午饭,本来想去助屋的,发现它变成蝴蝶飞走了。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
顺带一提,出行工具很多时候都是共享电动车。这是我离开学校后,第一次接触电动车,一边骑车一边吹风,感觉好舒适。
|
||||
|
||||
吃晚饭的时候,偶遇的一辆 miku 痛车,可惜太匆忙,没拍清楚。
|
||||
|
||||

|
||||
|
||||
晚饭去的是七星西鹭鸭胫店,味道非常合我胃口,超级下饭,吃了好几碗。
|
||||
|
||||

|
||||
|
||||
拌猪肝
|
||||
|
||||

|
||||
|
||||
拌鸭肠
|
||||
|
||||

|
||||
|
||||
炸丝丁鱼,第一次吃,和炸小黄鱼是完全不同的味道,感觉这个有点奶味?
|
||||
|
||||

|
||||
|
||||
拌鸭胫
|
||||
|
||||

|
||||
|
||||
水煮牛肉
|
||||
|
||||

|
||||
|
||||
全局照
|
||||
|
||||

|
||||
|
||||
醋肉和炒时蔬忘记拍了。总之就是,好吃好吃好吃。
|
||||
|
||||
发朋友圈的时候,还被厦门的朋友夸了,说“会吃”。✌🏻
|
||||
|
||||

|
||||
|
||||
吃完后就去 ktv 唱歌了。有些 mv 挺诡异的。感觉自己比之前稍微好点了,以前是一点不敢唱。
|
||||
|
||||

|
||||
|
||||
出来后看到的摩天轮,觉得这个角度挺好的,拍一张。
|
||||
|
||||

|
||||
|
||||
## 2023-10-01
|
||||
|
||||
第二天去了宴遇 1/2
|
||||
|
||||

|
||||
|
||||
酸菜鱼,没有什么刺,对于我这种不会吃鱼的人来说很友好。
|
||||
|
||||

|
||||
|
||||
火焰黑椒安格斯小牛肉,上菜时会喷一下火,挺炫酷的。
|
||||
|
||||

|
||||
|
||||
东山小管
|
||||
|
||||

|
||||
|
||||
大红袍鲜奶布丁,口感很巧妙,好吃!
|
||||
|
||||

|
||||
|
||||
忘了这是什么
|
||||
|
||||

|
||||
|
||||
土笋冻,之前看别人对于土笋冻的反馈有些两极分化?但实际上吃的时候感觉接受度还挺高的。一口吃下去,觉得口感像果冻?味道也不错。
|
||||
|
||||

|
||||
|
||||
姜母鸭,好吃好吃,很香,吃到后面把姜也挑出来吃掉了。还想再吃一次。
|
||||
|
||||

|
||||
|
||||
好像是什么芋头。
|
||||
|
||||

|
||||
|
||||
来个全景
|
||||
|
||||

|
||||
|
||||
感觉都挺好吃的,特别喜欢的是鲜奶布丁和姜母鸭。第一次体验博饼,最后中的里面都是鲜奶布丁 hhh。
|
||||
|
||||
然后就去野台风了,很少喝特调,之前一般都是喝的拿铁和 dirty。
|
||||
|
||||

|
||||
|
||||
我点的是圆规和 dirty,圆规没有什么咖啡的味道,对于不习惯喝咖啡的人来说,接受度应该也比较高。搭配柿子和西柚,整体是甜的。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
这是我点的 dirty,这个杯子还挺好看的种草,味道口感没有特别的。因此建议去的话,直接点特调就好了。
|
||||
|
||||

|
||||
|
||||
小姐姐还送了我们每人一小杯凤梨酥。
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
别的朋友点的,
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
店里的音箱是 marshall,还有卖的器具。
|
||||
|
||||

|
||||
|
||||
在车上拍下的日落
|
||||
|
||||

|
||||
|
||||
由于午饭时间太晚,于是晚饭没怎么吃。
|
||||
|
||||
## 2023-10-02
|
||||
|
||||
去了 seven bus,点的是杏仁牛油果冰淇士。
|
||||
|
||||

|
||||
|
||||
说起来 seven bus,它让我和一个五年未见的网友在机场面基了。感谢主播,感谢 seven bus!
|
||||
|
||||

|
||||
|
||||
去了遇见西木吃午饭,分量过多,根本吃不完。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
然后就去鼓浪屿啦。等轮渡的时候,看到好大一条船。
|
||||
|
||||

|
||||
|
||||
登船了
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
买了个椰子,25r,在景区不知道算不算贵。
|
||||
|
||||

|
||||
|
||||
感觉鼓浪屿没有像古镇古街那样明显商业化,还是保留了自身的挺多特色。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
日光岩还有飞鸟
|
||||
|
||||

|
||||
|
||||
第一次见这样的路牌
|
||||
|
||||

|
||||
|
||||
偶遇一群猫猫
|
||||
|
||||

|
||||
|
||||
一对情侣
|
||||
|
||||

|
||||
|
||||
天色逐渐暗下来
|
||||
|
||||

|
||||
|
||||
在海边拍了项链的合影
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
这张有点喜感
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
然后去了叽叽扎扎烤肉,由于路程太堵,打车速度极慢,我们选择了骑车前往(感觉我们的技术都还不错 hhh)小插曲是 73 的手机没电了,然后在快要到店里的时候走了另一条路,我们以为她跟丢了然后分头去找,没想到她在没有导航的情况下直接到了店里,强!
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
烟熏咖啡和牛
|
||||
|
||||

|
||||
|
||||
水果小牛排
|
||||
|
||||

|
||||
|
||||
味道都很不错,值得一提的是它每道菜的调味都不太一样,不像有的烤肉店虽然菜品不同但调味类似,很有各自的特色,很棒。
|
||||
|
||||
然后去了附近的厦大门口晃悠了一下,诶,当年也想过在这里读研呢。
|
||||
|
||||

|
||||
|
||||
晚上的沙滩
|
||||
|
||||

|
||||
|
||||
## 2023-10-03
|
||||
|
||||
去了曾厝垵喝酒,那条街道晚上 11 点多还有很多店开着,原来夜生活是集中在这里。
|
||||
|
||||

|
||||
|
||||
喝完酒之后,便开始一起压马路。我是喝了酒就会犯困的人,所以全程都是省电状态,没有太参与话题,只是听着别人聊。就这样一边走,一边聊,到了天亮。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
7 点的时候,已经走了一万多步了。
|
||||
|
||||

|
||||
|
||||
清晨无人的街道
|
||||
|
||||

|
||||
|
||||
早鸟
|
||||
|
||||

|
||||
|
||||
睡醒后一起去了野草莓。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
野草莓确实是好吃不贵,性价比超级高。
|
||||
|
||||
---
|
||||
|
||||
路过一家买特产的店,看到的标语。
|
||||
|
||||

|
||||
|
||||
没想到在厦门还能看到老家关店的那家咖啡店…
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
在地铁站看到了崩三活动的广告牌,拍一拍。
|
||||
|
||||

|
||||
|
||||
晚饭去了傲客夜食。第一次吃生腌虾,这个料的味道像蕨根粉,口感很 q 弹,但对自己的胃不放心,所以只吃了几只。
|
||||
|
||||

|
||||
|
||||
麻辣烤鱼
|
||||
|
||||

|
||||
|
||||
猪肝
|
||||
|
||||

|
||||
|
||||
冰粉,好久没吃过了 555
|
||||
|
||||

|
||||
|
||||
## 2023-10-04
|
||||
|
||||
离开厦门时路上拍的,天气依旧很好。
|
||||
|
||||

|
||||
|
||||
公交卡里还剩 1 块钱。
|
||||
|
||||

|
||||
|
||||
## 2023-10-05
|
||||
|
||||
一起去了杭州的联动店铺打个卡,虽然还未营业。店里一直在放主播的歌。
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
然后还去吃了排队要很久的方老大,浇头很足很香,不过面的味道对我来说有些淡,如果有机会的话,想试试茄汁。
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
全程都很愉快,但是感觉自己脑子不在线,反应很迟钝。
|
||||
|
||||
谢谢兄弟们的照顾 T T。
|
||||
|
||||
## 其他
|
||||
|
||||
在厦门观察到的一些点:
|
||||
|
||||
1. 好多车都是白色
|
||||
2. 路上货拉拉很常见
|
||||
|
||||
公交卡是会打折的,最少充值 10 元,到最后还剩了 1 元。
|
||||
|
||||

|
@ -3,29 +3,28 @@ title: 2023跨年
|
||||
date: 2024-01-07T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- '2023'
|
||||
- 跨年
|
||||
- 朋友
|
||||
- 2023跨年
|
||||
- 2023年
|
||||
published: true
|
||||
slug: 2023-crossing
|
||||
description: >-
|
||||
2023年跨年,作者与群友相约成都庆祝。由于年假已用完,选择29号和1号晚上的飞机以最大化游玩时间。在飞机上体验了有屏幕的座位,并观看了电影《小妇人》。抵达后,与朋友们在KTV聚会,感受四川话的亲切。30号品尝了跷脚牛肉和桌游店的乐趣,晚上享用了陶德砂锅的肥肠。31号,一起吃了谭豆花和火锅,晚上在玉林路喝酒庆祝跨年。1号在川大望江附近吃了冒烤鸭后前往机场。此行让作者感慨成都美食众多,决心今年回成都工作。
|
||||
description: 2023年跨年,作者与群友相约成都庆祝。由于年假已用完,选择29号和1号晚上的飞机以最大化游玩时间。在飞机上体验了有屏幕的座位,并观看了电影《小妇人》。抵达后,与朋友们在KTV聚会,感受四川话的亲切。30号品尝了跷脚牛肉和桌游店的乐趣,晚上享用了陶德砂锅的肥肠。31号,一起吃了谭豆花和火锅,晚上在玉林路喝酒庆祝跨年。1号在川大望江附近吃了冒烤鸭后前往机场。此行让作者感慨成都美食众多,决心今年回成都工作。
|
||||
finished: true
|
||||
category: 生活-生活
|
||||
coverImage: https://pictures.kazoottt.top/2024/10/20241017-5eef043c1bc397df87b6be5f1a4aaa3e.png
|
||||
banner: https://pictures.kazoottt.top/2024/10/20241017-5eef043c1bc397df87b6be5f1a4aaa3e.png
|
||||
---
|
||||
|
||||
# 2023 跨年
|
||||
**# **2023成都跨年****
|
||||
|
||||
一时兴起和群友约好了去成都跨年。
|
||||
|
||||
由于年假已经用完,所以选择了 29 号和 1 号晚上的飞机,这样可以尽量让玩的时间多一些。
|
||||
|
||||
## 29 号与 30 号
|
||||
**## 29 号与 30 号**
|
||||
|
||||
第一次坐这种有屏幕的飞机,在座位上找耳机和耳机孔找了好久,后来才知道原来是起飞后才发耳机。=、=
|
||||

|
||||
第一次坐这种有屏幕的飞机,在座位上找耳机和耳机孔找了好久,后来才知道原来是起飞后才发耳机。=、=
|
||||
|
||||

|
||||
|
||||
在飞机上看完了[小妇人 (豆瓣)](https://movie.douban.com/subject/26348103/), 已经很久没有看完一部完整的电影了,感觉飞机上是一个补电影、补小说的好地方。
|
||||
|
||||
@ -35,39 +34,51 @@ coverImage: https://pictures.kazoottt.top/2024/10/20241017-5eef043c1bc397df87b6b
|
||||
|
||||
30 号的中午,一起去吃了跷脚牛肉,感觉这家的干辣椒其实有一点湿 hhh,然后他们的炒菜都挺好吃的,虽然看着比较口味重,但还是挺清淡的。豆腐烧脑花很好吃!推荐~
|
||||
|
||||
一起去桌游店玩了桌游
|
||||

|
||||

|
||||

|
||||
|
||||
一起去桌游店玩了桌游
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
晚上吃了陶德砂锅!肥肠真好吃 555.
|
||||
|
||||
## 31 号
|
||||

|
||||
|
||||
**## 31 号**
|
||||
|
||||
早饭/午饭一起去吃了谭豆花,冰醉豆花很好吃!推荐。
|
||||
|
||||
(原来成都有这么多好吃的...之前在这边读了 4 年书,好像都没这么出去玩过=、=)
|
||||
|
||||

|
||||
|
||||
晚上去吃了火锅!
|
||||
|
||||

|
||||

|
||||
|
||||
吃完火锅去玉林路喝了酒,感觉这个金汤力还挺好喝的=、=
|
||||
(打车到玉林路,一下车就跨年了,有被周围的摩托车发动起启动声吓到)
|
||||

|
||||
吃完火锅去玉林路喝了酒,感觉这个金汤力还挺好喝的=、=
|
||||
|
||||
## 1 号
|
||||
(打车到玉林路,一下车就跨年了,有被周围的摩托车发动起启动声吓到)
|
||||
|
||||
在川大望江附近吃了冒烤鸭
|
||||

|
||||

|
||||
|
||||
甚至之前的校园卡流量还能用....
|
||||

|
||||
**## 1 号**
|
||||
|
||||
在川大望江附近吃了冒烤鸭
|
||||
|
||||

|
||||
|
||||
甚至之前的校园卡流量还能用....
|
||||
|
||||

|
||||
|
||||
一个人点了两个菜(分量怎么这么多!),吃完就去机场了。
|
||||
|
||||

|
||||

|
||||
|
||||
最后的感想就是:
|
||||
|
||||
1. 原来成都有这么多好吃的,之前除了要去跑线下(吃也是在机场附近或者环球中心和朋友随便找家店吃的)几乎没有出去玩过=、=。
|
||||
2. 今年一定要回成都工作,已经是三年的最后一年了。
|
||||
2. 今年一定要回成都工作,已经是三年的最后一年了。
|
58
src/content/post/编程/前端/css/链接样式需要遵循LVHA顺序的原因.md
Normal file
58
src/content/post/编程/前端/css/链接样式需要遵循LVHA顺序的原因.md
Normal file
@ -0,0 +1,58 @@
|
||||
---
|
||||
title: CSS | 链接样式需要遵循LVHA顺序的原因
|
||||
date: 2021-07-23
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- CSS
|
||||
- 学习笔记
|
||||
- 《深入解析CSS》
|
||||
- 前端
|
||||
slug: reasons-why-link-styles-need-to-follow-the-lvha-order
|
||||
published: true
|
||||
description: 在CSS中,链接的伪类选择器(:link, :visited, :hover, :active)遵循LVHA顺序的原因是为了确保样式正确应用。由于这些伪类的优先级相同,后定义的样式会覆盖先前的样式。因此,为了防止样式冲突,应按照LVHA顺序定义这些伪类,即先定义:link,然后是:visited,接着是:hover,最后是:active。这样的顺序确保了链接在不同状态下的样式能够正确显示,例如在鼠标悬停或点击时。
|
||||
NotionID-notionnext: https://kazoottt.notion.site/d4aa37afdc8147d89869d67ebb5b4e7c
|
||||
category: 编程-前端-css
|
||||
---
|
||||
|
||||
# 链接样式需要遵循 LVHA 顺序的原因
|
||||
|
||||
《深入解析 CSS》中有这样一句话
|
||||
|
||||
> 伪类选择器(如:hover)和属性选择器(如[type="input"])与一个类选择器的优先级相同。通用选择器(*)和组合器(>、+、~)对优先级没有影响。
|
||||
|
||||
也就是说对于以下四个伪类,没有优先级之分。
|
||||
|
||||
如果某一个链接同时处于两个或者以上的状态,并且状态对应的样式产生了冲突,后出现的样式就会覆盖掉前面的样式。
|
||||
|
||||
```css
|
||||
a:link {
|
||||
color: blue;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: purple;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
a:active {
|
||||
color: red;
|
||||
}
|
||||
```
|
||||
|
||||
**那么为什么需要遵循 LVHA(link visited\hover active)顺序呢**?分析如下:
|
||||
|
||||
:link 这两个伪类是固定的状态(:link 是最原始的状态,:visited 是被点击过后就产生,这两个状态产生之后是一直存在的)
|
||||
|
||||
:hover :active 不是固定的,需要鼠标去触发,并且触发完毕之后会消失。
|
||||
|
||||
所以:link 作为最原始的状态,它的样式应该放在最前面,:visited 紧随其后。
|
||||
|
||||
而对于:hover 以及:active,设想一下如果:active 在:hover 之前,鼠标放到链接上去的时候,直接显示:hover 的颜色。点击链接的时候,由于:hover 在:active 下面,会覆盖 active 的颜色,这并不符合我们的需求,所以:active 应该在:hover 之后。
|
||||
|
||||
综上,由于伪类的优先级一致,后出现的样式会覆盖前面的样式,所以链接的样式应该遵循 LVHA 顺序
|
||||
|
||||
(方便记忆:love hate—> link visited hover active)
|
48
src/content/post/编程/前端/node/node path模块相关操作.md
Normal file
48
src/content/post/编程/前端/node/node path模块相关操作.md
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
title: node | path模块相关操作
|
||||
subtitle: 记录一些常用用法和区别,以及犯的错。
|
||||
date: 2022-10-24
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- path
|
||||
- 前端
|
||||
- node
|
||||
slug: node-path-module-related-operations
|
||||
published: true
|
||||
description: >-
|
||||
本文介绍了Node.js中path模块的常用操作,包括__dirname与process.cwd()的区别,以及path.join()和path.resolve()的差异。特别指出,__dirname和process.cwd()在使用时需注意其返回的路径差异,以免导致静态资源加载失败。同时,path.join()用于连接路径,而path.resolve()则解析为绝对路径。这些知识点对于正确配置和处理文件路径至关重要。
|
||||
category: 编程-前端-node
|
||||
---
|
||||
|
||||
# Path 相关操作
|
||||
|
||||
path 是 node 的一个常用模块。
|
||||
|
||||
## 常用用法
|
||||
|
||||
TODO
|
||||
|
||||
## 区别
|
||||
|
||||
1. \_\_dirname 和 process.cwd()的区别
|
||||
|
||||
[node.js - What's the difference between process.cwd() vs \_\_dirname? - Stack Overflow](https://stackoverflow.com/questions/9874382/whats-the-difference-between-process-cwd-vs-dirname)
|
||||
|
||||

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

|
||||
|
||||
而目录结构为上图,express-对应 server 打包在 server_bulid,需要加载的 client scripts 在 client_buiild,为同级目录,所以第一张图右边的写法才能正确配置静态资源路径。
|
||||
|
||||
2. path.join()和 path.resolve()的区别
|
||||
|
||||
连接路径
|
||||
|
||||
path.resolve() ==> 解析为绝对路径
|
@ -0,0 +1,18 @@
|
||||
---
|
||||
title: AMD
|
||||
date: 2023-09-27
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- node
|
||||
- amd
|
||||
published: true
|
||||
slug: amd
|
||||
description: AMD, or Asynchronous Module Definition, is a JavaScript specification for defining modules where the module and its dependencies can be asynchronously loaded. This is particularly useful for web applications where scripts can be loaded in parallel, improving performance and efficiency.
|
||||
category: 编程-前端-node
|
||||
---
|
||||
|
||||
# AMD
|
||||
|
||||
[[CommonJS简介]]
|
||||
|
||||
## 什么是 AMD
|
84
src/content/post/编程/前端/node/npm和npx的区别.md
Normal file
84
src/content/post/编程/前端/node/npm和npx的区别.md
Normal file
@ -0,0 +1,84 @@
|
||||
---
|
||||
title: npm和npx的区别
|
||||
date: 2023-09-06
|
||||
author: KazooTTT
|
||||
finished: false
|
||||
published: true
|
||||
slug: difference-between-npm-and-npx
|
||||
description: >-
|
||||
本文详细介绍了npm和npx的区别,包括它们的定义、使用场景和具体用法。npm是Node.js的默认包管理器,用于安装、卸载和升级包,而npx是一个命令行工具,允许用户直接运行项目中的二进制文件,无需全局安装。文章通过实例说明了两者在实际开发中的应用,如使用npm安装ant
|
||||
design,以及使用npx创建nextjs项目。
|
||||
category: 编程-前端-node
|
||||
---
|
||||
|
||||
# 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`,所以系统命令也可以调用。
|
68
src/content/post/编程/前端/node/npm换源.md
Normal file
68
src/content/post/编程/前端/node/npm换源.md
Normal file
@ -0,0 +1,68 @@
|
||||
---
|
||||
title: npm换源
|
||||
date: 2024-02-07
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- npm
|
||||
- node
|
||||
published: true
|
||||
slug: npm-registry
|
||||
description: >-
|
||||
本文介绍了如何查看、更换和取消Node.js包管理工具(npm, yarn,
|
||||
pnpm)的源地址,以及如何使用yrm工具快速切换不同的npm源。通过执行特定的命令,用户可以轻松地管理这些工具的源设置,从而优化包的下载速度和开发效率。
|
||||
category: 编程-前端-node
|
||||
---
|
||||
|
||||
# 查看源
|
||||
|
||||
```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]
|
||||
```
|
48
src/content/post/编程/后端/python/flask-jwt.md
Normal file
48
src/content/post/编程/后端/python/flask-jwt.md
Normal file
@ -0,0 +1,48 @@
|
||||
---
|
||||
slug: flask-jwt
|
||||
published: true
|
||||
description: 本文对比了几个Flask可用的JWT库,包括flask-jwt-extended、Flask-JWT和jwt,根据PyPI下载量和Star量,选择使用最广泛的flask-jwt-extended。文章介绍了在父页面通过iframe嵌入子页面时,如何在子页面中验证和使用JWT token,包括页面级别和接口级别的token验证。同时,提供了安装flask-jwt-extended的命令,并建议参考官方文档进行详细配置。
|
||||
category: 编程-后端-python
|
||||
title: flask-jwt
|
||||
date: 2024-09-10
|
||||
author: KazooTTT
|
||||
type: Post
|
||||
status: Published
|
||||
tags:
|
||||
finished: false
|
||||
---
|
||||
|
||||
# Flask-jwt
|
||||
|
||||
## Flask可用库的对比
|
||||
|
||||
flask-jwt-extended的使用量是最多的,为了后期更好地项目维护,还是选择第一个来使用。
|
||||
|
||||
## 使用flask-jwt-extended
|
||||
|
||||
场景:
|
||||
|
||||
父页面 + iframe嵌入子页面,嵌入的时候url带上token。
|
||||
|
||||
在子页面需要做的事情:
|
||||
|
||||
1. 页面级别:每个页面都需要验证token是否有效。
|
||||
2. 接口级别:每个接口都需要验证token是否有效。
|
||||
|
||||
### 对于页面
|
||||
|
||||
父页面使用iframe嵌入子页面的时候,url带上token。因此在子页面加载的时候需要处理url以获取token,然后把它存储在localStorage中。在后续接口调用中都需要把token带上,以便于接口的鉴权。
|
||||
|
||||
### 对于接口
|
||||
|
||||
实现一个装饰器,用于校验token。
|
||||
|
||||
## 具体过程
|
||||
|
||||
[参考文档](https://flask-jwt-extended.readthedocs.io/en/stable/basic_usage.html)
|
||||
|
||||
1. 安装`flask-jwt-extended`
|
||||
|
||||
```shell
|
||||
pip install flask-jwt-extended
|
||||
```
|
62
src/content/post/编程/后端/python/python之禅.md
Normal file
62
src/content/post/编程/后端/python/python之禅.md
Normal file
@ -0,0 +1,62 @@
|
||||
---
|
||||
title: python之禅
|
||||
date: 2024-03-04
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- python
|
||||
finished: false
|
||||
published: true
|
||||
slug: the-zen-of-python
|
||||
description: >-
|
||||
The Zen of Python, written by Tim Peters, is a collection of guiding
|
||||
principles for writing computer programs that are both beautiful and
|
||||
effective. It emphasizes the importance of simplicity, readability, and
|
||||
explicitness in coding. The text advocates for avoiding complexity and
|
||||
ambiguity, and encourages the use of namespaces. It also highlights the value
|
||||
of practicality over theoretical purity, and stresses that errors should not
|
||||
be ignored. Overall, the Zen of Python promotes clarity and elegance in
|
||||
programming practices.
|
||||
category: 编程-后端-python
|
||||
---
|
||||
|
||||
# Python之禅
|
||||
|
||||
> The Zen of Python, by Tim Peters
|
||||
>
|
||||
> Beautiful is better than ugly.
|
||||
>
|
||||
> Explicit is better than implicit.
|
||||
>
|
||||
> Simple is better than complex.
|
||||
>
|
||||
> Complex is better than complicated.
|
||||
>
|
||||
> Flat is better than nested.
|
||||
>
|
||||
> Sparse is better than dense.
|
||||
>
|
||||
> Readability counts.
|
||||
>
|
||||
> Special cases aren't special enough to break the rules.
|
||||
>
|
||||
> Although practicality beats purity.
|
||||
>
|
||||
> Errors should never pass silently.
|
||||
>
|
||||
> Unless explicitly silenced.
|
||||
>
|
||||
> In the face of ambiguity, refuse the temptation to guess.
|
||||
>
|
||||
> There should be one-- and preferably only one --obvious way to do it.
|
||||
>
|
||||
> Although that way may not be obvious at first unless you're Dutch.
|
||||
>
|
||||
> Now is better than never.
|
||||
>
|
||||
> Although never is often better than _right_ now.
|
||||
>
|
||||
> If the implementation is hard to explain, it's a bad idea.
|
||||
>
|
||||
> If the implementation is easy to explain, it may be a good idea.
|
||||
>
|
||||
> Namespaces are one honking great idea -- let's do more of those!
|
51
src/content/post/编程/后端/python/python常用的命令备忘.md
Normal file
51
src/content/post/编程/后端/python/python常用的命令备忘.md
Normal file
@ -0,0 +1,51 @@
|
||||
---
|
||||
title: python常用的命令备忘
|
||||
date: 2024-03-27T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags: []
|
||||
finished: false
|
||||
published: true
|
||||
slug: commonly-used-command-memos-in-python
|
||||
description: >-
|
||||
本文介绍了如何在当前环境下导出最小依赖以及配置Python包管理工具pip的镜像源。首先,通过安装`pipreqs`工具并使用命令`pipreqs ./
|
||||
--encoding=utf8`在项目根目录导出依赖。其次,讲解了如何在Windows系统中通过修改`pip.ini`文件或使用命令行配置pip的镜像源,包括设置镜像源地址、取消配置以及查看当前配置的方法。
|
||||
category: 编程-后端-python
|
||||
---
|
||||
|
||||
# Python常用的命令备忘
|
||||
|
||||
## 导出当前环境下的最小依赖
|
||||
|
||||
首先安装包
|
||||
|
||||
```shell
|
||||
pip install pipreqs
|
||||
```
|
||||
|
||||
然后在环境根目录导出
|
||||
|
||||
```shell
|
||||
pipreqs ./ --encoding=utf8
|
||||
```
|
||||
|
||||
## 镜像源配置
|
||||
|
||||
在windows中,搜索pip.ini,去修改
|
||||
|
||||
或者使用命令行来配置
|
||||
|
||||
```
|
||||
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
```
|
||||
|
||||
取消配置
|
||||
|
||||
```
|
||||
pip config unset global.index-url
|
||||
```
|
||||
|
||||
读取当前的配置:
|
||||
|
||||
```
|
||||
pip config get global.index-url
|
||||
```
|
109
src/content/post/编程/后端/python/管理python环境的方式.md
Normal file
109
src/content/post/编程/后端/python/管理python环境的方式.md
Normal file
@ -0,0 +1,109 @@
|
||||
---
|
||||
title: 管理python环境的方式
|
||||
date: 2023-12-05
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- python
|
||||
- 环境管理
|
||||
- pyenv
|
||||
- poetry
|
||||
- conda
|
||||
published: true
|
||||
slug: managing-the-python-environment
|
||||
description: >-
|
||||
本文总结了管理Python环境的几种主流方式,包括venv、virtualenv、conda、pipenv和poetry等。虚拟环境能够为不同的项目提供独立的Python版本和依赖库,避免了全局解释器带来的切换和维护问题。文章还介绍了作者个人常用的环境管理工具:pyenv用于Python版本管理,poetry和virtualenv用于依赖管理。此外,还简要说明了conda的使用注意事项,建议避免与pip混用,并了解import优先级。
|
||||
category: 编程-后端-python
|
||||
---
|
||||
|
||||
# 管理python环境的方式
|
||||
|
||||
最近又有写 python 的需求了,上一次写还是几年前写圣纳百川爬虫的时候,因此很多事情记不太清楚了。
|
||||
|
||||
本文主要来疏离总结一下管理 python 环境的方式,以及它们的适用场景。
|
||||
|
||||
---
|
||||
|
||||
## 主流的方案
|
||||
|
||||
对于不同的项目,它们会用到不同的 python 版本,以及不同的依赖库和版本。如果只使用全局解释器,那么切换和维护起来会非常的麻烦且容易出错。面对这样的场景,虚拟环境是更优的选择。
|
||||
|
||||
在官方文档中提到:[venv --- 创建虚拟环境 — Python 3.12.0 文档](https://docs.python.org/zh-cn/3/library/venv.html)
|
||||
|
||||
> `venv` 模块支持创建轻量的“虚拟环境”,每个虚拟环境将拥有它们自己独立的安装在其 [`site`](https://docs.python.org/zh-cn/3/library/site.html#module-site "site: Module responsible for site-specific configuration.") 目录中的 Python 软件包集合。虚拟环境是在现有的 Python 安装版基础之上创建的,这被称为虚拟环境的“基础”Python,并且还可选择与基础环境中的软件包隔离开来,这样只有在虚拟环境中显式安装的软件包才是可用的。
|
||||
|
||||
那么虚拟环境的管理具体有哪些呢?
|
||||
|
||||

|
||||
我们从 pycharm 提供的解释器选项中能看出一二,pycharm 这里提供的都是比较主流的虚拟环境管理了。
|
||||
|
||||
1. venv(官方内置的模块)
|
||||
2. virtualenv
|
||||
3. conda
|
||||
4. pipenv
|
||||
5. poetry
|
||||
|
||||
这里不想分别对这些管理工作都做详细的介绍,只记录我自己最常用的组合。
|
||||
|
||||
我的需求有两类,第一类管理 python 的版本,第二类管理依赖的版本。
|
||||
|
||||
## 对于 Python 版本管理
|
||||
|
||||
使用 pyenv
|
||||
[GitHub - pyenv/pyenv: Simple Python version management](https://github.com/pyenv/pyenv)
|
||||
用来安装和切换 python 的版本
|
||||
|
||||
## 对于依赖管理
|
||||
|
||||
如果是我自己的项目,那么我会使用 poetry(因为操作比较像 npm,我更加熟悉)
|
||||
|
||||
如果是别人的项目且项目中不是使用 poetry 来管理的,那么我会使用 virtualenv 来管理。
|
||||
|
||||
### Poetry
|
||||
|
||||
[Basic usage | Documentation | Poetry - Python dependency management and packaging made easy](https://python-poetry.org/docs/basic-usage/)
|
||||
|
||||
如果是一个新的项目
|
||||
|
||||
```bash
|
||||
poetry new poetry-demo
|
||||
```
|
||||
|
||||
如果是一个已经存在的项目
|
||||
|
||||
```bash
|
||||
poetry init
|
||||
```
|
||||
|
||||
然后使用`poetry add 包名`安装依赖
|
||||
也可以指定版本,[Dependency specification | Documentation | Poetry - Python dependency management and packaging made easy](https://python-poetry.org/docs/dependency-specification/)
|
||||
|
||||
如果要导出 requirements 方便别人安装可以运行
|
||||
`poetry export -o requirements.txt`
|
||||
|
||||
### Virtualenv
|
||||
|
||||
[virtualenv](https://virtualenv.pypa.io/en/latest/)
|
||||
|
||||
创建虚拟环境
|
||||
``virtualenv env_name
|
||||
|
||||
激活
|
||||
如果是 linux
|
||||
`source env_name/bin/activate`
|
||||
如果是 windows
|
||||
`.\env_name\Scripts\activate`
|
||||
|
||||
当然如果你用的 IDE,它会帮你创建和关联
|
||||
|
||||
然后后面就是正常的 pip install xxx 之类的操作了。
|
||||
|
||||
### Conda
|
||||
|
||||
[请问大神们,pip install 和 conda install 有什么区别吗? - 知乎](https://www.zhihu.com/question/395145313/answer/2449421755)
|
||||
conda 用来作为虚拟环境管理的话,不建议 pip 和 conda 混用,需要了解一下 import 优先级。
|
||||
|
||||
如果都安装了某一个包,那么优先 import 的是 conda 安装的
|
||||
|
||||
如果之前用 pip 装的,运行`conda convert`转一下。
|
||||
|
||||
然后后面都用 conda 来安装,conda 找不到的包再用 pip 来装。
|
57
src/content/post/编程/算法/记录/141.环形链表.md
Normal file
57
src/content/post/编程/算法/记录/141.环形链表.md
Normal file
@ -0,0 +1,57 @@
|
||||
---
|
||||
title: 141.环形链表
|
||||
date: 2023-09-12T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 算法
|
||||
- 链表
|
||||
- leetcode
|
||||
platform: leetcode
|
||||
number: 141
|
||||
url: 'https://leetcode.cn/problems/linked-list-cycle/'
|
||||
finished: true
|
||||
published: true
|
||||
slug: 141-ring-chained-tables
|
||||
description: >-
|
||||
该内容描述了一个用于检测链表中是否存在环的算法。算法通过使用两个指针,一个慢指针和一个快指针,在链表中移动。如果链表中存在环,快指针最终会追上慢指针;否则,快指针会先到达链表的末尾。算法首先检查链表的头节点是否为空或其下一个节点是否为空,如果是,则返回false,表示没有环。然后,算法进入一个循环,每次循环中慢指针前进一步,快指针前进两步。如果快指针变为null或其下一个节点为null,则返回false,表示没有环。如果循环中快指针与慢指针相遇,则返回true,表示链表中存在环。
|
||||
rinId: 58
|
||||
category: 编程-算法-记录
|
||||
---
|
||||
|
||||
# 141.环形链表
|
||||
|
||||
```ts
|
||||
/*
|
||||
* @lc app=leetcode.cn id=141 lang=typescript
|
||||
*
|
||||
* [141] 环形链表
|
||||
*/
|
||||
|
||||
// @lc code=start
|
||||
/**
|
||||
* Definition for singly-linked list.
|
||||
* class ListNode {
|
||||
* val: number
|
||||
* next: ListNode | null
|
||||
* constructor(val?: number, next?: ListNode | null) {
|
||||
* this.val = (val===undefined ? 0 : val)
|
||||
* this.next = (next===undefined ? null : next)
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
|
||||
function hasCycle(head: ListNode | null): boolean {
|
||||
if (head === null || head.next === null) return false
|
||||
let slow = head
|
||||
let fast = head.next
|
||||
while (slow !== fast) {
|
||||
if (fast === null || fast.next === null) return false
|
||||
slow = slow.next
|
||||
fast = fast.next.next
|
||||
}
|
||||
return true
|
||||
}
|
||||
// @lc code=end
|
||||
```
|
||||
|
||||

|
17
src/content/post/编程/算法/记录/142.环形链表-ii.md
Normal file
17
src/content/post/编程/算法/记录/142.环形链表-ii.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
title: 【leetcode】142.环形链表-ii
|
||||
date: 2023-09-13T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 算法
|
||||
platform: leetcode
|
||||
url: 'https://leetcode.cn/problems/linked-list-cycle-ii/description/'
|
||||
finished: true
|
||||
published: true
|
||||
slug: 142-ring-linked-tables-ii
|
||||
description: 题目“142.环形链表-ii”指的是一个关于数据结构中环形链表的问题,特别是针对环形链表中特定节点的查找或操作问题。
|
||||
rinId: 118
|
||||
category: 编程-算法-记录
|
||||
---
|
||||
|
||||
# 142.环形链表-ii
|
32
src/content/post/编程/算法/记录/2024-03-05 刷题.md
Normal file
32
src/content/post/编程/算法/记录/2024-03-05 刷题.md
Normal file
@ -0,0 +1,32 @@
|
||||
---
|
||||
description: >-
|
||||
内容中提到了两个编程问题及其相关注意事项。首先,对于“两数之和”问题,指出了在JavaScript代码中,如果`numberToIndexMap[targetNumber]`的值为0时,使用`!==
|
||||
undefined`进行判断可能会导致错误的结果,建议使用`in`操作符来检查对象属性是否存在。其次,提到了“删除有序数组中的重复项”问题,强调了需要原地删除重复元素,即不使用额外的空间。
|
||||
slug: 2024-03-05-brush-questions
|
||||
finished: true
|
||||
published: true
|
||||
date: '2024-07-11T02:17:53.454Z'
|
||||
rinId: 119
|
||||
category: 编程-算法-记录
|
||||
---
|
||||
|
||||
# 2024-03-05 刷题
|
||||
|
||||
需要注意的是
|
||||
|
||||
[1. 两数之和](https://leetcode.cn/problems/two-sum/)
|
||||
|
||||
```js
|
||||
if (numberToIndexMap[targetNumber] !== undefined) {
|
||||
const targetNumberIndex = numberToIndexMap[targetNumber]
|
||||
return [targetNumberIndex, i]
|
||||
}
|
||||
```
|
||||
|
||||
这里的写法,如果`numberToIndexMap[targetNumber] = 0` 的话, if也会判断为false,所以不能这么写。
|
||||
|
||||
要么写成`numberToIndexMap[targetNumber] !== undefined`要么写成 `if (targetNumber in numberToIndexMap)`
|
||||
|
||||
[26. 删除有序数组中的重复项](https://leetcode.cn/problems/remove-duplicates-from-sorted-array/)
|
||||
|
||||
请你 **[原地](http://baike.baidu.com/item/%E5%8E%9F%E5%9C%B0%E7%AE%97%E6%B3%95)** 删除重复出现的元素
|
68
src/content/post/编程/算法/记录/86.分隔链表.md
Normal file
68
src/content/post/编程/算法/记录/86.分隔链表.md
Normal file
@ -0,0 +1,68 @@
|
||||
---
|
||||
title: 【leetcode】86.分隔链表
|
||||
date: 2023-09-13T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 算法
|
||||
- 链表
|
||||
- leetcode
|
||||
- 待优化
|
||||
- todo
|
||||
platform: leetcode
|
||||
number: 86
|
||||
url: 'https://leetcode.cn/problems/partition-list/description/'
|
||||
finished: true
|
||||
published: true
|
||||
slug: 86-separated-chained-tables
|
||||
description: >-
|
||||
该内容描述了一个TypeScript函数`partition`,用于将一个单链表分割成两部分:一部分包含所有小于给定值x的节点,另一部分包含所有大于或等于x的节点。函数首先创建两个新的链表头节点`small`和`large`,分别用于存储小于x和大于等于x的节点。通过遍历原链表,将节点值小于x的节点添加到`small`链表,将节点值大于等于x的节点添加到`large`链表。最后,将`large`链表连接到`small`链表的尾部,并返回`small`链表的头节点。此方法在内存使用上还有优化空间。
|
||||
rinId: 59
|
||||
category: 编程-算法-记录
|
||||
---
|
||||
|
||||
# 86.分隔链表
|
||||
|
||||
```typescript
|
||||
/**
|
||||
* Definition for singly-linked list.
|
||||
* class ListNode {
|
||||
* val: number
|
||||
* next: ListNode | null
|
||||
* constructor(val?: number, next?: ListNode | null) {
|
||||
* this.val = (val===undefined ? 0 : val)
|
||||
* this.next = (next===undefined ? null : next)
|
||||
* }
|
||||
* }
|
||||
*/
|
||||
|
||||
function partition(head: ListNode | null, x: number): ListNode | null {
|
||||
let small = new ListNode(-1),
|
||||
smallP = small,
|
||||
large = new ListNode(-1),
|
||||
largeP = large
|
||||
|
||||
while (head) {
|
||||
if (head.val < x) {
|
||||
smallP.next = {
|
||||
val: head.val,
|
||||
next: null,
|
||||
}
|
||||
smallP = smallP.next
|
||||
} else {
|
||||
largeP.next = {
|
||||
val: head.val,
|
||||
next: null,
|
||||
}
|
||||
largeP = largeP.next
|
||||
}
|
||||
head = head.next
|
||||
}
|
||||
largeP.next = null
|
||||
smallP.next = large.next
|
||||
return small.next
|
||||
}
|
||||
```
|
||||
|
||||

|
||||
|
||||
可以看出内存还有很大的优化空间
|
28
src/content/post/编程/算法/记录/leetcode刷题 js + python.md
Normal file
28
src/content/post/编程/算法/记录/leetcode刷题 js + python.md
Normal file
@ -0,0 +1,28 @@
|
||||
---
|
||||
slug: leetcode-brush-up
|
||||
published: true
|
||||
description: >-
|
||||
2023年1月10日,记录了在LeetCode上的刷题情况。首先完成了“两数之和”问题,随后解决了“删除有序数组中的重复项”,虽然使用的方法简单但性能较差。最后,解决了“移除元素”问题。每个问题都附有相关的提交链接和截图,以便记录和回顾。
|
||||
finished: true
|
||||
date: '2024-07-11T02:17:53.454Z'
|
||||
rinId: 120
|
||||
category: 编程-算法-记录
|
||||
---
|
||||
|
||||
# Leetcode刷题
|
||||
|
||||
2023-01-10
|
||||
[1. 两数之和 - 力扣(LeetCode)](https://leetcode.cn/problems/two-sum/submissions/394403223/)
|
||||
|
||||

|
||||
|
||||
[26. 删除有序数组中的重复项 - 力扣(LeetCode)](https://leetcode.cn/problems/remove-duplicates-from-sorted-array/submissions/394407635/)
|
||||
使用的方法比较简单,性能比较差
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
[27. 移除元素 - 力扣(LeetCode)](https://leetcode.cn/problems/remove-element/submissions/394409513/)
|
||||
|
||||

|
26
src/content/post/设计/UI设计/课程 - 零基础学figma.md
Normal file
26
src/content/post/设计/UI设计/课程 - 零基础学figma.md
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
slug: courselearn-figma-from-scratch
|
||||
published: true
|
||||
tags:
|
||||
- figma
|
||||
- 设计
|
||||
- 课程
|
||||
description: 本课程为零基础学习Figma的视频教程,由酸梅干超人在Bilibili平台发布,视频链接为<https://www.bilibili.com/video/BV1fg411G7cs/>。课程内容包括图标设计的基础知识,讲解了图标如何通过基础图形组合而成。此外,还探讨了在不涉及直接操作SVG制作动态效果的情况下,直接绘制图标可能更为快捷。
|
||||
title: 课程 - 零基础学figma
|
||||
date: 2023-09-10
|
||||
author: KazooTTT
|
||||
type: Post
|
||||
status: Published
|
||||
finished: false
|
||||
category: 设计-UI设计
|
||||
---
|
||||
|
||||
# 课程 - 零基础学figma
|
||||
|
||||
#【课程】零基础学figma
|
||||
|
||||
<https://www.bilibili.com/video/BV1fg411G7cs/>
|
||||
[零基础学 Figma【酸梅干超人出品】\_哔哩哔哩\_bilibili](https://www.bilibili.com/video/BV1fg411G7cs/)
|
||||
|
||||
原来很多图标也是用基础图形拼起来的
|
||||
如果不涉及直接操作 svg 做动效的话,是不是直接画比较快
|
88
src/content/post/软件/01 我自己常用的ffmpeg批处理.md
Normal file
88
src/content/post/软件/01 我自己常用的ffmpeg批处理.md
Normal file
@ -0,0 +1,88 @@
|
||||
---
|
||||
title: 我自己常用的ffmpeg批处理
|
||||
date: 2024-10-14T00:00:00.000Z
|
||||
author: KazooTTT
|
||||
type: Post
|
||||
status: Published
|
||||
tags:
|
||||
- 视频处理
|
||||
- ffmpeg
|
||||
finished: false
|
||||
published: true
|
||||
category: 软件
|
||||
slug: 01-my-own-commonly-used-ffmpeg-batch-processingmy-own-commonly-used-ffmpeg-batching
|
||||
description:
|
||||
---
|
||||
|
||||
## 720x1080批量转1920x1080(两边黑屏)
|
||||
|
||||
手机直播的时候录播机录出来的分辨率是720x1080,使用ffmpeg转成横屏的1920x1080。这样xml转ass弹幕的时候,就不需要另外处理了,看起来很更舒服。
|
||||
|
||||
macos的写法:
|
||||
|
||||
```bash
|
||||
input_folder="" # 要转化的录播的文件夹路径
|
||||
output_folder="" # 要输出的文件夹路径
|
||||
|
||||
# Create the output folder if it does not exist
|
||||
mkdir -p "$output_folder"
|
||||
|
||||
for f in "$input_folder"/*.flv; do
|
||||
ffmpeg -i "$f" -vf "scale=720:1080,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" -c:a copy "$output_folder/$(basename "${f%.*}.mp4")"
|
||||
done
|
||||
```
|
||||
|
||||
windows的写法:
|
||||
|
||||
```powershell
|
||||
$input_folder = "Z:\\rec\\48743-hanser\\20240731-又来画画了!" # 要转化的录播的文件夹路径
|
||||
$output_folder = "Z:\\rec\\48743-hanser\\20240731-又来画画了!" # 要输出的文件夹路径
|
||||
|
||||
# Create the output folder if it does not exist
|
||||
If (-Not (Test-Path $output_folder)) {
|
||||
New-Item -ItemType Directory -Path $output_folder | Out-Null
|
||||
}
|
||||
|
||||
Get-ChildItem -Path $input_folder -Filter *.flv | ForEach-Object {
|
||||
$input_file = $_.FullName
|
||||
$output_file = Join-Path $output_folder ($_.BaseName + ".mp4")
|
||||
$ffmpeg_args = @("-i", $input_file, "-vf", "scale=720:1080,pad=1920:1080:(ow-iw)/2:(oh-ih)/2", "-c:a", "copy", $output_file)
|
||||
& ffmpeg $ffmpeg_args
|
||||
}
|
||||
```
|
||||
|
||||
效果
|
||||
|
||||

|
||||
|
||||
## 弹幕压制
|
||||
|
||||
### windows版(使用cuda)
|
||||
|
||||
```bash
|
||||
@echo off
|
||||
set input_folder=YourInputFolderPath
|
||||
set output_folder=YourOutputFolderPath
|
||||
|
||||
for %%a in ("%input_folder%\\*.flv") do (
|
||||
ffmpeg -hwaccel cuda -c:v h264_cuvid -i "%%a" -vf subtitles="%%~na.ass" -c:v h264_nvenc -b:v 6000k -c:a copy "%output_folder%\\%%~na_压制.mp4" -y
|
||||
)
|
||||
```
|
||||
|
||||
### macOS版
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
input_folder="/path/to/input" # Replace with your input folder path
|
||||
output_folder="/path/to/output" # Replace with your output folder path
|
||||
|
||||
mkdir -p "$output_folder" # Create the output folder if it doesn't exist
|
||||
|
||||
for f in "$input_folder"/*.mp4; do
|
||||
subtitle_file="${f%.*}.ass" # Assumes subtitle file name is same as video file name but with .ass extension
|
||||
output_file="$output_folder/$(basename "${f%.*}_压制.mp4")" # Output file name with _ass suffix
|
||||
|
||||
ffmpeg -i "$f" -vf "ass=$subtitle_file" "$output_file"
|
||||
done
|
||||
```
|
21
src/content/post/软件/arm64和x64与苹果芯片的关系备忘.md
Normal file
21
src/content/post/软件/arm64和x64与苹果芯片的关系备忘.md
Normal file
@ -0,0 +1,21 @@
|
||||
---
|
||||
title: arm64和x64与苹果芯片的关系备忘
|
||||
date: 2023-10-16
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 备忘
|
||||
published: true
|
||||
link: 'https://kazoottt.notion.site/arm64-x64-b527f80503f241d3a0f20503eb8a9c0c'
|
||||
notionID: b527f805-03f2-41d3-a0f2-0503eb8a9c0c
|
||||
slug: memo-on-arm64-and-x64-in-relation-to-apple-chips
|
||||
description: >-
|
||||
本文旨在帮助读者理解并记忆arm64(aarch64)与x86_64架构的区别及其与苹果芯片和Intel芯片的关系。通过简明的记录,指导读者在选择硬件时如何根据芯片类型做出正确的决策。
|
||||
category: 软件
|
||||
---
|
||||
|
||||
# Arm64 和 X64 与苹果芯片的关系备忘
|
||||
|
||||
一直记不住应该如何选择,在这里记录备忘一下
|
||||
|
||||
aarch64 or arm64 - 苹果芯片
|
||||
x86_64 - Intel 芯片
|
24
src/content/post/软件/obsidian技巧备忘.md
Normal file
24
src/content/post/软件/obsidian技巧备忘.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
title: obsidian技巧备忘
|
||||
date: 2023-10-16
|
||||
author: KazooTTT
|
||||
tags:
|
||||
- 备忘
|
||||
published: true
|
||||
link: 'https://kazoottt.notion.site/obsidian-c6755f6ab1f04617b378e8bee26fd089'
|
||||
notionID: c6755f6a-b1f0-4617-b378-e8bee26fd089
|
||||
slug: obsidian-tips-memo
|
||||
description: Obsidian技巧备忘:粘贴代码时,使用cmd+v可能导致样式错乱,建议改用cmd+shift+v。同时,可以利用Obsidian链接外部代码文件。
|
||||
category: 软件
|
||||
---
|
||||
|
||||
# Obsidian 技巧备忘
|
||||
|
||||
- 粘贴代码使用 cmd+v 会样式错乱,请使用 cmd+shift+v
|
||||
- [[obsidian链接外部代码文件]]
|
||||
|
||||
输入 task-todo:/.
|
||||
|
||||
搜索所有的未完成的任务
|
||||
|
||||

|
@ -1,6 +1,6 @@
|
||||
---
|
||||
slug: personal-tools-and-equipment-inventory
|
||||
description: ''
|
||||
description: ""
|
||||
tags: []
|
||||
noteId_x: 16
|
||||
create_time: 2024/11/22 16:42:31
|
||||
|
@ -0,0 +1,63 @@
|
||||
---
|
||||
slug: bloomberg-welcomes-intra-firm-chatbots-to-ib
|
||||
published: true
|
||||
title: 彭博社欢迎公司内部聊天机器人加入国际商业银行
|
||||
tags:
|
||||
- 翻译
|
||||
category: 阅读笔记-阅读和翻译
|
||||
description: >-
|
||||
彭博社宣布推出新的Instant Bloomberg (IB)附加服务——IB
|
||||
Connect,其中包括公司内部聊天机器人服务。这项服务允许彭博终端用户将专有聊天机器人集成到IB聊天室中,促进内部信息的共享和商业智能的发现。客户可以使用提供的软件开发工具包定制聊天机器人,以适应其独特的技术堆栈和工作流程。此外,IB
|
||||
Connect支持两种类型的聊天机器人:问答式和通知型,分别用于提供可操作的情报和关键事件的及时通知。这一创新旨在帮助客户推进数字化转型战略,提高协作工作流程的效率。
|
||||
date: '2023-11-09T10:26:54.033Z'
|
||||
---
|
||||
|
||||
# 彭博社欢迎公司内部聊天机器人加入国际商业银行
|
||||
|
||||
[原文:Bloomberg Welcomes Intra-Firm Chatbots to IB](https://www.bloomberg.com/company/press/bloomberg-welcomes-intra-firm-chatbots-to-ib/)
|
||||
|
||||
2023 年 11 月 09 日
|
||||
**_客户可使用公司内部聊天机器人推动数字化转型和协作工作流程_**
|
||||
|
||||
彭博社今天宣布推出一项新的 Instant Bloomberg (IB) 附加服务,以支持客户的数字化转型计划。IB Connect:IB Connect:公司内部聊天机器人服务使彭博终端用户能够将专有聊天机器人添加到所有用户都是同一公司成员的 IB 聊天室中。
|
||||
|
||||
客户可以调用公司内部聊天机器人,自动将其内部系统中的重要信息显示在 IB 中,与同事共享,并促进内部商业智能的可发现性。
|
||||
|
||||
**IB Connect** 是一套服务,使彭博终端用户能够将 IB 与公司内部工作流程工具无缝集成,帮助简化与同事的协作。
|
||||
|
||||
**IB Connect:公司内部聊天机器人**是一项新的 IB Connect 服务,在客户适用的 IB 聊天室与其内部系统之间提供双向集成。它使用自然语言处理为客户的非结构化 IB 数据提供结构和上下文,并将丰富的信息提供给客户的公司内部聊天机器人。
|
||||
每个客户都可以使用提供的软件开发工具包来构建和定制自己的 IB Connect:行内聊天机器人,以满足其公司独特的技术堆栈和内部用户工作流程,并与彭博社的 API 协议保持一致。
|
||||
|
||||
**ING 金融市场战略工程主管 Pieter van Gaa**l 说:"ING的金融市场前台战略工程团队一直致力于改善客户体验。人们已经开始期待即时访问,我们认为他们对金融市场的体验也应如此。
|
||||
我们使用聊天机器人已经有一段时间了,我们发现 Instant Bloomberg 中新增的公司内部聊天机器人非常适合我们的需求"。
|
||||
|
||||
**Bardin Hill Investment Partners 的执行信贷主管兼投资组合经理 Philip Raciti** 说:"在彭博社推出公司内部聊天机器人之前,我们一直在寻找一种方法,以一种可用于深度分析的结构从不同来源获取数据,并能随着时间的推移扩展功能。
|
||||
我们认为 Intra-Firm Chatbots 是弥合数据鸿沟的重要一步,因为它提供了一个简单、高附加值的工具,促进了彭博社与我们内部系统之间的实时数据连接。Bardin Hill 实施的公司内部聊天机器人帮助我们直接访问最大的信息孤岛,同时提高流程效率。
|
||||
|
||||
**罗杰-伯奇(Roger Birch),产品主管:彭博国际银行通信与协作系统产品主管 Roger Birch** 说:"我们将继续投资于创新,使我们的客户能够进一步推进其数字化转型战略,并从使用 IB 中获取更多价值。
|
||||
IB Connect 服务集(包括公司内部聊天机器人)将帮助我们的客户创建信息超回路,并从根本上提高协作工作流程的效率。"
|
||||
|
||||
彭博社目前通过 IB Connect 支持两种类型的客户聊天机器人功能:**公司内问答聊天机器人**和**公司内通知聊天机器人**。
|
||||
|
||||
**问答式公司内部聊天机器人**通过 IB Connect 与客户系统之间的双向通信获取可操作的情报,以回答指向公司内部聊天机器人的聊天询问。
|
||||
用户可以查询其专有系统中的各种数据,然后这些聊天机器人可以直接在聊天室中生成内容(链接、表格、可视化丰富数据)。
|
||||
这些与问答 Intrafirm 聊天机器人的简单互动可帮助用户及其队友高效地传递信息,并为他们的交流增加更多价值。
|
||||
|
||||
当发生关键事件或满足特定市场条件时,**通知型 Intrafirm 聊天机器人**会及时、主动地发出警报,并提供有意义的商业情报,而不会转移对正在进行的团队交流的注意力。
|
||||
|
||||
这样,用户就能在已经开展协作的 IB 环境中接收关键更新。例如,可以为交易前、执行中和交易后的工作流程发送分析、库存或订单状态更新通知。
|
||||
|
||||
**关于 Instant Bloomberg(IB):**
|
||||
IB 帮助彭博终端用户与金融市场和彼此之间实时连接,在安全的环境中交流想法、分享可操作的信息并优化通信工作流程。
|
||||
彭博还提供其他服务,使客户能够将 IB 与公司内部应用程序无缝集成,帮助简化与同事的协作。
|
||||
|
||||
**关于彭博终端:**
|
||||
四十多年来,彭博终端通过为资本市场带来透明度和创新,彻底改变了金融服务行业。
|
||||
彭博终端受到全球最具影响力的决策者的信赖,提供实时的新闻、数据、见解和交易工具,帮助我们的客户将知识转化为行动。
|
||||
|
||||
**关于彭博社**
|
||||
彭博社是商业和金融信息领域的全球领导者,提供可信赖的数据、新闻和见解,为市场带来透明度、效率和公平性。
|
||||
公司通过可靠的技术解决方案帮助连接全球金融生态系统中具有影响力的社区,使我们的客户能够做出更明智的决策并促进更好的合作。欲了解更多信息,请访问 Bloomberg.com/company 或申请演示。
|
||||
|
||||
**媒体联系方式**
|
||||
Robert Madden, <rmadden29@bloomberg.net>, +1 (646) 807-2213
|
@ -0,0 +1,21 @@
|
||||
---
|
||||
slug: can-brain-science-help-us-break-bad-habits
|
||||
published: true
|
||||
tags:
|
||||
- 摘抄
|
||||
description: >-
|
||||
研究表明,通过调整环境来隐藏诱惑,可以有效提高自控力。一项实验发现,当孩子们看不到面前的棉花糖时,他们能坚持的时间比看到棉花糖时更长。这表明自控力并非仅是个人内在品质,而是受环境影响的。因此,通过微调环境,我们或许能模仿那些看起来更有自制力的人。
|
||||
category: 阅读笔记-阅读和翻译
|
||||
date: 2024-01-07
|
||||
---
|
||||
|
||||
# Can Brain Science Help Us Break Bad Habits?
|
||||
|
||||
原文:
|
||||
[Can Brain Science Help Us Break Bad Habits? | The New Yorker](https://www.newyorker.com/magazine/2019/10/28/can-brain-science-help-us-break-bad-habits)
|
||||
翻译:
|
||||
[研究表明,依靠意志力改掉坏习惯是徒劳无功的 \[译\] | 宝玉的分享](https://baoyu.io/translations/life/can-brain-science-help-us-break-bad-habits)
|
||||
|
||||
> 研究者比较了两种情况:一种是孩子们能看到面前的棉花糖;另一种则是知道棉花糖在那儿,但看不到它。结果显示,面对可见诱惑时,孩子们平均只能坚持六分钟,但如果把诱惑藏起来,他们能坚持十分钟。对 Wood 而言,这说明自控力“并非内在品质,而是我们所处环境的反映。”通过微调环境,我们也许能够模仿那些看起来更有自制力的人。
|
||||
|
||||
> 成功的自控,实际上来自于有效隐藏诱惑
|
@ -8,9 +8,11 @@ import PageLayout from './BaseLayout.astro'
|
||||
|
||||
interface Props {
|
||||
post: CollectionEntry<'post'>
|
||||
simple?: boolean
|
||||
backHref: string
|
||||
}
|
||||
|
||||
const { post } = Astro.props
|
||||
const { post, simple = false, backHref = '/blog' } = Astro.props
|
||||
const {
|
||||
data: { description, ogImage, title, date },
|
||||
slug
|
||||
@ -23,7 +25,7 @@ const { headings } = await post.render()
|
||||
|
||||
<PageLayout meta={{ articleDate, description: description ?? '', ogImage: socialImage, title }}>
|
||||
<div class='w-full'>
|
||||
<Button title='Back' href='/blog' style='button'>
|
||||
<Button title='Back' href={backHref} style='button'>
|
||||
<svg
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
width='14'
|
||||
@ -42,7 +44,7 @@ const { headings } = await post.render()
|
||||
{!!headings.length && <TOC headings={headings} />}
|
||||
<article class='flex-1 flex-grow break-words' data-pagefind-body>
|
||||
<div id='blog-hero'>
|
||||
<BlogHero content={post} />
|
||||
<BlogHero content={post} simple={simple} />
|
||||
</div>
|
||||
<div
|
||||
id='blog-gallery'
|
||||
|
@ -8,7 +8,7 @@ const allCategories = getUniqueCategoriesWithCount(allPosts)
|
||||
|
||||
const meta = {
|
||||
description: "A list of all the topics I've written about in my posts",
|
||||
title: 'All Categories'
|
||||
title: 'All Categories'
|
||||
}
|
||||
---
|
||||
|
||||
|
86
src/pages/diary/[...page].astro
Normal file
86
src/pages/diary/[...page].astro
Normal file
@ -0,0 +1,86 @@
|
||||
---
|
||||
export const prerender = true
|
||||
|
||||
import type { GetStaticPaths, Page } from 'astro'
|
||||
import type { CollectionEntry } from 'astro:content'
|
||||
|
||||
import Button from '@/components/Button.astro'
|
||||
import Pagination from '@/components/Paginator.astro'
|
||||
import PostPreview from '@/components/blog/PostPreview.astro'
|
||||
import PageLayout from '@/layouts/BaseLayout.astro'
|
||||
import { getallDiaries, getUniqueCategories, getUniqueTags, sortMDByDate } from '@/utils'
|
||||
|
||||
export const getStaticPaths = (async ({ paginate }) => {
|
||||
const allPosts = await getallDiaries()
|
||||
const allPostsByDate = sortMDByDate(allPosts)
|
||||
const uniqueTags = getUniqueTags(allPosts)
|
||||
const uniqueCategories = getUniqueCategories(allPosts)
|
||||
return paginate(allPostsByDate, { pageSize: 50, props: { uniqueTags, uniqueCategories } })
|
||||
}) satisfies GetStaticPaths
|
||||
|
||||
interface Props {
|
||||
page: Page<CollectionEntry<'post'>>
|
||||
uniqueTags: string[]
|
||||
uniqueCategories: string[]
|
||||
}
|
||||
|
||||
const { page, uniqueTags, uniqueCategories } = Astro.props
|
||||
|
||||
const meta = {
|
||||
description: 'Posts',
|
||||
title: 'Diary'
|
||||
}
|
||||
|
||||
const paginationProps = {
|
||||
...(page.url.prev && {
|
||||
prevUrl: {
|
||||
text: `← Previous Posts`,
|
||||
url: page.url.prev
|
||||
}
|
||||
}),
|
||||
...(page.url.next && {
|
||||
nextUrl: {
|
||||
text: `Next Posts →`,
|
||||
url: page.url.next
|
||||
}
|
||||
})
|
||||
}
|
||||
---
|
||||
|
||||
<PageLayout meta={meta}>
|
||||
<div class='w-full'>
|
||||
<Button title='Back' href='/' style='button'>
|
||||
<svg
|
||||
xmlns='http://www.w3.org/2000/svg'
|
||||
width='14'
|
||||
height='14'
|
||||
viewBox='0 0 24 24'
|
||||
slot='icon-before'
|
||||
>
|
||||
<path
|
||||
fill='currentColor'
|
||||
d='m6.921 12.5l5.792 5.792L12 19l-7-7l7-7l.713.708L6.921 11.5H19v1z'
|
||||
>
|
||||
</path>
|
||||
</svg>
|
||||
</Button>
|
||||
|
||||
<h1 class='mb-6 mt-5 text-2xl font-bold'>Diary</h1>
|
||||
{page.data.length === 0 && <p>No posts yet.</p>}
|
||||
|
||||
{
|
||||
page.data.length > 0 && (
|
||||
<div class='grid gap-y-16 sm:grid-cols-[3fr_1fr] sm:gap-x-8'>
|
||||
<section aria-label='Diary posts list'>
|
||||
<ul class='flex flex-col gap-y-4 text-start'>
|
||||
{page.data.map((p) => (
|
||||
<PostPreview post={p} prefix='/diary/' withDesc />
|
||||
))}
|
||||
</ul>
|
||||
<Pagination {...paginationProps} />
|
||||
</section>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
</div>
|
||||
</PageLayout>
|
27
src/pages/diary/[slug].astro
Normal file
27
src/pages/diary/[slug].astro
Normal file
@ -0,0 +1,27 @@
|
||||
---
|
||||
export const prerender = true
|
||||
|
||||
import type { GetStaticPaths, InferGetStaticPropsType } from 'astro'
|
||||
|
||||
import PostLayout from '@/layouts/BlogPost.astro'
|
||||
import GiscusComment from '@/components/GiscusComment'
|
||||
import { getallDiaries } from 'src/utils'
|
||||
|
||||
export const getStaticPaths = (async () => {
|
||||
const blogEntries = await getallDiaries()
|
||||
return blogEntries.map((entry) => ({
|
||||
params: { slug: entry.slug },
|
||||
props: { entry }
|
||||
}))
|
||||
}) satisfies GetStaticPaths
|
||||
|
||||
type Props = InferGetStaticPropsType<typeof getStaticPaths>
|
||||
|
||||
const { entry } = Astro.props
|
||||
const { Content } = await entry.render()
|
||||
---
|
||||
|
||||
<PostLayout post={entry} simple={true} backHref='/diary'>
|
||||
<Content />
|
||||
<GiscusComment client:load />
|
||||
</PostLayout>
|
@ -7,7 +7,9 @@ export {
|
||||
getUniqueTagsWithCount,
|
||||
getAllCategories,
|
||||
getUniqueCategories,
|
||||
getUniqueCategoriesWithCount
|
||||
getUniqueCategoriesWithCount,
|
||||
getallDiaries,
|
||||
getallDiariesSorted
|
||||
} from './post'
|
||||
export { getFormattedDate } from './date'
|
||||
export { generateToc } from './generateToc'
|
||||
|
@ -4,7 +4,7 @@ import { getCollection } from 'astro:content'
|
||||
/** Note: this function filters out draft posts based on the environment */
|
||||
export async function getAllPosts() {
|
||||
return await getCollection('post', ({ data }) => {
|
||||
return import.meta.env.PROD ? data.draft !== true : true
|
||||
return !data.draft && !data.category?.startsWith('日记-20')
|
||||
})
|
||||
}
|
||||
|
||||
@ -12,6 +12,16 @@ export async function getAllSortedPosts() {
|
||||
return sortMDByDate(await getAllPosts())
|
||||
}
|
||||
|
||||
export const getallDiaries = async () => {
|
||||
return await getCollection('post', ({ data }) => {
|
||||
return !data.draft && data.category?.startsWith('日记-20')
|
||||
})
|
||||
}
|
||||
|
||||
export const getallDiariesSorted = async () => {
|
||||
return sortMDByDate(await getallDiaries())
|
||||
}
|
||||
|
||||
export function sortMDByDate(posts: Array<CollectionEntry<'post'>>) {
|
||||
return posts.sort((a, b) => {
|
||||
const aDate = new Date(a.data.date).valueOf()
|
||||
|
Reference in New Issue
Block a user