Awesome Tech Share 重构失败记录

序言 注意:本篇文章经过AI润色 Awesome Tech Share是一个基于 MkDocs 的静态知识库,通过 GitHub Actions 自动化部署,涵盖 AI、CS、开发、学习成长等多个领域,内部积累了相当数量的 Markdown 文件,每篇文件里都手工嵌入了大量外部 URL。 随着文件数量的增长,手动整理的成本开始以指数级上升。于是我试图构建一个"URL 驱动的、可自我生长的知识录入系统":输入一个 URL,程序自动抓取、提取、分类,并将内容以 Markdown 的形式写入知识库,最终通过 MkDocs 重新生成静态网站。 一 项目起盘 项目的初始设计围绕四个模块展开。 解析层(spider.py) 负责接收 URL 并抓取原始网页内容。 语义处理层(brain.py) 接入大语言模型,对抓取内容进行摘要提取,并与现有的知识树进行语义对齐,决定内容应写入哪个具体的 .md 文件。 配置更新层(mkdocs_updater.py) 使用 ruamel.yaml 来安全修改 mkdocs.yml 的 nav 导航结构,确保新生成的内容能够在前端正确挂载。最后,一个 主流程脚本(grow_knowledge.py) 将三者串联,提供 CLI 入口,并支持 --dry-run、--url-file、--rebuild-from-docs 等操作模式。 二 爬虫选型:错误的决策 在整个项目中,爬虫层是第一个暴露出深层问题的地方,也是最容易被轻视的地方。 Python 爬虫工具的演进与现实处境 在 Python 生态中,爬虫工具的演进大致经历了三个阶段,每一代工具都在解决上一代的核心瓶颈,但也带来了新的复杂度。 最早一代是以 requests + BeautifulSoup 为代表的静态解析方案。它的优点是极轻量、可控性强,但面对任何 JavaScript 渲染的页面就完全失效。现代互联网中,大量内容(包括技术博客、论文索引页、GitHub 项目页)都依赖客户端渲染,这使得静态解析在实际场景中的覆盖率非常有限。 第二代是以 Scrapy 为代表的工程化框架。它引入了 Spider、Pipeline、Middleware 的分层概念,适合大规模结构化抓取任务。但 Scrapy 的核心设计是面向"批量同质化数据"的,对于 URL 来源极度杂乱、目标网站千差万别的场景,Scrapy 的配置复杂度远超收益。与此同时,Scrapy 对 JavaScript 渲染的支持依赖第三方中间件(如 scrapy-playwright),集成成本不低。 ...

March 25, 2026 · 2 min · 383 words · Alicecooo

Summary-Third

