博客

  • 「AI浪潮」保姆级自救指南:拯救罢工的DeepSeek-R1

    「AI浪潮」保姆级自救指南:拯救罢工的DeepSeek-R1

    前言

    上线即爆火,DeepSeek-R1正面临烦恼:每天涌入的海量用户让服务器不堪重负,频繁的卡顿和崩溃让无数人空有AI入口,却难触技术前沿。
    这背后折射出的,正是AI技术从实验室突破到大规模应用必须跨越的体验门槛。
    本文将探寻让不时罢工的DeepSeek-R1(后文简称R1)这一前沿AI得以重新动工的自救方案。

    自救方式

    目录:

    1. 当搜索遇上R1
    2. API集合云服务平台
    3. 本地部署

    当搜索遇上R1

    这种方式优势在于可以联网,首先由AI搜索自带的模型去搜到最新的网站,然后从这些网站中获取最新的数据!
    但是其内置的R1模型是不是满血版(即MoE混合专家模型+671B+64Ktokens)有待考证。

    秘塔AI搜索 – R1

    声称使用的是“满血版R1”,有长思考链路的特征,且输出速度较快;
    需要注意的是一次搜索,不支持上下文和追问

    纳米AI搜索 – R1

    360和DeepSeek-R1联手提供了一个高速专线以及满血版。均能长思考,不过思考能力有差异。支持上下文和追问,国内访问通畅

    • 360高速专线,模型为32B,搭建于化为 910B GPU服务器
    • 满血版,即671B,搭建于化为 910B GPU服务器。需要花费20纳米每次提问

    赚纳米的方法:

    1. 每日水提问(去底部导航栏第一个“AI搜索”那儿搜),提问一次+10纳米,一次即可
    2. 每日连签(点击头像下方进入签到页面,每日+10纳米,7日连签共得160纳米)
    3. 邀请好友+100 纳米

    Perplexity Reasoning – R1

    根据perplexity的help center中的文章《About the R1 model used for Pro Search on Perplexity》 是把R1开源模型完全部署在美国,但是具体使用的版本暂无公开,可见后图。
    支持上下文和追问,但是对国内部分网站访问会受阻(比如知乎)。推理内容有时是英文、有时是中文,一般如果思考语言和提问语言相同(比如都是中文)呈现结果可能会让人满意些。

    API集合云服务平台

    这种方式优势在于参数透明地使用不同版本的R1,但是痛点在于无法联网。模型内为静态数据还只停留在某一时间点。
    但是已经可以应对很多场景了,比如翻译、码代码、营销运营等。
    下面这些都可以添加到列表里哦~

    SILICONFLOW 硅基流动

    R1模型调用每次对话根据可读取上下文数会消耗一些tokens,这已经可以用比较久了。
    并且模型跑在华为云昇腾云服务器,更佳稳定快速。
    官网:https://cloud.siliconflow.cn
    邀请码:h77yf43s
    从我的网站这个链接进入可以让你拿到平台内初始14元即2000万tokens哦!好东西要一起分享~

    AiHubMix

    多种R1模型可同站切换。稳定推荐使用aihubmix-DeepSeek-R1 是在azure上开源部署,目前比较稳定;响应比较慢,但是输入输出比官方高,最高输入128k;还有deepseek-ai/DeepSeek-R1
    官网:https://aihubmix.com/

    GPTAPI

    R1模型调用价格相比官方API原价低了一半。效果同官方,但不支持并发(也就是不能多次同时请求,比如接入沉浸式翻译;但是普通聊天的可以)
    官网:https://www.gptapi.us/
    平台内初始$0.2

    Nibbles AI

    新的自建代理平台,即将上线,敬请期待!不会让好人失望,助大家一起赶上AI革命的浪潮!
    未来会发文通知,请关注“尼布技术志”公众号接受文章推送哦~

    AGICTO

    公司运营,稳定,调用费用较贵,模型为满血版。

    客户端对接平台API

    目前已知可以用的AI客户端见下表:

    这个表有经过翻译工具的转换,所以部分名称请自行对应到最后一列的说明中的英文名称
    接下来教程以“SILICONFLOW 硅基流动”平台为例,客户端以电脑端的Cherry Studio(樱桃工作室)和跨平台的Chatbox(聊天框)为例。

    平台API获取

    1.创建 API 密钥:平台注册登录后,点击左侧「API 密钥」→「新建 API 密钥」。

    2.选择R1模型:点击左侧「模型广场」,选择你需要的模型→点击「复制模型名称」。

    Cherry Studio

    3.下载客户端:官方网站为https://cherry-ai.com/,(2025/2/4)最新版本号为v0.9.17

    4.配置客户端:打开客户端→点击左下角「设置」→选择已有的「硅基流动」→粘贴刚创建的 API 密钥。

    5.添加模型:拉到最下方→点击「添加」→粘贴刚复制的 模型名称→点击「添加模型」。直接把之前复制过的模型名称粘贴到「模型ID」部分,后面两个会自动填充。

    6.开始对话:回到主界面→点击上方「切换模型」→选择你添加的模型→开始畅聊!

    Chatbox 各端

    网页端入口:https://web.chatboxai.app/
    Windows PC下载地址:https://chatboxai.app/install_chatbox/win64

    手机端苹果用户请前往 美区的Apple Store 和安卓用户请去 Google Play 上下载(官网下载apk文件部分用户反应打开一直处于loading…)

    3.界面语言:(手机端需要先点击左上角)左下角的「Setting/设置」点击进入→点击「DISPLAY/显示」→在「Language/语言」中选择「简体中文」,后面字体大小和主题都可以自己调。

    4.配置客户端:点击「MODEL/模型」→在「Model Provider/模型提供方」中选择「UNTITLED」
    (简中界面根据位置判断哪个)

    根据如下红框中的参数配置!

    各端的界面都是类似的,可以类比使用。

    以后切换都需要在「Model Provider/模型提供方」中选择。如果要添加多个平台,就点击「Model Provider/模型提供方」→「添加自定义提供方」后保存

    如果是网页版使用,清理了浏览器的Cookie会导致原模型设置的丢失。
    其他端只要不卸载即可~

    本地部署

    低配电脑请自动跳过本节,用上述两种方式自救。

    手机应该是没法部署的,因为有的手机厂商为了手机AI已经有在本地跑一个轻量的模型了。

    电脑推荐配置

    内存RAM大于等于16G,专用GPU显存不低于4G即可带动模型。

    但是满血版就不要想了,需要使用机房带专业卡的GPU服务器,本地部署只是为了处理一些简单的工作。

    专业显卡(如 NVIDIA A100)是专为高性能计算(HPC)、人工智能(AI)和科学计算设计的图形处理器。此类显卡售价较为昂贵,且售卖对象以企业为主。

    专用GPU显存查看方式

    • Mac电脑可以自己看「关于本机」中的找到内存,显存要切换到「显示器」→跟在显卡型号后面的几个GB就代表显存大小,比如Radeon Pro 5500M 8 GB是8G显存。
    • Windows 11 PC右键底部任务栏,选择「任务管理器」,切换到「性能」(从上往下数第二个),选择GPU1(一般GPU0是集成显卡),往下拉,比如笔者这个就是6G显存。

    NVIDIA显卡还需安装下CUDA:https://developer.nvidia.com/cuda-downloads

    模型选择与下载

    请选择文件体积小于自己显存大小的模型,略大一些的虽然也能跑,但是速度会慢很多。

    模型镜像下载地址:https://www.modelscope.cn/organization/lmstudio-community

    上面这个地址更适合中国网络环境,可以搭配IDM等下载器。

    诸如HuggingFace等其他外网社区的话,有能力的人可自行去下载使用。
    部分模型参数说明:

    • qwen2llama指的是模型的架构。
    • 名称中带Distill即表明此为蒸馏模型,蒸馏的目的是使原模型更加轻量、高效。

    接下来推荐使用LM Studio软件对话,命令行教程我也放一下。

    LM Studio 带图形界面对话

    软件下载地址:https://lmstudio.ai/
    安装好后,
    修改界面语言:
    点击右下角的⚙按钮,「Language」中选择「简体中文(Beta)」

    修改模型目录:确认底部「Power User」界面,后点击从上往下数第三个文件夹图标,看到旁边的「模型目录」

    在C盘外新建一个专门存放模型文件的目录,哪个盘大就在哪个盘下建立。(如果你C盘留得足够大空间那无所谓) 目录中不要有中文和特殊字符

    进入目录,创建文件夹并拖入模型,这步需要注意细节,否则识别不出来

    需要创建两层文件夹,第一层名称代表发布者,第二层名称代表模型类别,如下笔者设置的:

    E:\LMStudio-test>tree
    卷 Files 的文件夹 PATH 列表
    E:.
    └─DeepSeek
        └─R1

    GIF动图演示:

    回到软件的界面发现模型装载了那就成功了。回到聊天界面,在顶部选择刚刚的模型即可开始了。

    为了生成速度快,可调的参数有:

    命令行对话

    Ollama官网:https://ollama.com/

    确保电脑上已经装了Ollama,判断方式为cmd/终端输入ollama,输出如下即可:

    有外网条件的人可以官网顶部搜索框点击后选择deepseek-r1

    往下拉找到符合自己配置的模型复制命令到cmd/终端,安装。

    如果跟着上面步骤已经下载了模型GGUF文件(我是存在E:\Ollama\DeepSeek-R1-Distill-Llama-8B-Q4_K_M.gguf),可以通过文件安装:

    1. 创建 Modelfile:新建一个文本文件 Modelfile(文件名可自定义,无后缀),内容如下:
    FROM "E:\Ollama\DeepSeek-R1-Distill-Llama-8B-Q4_K_M.gguf"
      # 可选参数调整
    PARAMETER gpu_layers 20  # 根据显存容量调整(例如 RTX 3060 6GB 可设置 20 层)
    PARAMETER num_ctx 4096  # 上下文长度
    PARAMETER temperature 0.7  
    1. 通过 Ollama 安装模型 ollama create my-mistral -f Modelfile my-mistral 是自定义的模型名称
    2. 运行模型以测试安装是否成功: ollama run my-mistral
      输入提示(如 你是什么模型?)查看回复是否正常生成。(准确度不保证,有的时候DeepSeek自己还会把自己认成OpenAI的)

    结语

    推荐(同任务难度):含R1可联网的搜索 > API集合云服务 > 本地部署

    本文基于中国网络环境,如果执意想用外网请注意流量的消耗!

    「收藏」本博客不迷路,我们后续“Nibbles AI”很快把网站上线,会推送新的文章告诉大家调用哦!

    属于AI新时代已来,你我皆是弄潮儿!

    携手跃入智能浪潮,做未来领航者!

  • 拿到结果后的思考 | 2024 年终总结

    拿到结果后的思考 | 2024 年终总结

    👇可以搭配着毛不易的无名的人食用本年度的年终总结哦~
    (注:小程序端可能被解析为歌词了,推荐前往网站查看)

    [aplayer apid=”1117″][/aplayer]


    时光飞逝,该和2024年说再见了。
    这一年对我来说真的是很有感触的很值得记录的一年。
    这一年我完成了自己人生中一次小逆袭的高考,经历了个人认知上的提升,经历了自己运营技能上的提升。
    这篇文章不仅是我自己对过往一年的回顾,也想把我的这年的经验和收获分享给你。

    今年年终总结篇幅比较长,也是对很早我公众号发的自我介绍的较详细补充。
    ps:不是无厘头的装B装两次好吧(ˉ▽ˉ;)…
    自我介绍
    2025希望我们一起加油!

    年终总结省流版

    2024,回顾前路

    • “别认”的高考
      • 尊重现实,“别认”
      • “只有高考”
      • 不要贪
      • 不要被环境裹挟
      • 人生是均值回归的
      • 要为自己的选择负责
    • 启程“繁荣”的浪前
      • 让自己坚信,自己真的能靠自己获得成长与进步
      • 尽管繁荣
      • 越参与,越收获
    • 大学里的1%和清晰规划
      • 主动,真的会有故事
      • 获得实习机会的最快方法就是成为“自己人”
    • 国际青年·创业
      • 我们年轻人能与世界叫板!
    • 美剧加成的双语者之路
      • 双语者的未来,能看到更广大的世界!

    2025,继续繁荣
    1. “匿补阁”个人项目正式上线,独立运营
    2. 多去线下走走,脱离线上的舒适圈
    3. 有钝感力,减少无意识中注意力的消磨,重在阅读和获取高质量信息
    4. 学习CTF技术,成为校内CTFer一员
    5. 博客周更,扩大技术圈子
    6. 身体是革命的本钱

    年终总结完整版

    “别认”的高考

    结果:
    提分显著,从平时成绩排名一直到三模都还在本科线边缘游走,直到最后进入公办本科ZWU
    树成林《我的高考逆袭故事》图书入围作者

    我是那种对不论什么科目的重难点都有点畏难,对那些曾经的错题、难题都是置之不理(反而却纸面上整理得很好)的学生,我的高中成绩一直都不是很好,成绩总是在班级里的中下游徘徊,还是看着还努力的差生。

    高中时候班里的学风也不好,家里对我未来的成绩也是持悲观的态度。
    毕竟每周三次小考,每月一次联盟考,到最后冲刺阶段天天考,无数的卷子都好像想着去证明我是个考不上本科的差生。
    “抑郁是活在过去,焦虑是活在未来”
    抑郁在过去次次考试出来的低分,焦虑是在自己未来能否去到本科或者上到想上的专业。

    《一年,怎么上650》 是我认识树成林的契机,是心态转变的开始,也感谢这2024年能遇见他们。
    听完,我渐渐消散负面情绪,开始——

    尊重现实,“别认”

    只是尊重当下,别认了自己就是拿那点低分的差生。
    “别认”,是我最近被人安利看国漫电影《雄狮少年》后脑海里留下的两字。

    ⚠【剧透警告】因为跨年被《雄狮少年》系列圈粉了~迫不及待地想分享下——下述为第一部:

    故事里的阿娟主人公,爸妈突然从工地回家乡,他欣喜回家但结果是迎面而来的是他爸爸得了不知道要什么时候才能从病中醒来的一场噩耗。他自己放下了热爱的舞狮,选择了去广州工作去赚那遥遥无际的医疗费,各路艰辛。巧的是,舞狮比赛在他即将踏上下一次工作前举办,他在路边看到了中年的师傅和原来自己的两位队友,后面及时救场,带队伍晋级四强。最后和种子队的加时赛中,为了夺魁去挑战了那个最高的被称为“奇迹”的桩——擎天柱,当其他队伍随去年冠军一起鸣起鼓的那刻,真的感觉是心中的狮子在吼!做一头雄狮而不是病猫!
    4K《雄狮少年》资源


    别认了那点现实,
    不是跪向那个分数,跪向那些感觉遥不可及的大学,跪向自己学校的学风,
    那些是过去的样子,让那些过去就过去吧,你无法改变。
    过去决定不了你最后高考时候的样子,
    而是尊重现实,
    开始分析分数,自己需要的是到底是备考的心力还是定向的刷题。

    备考的心力方面,我推荐《高三突围》这本书,
    里面的四个思维非常有用!
    “别认”其实就是在贯彻长期思维,
    在长期思维中有关于成长曲线的部分,让我印象深刻。
    成长的曲线应该是指数型的,
    持之以恒,请相信一定会迎来那一突跃的节点!
    每次考后选择去总结复盘,
    把不足处落到高考系统内去优化与实践,
    还有一点就是,高三只有一个原则就是——

    “只有高考”

    这才是正常的备考心态。

    定向的刷题方面,与其泛刷不如刷常考类型的题,
    前文讲过,我对一些题目比较畏难,
    确实适当的畏难很正常,但是,我那几乎是很多中等题都下不去手。
    然后我会选择去找网课学习,免费的“一数”等固然是大家都在看的,
    还有些付费网课能提供一些答疑服务,那么食用这些网课的建议就是——

    不要贪

    总是有人觉得自己点了稍后再看就就是会了,点了收藏点了三连了就会去看就是会了,
    也不是你保存了盗版课就是会了,也不是你买了正版课就是会了。
    (ps:经济条件有的话不要买盗版课!盗版课低廉的价格无法让你对课引起足够的重视。你不认为知识是值钱的能改变命运的,你又怎么能让知识“喜欢”你而带你高考取得好成绩呢)
    我就是网罗了贼多网课,高三时候把我baidu网盘直接撑爆了,
    结果实际会点开看的根本没几个。
    买了什么付费的全程课大招课系统课,贵点的课时巨多,
    想想你真正能在家的学习的时间能有多少吧,
    我相信大部分高中都是喜欢把学生留在学校的,会安排各种调休、周末周测等,‘
    网课看得有针对性,适度就好。

    不要被环境裹挟

    你可能很牛X,是常胜将军,是全校上名校的希望,
    你可能跟我以前一样菜,被班里其他人调侃和嘲笑,
    不要在意环境,
    如果环境的水平比你个人水平差,那你就选择去融入更强的竞争的环境,
    对你来说环境如果恶劣的话,还改变不了,
    那么“身处井耦,心向璀璨”,沉下心来用结果去反击那样的环境!

    考前心态上,我觉得我变得比较轻松才会让我沉着应考
    事实也证明确实如此——

    人生是均值回归的

    你哪怕高考考差了,没准未来你在哪次人生选择中成了赢家呢?
    高考是一个节点,但不会是你人生的终点,还有一辈子啊

    高考后的志愿选择,也是即将迎来我成年的时候
    这是在我成年后听见的最重要的话

    要为自己的选择负责

    这是选志愿的核心,
    乃至你未来站在人生中的每个重要岔路口

    每当回顾这一年,高考奋战那段时间的记忆一直历历在目,
    真的,在你努力过的高考,拿到结果后,
    在未来每次要努力要做些什么事情的时候,你总会有一种信心和干劲!
    在想气馁时仍然能会想起高考时那段经历并激励现在的自己。

    启程“繁荣”的浪前

    结果:
    “浪前”社群中“最强小助手”、“最佳复盘奖”、“实践达人”
    下届“浪前”萤火虫(运营人员)

    我觉得,我遇上“树成林”真的是种庆幸,
    没有他们就可能没有如今收获很多结果的我,
    我也不会追求着更高更远。

    在“浪前”去高效地完成个人成长,
    学习牛人的思维,分为「阅读核心思维]「成长核心思维]「价值核心思维」「大学核心思维]「财富核心思维]「人生启示录」这几个板块,
    从思维去驱使你的想法,
    想法决定你的选择肯定与他人不同,
    选择后的做出行动创造与他人不一样的收获丰厚结果的命运。

    实践行动很重要,
    实践的最高境界是改变生活。

    让自己坚信,自己真的能靠自己获得成长与进步

    靠自己,这很重要,
    未来的人生终究会你自己走下去。

    不过通过“浪前”,你能收获认知同频的“战友”们,
    也是此,我在开学初就建立起了大学中连通了五六个学院的人脉。
    平时会和万里分浪战友们一起交流,做图书馆搭子,交流课程中的认知。
    有战友的陪伴,一起成长下去。

    这门课没有考试,最终将会是一个结营答辩。
    这是我首次参与答辩的经历,期间也收获了很多经验,
    并确定了我在团队中适合作为一名Linker的地位,
    传送门指路:https://nibbles.cn/forwave.html

    没错,脱离禁锢了我们十二年的应试教育后,
    就算没有百分制的成绩,经过这样人人提升的环境中,你照样能得到比分数更多的收获!
    K12教育中最大的弊端,就在于我们的老师总是要让我们不能犯错,
    我们也会变得不敢犯错,步步谨慎,不会去接触新的事物,
    因为总是在顾虑错了总会有什么被失去的。
    但是身为年轻人的我们,还在成长中的我们,必然是要去接受新事物的,接受新变化的,
    我们就是要靠近这些能让你更好的思维,成为牛人,链接出你更大的“战友”群体,

    尽管繁荣

    prosper,不同语境下,对于国家翻译为昌盛,对于个人是繁荣。
    因为没有比“繁荣”更适合的词来形容不断成长的人生了!
    如果你现在没什么结果,
    那可能是你在能选择繁荣的时候你却选择了凋零。
    有的人也许嫉妒着从平平无奇蜕变到繁荣中的人,或者评头论足
    但是评价总是在往过去看,繁荣中的人总是在抓住你评论的时机尽快成长。

    越参与,越收获

    这个社群也是有筛选的,
    请你带着“主动吃苦”的心态进来,
    请主动关注过树成林一段时间后再来。
    我也不会“三、二、一,上链接”,
    主动靠近这些高能的环境,应该是你的选择。
    希望我们能在下期的浪前再见!
    (6.1——没错,”浪前“已经经历了六次的迭代,里面的思维已经被战友们不断地实践贯彻)

    大学里的1%和清晰规划

    结果:
    入学初第一个A类竞赛(职规赛)在大一群体中唯一晋级,校级优胜奖
    运营成果:
    带树成林公章的实践证书“社群运营志愿者”,大一就有一份实习经历

    规划营全流程走下来,带来的是大学中清晰的各个阶段,
    在之前职规赛后导员找我谈话,还能震惊我的规划能那么清晰。
    一个人的路走得踏实,各阶段目标明确,这很重要。
    不过,规划需要自己做,每个人情况不同,发展也不同哦,在此暂时先略过。

    至于运营,很感谢遇到了未来一直陪伴我的运营官——子七,

    主动,真的会有故事

    延续浪前中讲过的“越参与,越收获”。我就感觉到运营社群其实就是种更好地参与。
    主动递交了问卷,入选了社群运营志愿者的一员。
    除了最基本的运营任务外,
    我还有开了2次分享会,主持了一次志愿者线上破冰。
    真的不敢相信,平时以i人自居的我还能开摄像头放声主持这样的线上会议。
    背后离不开子七的鼓励,志愿者天团的大家的支持!非常感谢你们。
    “追求矢志不渝的创新,秉持做大做强的追求!”
    是我们的口号,
    也通过此运营,看到了一群现在跟我一样一直走在拿结果的路上的战友们!

    其实,关于实习,我想引用下我们浙浪的运营——卡农的那句:

    获得实习机会的最快方法就是成为“自己人”

    “自己人”就代表你对这加公司的业务、大概的前端工作业务了解得很全,
    在后面公司对你的培训不用再从零开始讲公司,省了公司的培训成本,你也能尽快上岗,为公司创造价值。

    总之,在经过规划营,我知道不仅是程序员这一就业,更应该是成为“通才”才能长久地走下去。
    运营就是这其中一步规划了。

    国际青年 · 创业

    运营成果:
    “优秀团队” 树成林公章证书
    积分制的运营工作下,全运营组排名第4
    (864分,4/14,仅次于部长级)

    我觉得,让年轻人最早认识到自己什么水平的,
    不会是大学考试的绩点排名,
    更应该的是提早接触钱, 工作,企业。

    受子七邀请加入了这个社群的运营,他真是我的贵人~
    我看到了一个企业社群项目中层次清晰的架构,标准化的SOP,时间线等
    还能更加熟练地使用了飞书的话题群审批方式,
    有了运营的加成,社群才会活跃,给大家带来更多丰富的推送。
    在此期间学到平面设计、PPT、群文案撰写等技能,也为我后续的运营项目助力。
    在运营中,按时保质保量完成任务,获部长、运营官好评;
    主持文字结营会议,提升群聊活跃度超200%;
    协助负责人子七制作结营答辩PPT,帮助负责人子七答辩成功。
    除了这些运营期间的成果,

    还有,创业社群来自于国际青年企划,那么坚信——

    我们年轻人能与世界叫板!

    还有那么一群人敢于尝试做着改变世界的疯狂的目标!
    还有一些人为着创业、就业、考研、自媒体等等领域在努力,继续繁荣下去!
    还有感恩像子七一样的运营者们在走向“树已成林”的今天仍在努力!未来将会是“万木同行”,
    我辈青年也将成为光,照耀着世间。

    美剧加成的双语者之路

    结果:
    “优秀搭子”
    运营成果:
    ”超级组长“,小组总分排名第2(总20组),借此契机加入树成林集团运营人才库

    很多人大概大学过完四六级就对英语再也置之不理了,
    但是,更广阔的世界需要你从简中互联网往外看,
    第一手信息也是这样的。
    英语,作为世界上使用最广泛的语言,有许多的文献,影视作品、推文等等都是用英语编撰的,
    你成为英语双语者,你试想,
    一个语言上几乎完全畅通无阻的记录了世界见闻的互联网展现在你面前是什么样子?

    甚至,这次的学习方式还非常不同,
    借助了老友记FRIENDS这一经典美剧,反复看反复听中扩展词汇,听力也有所见长。
    用美剧学英语在以前看来是荒谬的,
    但是现在看来,在有重复的学习安排下,才能学得下去。

    有的人可以无字幕感受美国大选,而不用忍受那时出差错的机翻;
    有的人觉得英语四六级考完达成毕业条件就不用搞英语了,结果你专业的好多论文全是英语;
    有的人还在用着广告多得措不及防的简中互联网,有的人已经在外网感受新的chatgpt的力量。
    这就是脱离应试,把以往应考英语到英语能力提升的转变;

    双语者的未来,能看到更广大的世界!

    而我们社群的小组成员们在近50+天的学习日程中,保持90%的超高打卡率!
    朋友圈分享连连,感受成长的氛围。
    我也参与到了子七的SOP制作中,为后续社群的运营立了标榜,
    得到加入树成林集团运营人才库,未来我和子七一直是一起成长的伙伴。

    S2我还会继续,不见不散。

    2025,继续繁荣

    回顾过去2024年,对我来说很值得纪念。
    你也看到了,我的年终总结只谈我自己,
    不想谈这个世界社会如何,因为我目前的能力还仅是沧海一粟。
    立点flag吧,但好像总归是会破的?
    那就写点实际的,对新的一年我会:

    1. “匿补阁”个人独立运营项目正式上线

    匿补阁是我自己创始、独自运营的一个资源分享项目。之前邀请过零星几人进行内测,现在我觉得是时候让大家也都加入这个正在慢慢扩大的资源宝库中!
    为什么叫“匿补阁”?“匿补” 这两字不仅是尼布的谐音写法,还与我们的理念有关 :
    我们收集了互联网上隐匿的资源,为你的信息源提供补充。
    你试想,别人还在百度里从成堆的广告中苦苦寻觅资源,你就已经能有无广高清的资源揣在你硬盘里网盘里;别人还在装着一个格式转换软件,被引导着付了VIP,转换出格式的效果还不如预期,你就能直接用在线的格式转换网站,直接浏览器处理,快速又好用。
    这个信息爆炸的时代,有的资源有可能AI找不到,有的资源全是广告只为公司利用用户流量的盈利,我想借助这个项目,为你发掘那些优质的资源,给你的信息源和工具库提供补充。

    2. 多去线下走走,脱离线上的舒适圈

    我常常在线上聊,成天微信qq都有很多的小红点,但是其实更多的交际总是在线下的。
    线下我都看着有些封闭,看着也没什么话可以聊,我觉得这样的状态不适合我未来的成长。
    未来,实习,求职,链接老师、领导,乃至团队的组建,都更需要的是线下的传达。
    希望2025年,能去到一些高能的大会,去到象牙塔之外看看。

    3. 有钝感力, 减少无意识中注意力的消磨,重在阅读和获取高质量信息

    我虽然早早戒掉了抖音火山一类的视频平台,只玩B站。
    但是自己还是会去刷那种竖屏的视频,还是会看着网课就小几十分钟就去看那种娱乐向视频了。
    信息茧房效应下,然后首页推送的非学习类的视频还在变多,
    这号估计是废了…
    接下来,要么是新注册一个号,要么是采用RSS来筛选信息,现在还在探寻中
    阅读比起短视频那种碎片化的信息更加系统,能让人学到更多,信息的质量也更高。
    而且,任何大牛都是有过大量的阅读的。
    除了应试教育期间的阅读,未来要根据自己想提升哪些方面自己选哪些书来看。
    坚持阅读不容易,但是每当从翻书中学到东西那就是有一寸小欢喜。

    4. 学习CTF技术,成为校内CTFer一员

    我觉得CTF可能比ACM来说更加适合我目前上手,所以我规划里选择了Web方向,辅以MISC杂项。希望能真正地加入ZWU的CTF圈子,与学长们交流。

    5. 博客周更,扩大技术圈子

    Nibbles Blog博客正在起色,接入备案,网站也在慢慢地被百度等搜索引擎看见。根据网站接入的Umami统计,自七月开始统计起,已有1.75k有效浏览量,有608位中国IP的网友看过,也有来自香港、美国的,这样的情况对于一个刚开始更新的博客我觉得还是满意的。
    我觉得我的更新频率目前还是不够稳定,所以想2025年开始周更,并且加入更多的博客圈子,结实更多的技术大佬。

    6. 身体是革命的本钱

    我感觉得到自己好像为了上面的结果,付出了最应该保重的东西——身体健康。
    年终时候我还是在感冒中,感觉一个小感冒对我来说挺难自愈的。
    就算在学校里,学校固定晚十点半熄灯,但我总是会熬到23-24这个时候,然后还会再刷会儿视频甚至到零点多,很不规律。
    新的一年给自己新增一项打卡任务——每天最少要睡够7个小时!

    其他的年终总结

    以下这些都是软件生成的,仅供参考,请勿过度解读。

    飞书

    飞书在线办公真的超好用!

    微信

    “打卡”贯穿于班级管理、社群管理~ 最近,自己也开始有自己的习惯打卡!

    继续繁荣,顺颂时祺
    Nibbles
    2025年1月1日

  • CTF Web 信息搜集 知识总结

    CTF Web 信息搜集 知识总结

    CTFer第一篇Web知识点汇总,从ctfhub和ctfshow部分题中总结,新手上路,请多指教。
    本篇内容仅供CTF学习使用!

    HTTP

    改参数重发请求,有带flag的Cookie需要URLdecode

    出题方向有Cookie欺骗、认证、伪造

    找Cookie可以通过浏览器自带的开发者工具也可以通过burpsuite

    开发者工具→Network→Cookies

    burpsuite通过设置好代理→截断,可以看到HTTP头的Cookie字段

    【HTTP 状态码】

    302跳转

    302:请求的资源临时移动到另一个位置。通常用于临时重定向,例如用户未登录时重定向到登录页面。

    其他状态码

    200:正常

    204:请求成功,但没有内容返回。用于不需要返回任何数据的情况下。

    301:请求的资源已被永久移动到新位置。

    400:服务器无法理解请求。可能参数错误或格式不正确。

    401:资源需要身份验证,客户端无权限访问。

    404:请求的资源不存在。

    500:服务器内部遇到意外情况,无法完成请求。

    503:服务不可用,或服务器暂时无法处理(过载或维护中)。

    【HTTP 标准方法】

    自定义方法探测

    还有标准方法:

    GET: 请求指定的资源并返回其内容。常用于获取数据。

    POST: 向指定资源提交数据,通常用于创建或更新资源。

    hackbar:“Load URL” → “Post data” → 输入要POST的字段

    burpsuite:见后文题目操作

    HEAD: 类似于GET,但只返回响应头,不返回实体内容。用于获取元信息。

    PUT: 更新指定资源的内容,通常用于替换现有资源。

    DELETE: 删除指定资源。

    OPTIONS: 查询服务器支持哪些请求方法,通常用于CORS(跨域资源共享)预检请求。

    TRACE: 追踪请求-响应链路,用于诊断目的。通常不推荐使用,因为可能会泄露信息。

    CONNECT: 建立一个隧道至目标服务器,常用于HTTPS代理。

    临时文件有关

    【Git】

    版本控制 .git下的主页文件 .svn/目录

    Git 是一个开源的分布式版本控制系统,主要用于管理项目的代码版本。

    主要由一个隐藏的 .git 目录控制

    文件

    HEAD:指向当前分支的最新提交,通常是一个指向 refs/heads/<branch-name> 的引用。

    config:存储当前仓库的配置选项,如远程仓库地址和用户信息。

    description:用于描述仓库,主要在 GitWeb 等工具中使用。

    COMMIT_EDITMSG:保存最近一次提交的信息,供用户参考。

    FETCH_HEAD:记录从远程仓库获取的最新提交信息。

    主页文件index.php index

    目录

    objects/:存放所有 Git 对象,包括提交(commit)、树(tree)、文件内容(blob)和标签(tag)。这些对象以 SHA-1 哈希值命名,确保唯一性。

    refs/:包含指向分支、标签和远程引用的指针。具体子目录包括:

    heads/:存储本地分支的最新提交。

    tags/:存储标签对应的提交。

    remotes/:保存远程分支的引用。

    logs/:记录所有引用(如分支和 HEAD)的历史变更,便于追踪操作记录。

    hooks/:存放钩子脚本,可以在特定事件发生时自动执行自定义操作,如提交前检查代码格式等。

    info/:存放一些额外的信息,如忽略模式(与 .gitignore 类似)。

    【PHP 相关文件类型】

    .phps 展示代码

    可以通过把*.php改为*.phps,从而下载到php文件的源码

    【vim】

    .swp 因非正常退出而保留的文件

    vim是一个强大的文本编辑器,广泛用于编程和系统管理。

    .swp 文件的特征

    隐藏文件:.swp 文件通常是隐藏的,使用 ls -a 命令可以查看。但是在生产环境中没有删除,也可以被下载到

    没有删除的原因:如果你正常退出 Vim(使用 :wq 或 Shift + ZZ),.swp 文件会被自动删除。如果没有正常退出,这个文件会保留在目录中。

    index,php后面加.swp

    【PHP 探针】

    phpinfo信息有flag的环境变量

    雅黑PHP探针:PHP探针内除了服务器的信息,还会有phpinfo,出题者在phpinfo中插入了flag的环境变量。

    网站默认配置问题

    后台没说就/admin一下

    【网站拨测】

    域名TXT记录

    工具网站:https://boce.aliyun.com/detect/dns

    DNS记录:

    A 记录:将域名映射到 IPv4 地址。

    AAAA 记录:将域名映射到 IPv6 地址。

    CNAME 记录:将一个域名指向另一个域名(别名)。

    MX 记录:指定邮件交换服务器,用于接收发送到该域的电子邮件。

    NS 记录:指定负责管理该域名的权威 DNS 服务器。

    SOA 记录:提供有关 DNS 区域的信息,包括主 DNS 服务器、管理员邮箱、序列号等。

    TXT 记录:用于存储任意文本信息,常用于验证和安全配置(如 SPF 和 DKIM)。

    PTR 记录:用于反向 DNS 查询,将 IP 地址映射回域名。

    CAA 记录:指定哪些证书颁发机构(CA)被允许为该域签发证书。

    管理员信息公布于网站或技术文档中

    密保问题的答案能公开查得

    【KindEditor】

    编辑器插入文件列出服务器文件列表

    KindEditor是一款开源的在线HTML富文本编辑器。

    文件空间显示服务器文件的原因:KindEditor中有一个选项允许用户浏览服务器上已上传的文件,这通常通过设置allowFileManager: true来实现(这还是程序的默认设置?!)。当启用此功能时,用户可以访问服务器上的文件管理器,从而查看和选择已上传的文件。

    解密相关

    【base64】

    编码decode

    【AES】

    加密过的密码,表单POST提交

    【unicode】

    编码decode得到隐藏页面提示

    解码网站

    (NSSCTF的在线工具,需要先登录):https://www.nssctf.cn/user/range/warjax/code

    数据库

    mdb文件(早期)

    不用管那些乱码小方格,直接搜flag就好

    sql文件

  • 社群运营经验分享:飞书多维表——文档管理的利器

    社群运营经验分享:飞书多维表——文档管理的利器

    飞书多维表真的yyds!

    电脑/手机浏览器端是自动跳转。

    若为小程序/Feed订阅浏览,本文推荐移步原文看:

    https://mp.weixin.qq.com/s/kFzAHxlf8svqLzf1uruAig

    也欢迎关注公众号:尼布技术志,及时收到文章推送哦!

  • 我为什么每次都想争取社群中接近运营的职位?

    我为什么每次都想争取社群中接近运营的职位?

    这次能从数百份问卷里选出来当这个大群的志愿者,我无比荣幸。

    感受到了自己的运营能力被认可,思绪万千。

    回首我在浪前后定下的个人目标:

    个人繁荣,团队中做好Linker,实现终身成长。

    其中我觉得这一次,我对Linker有了更进一步了解。

    再次在我个人成长下留下一笔。


    回到标题,

    我为什么每次都很想去争取社群里接近运营的职位?

    不管是浪前作为小助手,还是现在的规划营作为志愿者。

    因为IP营中漫漫姐讲过运营是有全流程的,

    是“产品、销售、转化、用户”,

    我们仅作为学员,做不到产品方面,

    那可以销售自己,转化自己,把自己的能力变成他人的认可和鼓励,然后得到更多的人的关注,也就是用户。

    (有点自己独到的见解)

    作为Linker,我觉得运营能力是极其重要的。

    To be a Linker,not just a leader. (通通姐的话一直历历在目)

    Linker一词就取自这。

    不仅是领导者的统筹全局,更需要其中带动各环节的Linker去努力。

    而运营能力就是了解各个环节后再去让各环节活跃起来,这样的经历对于企业也是很需要的,这对我以后的求职很有帮助。

    七哥作为筛选的人,

    我很感谢他对我的认可。

    可能确实有部分是我独到地想到了利用飞书多维表格去整理文档,精心地设计各文档的格式,从很多文档中脱颖而出。

    还有更多的是,

    给了我展现在大家面前的机会,这很重要。

    我是个i人,很典型的那种。

    从浪前到现在的开会,

    从一开始文字对话,到成为浪前里彩排时模拟提问的评委,到现在能给大家共享屏幕边录教程边讲话,

    这样的过程对于我来说也是i到e的进步。

    毕竟真的很想干事情的,但是又不敢表达,真的不利于干事情。

    (这句好像有点绕,不过i的“打工人”也感同身受)


    上次做一个Linker,还是最强小助手。

    这次的机会,我会牢牢把握!

    从对群友和A哥的精彩输出的整理这一工作中繁荣成长,输出自己的志愿者周记,向着优秀志愿者不断努力,长期后不断积累的运营经验也一定能让我成为一个优秀的Linker!

  • 开源!极简的WP弹窗公告插件

    开源!极简的WP弹窗公告插件

    常关注我的博客的人知道,我在之前因为备案临时把博客切到了备用的cyou域名,然后发了一个弹窗公告通知“成年更新”。

    这个弹窗公告不是主题自带的,是我设定需求和风格+AI写出来的。

    弹窗整体是白色亚克力底+黑色文字,很简单。就一个按钮“已知晓”(欢迎二开,但是请不要加广告并以我名义分发!)

    效果图

    插件下载

    项目结构

    wp-plugin-announce

    • css
      • announce.css
    • js
      • announce.js
    • announce.php

    代码

    announce.php

    <?php
    /**
     * Plugin Name: Announce
     * Description: 一个显示浮动弹窗的插件
     * Version: 1.0
     * Author: Nibbles
     */
    
    if (!defined('ABSPATH')) {
        exit; // 防止直接访问
    }
    
    // 加载插件所需的脚本和样式
    function announce_enqueue_scripts() {
        wp_enqueue_style('announce-style', plugin_dir_url(__FILE__) . 'css/announce.css');
        wp_enqueue_script('announce-script', plugin_dir_url(__FILE__) . 'js/announce.js', array('jquery'), null, true);
    }
    add_action('wp_enqueue_scripts', 'announce_enqueue_scripts');
    
    // 在页面中插入弹窗的HTML结构
    function announce_display_popup() {
        ?>
        <div id="announce-popup" class="announce-popup">
            <div class="announce-content">
                <h2 id="announce-title"><?php echo esc_html(get_option('announce_title', '提示')); ?></h2>
                <p id="announce-message"><?php echo esc_html(get_option('announce_message', '这是一个重要的公告!')); ?></p>
                <button id="announce-close"><?php _e('已知晓', 'announce'); ?></button>
            </div>
        </div>
        <div id="announce-overlay" class="announce-overlay"></div>
        <?php
    }
    add_action('wp_footer', 'announce_display_popup');
    
    // 添加插件设置页面
    function announce_settings_page() {
        add_options_page(
            'Announce Settings',
            'Announce',
            'manage_options',
            'announce',
            'announce_settings_page_html'
        );
    }
    add_action('admin_menu', 'announce_settings_page');
    
    function announce_settings_page_html() {
        ?>
        <div class="wrap">
            <h1><?php _e('Announce 设置', 'announce'); ?></h1>
            <form method="post" action="options.php">
                <?php
                settings_fields('announce_settings');
                do_settings_sections('announce');
                submit_button();
                ?>
            </form>
        </div>
        <?php
    }
    
    // 注册设置选项
    function announce_register_settings() {
        register_setting('announce_settings', 'announce_title');
        register_setting('announce_settings', 'announce_message');
    
        add_settings_section(
            'announce_section',
            __('弹窗设置', 'announce'),
            null,
            'announce'
        );
    
        add_settings_field(
            'announce_title',
            __('弹窗标题', 'announce'),
            'announce_title_callback',
            'announce',
            'announce_section'
        );
    
        add_settings_field(
            'announce_message',
            __('弹窗内容', 'announce'),
            'announce_message_callback',
            'announce',
            'announce_section'
        );
    }
    add_action('admin_init', 'announce_register_settings');
    
    function announce_title_callback() {
        $announce_title = get_option('announce_title', '');
        echo '<input type="text" name="announce_title" value="' . esc_attr($announce_title) . '" />';
    }
    
    function announce_message_callback() {
        $announce_message = get_option('announce_message', '');
        echo '<textarea name="announce_message" rows="5" cols="50">' . esc_textarea($announce_message) . '</textarea>';
    }
    ?>
    

    css/announce.css

    /* 弹窗通用样式 */
    .announce-popup {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        padding: 20px;
        border-radius: 10px;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
        z-index: 10001;
        display: none;
        text-align: center;
        max-width: 90%;
        max-height: 90%;
        overflow-y: auto;
        backdrop-filter: blur(10px); /* 添加背景模糊效果 */
        background-color: rgba(255, 255, 255, 0.8); /* 亚克力效果的白色背景 */
        color: black; /* 黑色文字 */
    }
    
    /* 按钮样式 */
    #announce-close {
        background-color: #007AFF;
        color: white;
        border: none;
        padding: 10px 20px;
        border-radius: 5px;
        cursor: pointer;
        margin-top: 20px;
    }
    
    #announce-close:hover {
        background-color: #005fcb;
    }
    
    /* 遮罩层样式 */
    .announce-overlay {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0, 0, 0, 0.5);
        z-index: 10000;
        display: none;
    }
    

    js/announce.js

    jQuery(document).ready(function($) {
        // 检查本地存储中的 acknowledge 记录
        if (!localStorage.getItem('announce_acknowledged')) {
            $('#announce-popup').fadeIn(); // 显示弹窗
            $('#announce-overlay').fadeIn(); // 显示遮罩层
        }
    
        // 处理 "已知晓" 按钮的点击事件
        $('#announce-close').on('click', function() {
            $('#announce-popup').fadeOut(); // 隐藏弹窗
            $('#announce-overlay').fadeOut(); // 隐藏遮罩层
            localStorage.setItem('announce_acknowledged', 'true'); // 设置 acknowledge 记录
        });
    });
    
  • VuePress —— 全流程建立博客的另一灾备方案

    VuePress —— 全流程建立博客的另一灾备方案

    Another disaster recovery plan for the blog: VuePress. I want to share VuePress programing experience.

    为什么要做这一方案?

    作为站长的我们首先要确保博客业务的连续性,还有文章等数据的备份。次之还有备份站运营成本上的考虑,其中本站采用的是知名的WordPress程序,在Docker容器中运行,虽然说容器本身迁移方便,但是如果这台VPS一时出问题了,那么还是要买且迁移到新的VPS来,对于维护成本来说还是有点高的。

    而且现在的Serverless开发平台(也就是vercel、netlify、zeabur)免费计划中跑VuePress静态站点绰绰有余,然后静态站前端代码从GitHub 仓库里抓取,每次我们对博客的修改,从本地git到仓库中,然后触发Serverless的重新构建机制,域名的话可以用*.eu.org,这样整套流程下来没有💴上的成本,且网站都在国外也不会因国内原因导致无法访问甚至封禁,本地也保存了网站的数据。

    写在建站前你必须要的

    1. 基本的电脑操作知识(知道怎么装软件,知道怎么复制粘贴,会用代码编辑器的基本功能即可)
    2. 有个合适的国外proxy,Watt Toolkit中也有免费的Github加速选项可以试试
    3. 有Github账号(新手注册登录即可)
    4. 合适的翻译工具,最好支持截图翻译
    5. 会写MarkDown文件
    6. 一个能随时回答你发的问题的AI,如kimi.ai

    具体实现流程

    1、NodeJS环境部署

    NodeJS的版本不建议太高,优先选择LTS(长期支持版本),博主选用的是v18.20.4(LTS x64)

    【挂proxy】官网下载:https://nodejs.org/dist/v18.20.4/node-v18.20.4-x64.msi
    中文镜像站:https://npmmirror.com/mirrors/node/v18.20.4/node-v18.20.4-x64.msi

    直接默认安装位置即可,NodeJS程序本身只有几十MB。在安装过程到 tools for native modules 步骤的时候,不要勾选,然后下一步直到安装完成即可,安装完后还需重启系统。

    检查版本,【Win+R快捷键输入cmd调出终端】

    node -v   #开头是node,不是nodejs!

    出现v18.20.4即安装成功。

    本篇我们采用npx安装,类似于npm,它们都是NodeJS里预置的软件包管理器。什么意思倒不用在意,只是知道它们是指令的开头即可。

    然后为了后续的访问速度还要换镜像源:https://nibbles.cyou/shift-source.html

    2、VuePress 安装

    博主选择的是带主题的vuepress-recohttps://theme-reco.vuejs.press/

    打开cmd

    创建一个文件夹(这路径上不能有中文)并让cmd执行路径指向此处:

    法一【Win11/10】:找到系统自带的“终端”软件,在设置中更改默认为cmd,然后直接在文件夹里右键,选择“在终端中打开”。若没有可以去Microsoft Store里下载“终端”这个软件。

    法二【更简单】:更改路径栏为cmd,则打开的cmd直接就指向这个路径了。

    npx命令安装并初始化

    文档里,revili可视化搭建部署起来还是会有点问题。所以直接用下面的一行命令(npx开头的)

    # 初始化,并选择 2.x
    npx @vuepress-reco/theme-cli init

    输入后待其下载完后会进入初始化选项

    第一问中:新的目录指的是在cmd指向的文件夹下再新建一个文件夹。(Y/n),若是的话需要先开大写锁定(键盘上的capslock)后打y,若不是就n。一般情况下空文件夹里创建此项目可以直接n。

    除了最后一个问题和第一个问题,其他均可后期更改 config.ts 里的配置改变。

    3、配置VuePress-reco主题

    准备工作与层级关系

    我喜欢用WebStorm来改配置,当然你使用VSCode也行,不过最好不要用“记事本”!

    为了让我们的网站在更改后能及时看到,可以先dev运行下。在编辑器里打开文件夹后,打开 package.json 即可看到运行的按钮:

    初次运行成功时候,看到下方的编辑器内置的终端窗口中会弹出两个链接:

    Local所指的是只能本地电脑访问的,
    Network所指的是指内网里的设备都可以访问的,但外网无法访问。

    改配置的时候,建议把浏览器窗口和编辑器窗口精简化,并排成两列的布局

    要更改的地方配置文件
    公告侧边弹窗config.ts 45行-98行bulletin
    首页模块及内容README.md Frontmatter
    首页顶部导航栏config.ts 33行-44行navbar
    网站logo和作者头像.vuepress/public 替换同名文件,logo.pnghead.png
    首页右上角固定的Github地址指向config.ts 第16行docsRepo

    这里只是一部分常用的需要改的地方

    ⭐ 配置文件更改时候最重要的是: 注意层级 !让我们解析一下config.ts的前半段:

    各种不同颜色的圈圈,同样的颜色代表此为成对出现的。

    值得一提的是,作者在原文档中部分的冒号为全角的冒号,他是打错了,但该配置的时候大家要认清并改过来哦! 半角就是英文输入法下输入的,全角是中文输入法下的。半角: ,全角比较紧凑要改!

    尽量各条语句之间开头对齐,用缩进清晰明了地展示层级关系。

    能改的仅有引号内的内容,若要删去或者添加需要按照格式整对注释或添加,有的参数不用的可以移到注释里。快速注释方法:【CTRL+/】

    参数名称一般对应着这东西到底是用来干嘛的,可以借助截图翻译软件通过单词意思来填上合适的内容。

    MarkDown中的Frontmatter

    Frontmatter即是MarkDown文件中被两行 --- 括起来的部分

    文档中关于Frontmatter首页设置:https://theme-reco.vuejs.press/docs/theme/frontmatter-home.html

    也是要按照格式一个个填,不过没有了引号和,结尾,但是一定要注意缩进。文档页面中最后有全部都应用上去的示例,可以先全部复制上,然后再删改。

    注意,Frontmatter是会被主题解析的,各部分参数会显示到指定位置。—框起来以外的位置就是README.md的正文了,也就是MdContent module显示在首页上的内容。

    4、Vite生成静态网页目录

    点击此按钮开始build静态文件,当终端出现绿色的done的字样即代表生成完毕。(VSCode类似)

    生成到了 .vuepress/dist 这个目录下面。

    注意,每次更改(比如加文章、改样式)都需要重新生成一遍!

    5、上传到Github

    为了我们后续部署到Serverless平台,所以此处我们先利用Git上传到Github上。

    Git官网下载:https://github.com/git-for-windows/git/releases/download/v2.46.0.windows.1/Git-2.46.0-64-bit.exe 安装过程直接一路下一步下去。

    Github上创建一个new repository:https://github.com/new ,并对此命名,然后Create repository确认创建。新创建的里面不会有什么东西,但给了git的代码教程:

    Git要加速使用系统proxy的话可以看:https://nibbles.cyou/shift-source.html

    如果你不太想输入很多命令的话(看着不多,其实后面git add的时候需要加很多文件),可以试下Github Desktop,安装后登录账号密码,然后把仓库拉取到本地并作为同步文件夹。

    之后把整个项目文件夹(不只是.vuepress)全部拖到同步文件夹中让客户端上传上去。在提交的时候需要自己写一点commit日志,比如如上的first commit。

    以后每次只要网页目录有变动,就及时使用git或Github Desktop上传。

    6、部署到zeabur

    zeabur:https://zeabur.com

    邮箱注册后会发送登陆链接到你的邮箱,从邮件中的链接进去即是后台。

    创建项目→新建服务→Github(从Github仓库部署)→选择刚创建的存网页的仓库

    然后趁机还没运行完毕,下拉找到设置→根目录,修改为/.vuepress/dist

    回到上面”重新部署“,等待片刻,当出现运行中并有绿点则代表部署成功。

    如果需要测试访问,可以直接使用一个zeabur.app的二级域名:下拉,网络→公开→生成域名→填入你喜欢的前缀,稍等下就可以使用 填的前缀.zeabur.app 来访问了。

    7、免费域名eu.org

    免费获取 EU.org 顶级域名丨岚天小窝

    https://blog.ltya.top/posts/eu-org.shtml

    更改为自己申请到的eu.org域名:下拉,网络→公开→自定义域名→到解析服务那里CNAME解析,如下

    稍等片刻,即可直接访问了~


    看到这里的你应该能手搓出一个VuePress的站点了吧~ 还有问题的话不妨问问AI哦。

    既然有了自己的站点,那就努力更新内容吧!

  • 换源代码汇总

    换源代码汇总

    引言

    博主最近在折腾一个静态博客,使用vuepress-reco驱动,中途有网络问题遇到了很多麻烦,这里特别写一篇文章提醒自己以后在环境搭建的过程中还要对包管理器全局换源。初始操作中不仅是换源,还有git传输网络自动走系统proxy的代码,我也一并放在本文中。

    代码

    博主所用的开发环境如下:

    >node -v
    v18.20.4
    
    >npm -v
    10.7.0
    
    >pnpm -v
    9.7.1
    
    >yarn -v
    1.22.22
    

    换源命令通用格式

    淘宝源域名已经变更了,不过填原来的域名也没啥影响,但建议尽快改为新域名!
    https://registry.npm.taobao.org => https://registry.npmmirror.com

    修改源:

    <npm|pnpm|yarn> config set registry https://registry.npm.taobao.org

    检查配置:

    <npm|pnpm|yarn> config get registry

    实际输入命令的时候<>不用加,选一个在括号里的就好

    Git跟随系统Proxy

    上传到GitHub的时候,都是timeout的报错,那么在不修改超时时间的情况下,一条命令把传输自动跟随系统的proxy:

    git config --global core.gitProxy "auto"
  • C语言初入门 —— 基础的杂记

    C语言初入门 —— 基础的杂记

    当你开始学其他语言,回头看Python。你会对Python之禅中“简单优于复杂”有所体会,Python太简洁了😂

    我目前是暑假自学状态,所以本笔记是融合了国际知名的《Harvard CS50x》和国内b站的《鹏哥C语言》。和以前学的Python有些结构重合的部分我就不再提了,文中有的会有些许疑问,我还在学习,若有记得不对的可以提出来哈~

    CS50x:写程序更关注于自己的想法,以及实现需要的函数、条件、循环、变量。

    C语言学习笔记

    //头文件:引入标准输入输出库stdio是缩写,不要拼成studio!
    #include <stdio.h>

    C语言中的变量要先声明变量类型

    main函数是程序的入口 ,C语言程序是从main函数的第一行开始执行。且一个项目中只能有一个main(),一个项目不代表一个文件。

    printf("填入占位符\n", 占位符要代表的)
     //%c,%f,%s,%d这类是占位符。当然也可以直接用。
    

    语言的char单字符数字类型,应当用单引号括住单字符,双引号可以用于字符串(或零字符的字符串)

    字符的本质就是ASCII编码。

    printf("%c\n",'a');
    printf("%c\n",97);//两者输出结果相同
    

    C语言字符串中个特殊的知识,就是在字符串的末尾隐藏放着一这个\0字符是字符串的结束标志。 所以打印函数或者计算字符串长度strlen()的函数会在遇到此字符后停止打印或计算。 观察方法:F10+调试-窗口-监视,填入字符串并展开即可看到。 没有\0字符的情况有可能使用了字符数组

    char arr[] = {'a','b','c','d','e','f'};
    printf("%s\n",arr);
    //但是输出就会没有终止,往往打印的时候后面会尾随乱码。为了避免这种情况,在字符数组后要自己手动添加\0
    char arr[] = {'a','b','c','d','e','f','\0'};

    strlen()string.h的库函数(需要include),统计的就是\0前的字符个数(不计\0本身) 函数本身返回的是size_t类型的,所以占位符最好换成%zd

    C语言中的switch也是代表选择结构的关键字之一

    C语言中还有do while循环

    转向语句:break语句、goto语句、continue语句、return语句

    行内注释用//,多行的要用/* */

    PythonC
    elifelse if
    or||
    and&&
    i+=1 / i-=1可用左边的形式,
    但若每次都加1则可表达为i++ / i–

    C语言的各种数据类型都有自己的长度,计算操作符数用sizeof(),其返回C语言规定是只能是无符号整数(0和正整数),为了统一各系统返回值类型,定义了 size_t 类型来表示,故没有规定具体的类型:unsigned intunsigned long long等。括号内如果放的是表达式,则不会真实地计算。

    signed和unsigned:sign能表示正负数,unsign即无符号

    char不确定是否有无符号,取决于编译器的实现。大部分的情况char == unsigned char

    int默认是signed,且打印的占位符为%d。(unsigned打印占位符为%u)

    数据类型——模具 ,C语言中变量需要声明数据类型,若有给初始值的过程即初始化。无初始化的话不能让你用。已有初始化后又给值那就叫赋值。

    float num = 3.14f;

    全局变量在花括号外,局部变量在花括号内,局部值优先。

    除号 / 两端都是整数,即为整数除法(且结果也为整数-只有整数部分丢弃小数部分)

    负数取模的规则是,结果的正负号由第一个运算数的正负号决定

    连续赋值,从右往左赋

    单目操作符(++,–等),之前讲的符号中两边都要跟东西的是双目操作符

    环境配置

    《鹏哥C语言》中是用VS2022来教学的,还有关于scanf()函数的配置问题,我写到Gitee Wiki中了。

    but,我要强推CS50x课程对教学用IDE的解决方案!
    (国外的讲师深知教学应该更重于idea和实现的代码,而非前期的繁杂的环境配置)

    课程中使用了远程VSCode作为编辑器,并且云端已经全部搭建好C语言的环境了,开箱即用!
    这样的CodeSpace可以通过Github登录授权后拥有:https://cs50.dev
    (至于速度的话,你都能流畅在YouTube上看课了,同样网络环境下打开这链接,速度还是快的)

    对于编译的操作还简化了很多,编译一个hello.c只需下面两条命令

    make hello
    ./hello

    (后面课程Arrays中介绍了make实际上是clang的自动执行脚本,笔记)

    同时侧边栏安装了一个图标是一个爱quack叫的吉祥物鸭子的插件,点开一看,是个免费的AIChat!
    不过,它的回答只能是英文的哦~ 基本上是能看懂滴

    如下,这只鸭子的回答真的很喜欢quack🦆,也有可以在线使用的地方:https://cs50.ai/chat

    还有安装Docker,也许后面的课程还会教项目的上线吧。

  • 【杂谈】真的需要系统地学那么多编程语言吗?

    我目前是个准大一,专业为计算机类(待分流)。

    你看,

    大学课程学的是C语言,打竞赛学的是C++,为了找工作学Java。

    这三门语言每一门的不论是系统课程还是成套书籍,真的很多很多,真的有必要投入很大时间到这个上面去系统学习每门语言吗?

    况且,

    AI时代的来临,AI可以开始教你写代码了,那哼哧哼哧学的传统系统课程是不是就没啥必要了呢?

    AI的教法直接是以你的目的需求为导向,而系统课程是全方位的考虑到各种需求的人群。

    所以,谁能指条明路呀?