好的,欢迎回来 写在开头 在经过一段时间后,我又一次的做在了电脑旁边。也算是拖了很长时间了。之前我一直没有找到一个合适的切入点来讲述。过去写的总觉得没什么“趣味”。按照时间,依照罗列,也算是干瘪过头了,怎么来讲,一篇给自己的流水账。 扯的有点远了,让我们回来。我自我对上一学期的评价是差强人意,无论是学习还是其他方面吧。干了很多事情,但是也是各种情况,也是只做到了完成。 一鼓作气,再而衰,三而竭。 一 刻意训练 在学校里,空余时间主要完成了Mit6.s081、计算机网络和一些算法。当然还有之前的未修几门课了。(ps:总算不用面对那个离散老师了,上一次课就布置作业,还麻烦的要求交笔记、写做题过程。但最后考试前另外一个老师直接给了范围。哎、毫无意义) 但这是些未经刻意训练的知识,或者说我学的大部分内容我都未经过(长时间)刻意训练。我能够理解相关的概念 ,对内容有个印象。但让我却无法对其侃侃而谈。当我准备开口,大脑会发生卡壳,有很多的概念交织在一起。嘴开始动,言语冒出,最开始是些语言印象,然后模糊不清,语言逻辑混乱,嘴开始结巴,最后嘴巴闭上,开始沉默。 是我不会,不好说。我会吗,好像也不全是。这还只是我已经学习过的内容了,更不用说那些仅仅掠过几眼的八股了。更何况那些数量还更多。 这是第一个点了,我的大多数知识没有刻意训练,只是可供理解的内容。对自己来说,如会!。 其实也不全是这样,写算法的时候倒是没有这样,看例题,模仿,写。不过好像也没啥意思。我已经感受出来自己不是一个聪明脑子了,没有短时间高强度输入并将起运用的能力,会一种类型真是多写多练了。 二 日记/总结 在10月开始的时候,我开始了另一项工作,每天记录自己的所做,试图给与明天的自己反思。在经历了几个月的记录后。我的承认这是件“非常非常非常”困难的事情,如今写每天总结对于我自己已经沦落为了写日记。 我来描述下整个历程,起初的时候是一种“兴奋”感,(听起来有点莫名奇妙,但是对我的确如此),把每天的日程量化起来,每天看着那些“学习数字”,晚上写点无用小想法,收获点赞,还是蛮有成就感的。 然后,“兴奋”感开始消散,加上很多时候,无法完美的记录每一天,总会有时间误差和杂事。你的日程开始不能够真实的反应自己的每天,会有一种虚假感,自己其实没有做到日程表中那个虚假的、学习了一下午的自己。更然后,当你某天被一个弱智Bug卡了几个小时但在时间记录上却显示自己学习几个小时的时候,你会感觉毫无意义,自己并没有学到什么东西。同时你会发现自己并不会因为昨天晚上写点总结就即刻改变,每天的开始记录单薄,最后变的成为记录本身。 写这篇文章的时候,我已经断了四五天了,这几天一方面春节探亲去了,另一方也是我给自己放假了(打了几天Galgame、其他游戏。这个稍后再说)。现在的心中并没有开始的那种“兴奋”感了,空在弥漫,这或许是某种程度的把一件事情变成工作吗。 当然,你要问我还写不写这些东西。我肯定是写的。明天回复。毕竟回忆自己的过去是件相当有意思的事情,趁着不上班的时候写点东西也挺不错的,写给未来的自己呗(自己看自己写小作文,还是不得不品的一环) 我仍旧喜欢表达的,写点无用无趣的小故事,讲点没头没脑小体悟。 三 New/Old/World 这里是想记录一下今年想要做的事情。毕竟也不知道自己是否能够完成。 跟上面的刻意训练有关,减少对于外界的关注,专注自己手上的内容。 过去的一年吧,也不是一年很多年,我都是一个网上冲浪很多的人,看各种各样的消息八卦论坛消息,虽然我几乎从不发表观点。这东西跟短视频一样,很多时候被情绪牵着走,被动的接受消息,牵着我走。大量的琐碎时间被浪费掉了。当然让我完全改变也不现实,我想的是少刷几个社交媒体,尽量减少这样的操作。 少玩随机性高,强PVP,一局一把的游戏,尽量看或玩花费一段时间就可收获一段体验、情感或叙事上面的东西。 这些游戏并不是不好,也不是不好玩,只是它们像时间的黑洞,同时会干扰自己。比如:CSGO,虽然我只是每周倒腾箱子赚点小垃圾,但只要玩这个游戏,我自己就容易的关注电竞,看比赛,看各种论坛。同时想着提升自己,让自己每周打箱子不要那么被暴打。打完也总会有种空虚感,这又会驱动自己去打个游戏。也不是说不好,这些行为本身就是游戏好玩的一方面,好玩才会去在乎那么多。但是现在我还是觉得时间倾向或许可以尽量改变一些。 给自己看过的信息输出类内容写一句话。 强迫性行为。虽然我不怎么看短视频,但我看出长视频也没记住什么,大量的内容看完就忘。很多很有趣的东西,都没有记住,假装学习,假装输入,哎。以前吃饭的时候有看耗子视频呗,现在想来那么多期视频,如今我让回忆起来,只剩下了名字了。还有各种科普,历史,电影,那些自己看过的东西,能不能留下东西。我试着做这件事情,如果我做到的话,我会给大家分享。(ps:一种试图留下痕迹,让我写每次写小作文感觉也不现实) 放过自己的博客。之前的时候我想着听些博客学习,好吧其实啥也学到,信息从脑子中过,假装收获。(除非我刻意记录,像之前那个算法)过去我总想着自己空闲时候,找到东西看来放松。根本不现实,放松与内容根本不合适。些许可以多听音乐。 清单与清单与清单。我不知道你们有没有这样感觉,自己特别想看某个电影、小说或游戏,反正是各种各样的内容,但是因为它要花费一段长时间,就很难去打开。然后很容易玩之前说的那种一局一把的游戏,但是这些又会挤压你原本的时间,然后你只能把这些内容列入一个又一个的清单当中,然后这个清单越来越长,然后你就越不容易打开。总是被困在其中。跟上面连起来了。 试下意识用AI总结看到任何输出/观点类内容。不知道你看到这里又没有做呢,答案显而易见。 多当一个输出者和创作者。我喜欢写作。喜欢叙事。喜欢各种各样人类情感的东西。所以我喜欢分享,今年我想写出更多的东西。 四 未曾改变 下面是些不明觉厉小故事和体验。 一 又是一年春季了。我是感觉自己这个县下镇属附近的村子好多年都是如此,未曾改变。 有时候感觉挺割裂的。感觉外面变化的很大,家里却又感觉毫无改变,除了镇上门店的改换。 有时候感觉挺割裂的。感觉外面又没什么区别,我上大学父母送我去的的时候,感觉城市没什么变化,门店,街道,除了楼更高,房子更大,似乎也没什么区别。 真是略带苦恼了。 二 我该怎么说我的父母呢? 大家似乎总是互相不能理解,我不太喜欢酒,因为父母总是因此吵架。 大家似乎总是很拧巴,我也是。我不知道怎么跟父母开口。我奶奶问我,为什么晚上总是睡觉很晚,问我在在学校学了些什么。想着我能带个女朋友。唠叨着,唠叨着。唠叨着 我却只能说。有自己的安排。没法解释。我很忙。我希望她能如此缄默。 真是略带矛盾了。 三 小的时候从觉得上学漫长,现在我觉得很快很快,又该大一岁了。 推了几部Galgame。 我该怎么讲呢? 乐事薯片,看起来很多,但都是空气。是饺子,但好吃的的就是那点醋。 真是略带奇怪了。

February 20, 2026 · 1 min · 54 words · Alicecooo

算法记录(一)

前置 定长 定长处理比较容易,不用关心窗口的大小,只用针对满足特定数组的条件进行处理判断。 主要的思路如下: 窗口右端点在 i 时,由于窗口长度为 k,所以窗口左端点为 i−k+1。 三步:入-更新-出。 入:下标为 i 的元素进入窗口,更新相关统计量。如果窗口左端点 i−k+1<0,则尚未形成第一个窗口,重复第一步。 更新:更新答案。 出:下标为 i−k+1 的元素离开窗口,更新相关统计量,为下一个循环做准备。 不定长 不定长滑动窗口主要分为三类:求最长子数组,求最短子数组,求子数组个数。 求最长子数组和最短子数组,还是入——更新——出,三步走。不过会略有不同。 更新:下标为 i 的元素进入。如果满足条件,加入,重复,继续扩大,直到遇到不合适情况。 出:下标为 left 的元素离开窗口,left++ ,记录此时带窗口大小 i-left+1,为下一个循环做准备。 求子数组个数 越短越合法 一般要写 ans += right - left + 1。内层循环结束后,[left, right] 这个子数组是满足题目要求的。由于子数组越短,越能满足题目要求,所以除了 [left, right],还有 [left+1, right],[left+2, right],…,[right, right] 都是满足要求的。也就是说,当右端点固定在 right 时,左端点在 left, left+1, left+2,…, right 的所有子数组都是满足要求的,这一共有 right−left+1 个。 越长越合法 一般要写 ans += left。内层循环结束后,[left, right] 这个子数组是不满足题目要求的,但在退出循环之前的最后一轮循环,[left−1, right] 是满足题目要求的。由于子数组越长,越能满足题目要求,所以除了 [left−1, right],还有 [left−2, right],[left−3, right],…,[0, right] 都是满足要求的。也就是说,当右端点固定在 right 时,左端点在 0,1,2,…, left−1 的所有子数组都是满足要求的,这一共有 left 个。我们关注的是 left−1 的合法性,而不是 left。 恰好型滑动 ...

January 20, 2026 · 4 min · 788 words · Alicecooo

MIT 6.s081 2025 Fall 实验记录

MIT 6.s081 2025秋季操作系统实验记录

October 26, 2025 · 15 min · 3126 words · Alicecooo

Summary-Second

回顾 还是拖了太长时间了,本来应该在暑假开始写完的。结果一直拖到了现在,真是罪过了。很高兴,我在下学期成功的完成了转专业,但也因此欠了好些课程(学校的程序流程真是漫长),日子一天也就那样过去,补些高数大物课,做些没什么用途的实验,应付应付作业,以及开我的 CSAPP,拖拖拉拉的,就像这个暑假一样。 时间,永不复焉。我记得刚开学的时。弄了些记录每日花费时间的流程,料想反思总结一类的,结果也是渐渐的丢走了,好像都是我自己的问题。开学的时候大抵是二三月,那时候就是在准备转专业,学一些后端的东西,或者用看更合适,毕竟,都没怎么记在脑子中。这些流程花了一个月的时间,在四月完成,到七月的放假,除去应付课业的时间。我好像并没有完成些什么,人也是变得越来拖拉,跟舍友打游戏,摆烂。 之前的时候弄了些 STM 32 玩了玩,又一个认清自己的过程,一开始了解的时候感觉特别有意思,但渐渐的,看着那些电路,作板,焊了些东西,发现自己不是很热爱。暑假的时候尝试了图灵完备,也是玩不下去,机组对我来说真是特别特别折磨的一门课,读不下去,十分痛苦。 七月末的时候把驾照考了出来,日子的一天又一天过去,“为什么不好好利用呢?“,念头总是浮现在脑海中,但这好像是我自己选的路。消磨,消磨,消磨,总是如此,特别容易在完成一个目标之后,在,某个时间段延展。 我记得在高中的时候也是,放假的时候总是消磨,不是浪费,而是消磨,不想去写那些作业,也不想去看那些东西,尽管它们很有用。无数次给自己定了目标,想着了解一些兴趣爱好,多读一些有趣的书。但却往往时间与作业赛跑,书也只有在学校才看的下去。 起床到九十点,吃饭,消磨时间,玩手机,玩游戏,又或者干些琐事,其实清楚但没有改变,一次又一次,直到夜晚,然后又是一天。 家是在乡下,有时会跟奶奶上田,帮他运些东西。天总是很蓝,一层又一层的云缠上面,我骑着小电驴,这样走着。 我不太喜欢在家里面呆着,父母总是催促我出去转转走走,不知道该怎么诉说,这不是第一个暑假了,往年很多很多次,尚也如此。我想着挣钱,想着好好上公开课。争取明年找到实习,反却总是拖延。 “是我不知道如何做吗?",“是我不能这样做吗?”。 我想我是在逃避。

August 23, 2025 · 1 min · 15 words · Alicecooo

CSAPP

CSAPP 相关学习笔记

August 10, 2025 · 6 min · 1174 words · Alicecooo

CS106B

CS106B 课程学习记录

February 4, 2025 · 9 min · 1757 words · Alicecooo

Summary-First

回顾 七八月:在家摆了两个月,考驾照,考到科二,加了一个游戏文案小组群。 九月:到学校,高考砸了,被调剂。适应学校同时,开始对未来打算,也多亏了之前上网冲浪的经历,接触了些网络学习渠道,开始CS50。做的相当痛苦,写不出了problem。 十月:反正就是磨,把cs50磨完了,感觉自己还是太笨了,磕磕绊绊,什么都不会写。其间,还到牛客上做题·写了些简单题~~(我,当时,太蠢了)~~,力扣上写了些简单题,感觉什么都没学会。尝试了许多方向,在写了几期游戏文案活动后,很挫败。(理想与现实的偏差,写不来东西,很痛苦,感觉自己不适合写这东西,很难是现在还有什么创作热情) 十一月:又跑去学了些其他东西,摸了些数字模拟电路的皮毛。开始看51和stm32单片机教程,51速通,stm32学到pwm,又去学了EDA,画电路板,摸了些皮毛,会简单画画电路板,上嘉立创白嫖了几份。开始cs106x 十二月:折磨,cs106x推进相当艰难,还是不会写,痛苦,我一直怀疑自己是否适合学着东西。折腾来折腾去,没一个主线,反正就是在试。力扣,代码随想录上又开始做了些题,还是太笨了,做不出来。期末要到了,准备些考试。

February 4, 2025 · 1 min · 6 words · Alicecooo