阅读视图

Git命令汇总

前言

单纯的对一些经常用的 git 命令进行总结,方便以后查询使用,没啥营养

1. 基础

git add          # 提交到 暂存区
git commit -m "commnet"    # 提交到 版本库
git branch -M main # 重新命名分支
git remote add origin # 添加远程仓库
git pull origin master # 从名为 origin 的远程仓库的 master 分支拉取最新的提交,并将其合并到当前分支
git push origin main   # 将本地仓库的文件push到远程仓库(若 push 不成功,可加 -f 进行强推操作)
git diff read.txt # 查看文件变化

2. 版本回退

git reset --hard HEAD^ # 恢复到上一个版本
git reset --hard HEAD~10 # 恢复到网上10个版本
git reset --hard commitID # 恢复到指定commit版本

3. 撤销修改

git restore  # 工作区
git restore --staged  # 暂存区,工作区需要执行上一步 add
git reset --hard HEAD^ # 工作区、暂存区、本地仓库都回退 commit

4. 删除文件

rm file
git add file
git commit -m ""

5. 分支操作

git branch test # 创建分支 test
git branch # 查看当前分支
git switch -c test # 创建test分支,然后切换到test分支 git branch test git checkout test
git switch master # 切换
git merge test # 合并指定分支到当前分支
git merge --no-ff -m "no-ff" test # 禁用快进(fast-forward)合并,强制创建一个新的合并提交
git branch -d test # 删除分支
git branch -D test # 强制删除
git log --graph # 查看分支合并图

6. 保存和恢复

git stash save "Your stash message" # 保存工作进度
git stash list # 查看 stash 列表
git stash apply [] # 应用
git stash drop [] # 删除
git stash pop [] # 应用并删除
git cherry-pick # 将一个或多个提交从一个分支应用到另一个分支

7. 多人协作

git remote -v # 查看远程库的信息
git switch -c dev origin/dev # 本地创建一个新分支 dev,并将其设置为跟踪远程仓origin/dev 分支
git branch -u origin/dev dev # 本地分支 dev 设置为跟踪远程仓库的 origin/dev 分支
git push origin master   # 将本地仓库文件push到远程(若push不成功,可加-f进行强推)
git pull origin master # 从远程仓库origin的master分支拉取最新提交,并将其合并到当前分支
git rebase # 把本地未push的分叉提交历史整理成直线

8. 标签

标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
git tag v1.0 # 打一个新标签V1.0,默认是打在最新提交的commit上
git log --pretty=oneline --abbrev-commit # 每一行包含了一个提交的简略哈希和提交信息
git tag v0.9 f52c633 # 在特点commit上打标签
git tag -a v0.1 -m "v0.1 released" 1094adb # 创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag # 查看所有标签
git show v0.9 # 查看标签信息,标签不是按时间顺序列出,而是按字母排序
git tag -d v0.1 # 删除标签
git push origin v1.0 # 推送标签到远程
git push origin --tags # 一次性推送全部尚未推送到远程的本地标签
git push origin -d tag tagName # 删除一个远程标签
git ls-remote --tags origin # 查看删除远程tags执行效果
  •  

讯飞免费星火大模型部署教程

前言

发现两个多月没写文章了,不过考试月也没啥好写的。
最近大模型这么火,正好有个项目用到,于是便水一篇教程吧。
此篇教程为 科大讯飞的星火大模型 部署教程,部署完成后即可与智能助手进行聊天。
这里是关于部署到服务器端,如果有其他需求可以查看官方文档。

大模型简介

**大语言模型** (英语:large language model,LLM) 是一种语言模型,由具有许多参数(通常数十亿个权重或更多)的人工神经网络组成,使用自监督学习半监督学习对大量未标记文本进行训练[[1]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-1)。大型语言模型在2018年左右出现,并在各种任务中表现出色[[2]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-Manning-2022-2)。
尽管这个术语没有正式的定义,但它通常指的是参数数量在数十亿或更多数量级的深度学习模型[[3]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-extracting-3)。大型语言模型是通用的模型,在广泛的任务中表现出色,而不是针对一项特定任务(例如情感分析、命名实体识别或数学推理)进行训练[[2]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-Manning-2022-2)。
尽管在预测句子中的下一个单词等简单任务上接受过训练,但发现具有足够训练和参数计数的神经语言模型可以捕获人类语言的大部分句法和语义。 此外大型语言模型展示了相当多的关于世界的常识,并且能够在训练期间“记住”大量事实[[2]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-Manning-2022-2)。
参考资料:llm - 搜索 (wikipedia.org)

部署

API领取

首先前往科大讯飞的星火大模型官网 讯飞星火认知大模型-AI大语言模型-星火大模型-科大讯飞 (xfyun.cn)
进行注册,然后领取大模型的API

这里选择 API免费试用 ,然后进入如下页面

选择第一个 个人免费包免费试用 。等到领取成功后,后台会有如下界面

这里的 APPIDAPISecretAPIKey 就是接口信息,后面会用到。

Linux SDK 下载

进入上面页面后,点击 Linux SDK 右边的下载按钮。将会下载SDK包,感兴趣的也可以点击文档查看使用教程
下载完成后传到服务器,使用解压命令解压包

unzip Spark3.0\_Linux\_SDK\_v1.1.zip

然后进入解压出来的包 Spark3.0\_Linux\_SDK\_v1.1 , 里面应该包含如下文件

root@echofree:/opt# cd Spark3.0\_Linux\_SDK\_v1.1/
root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ls
build include lib src

动态库配置

进入 lib 目录,里面会有一个相关的调用库

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# cd lib/
root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1/lib# ls
libSparkChain.so

这里为了方便点,直接采用暴力方法,将库文件 libSparkChain.so 复制到 /usr/lib

cp libSparkChain.so /usr/lib

API接口配置

进入 src 目录,会有一个 demo.cpp 文件,进入此文件,修改如下信息

int initSDK()
{
// 全局初始化
SparkChainConfig \*config = SparkChainConfig::builder();
config->appID("appID") // 你的appid
->apiKey("apiKey") // 你的apikey
->apiSecret("apiSecret"); // 你的apisecret
// ->logLevel(0)
// ->logPath("./aikit.log");
int ret = SparkChain::init(config);
printf(RED "\ninit SparkChain result:%d" RESET,ret);
return ret;
}

将这里的 三个API配置信息改为自己的即可。

demo测试

配置完成后就要测试连接了,使用 GNU 编译套件进行编译,命令如下

g++ -Iinclude src/demo.cpp -o demo -lSparkChain -lstdc++ -lpthread

如果你会 Makefile 的话,也可以复制下面的进行编译

CC = g++
CFLAGS = -Iinclude
LIBS = -lSparkChain -lstdc++ -lpthread
SRC = src/server.cpp
OUTPUT = demo
all: $(OUTPUT)
$(OUTPUT): $(SRC)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
clean:
rm -f $(OUTPUT)

如果一切正常,文件夹下会生成一个可执行文件 demo

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ls
build demo files include lib src

运行看看

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ./demo
######### llm Demo #########
init SparkChain result:0
######### 同步调用 #########
syncOutput: assistant:Hello
syncOutput: assistant:こんにちは
######### 异步调用 #########
0:assistant:Hello:myContext
2:assistant::myContext
tokens:1 + 5 = 6
0:assistant:こ:myContext
1:assistant:んに:myContext
1:assistant:ちは (:myContext
1:assistant:Konnichi:myContext
2:assistant:wa):myContext
tokens:12 + 10 = 22

很好,配置完成!

加点互动

下面就要给他加互动功能了,毕竟大模型不能进行交互聊天,那还要他做什么
修改 demo.cpp 文件,内容如下

记得修改下 API信息哦
#include "../include/sparkchain.h"
#include
#include
#include
#include
#include
#define GREEN "\033[32m"
#define YELLOW "\033[33m"
#define RED "\033[31m"
#define RESET "\033[0m"
using namespace SparkChain;
using namespace std;
// async status tag
static atomic\_bool finish(false);
// result cache
string final\_result = "";
class SparkCallbacks : public LLMCallbacks
{
void onLLMResult(LLMResult \*result, void \*usrContext)
{
int status = result->getStatus();
printf(GREEN "%d:%s:%s:%s \n" RESET, status, result->getRole(), result->getContent(), usrContext);
final\_result += string(result->getContent());
if (status == 2)
{
printf(GREEN "tokens:%d + %d = %d\n" RESET, result->getCompletionTokens(), result->getPromptTokens(), result->getTotalTokens());
finish = true;
}
}
void onLLMEvent(LLMEvent \*event, void \*usrContext)
{
printf(YELLOW "onLLMEventCB\n eventID:%d eventMsg:%s\n" RESET, event->getEventID(), event->getEventMsg());
}
void onLLMError(LLMError \*error, void \*usrContext)
{
printf(RED "onLLMErrorCB\n errCode:%d errMsg:%s \n" RESET, error->getErrCode(), error->getErrMsg());
finish = true;
}
};
int initSDK()
{
// 全局初始化
SparkChainConfig \*config = SparkChainConfig::builder();
config->appID("appID") // 你的appid
->apiKey("apiKey") // 你的apikey
->apiSecret("apiSecret"); // 你的apisecret
// ->logLevel(0)
// ->logPath("./aikit.log");
int ret = SparkChain::init(config);
printf(RED "\ninit SparkChain result:%d" RESET,ret);
return ret;
}
void syncLLMTest()
{
cout << "\n######### 同步调用 #########" << endl;
// 配置大模型参数
LLMConfig \*llmConfig = LLMConfig::builder();
llmConfig->domain("generalv3");
llmConfig->url("ws(s)://spark-api.xf-yun.com/v3.1/chat");
Memory\* window\_memory = Memory::WindowMemory(5);
LLM \*syncllm = LLM::create(llmConfig, window\_memory);
// Memory\* token\_memory = Memory::TokenMemory(500);
// LLM \*syncllm = LLM::create(llmConfig,token\_memory);
int i = 0;
//const char\* input = "";
while (1)
{
char input[256]; // 定义一个足够大的字符数组来接收用户输入
printf("请输入问题 (输入 'q' 退出):");
scanf("%s", input);
if (strcmp(input, "q") == 0) {
break; // 如果输入是 'q',则退出循环
}
// 同步请求
LLMSyncOutput \*result = syncllm->run(input);
if (result->getErrCode() != 0)
{
printf(RED "\nsyncOutput: %d:%s\n\n" RESET, result->getErrCode(), result->getErrMsg());
continue;
}
else
{
printf(GREEN "\nsyncOutput: %s:%s\n" RESET, result->getRole(), result->getContent());
}
}
// 垃圾回收
if (syncllm != nullptr)
{
LLM::destroy(syncllm);
}
}
void uninitSDK()
{
// 全局逆初始化
SparkChain::unInit();
}
int main(int argc, char const \*argv[])
{
cout << "\n######### llm Demo #########" << endl;
// 全局初始化
int ret = initSDK();
if (ret != 0)
{
cout << "initSDK failed:" << ret << endl;
return -1;
}
syncLLMTest(); // 同步调用
// 退出
uninitSDK();
return 0;
}

如果你仔细观察,会发现少了一部分代码。
星火大模型的接口调用给了两种方式,一种是同步,一种是异步

这里我用的是同步,所有文字都输出完,才会打印在终端。
正常的大模型,应该都是异步调用,即慢慢打印出来,这里留给读者自己修改了。
下面看下运行效果

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ./demo
######### llm Demo #########
init SparkChain result:0
######### 同步调用 #########
请输入问题 (输入 'q' 退出):徐州天气怎么样
syncOutput: assistant:今天徐州市的天气是多云,气温在3℃到11℃之间,有点冷。东风4-5级,湿度为53%。空气质量良好,PM2.5指数为60。在这样的天气条件下,适宜旅游、钓鱼和户外运动,但要注意保暖。同时,感冒较易发生,请注意保持干净整洁的环境和清新流通的空气。
请输入问题 (输入 'q' 退出):你是什么
syncOutput: assistant:您好,我是科大讯飞研发的认知智能大模型,我的名字叫讯飞星火认知大模型。我可以和人类进行自然交流,解答问题,高效完成各领域认知智能需求。
请输入问题 (输入 'q' 退出):q
root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1#

效果还是不错的。

整点花活

既然一切都配置ok了,那肯定得进行应用开发了,这里来个小demo

这里是使用 Qt 开发的一个非常质朴的聊天界面,也就是开头所说的项目中正好用到大模型的地方。由于时间紧张,技术能力有限,就直接搬上去了。
具体原理就是使用 Linux的 socket多线程 与界面进行通信。服务器端负责接收客户端的信息并进行回复。

后续

由于技术有限,并且考试月繁忙,等到有空闲时间了,再写个单独的交互界面。

  •  

九月

九月小记

糊弄着,糊弄着,开学已经一个月了。
看着还差两条数量就要追上文章数的 碎碎念 ,我觉得不能摆烂下去了。
不过写文章是真的费时间,除非是学习笔记,直接上传发布,可惜最近没啥笔记,就算有,也没有啥价值。emm,文章也没啥价值,不过最起码以后还能看看,回忆下(如果博客继续存在下去)。
所以,我做了一个......的决定,水篇文章,hh

大三

虽然现在已经大三了,但是还是像打车一样,在生活的旅途中,找不到自己的定位。
开学时踌躇满志,想要好好拼搏下,可惜药效不够,过几天就原形毕现了,实在是不知道做什么。不是事情太少,无事可做,而是事情一大堆,找不清主线了。就像打剧情游戏一样,一堆游戏线路需要去做。不过游戏还好,最起码给你标了主线,给了指引和线索。
好在没过几天,全国计算机等级考试来了,索性报了个三级。明知就业没啥用,但还是报了。还记得之前学院开会,统计二级证书人数,结果寥寥无几,于是便让我们去报名考试。
网上搜寻一番,发现都说网络技术简单,便火速下单了未来教育的习题。之前的二级考试,因为太过简单,直接白嫖学姐用过的。这次好歹是三级,打算认真刷题,好好准备。可惜看了一下,发现基本都是背诵的知识,唯一需要计算的就是ip地址内容了。
这下好了,又没有事情做了,emm,于是买了本《C++ Prime Plus》看看。之前买的《深入理解计算机系统》由于二进制内容对我来说太过枯燥,便舍弃了一会。
于是整个9月都在游戏和书籍中度过。对了,还有实验课。
.jpg)
数电的实验课,线子越插越多,脑子转速越来越慢。好在勉强还能做出来,然后就是万恶的实验报告了。
而且数电老师讲课速度是真的快,短短一个月就讲了一半内容,我是真的赶不上了,还是等考试前突击吧。
.jpg)
实验课下课拍的学长(也可能是学姐)。
除此之外,在连烧了两块开发板后,再次忍痛买了两个ESP32,也终于调库成功,连上了阿里云的物联网平台
**.jpg)**\_

把子肉

疫情过去了,两年没走过的南门也正常开放了。于是下午课上完,便和室友走一公里路,去旁边的万达广场吃把子肉,还有隆江猪脚饭~
.jpg)
虽然这个图片里没有猪脚,也没有把子肉。
.jpg)
从室友那偷的学校晚霞图,当时正好下课,准备出去吃一顿,然后走回学校,也是很惬意的。毕竟人生偷得几时闲。

三级考试

在考试的前一晚,学校在操场举行了迎新晚会,哈哈,没办法,太穷了,555
.jpg)
人倒是挺多的,他们拍表演,我只能拍个手机。

第二天考试,梦回我多年未见的母校
之间还有个小插曲。由于学校不开设考试点(狠狠表扬了),于是只能报名矿大了~
.jpg)
.jpg)
.jpg)
矿大,嗯,很大,哈哈。有山有水有树林,风景很美,可惜没吃到矿大的饭。
还记得上次蓝桥杯也是在这考的,当时做了好长时间,可惜没出好成绩,考完心情也不咋地。这次三级就不一样了,果然如预料的一样,非常简单,考试前一星期背背题就行了。
也不知道下次四级报不报。想报软考,可惜11月就考了,时间来不及了。至于教资考试,已经过去了,而且也从来没想过。
考完试的晚上,也就是昨晚,顺便买了杯茶百道犒劳下自己(虽然没动啥脑子)
.jpg)
一个小彩蛋。才发现茶百道的包装纸有学校的曲艺团标志,哈哈。
突然想起了之前友链里看过的一篇文章,有关奶茶的,在这推荐下:[饮者杂记(Ⅰ) - 庭院一角
(harrypan.cn)](https://www.harrypan.cn/index.php/archives/328/)
虽然作为店员的我自然要满足顾客的需求,然而我内心中则是十分认同清玉的那个搞怪广告:“调你妈,黄金比例最好喝!” 都买奶茶了,还要想东想西,瞻前顾后,连片刻的休憩都要充满对身材和健康的焦虑。 ———— 此文摘抄

秋招

离毕业也快了,看了下牛客秋招,发现是诸神之战,hc越来越少,简历越来越多。
.jpeg)
连全国城镇调查失业率都暂停发布了,233,还能咋办呢,对吧
国家统计局:8月起,全国青年人等分年龄段的城镇调查失业率将暂停发布*新闻频道*央视网(cctv.com)
.jpg)
这里又想推荐一篇友链的相关文章了:对当下高等教育的一点思考 – Abin的个人博客-爱上小树枝 (xiaoshuzhi.love)
至于考研,只能说缓解就业了,而且还不一定能考上。在这学历贬值的时代,考研的人数已经到达了450万了。
当然了,还有考公,也是千军万马,不容易。
不过也不能这么悲观,还是得发现生活的美好的一面。

  •  

外设篇01:那些年用过的键盘

前言

转眼已经大三了,也买了四个键盘,谁让我喜欢电子产品呢。除此之外,天天敲代码,对键盘使用度极高。
换句话说,键盘已经替代了高中的黑笔,成为了我新的实现理想的工具。于是趁着开学之际,便想写篇文章介绍下用过的几种键盘。

1. 达尔优EK815


高中毕业的暑假,对于电脑以及外设还处于一问三不知的状态,在知乎搜了几篇文章,只知道买这些东西走京东自营店比较好,于是便下载了京东(京东快打钱)。
当时在京东的键盘销售榜上,这个键盘,也就是 达尔优EK815机械合金版,好像排在了第一名,而且价格也挺便宜的,149
元,有着可调的RGB灯光,还是机械的,对那时候没有接触过键盘的我来说,十分具有吸引力,于是光速下单买了蓝白色。
与此同时,也买了第一个steam游戏,战地5,整个暑假都在这个游戏中度过。虽然每次都被打成薯条,但也不亦乐乎。
还有一点是,用这个键盘的人太多了,高中同学就有几个撞了。

2. 黑峡谷X3Pro



到了大一暑假,经历一个学年的洗礼,对键盘的知识也增加了不少,于是开始寻找更高配置的键盘。
因为第一个键盘是有线的,有时候使用起来极其不方便,这次便想买个三模的。经过多次搜寻,最终目光落在了两款键盘上:RK98黑峡谷X3Pro。到了最后还是买了黑峡谷的
黑森林慕斯色
没办法,黑白色对我的吸引力还是很大的,还送了个掌托(虽然从来没用过)。选定的轴体为流沙金,价格
389,还是很贵的,不过体验感完虐之前的达尔优,果然是一分钱一分货。后来又发现隔壁宿舍两个和我一样的,哈哈,这个键盘销量也挺高的。
不过很气人的是,今年暑假直接降价了100,虽然电子产品是理财产品,但还是很离谱。

3. 华为蓝牙键盘


这款小键盘则是从舍友那收过来的,因为有时候需要便携操作,正好有个平板,缺个小键盘,于是打个折,花费了 111.11 大洋买了下来。
虽然想法很不错,不过用的时间几乎可以不计,一般当个备用键盘或者静音键盘使用。

4. Cherry KC1000


55元 极致性价比,一款非常经典的薄膜键盘。因为之前的黑峡谷声音有点大,所以开学就买了这个,切换着用。
使用手感和学校机房的已经沾满油的薄膜键盘基本一样,声音很小,不过如果快速敲代码声音还是有点大的。
相比于这个,我还是更喜欢没有小数字的87键,打字速度更快,但也失去了双人4399的快乐~

总结

总的来说,黑峡谷的X3Pro是我用的最舒服的一个。
Cherry的薄膜键盘由于刚到,还没有捂热,而且87键机械键盘用惯了,导致手感不是很好。
华为的蓝牙键盘比较小巧,适合平板办公。
至于达尔优那款,如果经费有限,又想体验RGB+机械轴,那么可以一试。

  •  

RSS阅读器安利:Fluent Reader

前言

由于之前在网上搜寻到RSS订阅工具都差强人意,今天闲来无事,偶然发现了一款颜值非常高的开源免费RSS订阅器:Fluent Reader , 于是便想写一篇文章安利下
如果想要使用,微软商店直接搜索下载即可,也可以前往 GitHub 上下载,此仓库包含了APP端软件包
至于更多RSS订阅源可跳转相关链接处

RSS 介绍

RSS(Really Simple Syndication,真正简单的分发)是一种用于发布和订阅网站内容的数据格式和协议。它通过简单的 XML 格式来传递网站的文章、新闻、博客等信息,允许用户通过订阅器(RSS
Reader)获取网站内容的最新更新,而无需直接访问网站。
RSS 最早出现在 1999 年,由 Netscape 公司创立。随后,RSS 标准逐渐发展,演变为不同的版本和格式。常见的 RSS 版本包括 RSS 0.9x、RSS 1.0、RSS 2.0 和 Atom 等。
RSS 的工作原理如下:

  1. 网站创建并维护 RSS 文件:网站管理员会将网站的文章、新闻、博客等内容整理成 XML 格式的 RSS 文件,并将其发布在网站的特定位置,通常是一个预定义的 RSS Feed URL。
  2. 用户使用订阅器订阅 RSS Feed:用户可以使用 RSS 订阅器(也称为 RSS Reader 或 Feed Reader)来订阅感兴趣的网站的 RSS Feed。订阅器会定期检查订阅的 RSS
    Feed,以获取其中的更新。
  3. 订阅器获取更新:当订阅的网站有新的文章或内容发布时,RSS Feed 文件会被更新。订阅器会检测到这些更新,并将最新的内容显示在用户的订阅列表中。
    RSS 的优点包括:
    * 方便获取信息:用户可以一站式地收集和查看多个网站的内容更新,无需频繁访问每个网站。
    * 自动化更新:订阅器会定期检查更新,用户不需要手动去查看是否有新的内容发布。
    * 隐私保护:RSS 订阅不需要提供个人信息,保护用户的隐私。
    随着社交媒体和其他内容分发平台的兴起,RSS 的使用逐渐减少。然而,RSS 仍然被许多网站和博客用于提供内容更新,并且一些专门的订阅器应用程序仍然广泛使用,满足了一部分用户对于个性化内容订阅的需求。

    软件截图




    相关链接

    GitHub地址:Fluent Reader
    RSS入门指南:高效获取信息,你需要这份 RSS 入门指南 - 少数派 (sspai.com)
    使用体验:Windows平台最美RSS阅读器-Fluent Reader上手体验 - 知乎 (zhihu.com)

    友情提醒:卸载软件时,记得导出相关订阅源进行备份
  •  

Argon主题博客美化

关于新建页面、菜单图标等操作请跳转目录到教程视频~

搭建博客遇到的99.9%问题已经在文档、相关视频以及评论区中给出,一定要认真看文档及视频讲解,不会可以翻评论区

前言

很开心这篇美化文章能够帮助到大家,如果转载请标注原文地址哦,十分感谢!

常言道:工欲善其事必先利其器,在发表文章前,美化博客,使其利于自己的观看与管理极其重要,所以我四处搜寻,得到了以下美化代码。

但是,有时候我们走得太远,会忘了为什么出发。希望阅览本文章的人不要忘记初心,想想一开始为什么搭建博客。我相信大部分朋友都是为了记录自己学习笔记,生活故事。

所以,有时候博客美化过度会适得其反,望各位仔细斟酌,莫要使自己的博客变成了花架子,好的文章才是博客之本,立足之根。

主题资源

链接:https://pan.baidu.com/s/1yyA-m_h_wku7n3qzK-eYEQ?pwd=echo
提取码:echo

1. 我的博客美化 JSON

注意:可复制一键导入

别忘记在主题设置页面修改头像、背景以及底部信息等设置哦(博客背景url已失效,需自己填写)

建议主题设置全局里 CDN 选择不使用或更换为自己的,否则可能出现CSS样式失效
{"argon_theme_color":"#5e72e4","argon_theme_color_hex_preview":"#5e72e4","argon_show_customize_theme_color_picker":true,"argon_enable_immersion_color":"true","argon_darkmode_autoswitch":"time","argon_enable_amoled_dark":"false","argon_card_radius":"15","argon_card_shadow":"default","argon_page_layout":"double","argon_article_list_waterflow":"2","argon_article_list_layout":"1","argon_font":"serif","argon_assets_path":"jsdelivr_fastly","argon_custom_assets_path":"","argon_wp_path":"/","argon_dateformat":"YMD","argon_enable_headroom":"true","argon_toolbar_title":"Echo","argon_toolbar_icon":"","argon_toolbar_icon_link":" ","argon_toolbar_blur":"true","argon_banner_title":"Echo‘s blog","argon_banner_subtitle":"Banner 副标题","argon_banner_size":"fullscreen","argon_page_background_banner_style":"transparent","argon_show_toolbar_mask":true,"argon_banner_background_url":"--bing--","argon_banner_background_color_type":"shape-primary","argon_banner_background_hide_shapes":true,"argon_enable_banner_title_typing_effect":"true","argon_banner_typing_effect_interval":"100","argon_page_background_url":"https://yy.liveout.cn/background/wallhaven-yxjm57_1920x1080.png","argon_page_background_dark_url":"https://yy.liveout.cn/background/wallhaven-6dqjdl_1920x1080.png","argon_page_background_opacity":"1","argon_sidebar_banner_title":"左侧栏标题","argon_sidebar_banner_subtitle":"左侧栏子标题(格言)","argon_sidebar_auther_name":"Echo","argon_sidebar_auther_image":"https://yy.liveout.cn/photo/photo1.png","argon_sidebar_author_description":"左侧栏作者简介","argon_sidebar_announcement":"","argon_fab_show_settings_button":"false","argon_fab_show_darkmode_button":"true","argon_fab_show_gotocomment_button":"false","argon_seo_description":"网站描述 (Description Meta 标签)","argon_seo_keywords":"搜索引擎关键词(Keywords Meta 标签)","argon_article_meta":"time|categories|views","argon_show_readingtime":"true","argon_reading_speed":"580","argon_reading_speed_en":"80","argon_reading_speed_code":"10","argon_show_thumbnail_in_banner_in_content_page":"false","argon_first_image_as_thumbnail_by_default":"true","argon_reference_list_title":"参考","argon_show_sharebtn":"true","argon_show_headindex_number":"false","argon_donate_qrcode_url":"https://www.liveout.cn/wp-content/uploads/2022/10/wechat1.jpg","argon_additional_content_after_post":"文末附加内容","argon_related_post":"category,tag","argon_related_post_sort_orderby":"meta_value_num","argon_related_post_sort_order":"DESC","argon_related_post_limit":"10","argon_article_header_style":"article-header-style-2","argon_outdated_info_time_type":"createdtime","argon_outdated_info_days":"1","argon_outdated_info_tip_type":"inpost","argon_outdated_info_tip_content":"本文最后更新于%modify_date_delta% 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com","argon_archives_timeline_show_month":"true","argon_archives_timeline_url":"https://www.liveout.cn/pigeonhole/","argon_footer_html":"<style>\n/* 核心样式 */\n.github-badge {\ndisplay: inline-block;\nborder-radius: 4px;\ntext-shadow: none;\nfont-size: 13.1px;\ncolor: #fff;\nline-height: 15px;\nmargin-bottom: 5px;\nfont-family: \"Open Sans\", sans-serif;\n}\n.github-badge .badge-subject {\ndisplay: inline-block;\nbackground-color: #4d4d4d;\npadding: 4px 4px 4px 6px;\nborder-top-left-radius: 4px;\nborder-bottom-left-radius: 4px;\nfont-family: \"Open Sans\", sans-serif;\n}\n.github-badge .badge-value {\ndisplay: inline-block;\npadding: 4px 6px 4px 4px;\nborder-top-right-radius: 4px;\nborder-bottom-right-radius: 4px;\nfont-family: \"Open Sans\", sans-serif;\n}\n.github-badge-big {\ndisplay: inline-block;\nborder-radius: 6px;\ntext-shadow: none;\nfont-size: 14.1px;\ncolor: #fff;\nline-height: 18px;\nmargin-bottom: 7px;\n}\n.github-badge-big .badge-subject {\ndisplay: inline-block;\nbackground-color: #4d4d4d;\npadding: 4px 4px 4px 6px;\nborder-top-left-radius: 4px;\nborder-bottom-left-radius: 4px;\n}\n.github-badge-big .badge-value {\ndisplay: inline-block;\npadding: 4px 6px 4px 4px;\nborder-top-right-radius: 4px;\nborder-bottom-right-radius: 4px;\n}\n.bg-orange {\nbackground-color: #ec8a64 !important;\n}\n.bg-red {\nbackground-color: #cb7574 !important;\n}\n.bg-apricots {\nbackground-color: #f7c280 !important;\n}\n.bg-casein {\nbackground-color: #dfe291 !important;\n}\n.bg-shallots {\nbackground-color: #97c3c6 !important;\n}\n.bg-ogling {\nbackground-color: #95c7e0 !important;\n}\n.bg-haze {\nbackground-color: #9aaec7 !important;\n}\n.bg-mountain-terrier {\nbackground-color: #99a5cd !important;\n}\n</style>\n \n<div class=\"github-badge-big\">\n<span class=\"badge-subject\"><i class=\"fa fa-id-card\"></i> 备案号 </span\n><span class=\"badge-value bg-orange\">\n<a href=\"https://beian.miit.gov.cn/\" target=\"_blank\" one-link-mark=\"yes\"\n>苏ICP备0000000000号</a\n>\n|\n<a\nhref=\"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode= 32072202010255\"\ntarget=\"_blank\"\none-link-mark=\"yes\"\n>苏公网安备 00000000000000号</a\n></span\n>\n</div>\n\n \n<div class=\"github-badge\">\n<span class=\"badge-subject\"><img src=\"https://www.liveout.cn/wp-content/uploads/2022/10/又拍云_logo4.png\" height=\"20\" width=\"20\"/></i> CDN</span\n><span class=\"badge-value bg-shallots\"\n><a href=\"\" target=\"_blank\" one-link-mark=\"yes\"></a\n><a\nhref=\"https://www.upyun.com/?utm_source=lianmeng&utm_medium=referral\"\ntarget=\"_blank\"\none-link-mark=\"yes\"\n>Upyun</a\n></span\n>\n<span class=\"badge-subject\"><i class=\"fa fa-wordpress\"></i> Powered</span\n><span class=\"badge-value bg-green\"\n><a href=\"https://cn.wordpress.org/\" target=\"_blank\" one-link-mark=\"yes\"\n>WordPress</a\n></span\n>\n</div>\n<div class=\"github-badge-big\">\n<span class=\"badge-subject\">Copyright </span\n><span class=\"badge-value bg-red\">\n2022-2022\n<i class=\"fa fa-copyright\"></i> Echo</span\n>\n</script>\n</div>\n<div class=\"github-badge-big\">\n<span class=\"badge-subject\"><i class=\"fa fa-clock-o\"></i> Running Time</span\n><span class=\"badge-value bg-apricots\"\n><span id=\"blog_running_days\" class=\"odometer odometer-auto-theme\"></span>\ndays\n<span id=\"blog_running_hours\" class=\"odometer odometer-auto-theme\"></span> H\n<span id=\"blog_running_mins\" class=\"odometer odometer-auto-theme\"></span> M\n<span id=\"blog_running_secs\" class=\"odometer odometer-auto-theme\"></span>\nS</span\n>\n <script no-pjax=\"\">\nvar blog_running_days = document.getElementById(\"blog_running_days\");\nvar blog_running_hours = document.getElementById(\"blog_running_hours\");\nvar blog_running_mins = document.getElementById(\"blog_running_mins\");\nvar blog_running_secs = document.getElementById(\"blog_running_secs\");\nfunction refresh_blog_running_time() {\nvar time = new Date() - new Date(2020, 0,0, 0, 0, 0);\nvar d = parseInt(time / 24 / 60 / 60 / 1000);\nvar h = parseInt((time % (24 * 60 * 60 * 1000)) / 60 / 60 / 1000);\nvar m = parseInt((time % (60 * 60 * 1000)) / 60 / 1000);\nvar s = parseInt((time % (60 * 1000)) / 1000);\nblog_running_days.innerHTML = d;\nblog_running_hours.innerHTML = h;\nblog_running_mins.innerHTML = m;\nblog_running_secs.innerHTML = s;\n}\nrefresh_blog_running_time();\nif (typeof bottomTimeIntervalHasSet == \"undefined\") {\nvar bottomTimeIntervalHasSet = true;\nsetInterval(function () {\nrefresh_blog_running_time();\n}, 500);\n}\n</script>\n","argon_enable_code_highlight":"true","argon_code_theme":"vs2015","argon_code_highlight_hide_linenumber":"true","argon_code_highlight_break_line":"false","argon_code_highlight_transparent_linenumber":"false","argon_math_render":"none","argon_mathjax_cdn_url":"//cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js","argon_mathjax_v2_cdn_url":"//cdn.jsdelivr.net/npm/mathjax@2.7.5/MathJax.js?config=TeX-AMS_HTML","argon_katex_cdn_url":"//cdn.jsdelivr.net/npm/katex@0.11.1/dist/","argon_enable_lazyload":"true","argon_lazyload_threshold":"800","argon_lazyload_effect":"fadeIn","argon_lazyload_loading_style":"1","argon_enable_fancybox":"true","argon_enable_zoomify":"false","argon_zoomify_duration":"200","argon_zoomify_easing":"cubic-bezier(0.4,0,0,1)","argon_zoomify_scale":"0.9","argon_enable_pangu":"article","argon_custom_html_head":"","argon_custom_html_foot":"<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css\">\n<script src=\"https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js\"></script>\n<script src=\"https://cdn.jsdelivr.net/npm/meting@2.0.1/dist/Meting.min.js\"></script>\n \n<meting-js \n    server=\"netease\" \n    type=\"playlist\" \n    id=\"7373135320\"\n    fixed=\"true\" \n    mini=\"true\"\n    order=\"list\"\n    loop=\"all\"\n    preload=\"auto\"\n    list-folded=\"true\"\n    lrc-type=\"0\"\n>\n</meting-js>\n\n\n","argon_enable_smoothscroll_type":"1_pulse","argon_enable_into_article_animation":"true","argon_disable_pjax_animation":"false","argon_comment_pagination_type":"page","argon_comment_emotion_keyboard":"true","argon_hide_name_email_site_input":"false","argon_comment_need_captcha":"false","argon_get_captcha_by_ajax":"false","argon_comment_allow_markdown":"true","argon_comment_allow_editing":"true","argon_comment_allow_privatemode":"true","argon_comment_allow_mailnotice":"true","argon_comment_mailnotice_checkbox_checked":true,"argon_comment_enable_qq_avatar":"true","argon_comment_avatar_vcenter":"false","argon_who_can_visit_comment_edit_history":"commentsender","argon_enable_comment_pinning":"true","argon_enable_comment_upvote":"true","argon_comment_ua":"platform,browser","argon_show_comment_parent_info":"true","argon_fold_long_comments":"true","argon_gravatar_cdn":"gravatar.pho.ink/avatar/","argon_text_gravatar":"true","argon_enable_search_filters":"true","argon_search_filters_type":"*post,*page,shuoshuo","argon_pjax_disabled":"false","argon_hide_categories":"","argon_enable_login_css":"true","argon_home_show_shuoshuo":"false","argon_fold_long_shuoshuo":"true","argon_enable_timezone_fix":"false","argon_hide_shortcode_in_preview":"true","argon_trim_words_count":"0","argon_enable_mobile_scale":"false","argon_disable_googlefont":"false","argon_disable_codeblock_style":"false","argon_update_source":"github","argon_hide_footer_author":"true"}

2. 年度倒计时显示(左侧栏)

在左侧栏里添加工具——简码,复制一下代码粘贴进去

<div class="progress-wrapper" style="padding: 0">
<div class="progress-info">
<div class="progress-label">
<span id="yearprogress_yearname"></span>
</div>
<div id="yearprogress_text_container" class="progress-percentage">
<span id="yearprogress_progresstext"></span>
<span id="yearprogress_progresstext_full"></span>
</div>
</div>
<div class="progress">
<div id="yearprogress_progressbar" class="progress-bar bg-primary"></div>
</div>
</div>
<script no-pjax="">
function yearprogress_refresh() {
let year = new Date().getFullYear();
$("#yearprogress_yearname").text(year);
let from = new Date(year, 0, 1, 0, 0, 0);
let to = new Date(year, 11, 31, 23, 59, 59);
let now = new Date();
let progress = (((now - from) / (to - from + 1)) * 100).toFixed(7);
let progressshort = (((now - from) / (to - from + 1)) * 100).toFixed(2);
$("#yearprogress_progresstext").text(progressshort + "%");
$("#yearprogress_progresstext_full").text(progress + "%");
$("#yearprogress_progressbar").css("width", progress + "%");
}
yearprogress_refresh();
if (typeof yearProgressIntervalHasSet == "undefined") {
var yearProgressIntervalHasSet = true;
setInterval(function () {
yearprogress_refresh();
}, 500);
}
</script>
<style>
#yearprogress_text_container {
width: 100%;
height: 22px;
overflow: hidden;
user-select: none;
}
#yearprogress_text_container > span {
transition: all 0.3s ease;
display: block;
}
#yearprogress_text_container:hover > span {
transform: translateY(-45px);
}
</style>

3. 底部音乐播放

下面的调用链接可能会突然失效,如有需要可参考官方文档

[APlayer HTML5音乐播放器 | ACE-BLOG
(ace520.github.io)](https://ace520.github.io/blog/post/2020/05/26/aplayer/)

**server="netease" 指定音乐平台为网易云,type="song"
指单曲类型,id="7373135320" 为音乐的 id(这里的id为打开音乐歌单,网址显示的id)**

开启吸底模式 fixed="true", 开启迷你模式 mini="true", 随机播放
order="random", 关闭底部歌词 lrc-type="0"

注意:id需要为自己创建的歌单,不能为我喜欢的音乐;server可以改自己用的音乐平台,如netease(网易云)、tencent(QQ音乐)

具体参数设置点击此链接:https://yy.liveout.cn/article/Learn/front-end/aplayer%E5%8F%82%E6%95%B0.png

Aplayer播放器官网文档:[APlayer HTML5音乐播放器 | ACE-BLOG
(ace520.github.io)](https://ace520.github.io/blog/post/2020/05/26/aplayer/)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/meting@2.0.1/dist/Meting.min.js"></script>
 
<meting-js 
    server="netease" 
    type="playlist" 
    id="7360465359"
    fixed="true" 
    mini="true"
    order="random"
    loop="all"
    preload="auto"
    list-folded="false">
</meting-js>

4. 动态背景(视频资源失效)

背景可以通过更改 url 链接设置为自己的动态视频尽量不要太大,否则别人访问时会刷新许久

注意视频链接已过期,可更换为自己的链接

上传视频到云平台或媒体库,复制资源链接
<video
src="https://new.gcxstudio.cn/wp-content/uploads/2022/03/daymode.mp4" /*白天动态视频链接*/
class="bg-video bg-video-day"
autoplay=""
loop="loop"
muted=""
></video>
<video
src="https://new.gcxstudio.cn/wp-content/uploads/2022/03/darkmode.webm" /*夜间动态视频链接*/
class="bg-video bg-video-night"
autoplay=""
loop="loop"
muted=""
></video>
<style>
video.bg-video {
position: fixed;
z-index: -1;
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 100vw;
height: 100vh;
object-fit: cover;
pointer-events: none;
}
html.darkmode video.bg-video.bg-video-day {
opacity: 0;
}
html.darkmode video.bg-video.bg-video-night {
opacity: 1;
}
video.bg-video.bg-video-day {
opacity: 1;
}
video.bg-video.bg-video-night {
opacity: 0;
}
#banner,
#banner .shape {
background: transparent !important;
}

</style>
<script
src="https://api.gcxstudio.cn/odometer/odometer.min.js"
integrity="sha256-65R1G5irU1VT+k8L4coqgd3saSvO/Wufson/w+v2Idw="
crossorigin="anonymous"
></script>


<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>

<div id='aplayer'></div>

5. 虚拟人物(看板娘)

以下代码选择一项复制即可,效果不同,自行选择

具体文章:[stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ |
Live2D widget for web platform (github.com)](https://github.com/stevenjoezhang/live2d-widget)

<script src="https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/autoload.js"></script>
  1. 其中 jsonpath: 后面的链接可按自己爱好更改,选择别的虚拟人物
<script src="https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidget.min.js"></script>
<script>
    L2Dwidget.init({
        "model": {
       //jsonpath控制显示那个小萝莉模型,
            //(切换模型需要改动)
//              "https://unpkg.com/(live2d-widget-model-koharu)@1.0.5/assets/(koharu).model.json"
            jsonPath: "https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json",
            "scale": 1
        },
        "display": {
            "position": "right", //看板娘的表现位置
            "width": 75,  //小萝莉的宽度
            "height": 150, //小萝莉的高度
            "hOffset": 0,
            "vOffset": -20
        },
        "mobile": {
            "show": true,
            "scale": 0.5
        },
        "react": {
            "opacityDefault": 0.7,
            "opacityOnHover": 0.2
        }
    });
</script>

   /*   小帅哥: https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json
      萌娘:https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json
      白猫:https://unpkg.com/live2d-widget-model-tororo@1.0.5/assets/tororo.model.json
      黑猫: https://unpkg.com/live2d-widget-model-hijiki@1.0.5/assets/hijiki.model.json
      小可爱(女):https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json
      小可爱(男):https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json
      初音:https://unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json
      圣职者妹妹:https://unpkg.com/live2d-widget-model-z16@1.0.5/assets/z16.model.json
      茶杯犬:https://cdn.jsdelivr.net/npm/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json
      绿毛妹妹:https://unpkg.com/live2d-widget-model-tsumiki@1.0.5/assets/tsumiki.model.json
      金龟子妹妹:https://unpkg.com/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json
      https://unpkg.com/live2d-widget-model-nito@1.0.5/assets/nito.model.json
      https://unpkg.com/live2d-widget-model-ni-j@1.0.5/assets/ni-j.model.json
      小阿狸: https://unpkg.com/live2d-widget-model-nico@1.0.5/assets/nico.model.json
      https://unpkg.com/live2d-widget-model-nietzche@1.0.5/assets/nietzche.model.json
      https://unpkg.com/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json
      女学生: https://unpkg.com/live2d-widget-model-hibiki@1.0.5/assets/hibiki.model.json */

6. 网站底部信息

CSS(样式表)

<style>
/* 核心样式 */
.github-badge {
display: inline-block;
border-radius: 4px;
text-shadow: none;
font-size: 13.1px;
color: #fff;
line-height: 15px;
margin-bottom: 5px;
font-family: "Open Sans", sans-serif;
}
.github-badge .badge-subject {
display: inline-block;
background-color: #4d4d4d;
padding: 4px 4px 4px 6px;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
font-family: "Open Sans", sans-serif;
}
.github-badge .badge-value {
display: inline-block;
padding: 4px 6px 4px 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
font-family: "Open Sans", sans-serif;
}
.github-badge-big {
display: inline-block;
border-radius: 6px;
text-shadow: none;
font-size: 14.1px;
color: #fff;
line-height: 18px;
margin-bottom: 7px;
}
.github-badge-big .badge-subject {
display: inline-block;
background-color: #4d4d4d;
padding: 4px 4px 4px 6px;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
.github-badge-big .badge-value {
display: inline-block;
padding: 4px 6px 4px 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.bg-orange {
background-color: #ec8a64 !important;
}
.bg-red {
background-color: #cb7574 !important;
}
.bg-apricots {
background-color: #f7c280 !important;
}
.bg-casein {
background-color: #dfe291 !important;
}
.bg-shallots {
background-color: #97c3c6 !important;
}
.bg-ogling {
background-color: #95c7e0 !important;
}
.bg-haze {
background-color: #9aaec7 !important;
}
.bg-mountain-terrier {
background-color: #99a5cd !important;
}
</style>

HTML(底部信息)

   <div class="github-badge-big">
        <span class="badge-subject"><i class="fa fa-id-card"></i> 备案号 </span>
        <span class="badge-value bg-orange">
            <!-- 备案链接 -->
            <a href="https://beian.miit.gov.cn/" target="_blank" one-link-mark="yes">苏ICP备1234567890号</a>|
            <a href="https://www.beian.gov.cn/portal/index?token=e547b70c-fbe1-4c80-a4a2-857b17389a71" target="_blank"
                one-link-mark="yes">
                苏公网安备 32072212344321号</a>
        </span>
    </div>


  <div class="github-badge-big">
        <span class="badge-subject"><i class="fa fa-cloud" aria-hidden="true"></i> CDN</span>
        <span class="badge-value bg-shallots">
            <!-- 又拍云链接 -->
            <a href="https://www.upyun.com/" target="_blank" one-link-mark="yes">Upyun</a>
        </span>

        <span class="badge-subject"><i class="fa fa-wordpress"></i> Powered</span>
        <span class="badge-value bg-green">
            <!-- wordpress链接 -->
            <a href="https://cn.wordpress.org/" target="_blank" one-link-mark="yes">
                WordPress</a></span>
    </div>

    <div class="github-badge-big">
        <span class="badge-subject"><i class="fa fa-copyright" aria-hidden="true"></i>Copyright </span>
        <span class="badge-value bg-red">2022-2023</i>
            <a href="https://www.liveout.cn/" target="_blank" one-link-mark="yes">@ Echo
        </span>
        </script>
    </div>

    <!-- 运行时间 -->
    <div class="github-badge-big">
        <span class="badge-subject"><i class="fa fa-clock-o"></i> Running Time</span><span
            class="badge-value bg-apricots"><span id="blog_running_days" class="odometer odometer-auto-theme"></span>
            days
            <span id="blog_running_hours" class="odometer odometer-auto-theme"></span> H
            <span id="blog_running_mins" class="odometer odometer-auto-theme"></span> M
            <span id="blog_running_secs" class="odometer odometer-auto-theme"></span>S
        </span>

JavaScript(网站运行时间脚本)

注意:new Date( year, month, date, hrs, min, sec) 按给定的参数创建 日期对象

其中month的值域为0~11,0代表1月,11表代表12月;所以你输入的月份需要为自己真正月份的前一个月

<script no-pjax="">
var blog_running_days = document.getElementById("blog_running_days");
var blog_running_hours = document.getElementById("blog_running_hours");
var blog_running_mins = document.getElementById("blog_running_mins");
var blog_running_secs = document.getElementById("blog_running_secs");
function refresh_blog_running_time() {
var time = new Date() - new Date(2022, 5, 31, 0, 0, 0); /*此处日期的月份改为自己真正月份的前一个月*/
var d = parseInt(time / 24 / 60 / 60 / 1000);
var h = parseInt((time % (24 * 60 * 60 * 1000)) / 60 / 60 / 1000);
var m = parseInt((time % (60 * 60 * 1000)) / 60 / 1000);
var s = parseInt((time % (60 * 1000)) / 1000);
blog_running_days.innerHTML = d;
blog_running_hours.innerHTML = h;
blog_running_mins.innerHTML = m;
blog_running_secs.innerHTML = s;
}
refresh_blog_running_time();
if (typeof bottomTimeIntervalHasSet == "undefined") {
var bottomTimeIntervalHasSet = true;
setInterval(function () {
refresh_blog_running_time();
}, 500);
}
</script>

7. 字体、鼠标等特效

Docker系列 WordPress系列 特效 - Bensz (hwb0307.com)

8. 博客自定义CSS样式

8.1 博主的设置

参考上面友情链接, 以下为我的额外CSS,涉及字体、透明等博客样式

外观 --- 自定义 --- 额外CSS

ps: 字体链接需要上传到云端调用才能生效(下面字体链接已失效)

/*网站字体*/
/*原则上你可以设置多个字体,然后在不同的部位使用不同的字体。*/
@font-face{
    font-family:echo;
src:url(https://fastly.jsdelivr.net/gh/huangwb8/bloghelper@latest/fonts/13.woff2) format('woff2')
}

body{
        font-family: 'echo', Georgia, -apple-system, 'Nimbus Roman No9 L', 'PingFang SC', 'Hiragino Sans GB', 'Noto Serif SC', 'Microsoft Yahei', 'WenQuanYi Micro Hei', 'ST Heiti', sans-serif
}
 
/*横幅字体大小*/
.banner-title {
  font-size: 2.5em;
}
.banner-subtitle{
  font-size: 28px;
    
    -webkit-text-fill-color: transparent;        
background: linear-gradient(94.75deg,rgb(60, 172, 247) 0%,rgb(131, 101, 253) 43.66%,                rgb(255, 141, 112) 64.23%,rgb(247, 201, 102) 83.76%,rgb(172, 143, 100) 100%);        
-webkit-background-clip: text;
}
 
/*文章标题字体大小*/
.post-title {
    font-size: 25px
}
 
/*正文字体大小(不包含代码)*/
.post-content p{
    font-size: 1.25rem;
}
li{
    font-size: 1.2rem;
    
}
 
/*评论区字体大小*/
p {
    font-size: 1.2rem
            
}
 
/*评论发送区字体大小*/
.form-control{
    font-size: 1.2rem
}
 
/*评论勾选项目字体大小*/
.custom-checkbox .custom-control-input~.custom-control-label{
    font-size: 1.2rem
}
/*评论区代码的强调色*/
code {
  color: rgba(var(--themecolor-rgbstr));
}
 
/*说说字体大小和颜色设置*/
.shuoshuo-title {
    font-size: 25px;
/*  color: rgba(var(--themecolor-rgbstr)); */
}
 
/*尾注字体大小*/
.additional-content-after-post{
    font-size: 1.2rem
}
 
/* 公告居中 */
.leftbar-announcement-title {
    font-size: 20px;
/*     text-align: center; */
                 color: #00FFFF
}

.leftbar-announcement-content {
    font-size: 15px;
    line-height: 1.8;
    padding-top: 8px;
    opacity: 0.8;
/*     text-align: center; */
            color:#00FFFF;
}

/* 一言居中 */
.leftbar-banner-title {
    font-size: 20px;
    display: block;
    text-align: center;
        opacity: 0.8;
}

/* 个性签名居中 */
.leftbar-banner-subtitle {
    margin-top: 15px;
    margin-bottom: 8px;
    font-size: 13px;
    opacity: 0.8;
    display: block;
    text-align: center;
}

/*========颜色设置===========*/
 
/*文章或页面的正文颜色*/
body{
    color:#364863
}
 
/*引文属性设置*/
blockquote {
    /*添加弱主题色为背景色*/
    background: rgba(var(--themecolor-rgbstr), 0.1) !important;
    width: 100%
}
 
/*引文颜色 建议用主题色*/
:root {
    /*也可以用类似于--color-border-on-foreground-deeper: #009688;这样的命令*/
    --color-border-on-foreground-deeper: rgba(var(--themecolor-rgbstr));
}
 
/*左侧菜单栏突出颜色修改*/
.leftbar-menu-item > a:hover, .leftbar-menu-item.current > a{
    background-color: #f9f9f980;
}
 
/*站点概览分隔线颜色修改*/
.site-state-item{
    border-left: 1px solid #aaa;
}
.site-friend-links-title {
    border-top: 1px dotted #aaa;
}
#leftbar_tab_tools ul li {
    padding-top: 3px;
    padding-bottom: 3px;
    border-bottom:none;
}
html.darkmode #leftbar_tab_tools ul li {
    border-bottom:none;
}
 
/*左侧栏搜索框的颜色*/
button#leftbar_search_container {
    background-color: transparent;
}
 
/*========透明设置===========*/
 
/*白天卡片背景透明*/
.card{
    background-color:rgba(255, 255, 255, 0.8) !important;
    /*backdrop-filter:blur(6px);*//*毛玻璃效果主要属性*/
    -webkit-backdrop-filter:blur(6px);
}
 
/*小工具栏背景完全透明*/
/*小工具栏是card的子元素,如果用同一个透明度会叠加变色,故改为完全透明*/
.card .widget,.darkmode .card .widget,#post_content > div > div > div.argon-timeline-card.card.bg-gradient-secondary.archive-timeline-title{
    background-color:#ffffff00 !important;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
}
.emotion-keyboard,#fabtn_blog_settings_popup{
    background-color:rgba(255, 255, 255, 0.95) !important;
}
 
/*分类卡片透明*/
.bg-gradient-secondary{
    background:rgba(255, 255, 255, 0.1) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter:blur(10px);
}
 
/*夜间透明*/
html.darkmode.bg-white,html.darkmode .card,html.darkmode #footer{
    background:rgba(66, 66, 66, 0.9) !important;
}
html.darkmode #fabtn_blog_settings_popup{
    background:rgba(66, 66, 66, 0.95) !important;
}
 
/*标签背景
.post-meta-detail-tag {
    background:rgba(255, 255, 255, 0.5)!important;
}*/
 
 
/*========排版设置===========*/
 
/*左侧栏层级置于上层*/
#leftbar_part1 {
    z-index: 1;
}
 
/*分类卡片文本居中*/
#content > div.page-information-card-container > div > div{
    text-align:center;
}
 
/*子菜单对齐及样式调整*/
.dropdown-menu .dropdown-item>i{
    width: 10px;
}
.dropdown-menu>a {
    color:var(--themecolor);
}
.dropdown-menu{
    min-width:max-content;
}
.dropdown-menu .dropdown-item {
    padding: .5rem 1.5rem 0.5rem 1rem;
}
.leftbar-menu-subitem{
    min-width:max-content;
}
.leftbar-menu-subitem .leftbar-menu-item>a{
    padding: 0rem 1.5rem 0rem 1rem;
}
 
/*左侧栏边距修改*/
.tab-content{
    padding:10px 0px 0px 0px !important;
}
.site-author-links{
    padding:0px 0px 0px 10px ;
}
/*目录位置偏移修改*/
#leftbar_catalog{
    margin-left: 0px;
}
/*目录条目边距修改*/
#leftbar_catalog .index-link{
    padding: 4px 4px 4px 4px;
}
/*左侧栏小工具栏字体缩小*/
#leftbar_tab_tools{
    font-size: 14px;
}
 
/*正文图片边距修改*/
article figure {margin:0;}
/*正文图片居中显示*/
.fancybox-wrapper {
    margin: auto;
}
/*正文表格样式修改*/
article table > tbody > tr > td,
article table > tbody > tr > th,
article table > tfoot > tr > td,
article table > tfoot > tr > th,
article table > thead > tr > td,
article table > thead > tr > th{
    padding: 8px 10px;
    border: 1px solid;
}
/*表格居中样式*/
.wp-block-table.aligncenter{margin:10px auto;}
 
/*回顶图标放大*/
button#fabtn_back_to_top, button#fabtn_go_to_comment, button#fabtn_toggle_blog_settings_popup, button#fabtn_toggle_sides, button#fabtn_open_sidebar{
    font-size: 1.2rem;
}
 
/*顶栏菜单放大*/
/*这里也可以设置刚刚我们设置的btfFont字体。试试看!*/

.navbar-nav .nav-link {
    font-size: 1rem;
    font-family: 'echo';
            
}
.navbar-brand {
    font-family: 'echo';
    font-size: 1.2rem;
    margin-right: 1.0 rem;
    padding-bottom: 0.2 rem;
    
    -webkit-text-fill-color: transparent;        
background: linear-gradient(94.75deg,rgb(60, 172, 247) 0%,rgb(131, 101, 253) 43.66%,                rgb(255, 141, 112) 64.23%,rgb(247, 201, 102) 83.76%,rgb(172, 143, 100) 100%);        
-webkit-background-clip: text;
}

/*菜单大小*/
.nav-link-inner--text {
    font-size: 1.25em;
}
.navbar-nav .nav-item {
    margin-right:0;
}
.mr-lg-5, .mx-lg-5 {
    margin-right:1rem !important;
}
.navbar-toggler-icon {
    width: 1.8rem;
    height: 1.8rem;
}
/*菜单间距*/
.navbar-expand-lg .navbar-nav .nav-link {
    padding-right: 1.4em;
    padding-left: 1.4em;
}
 
/*隐藏wp-SEO插件带来的线条阴影(不一定要装)*/
*[style='position: relative; z-index: 99998;'] {
    display: none;
}

/* Github卡片样式*/
.github-info-card-header a {
    /*Github卡片抬头颜色*/
    color: black !important;
    font-size: 1.5rem;
}
.github-info-card {
    /*Github卡片文字(非链接)*/
    font-size: 1rem;
    color: black !important;
}
.github-info-card.github-info-card-full.card.shadow-sm {
    /*Github卡片背景色*/
    background-color: rgba(var(--themecolor-rgbstr), 0.1) !important;
}

/*      左侧栏外观CSS     */

/* 头像 */
#leftbar_overview_author_image {
    width: 100px;
    height: 100px;
    margin: auto;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-color: rgba(127, 127, 127, 0.1);
    overflow: hidden;
    transition: transform 0.3s ease;
}

/*  头像亮暗  */
#leftbar_overview_author_image:hover {
    transform: scale(1.23);
    filter: brightness(150%);
}

/* 名称 */
#leftbar_overview_author_name {
      margin-top: 15px;
    font-size: 18px;align-content;
    color:#00FFFF;
}

/* 简介 */
#leftbar_overview_author_description {
    font-size: 14px;
    margin-top: -4px;
    opacity: 0.8;
    color:#c21f30;
}

/* 标题,链接等 */
a, .btn-neutral {
    color:#AF7AC5 ;
    
}

/* 页脚透明 */
#footer {
    background: var(--themecolor-gradient);
    color: #fff;
    width: 100%;
    float: right;
    margin-bottom: 25px;
    text-align: center;
    padding: 25px 20px;
    line-height: 1.8;
    transition: none;
    opacity: 0.6;
}

8.2 根据主题自动透明

添加到 页尾脚本 里,根据主题色自动透明,透明度可以在op1、op2、op3.....那里设置

<script>
  function hexToRgb(hex,op){
    let str = hex.slice(1);
    let arr;
    if (str.length === 3) arr = str.split('').map(d => parseInt(d.repeat(2), 16));
    else arr = [parseInt(str.slice(0, 2), 16), parseInt(str.slice(2, 4), 16), parseInt(str.slice(4, 6), 16)];
    return  `rgb(${arr.join(', ')}, ${op})`;
};

  let themeColorHex = getComputedStyle(document.documentElement).getPropertyValue('--themecolor').trim();
  let op1 = 0.6
  let themeColorRgb = hexToRgb(themeColorHex,op1);
  let themecolorGradient = getComputedStyle(document.documentElement).getPropertyValue('--themecolor-gradient')*
  document.documentElement.style.setProperty('--themecolor-gradient',themeColorRgb)

  let op2 = 0.8
  // 方法一:
  let colorTint92 = getComputedStyle(document.documentElement).getPropertyValue('--color-tint-92').trim();
  colorTint92 += ', '+op2;
  document.documentElement.style.setProperty('--color-tint-92',colorTint92)
  // 方法二:(无效)
  // let colorForegroundHex = getComputedStyle(document.documentElement).getPropertyValue('--color-foreground').trim();
  // let colorForeground = hexToRgb(colorForegroundHex,op2)
  // 无效的原因是博客里的--color-fpreground是局部变量,不是:root里的全局变量,所以最好的办法是修改--color-tint-92,这个是全局的
  // document.documentElement.style.setPrope。rty('--color-fpreground',colorForeground)
   // 不要用下面这种cssText这种写法,会导致上面--themecolor-gradient的样式修改失效!
   // document.documentElement.style.cssText = '--color-tint-92:'+colorTint92
  
  let op3 = 0.65
  let colorShade90 = getComputedStyle(document.documentElement).getPropertyValue('--color-shade-90').trim();
  colorShade90 += ', ' + op3;
  document.documentElement.style.setProperty('--color-shade-90',colorShade90)
 
  let op4 = 0.8
  let colorShade86 = getComputedStyle(document.documentElement).getPropertyValue('--color-shade-86').trim();
  colorShade86 += ', ' + op4;
  document.documentElement.style.setProperty('--color-shade-86',colorShade86)
</script>

来源自友链朋友:北冥红烧鱼 (hongshaoyv.com)

9. 头像缩放或亮暗

鼠标经过头像时自动缩放、高亮/暗

外观 --- 自定义 --- 额外CSS

#leftbar_overview_author_image {
    width: 100px;
    height: 100px;
    margin: auto;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    background-color: rgba(127, 127, 127, 0.1);
    overflow: hidden;
    box-shadow: 0 0 5px rgba(116, 8, 204, 0.3);
    transition: transform 0.3s ease; /*变化速度*/
}

#leftbar_overview_author_image:hover {
    transform: scale(1.2); /*缩放大小*/
    filter: brightness(150%); /*调节亮度*/
}

10. 头像/姓名跳转相关页

外观 --- 主题文件编辑器 中, 选择 边栏文件(sidebar.php)

点击 头像 跳转大概在第 126 行左右,

添加 <a> 标签,即 <a href="https://www.liveout.cn/about/">, 其中链接改为想要跳转的地方

<div class="tab-pane fade text-center<?php if ($nowActiveTab == 1) { echo ' active show'; }?>" id="leftbar_tab_overview" role="tabpanel" aria-labelledby="leftbar_tab_overview_btn">
<a href="https://www.liveout.cn/about/">
<div id="leftbar_overview_author_image" style="background-image: ........ 
<a/>

点击 姓名 跳转则是 130 行左右

添加 <a href="https://www.liveout.cn/about/">.... <a/>

<a href="https://www.liveout.cn/about/">
<h6 id="leftbar_overview_author_name"><?php echo get_option('argon_sidebar_auther_name') == '' ? bloginfo('name') : get_option('argon_sidebar_auther_name'); ?> </h6>
<a/>

11. 评论头像显示

外观 --- 主题文件编辑器 中的 function 模板函数添加此代码

if ( ! function_exists( 'get_cravatar_url' ) ) {
    /**
    *  把Gravatar头像服务替换为Cravatar
    * @param string $url
    * @return string
    */
    function get_cravatar_url( $url ) {
        $sources = array(
            'www.gravatar.com',
            '0.gravatar.com',
            '1.gravatar.com',
            '2.gravatar.com',
            'secure.gravatar.com',
            'cn.gravatar.com'
        );
        return str_replace( $sources, 'cravatar.cn', $url );
    }
    add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
    add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
    add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}

来源:网络

12. 插件合集

12.1 网站访问数据(左侧栏)

  1. 进入Wordpress,点击插件,搜索并且下载 Wp Statistics
  2. 外观——小工具——站点额外内容——旧版小工具——统计

12.2 评论IP地址

以下根据体验自己选择

WP-UserAgent | kyleabaker.com From 友链大佬:obaby@mars (h4ck.org.cn)

WordPress 展示评论者地理位置插件 Easy Location | 歲月留聲 (0xo.net)

12.3 评论管理

Akismet Anti-Spam: Spam Protection

12.4 邮件发送

WP Mail SMTP

12.5 文章字数统计

WP Word Count

12.6 WP用户个人头像

Simple Local Avatars

教程视频

个人博客网站美化代码使用哔哩哔哩bilibili

个人博客网站(Wordpress)基本使用哔哩哔哩bilibili

推荐文章

  1. 个人博客网站搭建 – Echo (liveout.cn)
  2. 个人博客主题分享(WordPress) – Echo (liveout.cn)
  3. 博客图片托管到又拍云教程 – Echo (liveout.cn)
  4. Wordpress/Typecho博客搬迁教程 – Echo (liveout.cn)

相关链接

本文可能涉及的代码出自以下博客文章,十分感谢下面各位大佬的分享

关于 Argon 主题 更多美化内容文章: [Argon
主题的美化设置 - Gong\_cx (gcxstudio.cn)](https://new.gcxstudio.cn/archives/argon-theme-settings/)

博客透明、鼠标等美化: [Docker系列 WordPress系列
特效 - Bensz (hwb0307.com)](https://blognas.hwb0307.com/linux/docker/744#comment-918)

博客添加音乐插件: https://echeverra.cn/aplayer

Argon主题 GitHub地址:[solstice23/argon-theme: ? Argon

Argon主题作者博客solstice23 – Blog

Argon主题使用文档Argon Theme Docs (solstice23.top)

FAQ

如果遇到问题无法解决,请参考以下途径

  1. B站视频:博客搭建常见问题汇总哔哩哔哩bilibili
  2. 翻翻评论区,已经有许多问题提出和解决了,大部分都一样
  3. 查看官方文档

如果问题还未解决,请评论区留言

一些话

很开心这篇美化文章能够帮助到大家,如果转载请标注原文地址哦,十分感谢!

  •  

Argon主题博客美化

前言

常言道:工欲善其事必先利其器,在发表文章前,美化博客,使其利于自己的观看与管理极其重要,所以我四处搜寻,得到了以下美化代码。

但是,有时候我们走得太远,会忘了为什么出发。希望阅览本文章的人不要忘记初心,想想一开始为什么搭建博客。我相信大部分朋友都是为了记录自己学习笔记,生活故事。

所以,有时候博客美化过度会适得其反,望各位仔细斟酌,莫要使自己的博客变成了花架子,好的文章才是博客之本,立足之根。


主题资源

链接:https://pan.baidu.com/s/1hamo74DR40Kx4JmhbSyk_w

提取码:1111


我的博客美化 JSON

注意:可复制一键导入

{"argon_theme_color":"#5e72e4","argon_theme_color_hex_preview":"#5e72e4","argon_show_customize_theme_color_picker":true,"argon_enable_immersion_color":"true","argon_darkmode_autoswitch":"time","argon_enable_amoled_dark":"false","argon_card_radius":"15","argon_card_shadow":"default","argon_page_layout":"double","argon_article_list_waterflow":"2","argon_article_list_layout":"1","argon_font":"serif","argon_assets_path":"sourcegcdn","argon_custom_assets_path":"","argon_wp_path":"/","argon_dateformat":"YMD","argon_enable_headroom":"true","argon_toolbar_title":"Echo","argon_toolbar_icon":"","argon_toolbar_icon_link":" ","argon_toolbar_blur":"true","argon_banner_title":"Echo‘s blog","argon_banner_subtitle":"韶华不为少年留  恨悠悠  几时休","argon_banner_size":"fullscreen","argon_page_background_banner_style":"transparent","argon_show_toolbar_mask":true,"argon_banner_background_url":"--bing--","argon_banner_background_color_type":"shape-primary","argon_banner_background_hide_shapes":true,"argon_enable_banner_title_typing_effect":"true","argon_banner_typing_effect_interval":"100","argon_page_background_url":"https://yy.liveout.cn/background/wallhaven-yxjm57_1920x1080.png","argon_page_background_dark_url":"https://yy.liveout.cn/background/wallhaven-6dqjdl_1920x1080.png","argon_page_background_opacity":"1","argon_sidebar_banner_title":"公告","argon_sidebar_banner_subtitle":"欢迎在小E 的茶馆休憩。相逢何必曾相识,但喜欢闲聊的可以加群:688329809","argon_sidebar_auther_name":"Echo","argon_sidebar_auther_image":"https://yy.liveout.cn/photo/photo1.png","argon_sidebar_author_description":"一个IoT专业混吃等死的小废物","argon_sidebar_announcement":"","argon_fab_show_settings_button":"false","argon_fab_show_darkmode_button":"true","argon_fab_show_gotocomment_button":"false","argon_seo_description":"一个纪录生活以及学习笔记的个人博客","argon_seo_keywords":"博客,Java,Linux,C语言,IoT,物联网","argon_article_meta":"time|categories|views","argon_show_readingtime":"true","argon_reading_speed":"580","argon_reading_speed_en":"80","argon_reading_speed_code":"10","argon_show_thumbnail_in_banner_in_content_page":"false","argon_first_image_as_thumbnail_by_default":"true","argon_reference_list_title":"参考","argon_show_sharebtn":"true","argon_show_headindex_number":"false","argon_donate_qrcode_url":"https://www.liveout.cn/wp-content/uploads/2022/10/wechat1.jpg","argon_additional_content_after_post":"如果觉得本文对您有所帮助,可以支持下博主,一分也是缘😊","argon_related_post":"category,tag","argon_related_post_sort_orderby":"meta_value_num","argon_related_post_sort_order":"DESC","argon_related_post_limit":"10","argon_article_header_style":"article-header-style-2","argon_outdated_info_time_type":"createdtime","argon_outdated_info_days":"1","argon_outdated_info_tip_type":"inpost","argon_outdated_info_tip_content":"本文最后更新于%modify_date_delta% 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com","argon_archives_timeline_show_month":"true","argon_archives_timeline_url":"https://www.liveout.cn/pigeonhole/","argon_footer_html":"<style>\n/* 核心样式 */\n.github-badge {\ndisplay: inline-block;\nborder-radius: 4px;\ntext-shadow: none;\nfont-size: 13.1px;\ncolor: #fff;\nline-height: 15px;\nmargin-bottom: 5px;\nfont-family: \"Open Sans\", sans-serif;\n}\n.github-badge .badge-subject {\ndisplay: inline-block;\nbackground-color: #4d4d4d;\npadding: 4px 4px 4px 6px;\nborder-top-left-radius: 4px;\nborder-bottom-left-radius: 4px;\nfont-family: \"Open Sans\", sans-serif;\n}\n.github-badge .badge-value {\ndisplay: inline-block;\npadding: 4px 6px 4px 4px;\nborder-top-right-radius: 4px;\nborder-bottom-right-radius: 4px;\nfont-family: \"Open Sans\", sans-serif;\n}\n.github-badge-big {\ndisplay: inline-block;\nborder-radius: 6px;\ntext-shadow: none;\nfont-size: 14.1px;\ncolor: #fff;\nline-height: 18px;\nmargin-bottom: 7px;\n}\n.github-badge-big .badge-subject {\ndisplay: inline-block;\nbackground-color: #4d4d4d;\npadding: 4px 4px 4px 6px;\nborder-top-left-radius: 4px;\nborder-bottom-left-radius: 4px;\n}\n.github-badge-big .badge-value {\ndisplay: inline-block;\npadding: 4px 6px 4px 4px;\nborder-top-right-radius: 4px;\nborder-bottom-right-radius: 4px;\n}\n.bg-orange {\nbackground-color: #ec8a64 !important;\n}\n.bg-red {\nbackground-color: #cb7574 !important;\n}\n.bg-apricots {\nbackground-color: #f7c280 !important;\n}\n.bg-casein {\nbackground-color: #dfe291 !important;\n}\n.bg-shallots {\nbackground-color: #97c3c6 !important;\n}\n.bg-ogling {\nbackground-color: #95c7e0 !important;\n}\n.bg-haze {\nbackground-color: #9aaec7 !important;\n}\n.bg-mountain-terrier {\nbackground-color: #99a5cd !important;\n}\n</style>\n \n<div class=\"github-badge-big\">\n<span class=\"badge-subject\"><i class=\"fa fa-id-card\"></i> 备案号 </span\n><span class=\"badge-value bg-orange\">\n<a href=\"https://beian.miit.gov.cn/\" target=\"_blank\" one-link-mark=\"yes\"\n>苏ICP备2022020194号</a\n>\n|\n<a\nhref=\"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode= 32072202010255\"\ntarget=\"_blank\"\none-link-mark=\"yes\"\n>苏公网安备 32072202010255号</a\n></span\n>\n</div>\n\n \n<div class=\"github-badge\">\n<span class=\"badge-subject\"><img src=\"https://www.liveout.cn/wp-content/uploads/2022/10/又拍云_logo4.png\" height=\"20\" width=\"20\"/></i> CDN</span\n><span class=\"badge-value bg-shallots\"\n><a href=\"\" target=\"_blank\" one-link-mark=\"yes\"></a\n><a\nhref=\"https://www.upyun.com/?utm_source=lianmeng&utm_medium=referral\"\ntarget=\"_blank\"\none-link-mark=\"yes\"\n>Upyun</a\n></span\n>\n<span class=\"badge-subject\"><i class=\"fa fa-wordpress\"></i> Powered</span\n><span class=\"badge-value bg-green\"\n><a href=\"https://cn.wordpress.org/\" target=\"_blank\" one-link-mark=\"yes\"\n>WordPress</a\n></span\n>\n</div>\n<div class=\"github-badge-big\">\n<span class=\"badge-subject\">Copyright </span\n><span class=\"badge-value bg-red\">\n2022-2022\n<i class=\"fa fa-copyright\"></i> Echo</span\n>\n</script>\n</div>\n<div class=\"github-badge-big\">\n<span class=\"badge-subject\"><i class=\"fa fa-clock-o\"></i> Running Time</span\n><span class=\"badge-value bg-apricots\"\n><span id=\"blog_running_days\" class=\"odometer odometer-auto-theme\"></span>\ndays\n<span id=\"blog_running_hours\" class=\"odometer odometer-auto-theme\"></span> H\n<span id=\"blog_running_mins\" class=\"odometer odometer-auto-theme\"></span> M\n<span id=\"blog_running_secs\" class=\"odometer odometer-auto-theme\"></span>\nS</span\n>\n <script no-pjax=\"\">\nvar blog_running_days = document.getElementById(\"blog_running_days\");\nvar blog_running_hours = document.getElementById(\"blog_running_hours\");\nvar blog_running_mins = document.getElementById(\"blog_running_mins\");\nvar blog_running_secs = document.getElementById(\"blog_running_secs\");\nfunction refresh_blog_running_time() {\nvar time = new Date() - new Date(2022, 3, 27, 0, 0, 0);\nvar d = parseInt(time / 24 / 60 / 60 / 1000);\nvar h = parseInt((time % (24 * 60 * 60 * 1000)) / 60 / 60 / 1000);\nvar m = parseInt((time % (60 * 60 * 1000)) / 60 / 1000);\nvar s = parseInt((time % (60 * 1000)) / 1000);\nblog_running_days.innerHTML = d;\nblog_running_hours.innerHTML = h;\nblog_running_mins.innerHTML = m;\nblog_running_secs.innerHTML = s;\n}\nrefresh_blog_running_time();\nif (typeof bottomTimeIntervalHasSet == \"undefined\") {\nvar bottomTimeIntervalHasSet = true;\nsetInterval(function () {\nrefresh_blog_running_time();\n}, 500);\n}\n</script>\n","argon_enable_code_highlight":"true","argon_code_theme":"vs2015","argon_code_highlight_hide_linenumber":"true","argon_code_highlight_break_line":"false","argon_code_highlight_transparent_linenumber":"false","argon_math_render":"none","argon_mathjax_cdn_url":"//cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml-full.js","argon_mathjax_v2_cdn_url":"//cdn.jsdelivr.net/npm/mathjax@2.7.5/MathJax.js?config=TeX-AMS_HTML","argon_katex_cdn_url":"//cdn.jsdelivr.net/npm/katex@0.11.1/dist/","argon_enable_lazyload":"true","argon_lazyload_threshold":"800","argon_lazyload_effect":"fadeIn","argon_lazyload_loading_style":"1","argon_enable_fancybox":"true","argon_enable_zoomify":"false","argon_zoomify_duration":"200","argon_zoomify_easing":"cubic-bezier(0.4,0,0,1)","argon_zoomify_scale":"0.9","argon_enable_pangu":"article","argon_custom_html_head":"","argon_custom_html_foot":"<link rel=\"stylesheet\" href=\"https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css\">\n<script src=\"https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js\"></script>\n<script src=\"https://cdn.jsdelivr.net/npm/meting@2.0.1/dist/Meting.min.js\"></script>\n \n<meting-js \n    server=\"netease\" \n    type=\"playlist\" \n    id=\"7373135320\"\n    fixed=\"true\" \n    mini=\"true\"\n    order=\"list\"\n    loop=\"all\"\n    preload=\"auto\"\n    list-folded=\"true\"\n    lrc-type=\"0\"\n>\n</meting-js>\n\n\n","argon_enable_smoothscroll_type":"1_pulse","argon_enable_into_article_animation":"true","argon_disable_pjax_animation":"false","argon_comment_pagination_type":"page","argon_comment_emotion_keyboard":"true","argon_hide_name_email_site_input":"false","argon_comment_need_captcha":"false","argon_get_captcha_by_ajax":"false","argon_comment_allow_markdown":"true","argon_comment_allow_editing":"true","argon_comment_allow_privatemode":"true","argon_comment_allow_mailnotice":"true","argon_comment_mailnotice_checkbox_checked":true,"argon_comment_enable_qq_avatar":"true","argon_comment_avatar_vcenter":"false","argon_who_can_visit_comment_edit_history":"commentsender","argon_enable_comment_pinning":"true","argon_enable_comment_upvote":"true","argon_comment_ua":"platform,browser","argon_show_comment_parent_info":"true","argon_fold_long_comments":"true","argon_gravatar_cdn":"gravatar.pho.ink/avatar/","argon_text_gravatar":"true","argon_enable_search_filters":"true","argon_search_filters_type":"*post,*page,shuoshuo","argon_pjax_disabled":"false","argon_hide_categories":"","argon_enable_login_css":"true","argon_home_show_shuoshuo":"false","argon_fold_long_shuoshuo":"true","argon_enable_timezone_fix":"false","argon_hide_shortcode_in_preview":"true","argon_trim_words_count":"0","argon_enable_mobile_scale":"false","argon_disable_googlefont":"false","argon_disable_codeblock_style":"false","argon_update_source":"github","argon_hide_footer_author":"true"}

年度倒计时显示(左侧栏)

在左侧栏里添加工具——简码,复制一下代码粘贴进去

<div class="progress-wrapper" style="padding: 0">
<div class="progress-info">
<div class="progress-label">
<span id="yearprogress_yearname"></span>
</div>
<div id="yearprogress_text_container" class="progress-percentage">
<span id="yearprogress_progresstext"></span>
<span id="yearprogress_progresstext_full"></span>
</div>
</div>
<div class="progress">
<div id="yearprogress_progressbar" class="progress-bar bg-primary"></div>
</div>
</div>
<script no-pjax="">
function yearprogress_refresh() {
let year = new Date().getFullYear();
$("#yearprogress_yearname").text(year);
let from = new Date(year, 0, 1, 0, 0, 0);
let to = new Date(year, 11, 31, 23, 59, 59);
let now = new Date();
let progress = (((now - from) / (to - from + 1)) * 100).toFixed(7);
let progressshort = (((now - from) / (to - from + 1)) * 100).toFixed(2);
$("#yearprogress_progresstext").text(progressshort + "%");
$("#yearprogress_progresstext_full").text(progress + "%");
$("#yearprogress_progressbar").css("width", progress + "%");
}
yearprogress_refresh();
if (typeof yearProgressIntervalHasSet == "undefined") {
var yearProgressIntervalHasSet = true;
setInterval(function () {
yearprogress_refresh();
}, 500);
}
</script>
<style>
#yearprogress_text_container {
width: 100%;
height: 22px;
overflow: hidden;
user-select: none;
}
#yearprogress_text_container > span {
transition: all 0.3s ease;
display: block;
}
#yearprogress_text_container:hover > span {
transform: translateY(-20px);
}
</style>

音乐播放功能

server="netease" 指定音乐平台为网易云,type="song" 指单曲类型,id="7373135320" 为音乐的 id(这里的id为打开音乐歌单,网址显示的id)

开启吸底模式 fixed="true", 开启迷你模式 mini="true", 随机播放 order="random", 关闭底部歌词 lrc-type="0"

注意:id需要为自己创建的歌单,不能为我喜欢的音乐;server可以改自己用的音乐平台,如netease(网易云)、tencent(QQ音乐)

具体参数设置点击此链接:https://yy.liveout.cn/article/Learn/front-end/aplayer%E5%8F%82%E6%95%B0.png

Aplayer播放器官网文档:APlayer HTML5音乐播放器 | ACE-BLOG (ace520.github.io)

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/meting@2.0.1/dist/Meting.min.js"></script>
 
<meting-js 
    server="netease" 
    type="playlist" 
    id="7360465359"
    fixed="true" 
    mini="true"
    order="random"
    loop="all"
    preload="auto"
    list-folded="false">
</meting-js>

动态背景

背景可以通过更改 url 链接设置为自己的动态视频尽量不要太大,否则别人访问时会刷新许久

<video
src="https://new.gcxstudio.cn/wp-content/uploads/2022/03/daymode.mp4" /*白天动态视频链接*/
class="bg-video bg-video-day"
autoplay=""
loop="loop"
muted=""
></video>
<video
src="https://new.gcxstudio.cn/wp-content/uploads/2022/03/darkmode.webm" /*夜间动态视频链接*/
class="bg-video bg-video-night"
autoplay=""
loop="loop"
muted=""
></video>
<style>
video.bg-video {
position: fixed;
z-index: -1;
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 100vw;
height: 100vh;
object-fit: cover;
pointer-events: none;
}
html.darkmode video.bg-video.bg-video-day {
opacity: 0;
}
html.darkmode video.bg-video.bg-video-night {
opacity: 1;
}
video.bg-video.bg-video-day {
opacity: 1;
}
video.bg-video.bg-video-night {
opacity: 0;
}
#banner,
#banner .shape {
background: transparent !important;
}
* {
font-family: "Comfortaa", "Open Sans", -apple-system, system-ui,
BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial,
"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", SimSun, sans-serif;
}
</style>
<script
src="https://api.gcxstudio.cn/odometer/odometer.min.js"
integrity="sha256-65R1G5irU1VT+k8L4coqgd3saSvO/Wufson/w+v2Idw="
crossorigin="anonymous"
></script>


<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css">
<script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script>

<div id='aplayer'></div>


虚拟人物(看板娘)

以下代码选择一项复制即可,效果不同,自行选择

具体文章:stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platform (github.com)

<script src="https://fastly.jsdelivr.net/gh/stevenjoezhang/live2d-widget@latest/autoload.js"></script>
  1. 其中 jsonpath: 后面的链接可按自己爱好更改,选择别的虚拟人物
<script src="https://eqcn.ajz.miesnfu.com/wp-content/plugins/wp-3d-pony/live2dw/lib/L2Dwidget.min.js"></script>
<script>
    L2Dwidget.init({
        "model": {
       //jsonpath控制显示那个小萝莉模型,
            //(切换模型需要改动)
//              "https://unpkg.com/(live2d-widget-model-koharu)@1.0.5/assets/(koharu).model.json"
            jsonPath: "https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json",
            "scale": 1
        },
        "display": {
            "position": "right", //看板娘的表现位置
            "width": 75,  //小萝莉的宽度
            "height": 150, //小萝莉的高度
            "hOffset": 0,
            "vOffset": -20
        },
        "mobile": {
            "show": true,
            "scale": 0.5
        },
        "react": {
            "opacityDefault": 0.7,
            "opacityOnHover": 0.2
        }
    });
</script>

   /*   小帅哥: https://unpkg.com/live2d-widget-model-chitose@1.0.5/assets/chitose.model.json
      萌娘:https://unpkg.com/live2d-widget-model-shizuku@1.0.5/assets/shizuku.model.json
      白猫:https://unpkg.com/live2d-widget-model-tororo@1.0.5/assets/tororo.model.json
      黑猫: https://unpkg.com/live2d-widget-model-hijiki@1.0.5/assets/hijiki.model.json
      小可爱(女):https://unpkg.com/live2d-widget-model-koharu@1.0.5/assets/koharu.model.json
      小可爱(男):https://unpkg.com/live2d-widget-model-haruto@1.0.5/assets/haruto.model.json
      初音:https://unpkg.com/live2d-widget-model-miku@1.0.5/assets/miku.model.json
      圣职者妹妹:https://unpkg.com/live2d-widget-model-z16@1.0.5/assets/z16.model.json
      茶杯犬:https://cdn.jsdelivr.net/npm/live2d-widget-model-wanko@1.0.5/assets/wanko.model.json
      绿毛妹妹:https://unpkg.com/live2d-widget-model-tsumiki@1.0.5/assets/tsumiki.model.json
      金龟子妹妹:https://unpkg.com/live2d-widget-model-unitychan@1.0.5/assets/unitychan.model.json
      https://unpkg.com/live2d-widget-model-nito@1.0.5/assets/nito.model.json
      https://unpkg.com/live2d-widget-model-ni-j@1.0.5/assets/ni-j.model.json
      小阿狸: https://unpkg.com/live2d-widget-model-nico@1.0.5/assets/nico.model.json
      https://unpkg.com/live2d-widget-model-nietzche@1.0.5/assets/nietzche.model.json
      https://unpkg.com/live2d-widget-model-nipsilon@1.0.5/assets/nipsilon.model.json
      女学生: https://unpkg.com/live2d-widget-model-hibiki@1.0.5/assets/hibiki.model.json */

网站访问数据(左侧栏)

  1. 进入Wordpress,点击插件,搜索并且下载 Wp Statistics
  2. 外观——小工具——站点额外内容——旧版小工具——统计

网站统计


网站底部信息

CSS(样式表)

<style>
/* 核心样式 */
.github-badge {
display: inline-block;
border-radius: 4px;
text-shadow: none;
font-size: 13.1px;
color: #fff;
line-height: 15px;
margin-bottom: 5px;
font-family: "Open Sans", sans-serif;
}
.github-badge .badge-subject {
display: inline-block;
background-color: #4d4d4d;
padding: 4px 4px 4px 6px;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
font-family: "Open Sans", sans-serif;
}
.github-badge .badge-value {
display: inline-block;
padding: 4px 6px 4px 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
font-family: "Open Sans", sans-serif;
}
.github-badge-big {
display: inline-block;
border-radius: 6px;
text-shadow: none;
font-size: 14.1px;
color: #fff;
line-height: 18px;
margin-bottom: 7px;
}
.github-badge-big .badge-subject {
display: inline-block;
background-color: #4d4d4d;
padding: 4px 4px 4px 6px;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
.github-badge-big .badge-value {
display: inline-block;
padding: 4px 6px 4px 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.bg-orange {
background-color: #ec8a64 !important;
}
.bg-red {
background-color: #cb7574 !important;
}
.bg-apricots {
background-color: #f7c280 !important;
}
.bg-casein {
background-color: #dfe291 !important;
}
.bg-shallots {
background-color: #97c3c6 !important;
}
.bg-ogling {
background-color: #95c7e0 !important;
}
.bg-haze {
background-color: #9aaec7 !important;
}
.bg-mountain-terrier {
background-color: #99a5cd !important;
}
</style>

HTML(底部信息)

<div class="github-badge-big">
<span class="badge-subject"><i class="fa fa-id-card"></i> 备案号 </span
><span class="badge-value bg-orange">
<a href="https://beian.miit.gov.cn/" target="_blank" one-link-mark="yes"
>苏ICP备2022020194号</a
>
|
<a
href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode= 32072202010255"
target="_blank"
one-link-mark="yes"
>苏公网安备 32072202010255号</a
></span
>
</div>
<div class="github-badge-big">
<span class="badge-subject">Copyright </span
><span class="badge-value bg-red">
2022-2022
<i class="fa fa-copyright"></i> Echo</span
>
</script>
</div>

<div class="github-badge">
<span class="badge-subject"><i class="fa fa-wordpress"></i> Powered</span
><span class="badge-value bg-green"
><a href="https://cn.wordpress.org/" target="_blank" one-link-mark="yes"
>WordPress</a
></span
>
</div>
<div class="github-badge-big">
<span class="badge-subject"><i class="fa fa-clock-o"></i> Running Time</span
><span class="badge-value bg-apricots"
><span id="blog_running_days" class="odometer odometer-auto-theme"></span>
days
<span id="blog_running_hours" class="odometer odometer-auto-theme"></span> H
<span id="blog_running_mins" class="odometer odometer-auto-theme"></span> M
<span id="blog_running_secs" class="odometer odometer-auto-theme"></span>
S</span
>

JavaScript(网站运行时间脚本)

注意:new Date( year, month, date, hrs, min, sec) 按给定的参数创建 日期对象

其中month的值域为0~11,0代表1月,11表代表12月;所以你输入的月份需要为自己真正月份的前一个月

<script no-pjax="">
var blog_running_days = document.getElementById("blog_running_days");
var blog_running_hours = document.getElementById("blog_running_hours");
var blog_running_mins = document.getElementById("blog_running_mins");
var blog_running_secs = document.getElementById("blog_running_secs");
function refresh_blog_running_time() {
var time = new Date() - new Date(2022, 5, 31, 0, 0, 0); /*此处日期的月份改为自己真正月份的前一个月*/
var d = parseInt(time / 24 / 60 / 60 / 1000);
var h = parseInt((time % (24 * 60 * 60 * 1000)) / 60 / 60 / 1000);
var m = parseInt((time % (60 * 60 * 1000)) / 60 / 1000);
var s = parseInt((time % (60 * 1000)) / 1000);
blog_running_days.innerHTML = d;
blog_running_hours.innerHTML = h;
blog_running_mins.innerHTML = m;
blog_running_secs.innerHTML = s;
}
refresh_blog_running_time();
if (typeof bottomTimeIntervalHasSet == "undefined") {
var bottomTimeIntervalHasSet = true;
setInterval(function () {
refresh_blog_running_time();
}, 500);
}
</script>

相关链接

本文所涉及的代码出自以下博客文章,十分感谢下面各位大佬的分享

个人博客Echo's blog

关于 Argon 主题 更多美化内容文章Argon 主题的美化设置 - Gong_cx (gcxstudio.cn)

关于博客中添加音乐插件: https://echeverra.cn/aplayer

Argon主题 GitHub地址solstice23/argon-theme: 📖 Argon - 一个轻盈、简洁的 WordPress 主题 (github.com)

Argon主题制作人博客solstice23 – Blog

Argon主题使用文档首页 - Argon Theme Docs (solstice23.top)

  •  

2025年终总结

时间 等不了人
生活中 一不留神
转个眼秒杀了
随秒针蒸发了
昨天变成了今天
过去变成了现在
未来刚才来
它从何而来
岁月 眨眼就过了
瞬间 就那样默默的
上一次看 才二十三

属于懒癌晚期了,12 月想着写年终总结,结果一直拖到 2 月底、、、

此外,真的感觉一年比一年过得快啊有木有

眨眼就24 岁了,到了本命年了,然而上一次 12 岁过年的记忆却一点也没有。先祝大家新年快乐吧~

2025 也算是人生中的一次转折点吧。换了一座城市,重新开始另一段求学之旅。

上半年依旧是在无聊且负收益的实习中度过,一直到 5 月底开始毕设答辩才结束。6 月基本上是最幸福的时候了,在学校的最后一个月,整体躺在宿舍打游戏,享受最后的大学时光,

暑假一晃而过,就到了开学的时候。下半年开始适应新的环境,结果吐槽到学期结束。

学校的宿舍满满的叙利亚风格,堪比战犯营,这一点是最受不了的。此外学院为了阻止学生出去实习,修改了奖学金政策,除了绩点,还需要去参加各种文娱活动、学术会议等,就连入学奖学金也降低了,属实是恶心到家了。

不过北京毕竟寸土寸金的,能有宿舍也算不错了。本来想着北京好找实习,特地选了这,结果学校放实习的导师寥寥无几,不过导师虽然研三才放人,但是平时对人也挺好,也算是不信中的万幸了。平时除了上课,就是在工位学点东西,顺便帮导师干干小活。每天中午起,健个身,下午去工位,凌晨回宿舍。每次感慨一天怎么过的这么快,仔细想想起床时候已经过了半天了。

期间一直在寻找就业方向,虽然一直打算干嵌入式,但是细分却不知道去做什么,后面独自摸索打算走驱动方向,并且跟着正点原子的教程学了下去,现在差不多也完结了。

后来想偷偷出去实习,可惜简历实在稀烂,回复基本寥寥无几,而且时间基本要求长期,本打算加上寒假实习 3 个月,结果一听实习时长直接拒了。此外,虽然北京互联网厂很多,但是电子类感觉还是南方深圳岗位多点,而且周围学历全是 211 起步,属实拼不过别人,哎。后面就妥协了,既然没法实习,就继续深耕,做点有含金量的项目吧。

这一年大模型的发展让我见识到了什么才叫 人工智能。这学期的课设等所有代码项目全部靠大模型完成。Gemini、Copilot、Chagpt 是用的最多的,幸亏前两个有学生认证优惠,也属于薅到羊毛了。现在如果离了这些,估计一点代码也写不出来了。

除了学习外,也开始探索北京这座城市,去了雍和宫、什刹海、圆明园、颐和园等。寒假前趁着放假人少,也和室友成功约上了清华,去参观了下,小时候的梦也算实现了一半,哈哈哈哈。北京确实是一个让人向往的地方,也难怪这么多北漂,不知道以后会不会成为里面的一员。

就这样,一年也就过去了,也到了我的本命年,不过本命年好像犯太岁,希望今年可以一帆风顺点。

  •  

实习小记

实习


从实习到现在,差不多两个月了。每天早上7点准时起来,然后挤地铁,八点多到医院。中午和同学一起吃饭,下午 4.30 准时下班走人。
日复一日,期间看完了python基础,做了个基于Django框架的网站项目,不过也是看着书照葫芦画瓢,了解了下基本框架。想着用于考研复试,可惜有没有机会都不知道。
2月4号回到医院,一个月轮一个岗,好在目前都挺闲,想着如果考不上,就直接找工作,于是看了本《C++ Primer》。然而随着考研出分日期越来越接近,已经完全看不下去了,就像一个等待行刑的罪犯一样,一点学习的念头都没有。

韩剧

周末无聊的刷着抖音,突然蹦出来一个04年的古着韩剧,名字叫《对不起,我爱你》
剧情简介:

车武赫(苏志燮饰)似乎是一个注定被上帝遗忘的人。刚出生就被父母抛弃的他从小受尽澳大利亚养父的虐待,直到流浪街头与韩裔女孩智英(崔汝珍饰)相遇后才以为终于找到了真情。虚伪的智英最后为了钱弃他而去,为了保护智英,一颗子弹却永远地留在了武赫的脑袋里。回到韩国后,武赫看到亲生母亲(李慧英饰)和弟弟崔允(郑敬淏饰)过着与自己截然不同的富裕生活,于是复仇之火在武赫心中熊熊燃起。在复仇的过程中,武赫爱上了与弟弟青梅竹马的恩彩(林秀晶饰),并为了她逐渐放弃了复仇的计划。最后为了拯救出车祸的弟弟,武赫不惜牺牲自己的生命捐出心脏,而失去此生最爱的恩彩最终也选择在武赫的墓前结束自己的生命。

看讲解挺有意思的,于是特地搜了下,发现全网都是战损画质,毕竟是04年,我也就早出生两岁。后来翻评论,得知B站有4K修复版,链接贴在这里了:【【4K】对不起我爱你】
怪不得女生都喜欢看韩剧,尤其是零几年的时候,现在终于是感同身受了。
剧情现在听起来挺狗血的,但是后劲还是挺大的,尤其是女主最后殉情的时候,害。 ps:恩彩太好看了吧

剧中的歌曲也非常nice,中日韩三个版本都有,这里贴个剧中的吧:
现在真恨自己手贱,为什么特地找来看看,以至于现在都有点恍惚。在这里推荐下这部剧,如果太闲了,一定要看下~

健身

考研一年胖了十斤,也是这一年为数不多的收获了。由于天生的外胚体质,吸收不好,消耗还多,从小瘦到现在。
考研前也一直有想要健身的念头,奈何没有坚定的决心,不好意思在宿舍锻炼,也怕没有时间。更没有勇气走进健身房,毕竟细胳膊细腿的,害怕别人的眼光。
考研这一年,学校特地找了个大的自习室,装修成了健身房。正好考完研,于是踏出了人生中的第一步,去了学校健身房开始健身。
奈何好景不长,学生们陆续考完试,回家了,健身房开门时间也变短了,正好在我下班后关门。于是便在宿舍举起了哑铃,跟着网上三分化计划进行训练。期间买了米糊,用来补充碳水,进行增重。过年后又买了桶蛋白粉,补充蛋白质摄入。
记得第一次进入健身房,便开始猛练,当天还没啥反应,结果第二天变成了螳螂臂,手都伸不直,休息了四天才好。后来再去就好多了。期间右手腕也伤着了,一用力手筋就疼,于是便买了个护腕。幸运的是,付出有了点回报,手臂终于有了点形状。

吐槽

现在每天浑浑噩噩的,上班就是睡觉、刷抖音。唯一有点期望的就是回到宿舍进行健身了,然后就是趴在床上进行emo了。
不知道是因为受了那部韩剧的影响,还是因为要出分了,又或者想起某人了,最近总感觉一点精神都没有,有点人生没有意义的感觉。
不过这些应该也是正常现象吧,毕竟濒临毕业,马上结束仅剩的校园时光,正常人都会有的迷茫时刻。想起易中天形容刘备的那句话:

前途光明我看不见,道路曲折我走不完
哈哈,记得高中时候捧着太宰治的《人间失格》,看完后却也感觉不出什么。就如辛弃疾所说:
少年不识愁滋味,爱上层楼。爱上层楼,为赋新词强说愁。
而今识尽愁滋味,欲说还休。欲说还休,却道“天凉好个秋”!
尽管现在也是不识愁滋味,但是每个时间段,总有特定的困惑,对吧。
由于太过无聊,又想着博客好久没更新了,于是便写篇实习小记,正好又水了一篇文章
  •  

2024年终总结

又到了一年一度的年终总结时候了,博客最近的一次文章还是去年的年终总结,害,这一年过的太快了~

前言

今年发生许多事,但是又感觉啥事没有(废话文学)。如果将这一年形容为打游戏的话,主线就是考研,支线就是旅途上的各种趣事了。
下面就开始流水账了,也算是给这一年的交代

博客

今年一直忙着考研,基本没怎么打理博客,虽然也没啥好打理的。唯一一个让人心烦的就是又拍云的cdn被刷了两次吧。
一次是群体性的,好多博主被刷了,当时损失还小,几十块钱吧。经过这件事后长了记性,让又拍云客服设置了每日额度提醒。结果后来又被刷了一次,两百多,第二天才有提醒。找了又拍云客服算帐,最后给了二百多代金劵,但是欠的费用必须自己充钱补了。
经过这件事后,我把图片以及字体全部托管到github上了,速度堪忧,所以有的文章图片会显示失败,现在也还没想到什么有效的方法,估计后面可能把图片全托管在服务器上了。
由于忙着考研,也有单纯懒的原因,关于主题博客等相关问题,除了一开始回复了下,后面基本没回复过了,不过评论区也有好心人会回复这些咨询,这里感谢下他们。
除了这些外,一直有个想法,就是换个框架,把文章迁移到typecho上。后来由于迁移中出错,以及觉得太麻烦了,就放弃了,不知道后面会不会实现。

考研

今年考研人数继续下降,反之,考公人数再次增长。这个时代,似乎到处都是路,但是每条路上都挤满了人。
下面这些话属于我的无病呻吟了,哈哈哈,见谅~
为了缓解就业压力,研究生再次扩招,可能很多人觉得现在考研变简单了,但是却很少人知道扩招的名额基本给了保研。除了这个以外,扩招的学校基本都是些学院或者刚改为大学的学校。关于读双非研究生到底有没有用,谁也给不了正确的答案。
有人觉得考研就是逃避就业,继续呆在温室里。但是,如果有好的工作的话,谁会去考研呢~(学术追求等除外)。我想大部分人考研应该是为了能找个更好的工作吧。现在的就业形势,学历越来越不够用了。公司招的要么就是三年经验起步,要么就是非92不要,可能会略显夸张。
谈谈我的考研历程吧,这次纯是流水账,诉说下自己的苦,可以跳过~
寒假时候在家里背了会单词书,看了点数据结构,正式开始应该是从3月开始备考。当时每天课很多,基本都是找零碎时间去自习室学习,有时候还会没有位置。期间还忙里偷闲爬了泰山。
四月末,突然群体改考408(计算机专业统考),虽然我心仪学校并未改考,但是自命题的竞争压力前所未有的增大,为了缓解我永远学不好的数学,我决定学408。专业课从一本书换成了四本。所幸本科有学过这些科目,虽然是浅尝辄止,但也还算有所了解。五一貌似整个假期都是在自习室过的,以及一起备考的室友和朋友。
后来开始放暑假了,由于学校不给留校,本来打算和室友一起在外面租个房子,可惜没啥好的地方可租,以及考虑到房租费,于是作罢,将书全部带回家,开始了两个月的自学。暑假最快乐的时候应该就是学累了打nba2k的时候,可以暂时忘掉考研的压力。记得当时学习时偷偷刷会抖音都会有股罪恶感,哈哈哈。
九月回校时感冒了一星期,和阳了差不多,当时黑神话正火,于是室友和我在宿舍玩了四天的黑神话,当时也是因为来得早,自习室也没啥人,于是就松懈了会。感冒好了就开足马力学习了。这个月应该是我学习效率最高的时候,整天都沉浸在知识里,哈哈,有一点点夸张。
期间基本没啥课了,每天8:30到自习室,晚上10点回宿舍,偶尔休息一会,也只敢休息一上午。
到了十月,本想在自习室学足7天,后来朋友来找我玩,以及学的确实太累了,便开始三天打鱼,两天晒网。后面就是考研预报名了,已经感觉到时间的紧迫了,但是还是一点不慌张,一直到网上确认,仍然是乐呵呵的心态。甚至11月底还抽空去了洛阳,爬了老君山。

接着就是十二月了,要上战场了,看到到手的肖四,开始慌张起来,一切计划都打乱了。开始早起到自习室背书,一背就是一上午。晚上回宿舍后还要在楼梯口背会,虽然没啥效果,只是感动自己罢了。
由于在其他学校考,20号便带着行李到了订的酒店,幸亏订的早,不然这价格都不用考研了,两晚能够炒到1k,真够离谱的。到酒店后全是兴奋感,不知道是要解放了,还是啥,一下午就那样过去了。晚上看着记不住的肖四,一筹莫展,一直背到12点才上床,结果1点多才睡着。早上5点又起床背肖四,直到进考场。
第一场考政治,这时候身体开始分泌物质了,也点也不困,只是做完选择,浏览完大题后,突然感觉这些天努力白费了。背的全在材料里原来不是梗。也不能怪肖四肖八没用,只能说命题组你做个人吧。对着材料换着花样抄,最后也就憋出一点字就交卷了。
下午就是英二了,先写的作文,感觉还挺简单,等到做阅读理解的时候,开始犯困了,而且文章越看越懵,和往年真题卷做的感觉一点也不一样。最后交卷时候改了三四个选择。回到酒店后开始思考人生了,感觉这次是完蛋了,哎,想哭
第二天上午考的数二,考完都说简单,对比往年确实,但是打小数学就不好,出考场后就发现积分算错了,这下好了,本来想靠英语拉下数学的,结果双双坠落了,中午一点饭没吃,默默看着专业课,祈祷能拯救自己。
下午的专业课就是中规中矩了,还是有许多不会,已经麻木了,不知不觉就交卷了,整个考研也结束了。
回顾备考之路,总有说不出道不明的感觉,没人会关心你苦不苦,只有结果能说明,只希望我的结果能好一点。
努力了吗?确实努力了。只是面对考试,还是有股力不从心,一切白干的感觉。
不过这一年也收获了许多,在自习室认识了许多很好的人,收到了许多小零食,哈哈哈哈。这里还是很感谢考研这条路,让我走进了自习室,收获了比以往更多的东西。

偷闲

考研期间一共爬了两座山,分别是泰山和老君山。
泰山是三月爬的,当时刚开始准备考研。干大事前总得有个标志性开始,于是便决定爬个泰山,来表决考研的决心。
太多细节已经记不清了,由于cdn欠费,也只能扔一张图片了~

接着就是11月底的老君山。当时刚从自习室回来,吃个晚饭再继续学。结果室友刷到了老君山下雪的视频。以及大学生免门票,便来了场说走就走的旅行。结果路上发现人太多,已经取消了,真够离谱的。
决定去爬后,当场定了凌晨的火车,回自习室把书收了,就开始收拾东西,准备出发。
坐了7个小时的硬座,终于到了洛阳站。不过硬座是真的没有体验,太闹腾了。后来发现还要再坐两个半小时的大巴,才能到老君山,差点猝死过去。
到了老君山后,先做了一级索道,然后开始爬山。雪还没有化,路有点滑,全是冰雪,不过风景独美。到达山顶时,全是雾,以为要带着失望回去了,结果出太阳了,完整的见证了整个规程,太壮观了,照片确实拍不出风景的美。
202402
勇敢的人,先享受世界
等到下山的时候,已经快6点了,还要再坐大巴回市里。此时已经又累又虚,本来打算坐高铁,结果赶不上了,便买了卧铺回去。不过也幸亏没赶上,便去了洛阳城楼那游玩了一番。

小姐姐很飒,哈哈哈

实习

按照学校安排,考完研后就开始没有工资的实习了,预计到5月底才结束。期间还得忙毕设以及复试(如果有希望的话)
每天7点起,匆忙洗漱,买点早饭就赶地铁了。不过好在实习不是很忙,老师都挺好,可以忙些其他的。有时间得考虑找个兼职,赚点钱,哎~。都要大四毕业了,还没开始赚钱,太悲哀了

且行且珍惜,今年失去了非常好的人,原因是我,没办法,我就是一个很矛盾的人,希望大家要珍惜眼前人
预计今年6月毕业,写个大学四年的终结吧。总感觉大一开学还在昨天,然而现在宿舍已经走了两个人了。
此外,在自习室遇到许多朋友,被投喂了好多,哈哈哈。
祝6号楼自习室的朋友们,期末考试顺利,早日解放。研友们成功上岸,金榜题名!
希望3月份,我们还能在自习室相遇~

  •  

2023年终总结

2024

又到了写年终总结的时候了。
每天一记的日记我肯定坚持不下去,但是每年一次的年终总结,我应该能坚持下。

万卷古今消永日,一窗昏晓送流年
在万卷书中消磨自己整日时光,南窗下让自己生命的河流静静地流过。
这首诗句是陆游写的,用来感叹读书对时间的消磨以及对内心的充实。
非常贴合2023年我的校园生活(并不是指读了许多书,hh)
2023年,应该算是大学中最稳定的一年了,也是最充实的一年。
没有初入校园的懵懂,也没有大三后期对人生该驶向何处的迷茫。
我可以拥有一定的时间去探索感兴趣的方向,也可以选择去一些风景名地来开阔自己的内心。
青春没有售价,一切皆在脚下

生活

其实今年并没有去了很多地方,因为实在做不到真正的穷游,哈哈。
唯一的一次远门,也就是做了两小时高铁的南京,体验了下疫情解封后的疯狂。
解封后的生活 – Echo小窝 (liveout.cn)
也就是上面这篇文章里描述的那样,其他时候基本都是在当地以及附近玩玩了。
除了这个外,就是基本的三点一线了,偶尔出去下趟馆子,也就是下面这篇文章所述
九月 – Echo小窝 (liveout.cn)
没办法,今年发生的能够谈谈的基本都被写出来了,我也没法用来凑字数了。

博客

如今,一到年底,各大APP都会争先推送各种总结报告,既然如此,我也给博客写一份年总报告吧。
在2023年这一年中,小E的小窝一共更新了 27篇文章,其中大部分都是技术文章。
相比文章,碎碎念 达到了惊人的 38条 ,平均每个月吐槽3次。果然,吐槽是人的本质。
不过好在文章数和碎碎念数量一样,说明我更新的也是挺频繁的。
除此之外,访客量达到了 349771,点击量则是 761959,emm,除去友链经常互访的小伙伴们,数据还是不错的,哈哈。
其实一开始也没想到会有这么多人访问,毕竟只是一个私人博客,也没啥营养东西。不过友链和B站教程视频倒是引流了不少,也算是一个不错的礼物——送给自己的博客。
因为博客是一时兴起搭建的,许多地方设置的不是很合理。
一开始我是打算用来记录生活和学习笔记等文章,确实做到了这一步。不过因为各种文章都发布在这一个博客中,导致比较杂乱。因此,我打算后面将学习记录以及教程文章全部搬迁到其他地方,而这个博客单纯当作一个记录和吐槽生活的地方。至于什么时候,应该得明年吧(确实是明年,hh)。

抉择

下面就是最重要的地方了。
每次写年终总结时都会觉得时间过得飞快,现在也一样。
刚搭建博客时候是大一暑假,现在已经到了大三寒假了。工作 or 考研是一个不得不面对的问题。这也是一个使人成长的问题。
友链里面的朋友们已经都开始实习了,而我现在却一点准备也没有,除了一个破简历,总结了大学所学的所有知识。
不过现如今,我的学历已经不够看了,因此,我选择了考研。当然,考研也是面向工作。
至于考公,一直从未出现在我的选择里。因为我也有一个年薪百万的IT梦,哈哈,开个玩笑。
今年考公的人数也在增加,恰巧是考研减少的人数。考公的难度和考研的难度,对我来说,应该是一样的,都很难。
既如此,不如先考研,如果运气好,考上了,到时候再考虑是考公或者工作。如果考不上,那么我估计会二战。如果运气好点,能够找到一个凑活的工作,那么便是边工作边二战了。
既然做了选择,下面就该努努力了。博客也该放一放了,毕竟没啥文章能写。有可能下一篇文章就是2024年的年终总结了,哈哈。希望一战上岸吧(虽然上岸后还有无数个岸)

  •  

Git命令汇总

前言

单纯的对一些经常用的 git 命令进行总结,方便以后查询使用,没啥营养

1. 基础

git add          # 提交到 暂存区
git commit -m "commnet"    # 提交到 版本库
git branch -M main # 重新命名分支
git remote add origin # 添加远程仓库
git pull origin master # 从名为 origin 的远程仓库的 master 分支拉取最新的提交,并将其合并到当前分支
git push origin main   # 将本地仓库的文件push到远程仓库(若 push 不成功,可加 -f 进行强推操作)
git diff read.txt # 查看文件变化

2. 版本回退

git reset --hard HEAD^ # 恢复到上一个版本
git reset --hard HEAD~10 # 恢复到网上10个版本
git reset --hard commitID # 恢复到指定commit版本

3. 撤销修改

git restore  # 工作区
git restore --staged  # 暂存区,工作区需要执行上一步 add
git reset --hard HEAD^ # 工作区、暂存区、本地仓库都回退 commit

4. 删除文件

rm file
git add file
git commit -m ""

5. 分支操作

git branch test # 创建分支 test
git branch # 查看当前分支
git switch -c test # 创建test分支,然后切换到test分支 git branch test git checkout test
git switch master # 切换
git merge test # 合并指定分支到当前分支
git merge --no-ff -m "no-ff" test # 禁用快进(fast-forward)合并,强制创建一个新的合并提交
git branch -d test # 删除分支
git branch -D test # 强制删除
git log --graph # 查看分支合并图

6. 保存和恢复

git stash save "Your stash message" # 保存工作进度
git stash list # 查看 stash 列表
git stash apply [] # 应用
git stash drop [] # 删除
git stash pop [] # 应用并删除
git cherry-pick # 将一个或多个提交从一个分支应用到另一个分支

7. 多人协作

git remote -v # 查看远程库的信息
git switch -c dev origin/dev # 本地创建一个新分支 dev,并将其设置为跟踪远程仓origin/dev 分支
git branch -u origin/dev dev # 本地分支 dev 设置为跟踪远程仓库的 origin/dev 分支
git push origin master   # 将本地仓库文件push到远程(若push不成功,可加-f进行强推)
git pull origin master # 从远程仓库origin的master分支拉取最新提交,并将其合并到当前分支
git rebase # 把本地未push的分叉提交历史整理成直线

8. 标签

标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。
git tag v1.0 # 打一个新标签V1.0,默认是打在最新提交的commit上
git log --pretty=oneline --abbrev-commit # 每一行包含了一个提交的简略哈希和提交信息
git tag v0.9 f52c633 # 在特点commit上打标签
git tag -a v0.1 -m "v0.1 released" 1094adb # 创建带有说明的标签,用-a指定标签名,-m指定说明文字
git tag # 查看所有标签
git show v0.9 # 查看标签信息,标签不是按时间顺序列出,而是按字母排序
git tag -d v0.1 # 删除标签
git push origin v1.0 # 推送标签到远程
git push origin --tags # 一次性推送全部尚未推送到远程的本地标签
git push origin -d tag tagName # 删除一个远程标签
git ls-remote --tags origin # 查看删除远程tags执行效果
  •  

讯飞免费星火大模型部署教程

前言

发现两个多月没写文章了,不过考试月也没啥好写的。
最近大模型这么火,正好有个项目用到,于是便水一篇教程吧。
此篇教程为 科大讯飞的星火大模型 部署教程,部署完成后即可与智能助手进行聊天。
这里是关于部署到服务器端,如果有其他需求可以查看官方文档。

大模型简介

**大语言模型** (英语:large language model,LLM) 是一种语言模型,由具有许多参数(通常数十亿个权重或更多)的人工神经网络组成,使用自监督学习半监督学习对大量未标记文本进行训练[[1]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-1)。大型语言模型在2018年左右出现,并在各种任务中表现出色[[2]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-Manning-2022-2)。
尽管这个术语没有正式的定义,但它通常指的是参数数量在数十亿或更多数量级的深度学习模型[[3]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-extracting-3)。大型语言模型是通用的模型,在广泛的任务中表现出色,而不是针对一项特定任务(例如情感分析、命名实体识别或数学推理)进行训练[[2]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-Manning-2022-2)。
尽管在预测句子中的下一个单词等简单任务上接受过训练,但发现具有足够训练和参数计数的神经语言模型可以捕获人类语言的大部分句法和语义。 此外大型语言模型展示了相当多的关于世界的常识,并且能够在训练期间“记住”大量事实[[2]](https://zh.wikipedia.org/wiki/大型语言模型#cite\_note-Manning-2022-2)。
参考资料:llm - 搜索 (wikipedia.org)

部署

API领取

首先前往科大讯飞的星火大模型官网 讯飞星火认知大模型-AI大语言模型-星火大模型-科大讯飞 (xfyun.cn)
进行注册,然后领取大模型的API

这里选择 API免费试用 ,然后进入如下页面

选择第一个 个人免费包免费试用 。等到领取成功后,后台会有如下界面

这里的 APPIDAPISecretAPIKey 就是接口信息,后面会用到。

Linux SDK 下载

进入上面页面后,点击 Linux SDK 右边的下载按钮。将会下载SDK包,感兴趣的也可以点击文档查看使用教程
下载完成后传到服务器,使用解压命令解压包

unzip Spark3.0\_Linux\_SDK\_v1.1.zip

然后进入解压出来的包 Spark3.0\_Linux\_SDK\_v1.1 , 里面应该包含如下文件

root@echofree:/opt# cd Spark3.0\_Linux\_SDK\_v1.1/
root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ls
build include lib src

动态库配置

进入 lib 目录,里面会有一个相关的调用库

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# cd lib/
root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1/lib# ls
libSparkChain.so

这里为了方便点,直接采用暴力方法,将库文件 libSparkChain.so 复制到 /usr/lib

cp libSparkChain.so /usr/lib

API接口配置

进入 src 目录,会有一个 demo.cpp 文件,进入此文件,修改如下信息

int initSDK()
{
// 全局初始化
SparkChainConfig \*config = SparkChainConfig::builder();
config->appID("appID") // 你的appid
->apiKey("apiKey") // 你的apikey
->apiSecret("apiSecret"); // 你的apisecret
// ->logLevel(0)
// ->logPath("./aikit.log");
int ret = SparkChain::init(config);
printf(RED "\ninit SparkChain result:%d" RESET,ret);
return ret;
}

将这里的 三个API配置信息改为自己的即可。

demo测试

配置完成后就要测试连接了,使用 GNU 编译套件进行编译,命令如下

g++ -Iinclude src/demo.cpp -o demo -lSparkChain -lstdc++ -lpthread

如果你会 Makefile 的话,也可以复制下面的进行编译

CC = g++
CFLAGS = -Iinclude
LIBS = -lSparkChain -lstdc++ -lpthread
SRC = src/server.cpp
OUTPUT = demo
all: $(OUTPUT)
$(OUTPUT): $(SRC)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
clean:
rm -f $(OUTPUT)

如果一切正常,文件夹下会生成一个可执行文件 demo

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ls
build demo files include lib src

运行看看

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ./demo
######### llm Demo #########
init SparkChain result:0
######### 同步调用 #########
syncOutput: assistant:Hello
syncOutput: assistant:こんにちは
######### 异步调用 #########
0:assistant:Hello:myContext
2:assistant::myContext
tokens:1 + 5 = 6
0:assistant:こ:myContext
1:assistant:んに:myContext
1:assistant:ちは (:myContext
1:assistant:Konnichi:myContext
2:assistant:wa):myContext
tokens:12 + 10 = 22

很好,配置完成!

加点互动

下面就要给他加互动功能了,毕竟大模型不能进行交互聊天,那还要他做什么
修改 demo.cpp 文件,内容如下

记得修改下 API信息哦
#include "../include/sparkchain.h"
#include
#include
#include
#include
#include
#define GREEN "\033[32m"
#define YELLOW "\033[33m"
#define RED "\033[31m"
#define RESET "\033[0m"
using namespace SparkChain;
using namespace std;
// async status tag
static atomic\_bool finish(false);
// result cache
string final\_result = "";
class SparkCallbacks : public LLMCallbacks
{
void onLLMResult(LLMResult \*result, void \*usrContext)
{
int status = result->getStatus();
printf(GREEN "%d:%s:%s:%s \n" RESET, status, result->getRole(), result->getContent(), usrContext);
final\_result += string(result->getContent());
if (status == 2)
{
printf(GREEN "tokens:%d + %d = %d\n" RESET, result->getCompletionTokens(), result->getPromptTokens(), result->getTotalTokens());
finish = true;
}
}
void onLLMEvent(LLMEvent \*event, void \*usrContext)
{
printf(YELLOW "onLLMEventCB\n eventID:%d eventMsg:%s\n" RESET, event->getEventID(), event->getEventMsg());
}
void onLLMError(LLMError \*error, void \*usrContext)
{
printf(RED "onLLMErrorCB\n errCode:%d errMsg:%s \n" RESET, error->getErrCode(), error->getErrMsg());
finish = true;
}
};
int initSDK()
{
// 全局初始化
SparkChainConfig \*config = SparkChainConfig::builder();
config->appID("appID") // 你的appid
->apiKey("apiKey") // 你的apikey
->apiSecret("apiSecret"); // 你的apisecret
// ->logLevel(0)
// ->logPath("./aikit.log");
int ret = SparkChain::init(config);
printf(RED "\ninit SparkChain result:%d" RESET,ret);
return ret;
}
void syncLLMTest()
{
cout << "\n######### 同步调用 #########" << endl;
// 配置大模型参数
LLMConfig \*llmConfig = LLMConfig::builder();
llmConfig->domain("generalv3");
llmConfig->url("ws(s)://spark-api.xf-yun.com/v3.1/chat");
Memory\* window\_memory = Memory::WindowMemory(5);
LLM \*syncllm = LLM::create(llmConfig, window\_memory);
// Memory\* token\_memory = Memory::TokenMemory(500);
// LLM \*syncllm = LLM::create(llmConfig,token\_memory);
int i = 0;
//const char\* input = "";
while (1)
{
char input[256]; // 定义一个足够大的字符数组来接收用户输入
printf("请输入问题 (输入 'q' 退出):");
scanf("%s", input);
if (strcmp(input, "q") == 0) {
break; // 如果输入是 'q',则退出循环
}
// 同步请求
LLMSyncOutput \*result = syncllm->run(input);
if (result->getErrCode() != 0)
{
printf(RED "\nsyncOutput: %d:%s\n\n" RESET, result->getErrCode(), result->getErrMsg());
continue;
}
else
{
printf(GREEN "\nsyncOutput: %s:%s\n" RESET, result->getRole(), result->getContent());
}
}
// 垃圾回收
if (syncllm != nullptr)
{
LLM::destroy(syncllm);
}
}
void uninitSDK()
{
// 全局逆初始化
SparkChain::unInit();
}
int main(int argc, char const \*argv[])
{
cout << "\n######### llm Demo #########" << endl;
// 全局初始化
int ret = initSDK();
if (ret != 0)
{
cout << "initSDK failed:" << ret << endl;
return -1;
}
syncLLMTest(); // 同步调用
// 退出
uninitSDK();
return 0;
}

如果你仔细观察,会发现少了一部分代码。
星火大模型的接口调用给了两种方式,一种是同步,一种是异步

这里我用的是同步,所有文字都输出完,才会打印在终端。
正常的大模型,应该都是异步调用,即慢慢打印出来,这里留给读者自己修改了。
下面看下运行效果

root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1# ./demo
######### llm Demo #########
init SparkChain result:0
######### 同步调用 #########
请输入问题 (输入 'q' 退出):徐州天气怎么样
syncOutput: assistant:今天徐州市的天气是多云,气温在3℃到11℃之间,有点冷。东风4-5级,湿度为53%。空气质量良好,PM2.5指数为60。在这样的天气条件下,适宜旅游、钓鱼和户外运动,但要注意保暖。同时,感冒较易发生,请注意保持干净整洁的环境和清新流通的空气。
请输入问题 (输入 'q' 退出):你是什么
syncOutput: assistant:您好,我是科大讯飞研发的认知智能大模型,我的名字叫讯飞星火认知大模型。我可以和人类进行自然交流,解答问题,高效完成各领域认知智能需求。
请输入问题 (输入 'q' 退出):q
root@echofree:/opt/Spark3.0\_Linux\_SDK\_v1.1#

效果还是不错的。

整点花活

既然一切都配置ok了,那肯定得进行应用开发了,这里来个小demo

这里是使用 Qt 开发的一个非常质朴的聊天界面,也就是开头所说的项目中正好用到大模型的地方。由于时间紧张,技术能力有限,就直接搬上去了。
具体原理就是使用 Linux的 socket多线程 与界面进行通信。服务器端负责接收客户端的信息并进行回复。

后续

由于技术有限,并且考试月繁忙,等到有空闲时间了,再写个单独的交互界面。

  •  

2025年终总结

时间 等不了人
生活中 一不留神
转个眼秒杀了
随秒针蒸发了
昨天变成了今天
过去变成了现在
未来刚才来
它从何而来
岁月 眨眼就过了
瞬间 就那样默默的
上一次看 才二十三

属于懒癌晚期了,12 月想着写年终总结,结果一直拖到 2 月底、、、

此外,真的感觉一年比一年过得快啊有木有

眨眼就24 岁了,到了本命年了,然而上一次 12 岁过年的记忆却一点也没有。先祝大家新年快乐吧~

2025 也算是人生中的一次转折点吧。换了一座城市,重新开始另一段求学之旅。

上半年依旧是在无聊且负收益的实习中度过,一直到 5 月底开始毕设答辩才结束。6 月基本上是最幸福的时候了,在学校的最后一个月,整体躺在宿舍打游戏,享受最后的大学时光,

暑假一晃而过,就到了开学的时候。下半年开始适应新的环境,结果吐槽到学期结束。

学校的宿舍满满的叙利亚风格,堪比战犯营,这一点是最受不了的。此外学院为了阻止学生出去实习,修改了奖学金政策,除了绩点,还需要去参加各种文娱活动、学术会议等,就连入学奖学金也降低了,属实是恶心到家了。

不过北京毕竟寸土寸金的,能有宿舍也算不错了。本来想着北京好找实习,特地选了这,结果学校放实习的导师寥寥无几,不过导师虽然研三才放人,但是平时对人也挺好,也算是不信中的万幸了。平时除了上课,就是在工位学点东西,顺便帮导师干干小活。每天中午起,健个身,下午去工位,凌晨回宿舍。每次感慨一天怎么过的这么快,仔细想想起床时候已经过了半天了。

期间一直在寻找就业方向,虽然一直打算干嵌入式,但是细分却不知道去做什么,后面独自摸索打算走驱动方向,并且跟着正点原子的教程学了下去,现在差不多也完结了。

后来想偷偷出去实习,可惜简历实在稀烂,回复基本寥寥无几,而且时间基本要求长期,本打算加上寒假实习 3 个月,结果一听实习时长直接拒了。此外,虽然北京互联网厂很多,但是电子类感觉还是南方深圳岗位多点,而且周围学历全是 211 起步,属实拼不过别人,哎。后面就妥协了,既然没法实习,就继续深耕,做点有含金量的项目吧。

这一年大模型的发展让我见识到了什么才叫 人工智能。这学期的课设等所有代码项目全部靠大模型完成。Gemini、Copilot、Chagpt 是用的最多的,幸亏前两个有学生认证优惠,也属于薅到羊毛了。现在如果离了这些,估计一点代码也写不出来了。

除了学习外,也开始探索北京这座城市,去了雍和宫、什刹海、圆明园、颐和园等。寒假前趁着放假人少,也和室友成功约上了清华,去参观了下,小时候的梦也算实现了一半,哈哈哈哈。北京确实是一个让人向往的地方,也难怪这么多北漂,不知道以后会不会成为里面的一员。

就这样,一年也就过去了,也到了我的本命年,不过本命年好像犯太岁,希望今年可以一帆风顺点。

  •  

实习小记

实习


从实习到现在,差不多两个月了。每天早上7点准时起来,然后挤地铁,八点多到医院。中午和同学一起吃饭,下午 4.30 准时下班走人。
日复一日,期间看完了python基础,做了个基于Django框架的网站项目,不过也是看着书照葫芦画瓢,了解了下基本框架。想着用于考研复试,可惜有没有机会都不知道。
2月4号回到医院,一个月轮一个岗,好在目前都挺闲,想着如果考不上,就直接找工作,于是看了本《C++ Primer》。然而随着考研出分日期越来越接近,已经完全看不下去了,就像一个等待行刑的罪犯一样,一点学习的念头都没有。

韩剧

周末无聊的刷着抖音,突然蹦出来一个04年的古着韩剧,名字叫《对不起,我爱你》
剧情简介:

车武赫(苏志燮饰)似乎是一个注定被上帝遗忘的人。刚出生就被父母抛弃的他从小受尽澳大利亚养父的虐待,直到流浪街头与韩裔女孩智英(崔汝珍饰)相遇后才以为终于找到了真情。虚伪的智英最后为了钱弃他而去,为了保护智英,一颗子弹却永远地留在了武赫的脑袋里。回到韩国后,武赫看到亲生母亲(李慧英饰)和弟弟崔允(郑敬淏饰)过着与自己截然不同的富裕生活,于是复仇之火在武赫心中熊熊燃起。在复仇的过程中,武赫爱上了与弟弟青梅竹马的恩彩(林秀晶饰),并为了她逐渐放弃了复仇的计划。最后为了拯救出车祸的弟弟,武赫不惜牺牲自己的生命捐出心脏,而失去此生最爱的恩彩最终也选择在武赫的墓前结束自己的生命。

看讲解挺有意思的,于是特地搜了下,发现全网都是战损画质,毕竟是04年,我也就早出生两岁。后来翻评论,得知B站有4K修复版,链接贴在这里了:【【4K】对不起我爱你】
怪不得女生都喜欢看韩剧,尤其是零几年的时候,现在终于是感同身受了。
剧情现在听起来挺狗血的,但是后劲还是挺大的,尤其是女主最后殉情的时候,害。 ps:恩彩太好看了吧

剧中的歌曲也非常nice,中日韩三个版本都有,这里贴个剧中的吧:
现在真恨自己手贱,为什么特地找来看看,以至于现在都有点恍惚。在这里推荐下这部剧,如果太闲了,一定要看下~

健身

考研一年胖了十斤,也是这一年为数不多的收获了。由于天生的外胚体质,吸收不好,消耗还多,从小瘦到现在。
考研前也一直有想要健身的念头,奈何没有坚定的决心,不好意思在宿舍锻炼,也怕没有时间。更没有勇气走进健身房,毕竟细胳膊细腿的,害怕别人的眼光。
考研这一年,学校特地找了个大的自习室,装修成了健身房。正好考完研,于是踏出了人生中的第一步,去了学校健身房开始健身。
奈何好景不长,学生们陆续考完试,回家了,健身房开门时间也变短了,正好在我下班后关门。于是便在宿舍举起了哑铃,跟着网上三分化计划进行训练。期间买了米糊,用来补充碳水,进行增重。过年后又买了桶蛋白粉,补充蛋白质摄入。
记得第一次进入健身房,便开始猛练,当天还没啥反应,结果第二天变成了螳螂臂,手都伸不直,休息了四天才好。后来再去就好多了。期间右手腕也伤着了,一用力手筋就疼,于是便买了个护腕。幸运的是,付出有了点回报,手臂终于有了点形状。

吐槽

现在每天浑浑噩噩的,上班就是睡觉、刷抖音。唯一有点期望的就是回到宿舍进行健身了,然后就是趴在床上进行emo了。
不知道是因为受了那部韩剧的影响,还是因为要出分了,又或者想起某人了,最近总感觉一点精神都没有,有点人生没有意义的感觉。
不过这些应该也是正常现象吧,毕竟濒临毕业,马上结束仅剩的校园时光,正常人都会有的迷茫时刻。想起易中天形容刘备的那句话:

前途光明我看不见,道路曲折我走不完
哈哈,记得高中时候捧着太宰治的《人间失格》,看完后却也感觉不出什么。就如辛弃疾所说:
少年不识愁滋味,爱上层楼。爱上层楼,为赋新词强说愁。
而今识尽愁滋味,欲说还休。欲说还休,却道“天凉好个秋”!
尽管现在也是不识愁滋味,但是每个时间段,总有特定的困惑,对吧。
由于太过无聊,又想着博客好久没更新了,于是便写篇实习小记,正好又水了一篇文章
  •  

2024年终总结

又到了一年一度的年终总结时候了,博客最近的一次文章还是去年的年终总结,害,这一年过的太快了~

前言

今年发生许多事,但是又感觉啥事没有(废话文学)。如果将这一年形容为打游戏的话,主线就是考研,支线就是旅途上的各种趣事了。
下面就开始流水账了,也算是给这一年的交代

博客

今年一直忙着考研,基本没怎么打理博客,虽然也没啥好打理的。唯一一个让人心烦的就是又拍云的cdn被刷了两次吧。
一次是群体性的,好多博主被刷了,当时损失还小,几十块钱吧。经过这件事后长了记性,让又拍云客服设置了每日额度提醒。结果后来又被刷了一次,两百多,第二天才有提醒。找了又拍云客服算帐,最后给了二百多代金劵,但是欠的费用必须自己充钱补了。
经过这件事后,我把图片以及字体全部托管到github上了,速度堪忧,所以有的文章图片会显示失败,现在也还没想到什么有效的方法,估计后面可能把图片全托管在服务器上了。
由于忙着考研,也有单纯懒的原因,关于主题博客等相关问题,除了一开始回复了下,后面基本没回复过了,不过评论区也有好心人会回复这些咨询,这里感谢下他们。
除了这些外,一直有个想法,就是换个框架,把文章迁移到typecho上。后来由于迁移中出错,以及觉得太麻烦了,就放弃了,不知道后面会不会实现。

考研

今年考研人数继续下降,反之,考公人数再次增长。这个时代,似乎到处都是路,但是每条路上都挤满了人。
下面这些话属于我的无病呻吟了,哈哈哈,见谅~
为了缓解就业压力,研究生再次扩招,可能很多人觉得现在考研变简单了,但是却很少人知道扩招的名额基本给了保研。除了这个以外,扩招的学校基本都是些学院或者刚改为大学的学校。关于读双非研究生到底有没有用,谁也给不了正确的答案。
有人觉得考研就是逃避就业,继续呆在温室里。但是,如果有好的工作的话,谁会去考研呢~(学术追求等除外)。我想大部分人考研应该是为了能找个更好的工作吧。现在的就业形势,学历越来越不够用了。公司招的要么就是三年经验起步,要么就是非92不要,可能会略显夸张。
谈谈我的考研历程吧,这次纯是流水账,诉说下自己的苦,可以跳过~
寒假时候在家里背了会单词书,看了点数据结构,正式开始应该是从3月开始备考。当时每天课很多,基本都是找零碎时间去自习室学习,有时候还会没有位置。期间还忙里偷闲爬了泰山。
四月末,突然群体改考408(计算机专业统考),虽然我心仪学校并未改考,但是自命题的竞争压力前所未有的增大,为了缓解我永远学不好的数学,我决定学408。专业课从一本书换成了四本。所幸本科有学过这些科目,虽然是浅尝辄止,但也还算有所了解。五一貌似整个假期都是在自习室过的,以及一起备考的室友和朋友。
后来开始放暑假了,由于学校不给留校,本来打算和室友一起在外面租个房子,可惜没啥好的地方可租,以及考虑到房租费,于是作罢,将书全部带回家,开始了两个月的自学。暑假最快乐的时候应该就是学累了打nba2k的时候,可以暂时忘掉考研的压力。记得当时学习时偷偷刷会抖音都会有股罪恶感,哈哈哈。
九月回校时感冒了一星期,和阳了差不多,当时黑神话正火,于是室友和我在宿舍玩了四天的黑神话,当时也是因为来得早,自习室也没啥人,于是就松懈了会。感冒好了就开足马力学习了。这个月应该是我学习效率最高的时候,整天都沉浸在知识里,哈哈,有一点点夸张。
期间基本没啥课了,每天8:30到自习室,晚上10点回宿舍,偶尔休息一会,也只敢休息一上午。
到了十月,本想在自习室学足7天,后来朋友来找我玩,以及学的确实太累了,便开始三天打鱼,两天晒网。后面就是考研预报名了,已经感觉到时间的紧迫了,但是还是一点不慌张,一直到网上确认,仍然是乐呵呵的心态。甚至11月底还抽空去了洛阳,爬了老君山。

接着就是十二月了,要上战场了,看到到手的肖四,开始慌张起来,一切计划都打乱了。开始早起到自习室背书,一背就是一上午。晚上回宿舍后还要在楼梯口背会,虽然没啥效果,只是感动自己罢了。
由于在其他学校考,20号便带着行李到了订的酒店,幸亏订的早,不然这价格都不用考研了,两晚能够炒到1k,真够离谱的。到酒店后全是兴奋感,不知道是要解放了,还是啥,一下午就那样过去了。晚上看着记不住的肖四,一筹莫展,一直背到12点才上床,结果1点多才睡着。早上5点又起床背肖四,直到进考场。
第一场考政治,这时候身体开始分泌物质了,也点也不困,只是做完选择,浏览完大题后,突然感觉这些天努力白费了。背的全在材料里原来不是梗。也不能怪肖四肖八没用,只能说命题组你做个人吧。对着材料换着花样抄,最后也就憋出一点字就交卷了。
下午就是英二了,先写的作文,感觉还挺简单,等到做阅读理解的时候,开始犯困了,而且文章越看越懵,和往年真题卷做的感觉一点也不一样。最后交卷时候改了三四个选择。回到酒店后开始思考人生了,感觉这次是完蛋了,哎,想哭
第二天上午考的数二,考完都说简单,对比往年确实,但是打小数学就不好,出考场后就发现积分算错了,这下好了,本来想靠英语拉下数学的,结果双双坠落了,中午一点饭没吃,默默看着专业课,祈祷能拯救自己。
下午的专业课就是中规中矩了,还是有许多不会,已经麻木了,不知不觉就交卷了,整个考研也结束了。
回顾备考之路,总有说不出道不明的感觉,没人会关心你苦不苦,只有结果能说明,只希望我的结果能好一点。
努力了吗?确实努力了。只是面对考试,还是有股力不从心,一切白干的感觉。
不过这一年也收获了许多,在自习室认识了许多很好的人,收到了许多小零食,哈哈哈哈。这里还是很感谢考研这条路,让我走进了自习室,收获了比以往更多的东西。

偷闲

考研期间一共爬了两座山,分别是泰山和老君山。
泰山是三月爬的,当时刚开始准备考研。干大事前总得有个标志性开始,于是便决定爬个泰山,来表决考研的决心。
太多细节已经记不清了,由于cdn欠费,也只能扔一张图片了~

接着就是11月底的老君山。当时刚从自习室回来,吃个晚饭再继续学。结果室友刷到了老君山下雪的视频。以及大学生免门票,便来了场说走就走的旅行。结果路上发现人太多,已经取消了,真够离谱的。
决定去爬后,当场定了凌晨的火车,回自习室把书收了,就开始收拾东西,准备出发。
坐了7个小时的硬座,终于到了洛阳站。不过硬座是真的没有体验,太闹腾了。后来发现还要再坐两个半小时的大巴,才能到老君山,差点猝死过去。
到了老君山后,先做了一级索道,然后开始爬山。雪还没有化,路有点滑,全是冰雪,不过风景独美。到达山顶时,全是雾,以为要带着失望回去了,结果出太阳了,完整的见证了整个规程,太壮观了,照片确实拍不出风景的美。
202402
勇敢的人,先享受世界
等到下山的时候,已经快6点了,还要再坐大巴回市里。此时已经又累又虚,本来打算坐高铁,结果赶不上了,便买了卧铺回去。不过也幸亏没赶上,便去了洛阳城楼那游玩了一番。

小姐姐很飒,哈哈哈

实习

按照学校安排,考完研后就开始没有工资的实习了,预计到5月底才结束。期间还得忙毕设以及复试(如果有希望的话)
每天7点起,匆忙洗漱,买点早饭就赶地铁了。不过好在实习不是很忙,老师都挺好,可以忙些其他的。有时间得考虑找个兼职,赚点钱,哎~。都要大四毕业了,还没开始赚钱,太悲哀了

且行且珍惜,今年失去了非常好的人,原因是我,没办法,我就是一个很矛盾的人,希望大家要珍惜眼前人
预计今年6月毕业,写个大学四年的终结吧。总感觉大一开学还在昨天,然而现在宿舍已经走了两个人了。
此外,在自习室遇到许多朋友,被投喂了好多,哈哈哈。
祝6号楼自习室的朋友们,期末考试顺利,早日解放。研友们成功上岸,金榜题名!
希望3月份,我们还能在自习室相遇~

  •  

2023年终总结

2024

又到了写年终总结的时候了。
每天一记的日记我肯定坚持不下去,但是每年一次的年终总结,我应该能坚持下。

万卷古今消永日,一窗昏晓送流年
在万卷书中消磨自己整日时光,南窗下让自己生命的河流静静地流过。
这首诗句是陆游写的,用来感叹读书对时间的消磨以及对内心的充实。
非常贴合2023年我的校园生活(并不是指读了许多书,hh)
2023年,应该算是大学中最稳定的一年了,也是最充实的一年。
没有初入校园的懵懂,也没有大三后期对人生该驶向何处的迷茫。
我可以拥有一定的时间去探索感兴趣的方向,也可以选择去一些风景名地来开阔自己的内心。
青春没有售价,一切皆在脚下

生活

其实今年并没有去了很多地方,因为实在做不到真正的穷游,哈哈。
唯一的一次远门,也就是做了两小时高铁的南京,体验了下疫情解封后的疯狂。
解封后的生活 – Echo小窝 (liveout.cn)
也就是上面这篇文章里描述的那样,其他时候基本都是在当地以及附近玩玩了。
除了这个外,就是基本的三点一线了,偶尔出去下趟馆子,也就是下面这篇文章所述
九月 – Echo小窝 (liveout.cn)
没办法,今年发生的能够谈谈的基本都被写出来了,我也没法用来凑字数了。

博客

如今,一到年底,各大APP都会争先推送各种总结报告,既然如此,我也给博客写一份年总报告吧。
在2023年这一年中,小E的小窝一共更新了 27篇文章,其中大部分都是技术文章。
相比文章,碎碎念 达到了惊人的 38条 ,平均每个月吐槽3次。果然,吐槽是人的本质。
不过好在文章数和碎碎念数量一样,说明我更新的也是挺频繁的。
除此之外,访客量达到了 349771,点击量则是 761959,emm,除去友链经常互访的小伙伴们,数据还是不错的,哈哈。
其实一开始也没想到会有这么多人访问,毕竟只是一个私人博客,也没啥营养东西。不过友链和B站教程视频倒是引流了不少,也算是一个不错的礼物——送给自己的博客。
因为博客是一时兴起搭建的,许多地方设置的不是很合理。
一开始我是打算用来记录生活和学习笔记等文章,确实做到了这一步。不过因为各种文章都发布在这一个博客中,导致比较杂乱。因此,我打算后面将学习记录以及教程文章全部搬迁到其他地方,而这个博客单纯当作一个记录和吐槽生活的地方。至于什么时候,应该得明年吧(确实是明年,hh)。

抉择

下面就是最重要的地方了。
每次写年终总结时都会觉得时间过得飞快,现在也一样。
刚搭建博客时候是大一暑假,现在已经到了大三寒假了。工作 or 考研是一个不得不面对的问题。这也是一个使人成长的问题。
友链里面的朋友们已经都开始实习了,而我现在却一点准备也没有,除了一个破简历,总结了大学所学的所有知识。
不过现如今,我的学历已经不够看了,因此,我选择了考研。当然,考研也是面向工作。
至于考公,一直从未出现在我的选择里。因为我也有一个年薪百万的IT梦,哈哈,开个玩笑。
今年考公的人数也在增加,恰巧是考研减少的人数。考公的难度和考研的难度,对我来说,应该是一样的,都很难。
既如此,不如先考研,如果运气好,考上了,到时候再考虑是考公或者工作。如果考不上,那么我估计会二战。如果运气好点,能够找到一个凑活的工作,那么便是边工作边二战了。
既然做了选择,下面就该努努力了。博客也该放一放了,毕竟没啥文章能写。有可能下一篇文章就是2024年的年终总结了,哈哈。希望一战上岸吧(虽然上岸后还有无数个岸)

  •  

2025年终总结

时间 等不了人
生活中 一不留神
转个眼秒杀了
随秒针蒸发了
昨天变成了今天
过去变成了现在
未来刚才来
它从何而来
岁月 眨眼就过了
瞬间 就那样默默的
上一次看 才二十三

属于懒癌晚期了,12 月想着写年终总结,结果一直拖到 2 月底、、、

此外,真的感觉一年比一年过得快啊有木有

眨眼就24 岁了,到了本命年了,然而上一次 12 岁过年的记忆却一点也没有。先祝大家新年快乐吧~

2025 也算是人生中的一次转折点吧。换了一座城市,重新开始另一段求学之旅。

上半年依旧是在无聊且负收益的实习中度过,一直到 5 月底开始毕设答辩才结束。6 月基本上是最幸福的时候了,在学校的最后一个月,整体躺在宿舍打游戏,享受最后的大学时光,

暑假一晃而过,就到了开学的时候。下半年开始适应新的环境,结果吐槽到学期结束。

学校的宿舍满满的叙利亚风格,堪比战犯营,这一点是最受不了的。此外学院为了阻止学生出去实习,修改了奖学金政策,除了绩点,还需要去参加各种文娱活动、学术会议等,就连入学奖学金也降低了,属实是恶心到家了。

不过北京毕竟寸土寸金的,能有宿舍也算不错了。本来想着北京好找实习,特地选了这,结果学校放实习的导师寥寥无几,不过导师虽然研三才放人,但是平时对人也挺好,也算是不信中的万幸了。平时除了上课,就是在工位学点东西,顺便帮导师干干小活。每天中午起,健个身,下午去工位,凌晨回宿舍。每次感慨一天怎么过的这么快,仔细想想起床时候已经过了半天了。

期间一直在寻找就业方向,虽然一直打算干嵌入式,但是细分却不知道去做什么,后面独自摸索打算走驱动方向,并且跟着正点原子的教程学了下去,现在差不多也完结了。

后来想偷偷出去实习,可惜简历实在稀烂,回复基本寥寥无几,而且时间基本要求长期,本打算加上寒假实习 3 个月,结果一听实习时长直接拒了。此外,虽然北京互联网厂很多,但是电子类感觉还是南方深圳岗位多点,而且周围学历全是 211 起步,属实拼不过别人,哎。后面就妥协了,既然没法实习,就继续深耕,做点有含金量的项目吧。

这一年大模型的发展让我见识到了什么才叫 人工智能。这学期的课设等所有代码项目全部靠大模型完成。Gemini、Copilot、Chagpt 是用的最多的,幸亏前两个有学生认证优惠,也属于薅到羊毛了。现在如果离了这些,估计一点代码也写不出来了。

除了学习外,也开始探索北京这座城市,去了雍和宫、什刹海、圆明园、颐和园等。寒假前趁着放假人少,也和室友成功约上了清华,去参观了下,小时候的梦也算实现了一半,哈哈哈哈。北京确实是一个让人向往的地方,也难怪这么多北漂,不知道以后会不会成为里面的一员。

就这样,一年也就过去了,也到了我的本命年,不过本命年好像犯太岁,希望今年可以一帆风顺点。

  •  

实习小记

实习


从实习到现在,差不多两个月了。每天早上7点准时起来,然后挤地铁,八点多到医院。中午和同学一起吃饭,下午 4.30 准时下班走人。
日复一日,期间看完了python基础,做了个基于Django框架的网站项目,不过也是看着书照葫芦画瓢,了解了下基本框架。想着用于考研复试,可惜有没有机会都不知道。
2月4号回到医院,一个月轮一个岗,好在目前都挺闲,想着如果考不上,就直接找工作,于是看了本《C++ Primer》。然而随着考研出分日期越来越接近,已经完全看不下去了,就像一个等待行刑的罪犯一样,一点学习的念头都没有。

韩剧

周末无聊的刷着抖音,突然蹦出来一个04年的古着韩剧,名字叫《对不起,我爱你》
剧情简介:

车武赫(苏志燮饰)似乎是一个注定被上帝遗忘的人。刚出生就被父母抛弃的他从小受尽澳大利亚养父的虐待,直到流浪街头与韩裔女孩智英(崔汝珍饰)相遇后才以为终于找到了真情。虚伪的智英最后为了钱弃他而去,为了保护智英,一颗子弹却永远地留在了武赫的脑袋里。回到韩国后,武赫看到亲生母亲(李慧英饰)和弟弟崔允(郑敬淏饰)过着与自己截然不同的富裕生活,于是复仇之火在武赫心中熊熊燃起。在复仇的过程中,武赫爱上了与弟弟青梅竹马的恩彩(林秀晶饰),并为了她逐渐放弃了复仇的计划。最后为了拯救出车祸的弟弟,武赫不惜牺牲自己的生命捐出心脏,而失去此生最爱的恩彩最终也选择在武赫的墓前结束自己的生命。

看讲解挺有意思的,于是特地搜了下,发现全网都是战损画质,毕竟是04年,我也就早出生两岁。后来翻评论,得知B站有4K修复版,链接贴在这里了:【【4K】对不起我爱你】
怪不得女生都喜欢看韩剧,尤其是零几年的时候,现在终于是感同身受了。
剧情现在听起来挺狗血的,但是后劲还是挺大的,尤其是女主最后殉情的时候,害。 ps:恩彩太好看了吧

剧中的歌曲也非常nice,中日韩三个版本都有,这里贴个剧中的吧:
现在真恨自己手贱,为什么特地找来看看,以至于现在都有点恍惚。在这里推荐下这部剧,如果太闲了,一定要看下~

健身

考研一年胖了十斤,也是这一年为数不多的收获了。由于天生的外胚体质,吸收不好,消耗还多,从小瘦到现在。
考研前也一直有想要健身的念头,奈何没有坚定的决心,不好意思在宿舍锻炼,也怕没有时间。更没有勇气走进健身房,毕竟细胳膊细腿的,害怕别人的眼光。
考研这一年,学校特地找了个大的自习室,装修成了健身房。正好考完研,于是踏出了人生中的第一步,去了学校健身房开始健身。
奈何好景不长,学生们陆续考完试,回家了,健身房开门时间也变短了,正好在我下班后关门。于是便在宿舍举起了哑铃,跟着网上三分化计划进行训练。期间买了米糊,用来补充碳水,进行增重。过年后又买了桶蛋白粉,补充蛋白质摄入。
记得第一次进入健身房,便开始猛练,当天还没啥反应,结果第二天变成了螳螂臂,手都伸不直,休息了四天才好。后来再去就好多了。期间右手腕也伤着了,一用力手筋就疼,于是便买了个护腕。幸运的是,付出有了点回报,手臂终于有了点形状。

吐槽

现在每天浑浑噩噩的,上班就是睡觉、刷抖音。唯一有点期望的就是回到宿舍进行健身了,然后就是趴在床上进行emo了。
不知道是因为受了那部韩剧的影响,还是因为要出分了,又或者想起某人了,最近总感觉一点精神都没有,有点人生没有意义的感觉。
不过这些应该也是正常现象吧,毕竟濒临毕业,马上结束仅剩的校园时光,正常人都会有的迷茫时刻。想起易中天形容刘备的那句话:

前途光明我看不见,道路曲折我走不完
哈哈,记得高中时候捧着太宰治的《人间失格》,看完后却也感觉不出什么。就如辛弃疾所说:
少年不识愁滋味,爱上层楼。爱上层楼,为赋新词强说愁。
而今识尽愁滋味,欲说还休。欲说还休,却道“天凉好个秋”!
尽管现在也是不识愁滋味,但是每个时间段,总有特定的困惑,对吧。
由于太过无聊,又想着博客好久没更新了,于是便写篇实习小记,正好又水了一篇文章
  •  

2024年终总结

又到了一年一度的年终总结时候了,博客最近的一次文章还是去年的年终总结,害,这一年过的太快了~

前言

今年发生许多事,但是又感觉啥事没有(废话文学)。如果将这一年形容为打游戏的话,主线就是考研,支线就是旅途上的各种趣事了。
下面就开始流水账了,也算是给这一年的交代

博客

今年一直忙着考研,基本没怎么打理博客,虽然也没啥好打理的。唯一一个让人心烦的就是又拍云的cdn被刷了两次吧。
一次是群体性的,好多博主被刷了,当时损失还小,几十块钱吧。经过这件事后长了记性,让又拍云客服设置了每日额度提醒。结果后来又被刷了一次,两百多,第二天才有提醒。找了又拍云客服算帐,最后给了二百多代金劵,但是欠的费用必须自己充钱补了。
经过这件事后,我把图片以及字体全部托管到github上了,速度堪忧,所以有的文章图片会显示失败,现在也还没想到什么有效的方法,估计后面可能把图片全托管在服务器上了。
由于忙着考研,也有单纯懒的原因,关于主题博客等相关问题,除了一开始回复了下,后面基本没回复过了,不过评论区也有好心人会回复这些咨询,这里感谢下他们。
除了这些外,一直有个想法,就是换个框架,把文章迁移到typecho上。后来由于迁移中出错,以及觉得太麻烦了,就放弃了,不知道后面会不会实现。

考研

今年考研人数继续下降,反之,考公人数再次增长。这个时代,似乎到处都是路,但是每条路上都挤满了人。
下面这些话属于我的无病呻吟了,哈哈哈,见谅~
为了缓解就业压力,研究生再次扩招,可能很多人觉得现在考研变简单了,但是却很少人知道扩招的名额基本给了保研。除了这个以外,扩招的学校基本都是些学院或者刚改为大学的学校。关于读双非研究生到底有没有用,谁也给不了正确的答案。
有人觉得考研就是逃避就业,继续呆在温室里。但是,如果有好的工作的话,谁会去考研呢~(学术追求等除外)。我想大部分人考研应该是为了能找个更好的工作吧。现在的就业形势,学历越来越不够用了。公司招的要么就是三年经验起步,要么就是非92不要,可能会略显夸张。
谈谈我的考研历程吧,这次纯是流水账,诉说下自己的苦,可以跳过~
寒假时候在家里背了会单词书,看了点数据结构,正式开始应该是从3月开始备考。当时每天课很多,基本都是找零碎时间去自习室学习,有时候还会没有位置。期间还忙里偷闲爬了泰山。
四月末,突然群体改考408(计算机专业统考),虽然我心仪学校并未改考,但是自命题的竞争压力前所未有的增大,为了缓解我永远学不好的数学,我决定学408。专业课从一本书换成了四本。所幸本科有学过这些科目,虽然是浅尝辄止,但也还算有所了解。五一貌似整个假期都是在自习室过的,以及一起备考的室友和朋友。
后来开始放暑假了,由于学校不给留校,本来打算和室友一起在外面租个房子,可惜没啥好的地方可租,以及考虑到房租费,于是作罢,将书全部带回家,开始了两个月的自学。暑假最快乐的时候应该就是学累了打nba2k的时候,可以暂时忘掉考研的压力。记得当时学习时偷偷刷会抖音都会有股罪恶感,哈哈哈。
九月回校时感冒了一星期,和阳了差不多,当时黑神话正火,于是室友和我在宿舍玩了四天的黑神话,当时也是因为来得早,自习室也没啥人,于是就松懈了会。感冒好了就开足马力学习了。这个月应该是我学习效率最高的时候,整天都沉浸在知识里,哈哈,有一点点夸张。
期间基本没啥课了,每天8:30到自习室,晚上10点回宿舍,偶尔休息一会,也只敢休息一上午。
到了十月,本想在自习室学足7天,后来朋友来找我玩,以及学的确实太累了,便开始三天打鱼,两天晒网。后面就是考研预报名了,已经感觉到时间的紧迫了,但是还是一点不慌张,一直到网上确认,仍然是乐呵呵的心态。甚至11月底还抽空去了洛阳,爬了老君山。

接着就是十二月了,要上战场了,看到到手的肖四,开始慌张起来,一切计划都打乱了。开始早起到自习室背书,一背就是一上午。晚上回宿舍后还要在楼梯口背会,虽然没啥效果,只是感动自己罢了。
由于在其他学校考,20号便带着行李到了订的酒店,幸亏订的早,不然这价格都不用考研了,两晚能够炒到1k,真够离谱的。到酒店后全是兴奋感,不知道是要解放了,还是啥,一下午就那样过去了。晚上看着记不住的肖四,一筹莫展,一直背到12点才上床,结果1点多才睡着。早上5点又起床背肖四,直到进考场。
第一场考政治,这时候身体开始分泌物质了,也点也不困,只是做完选择,浏览完大题后,突然感觉这些天努力白费了。背的全在材料里原来不是梗。也不能怪肖四肖八没用,只能说命题组你做个人吧。对着材料换着花样抄,最后也就憋出一点字就交卷了。
下午就是英二了,先写的作文,感觉还挺简单,等到做阅读理解的时候,开始犯困了,而且文章越看越懵,和往年真题卷做的感觉一点也不一样。最后交卷时候改了三四个选择。回到酒店后开始思考人生了,感觉这次是完蛋了,哎,想哭
第二天上午考的数二,考完都说简单,对比往年确实,但是打小数学就不好,出考场后就发现积分算错了,这下好了,本来想靠英语拉下数学的,结果双双坠落了,中午一点饭没吃,默默看着专业课,祈祷能拯救自己。
下午的专业课就是中规中矩了,还是有许多不会,已经麻木了,不知不觉就交卷了,整个考研也结束了。
回顾备考之路,总有说不出道不明的感觉,没人会关心你苦不苦,只有结果能说明,只希望我的结果能好一点。
努力了吗?确实努力了。只是面对考试,还是有股力不从心,一切白干的感觉。
不过这一年也收获了许多,在自习室认识了许多很好的人,收到了许多小零食,哈哈哈哈。这里还是很感谢考研这条路,让我走进了自习室,收获了比以往更多的东西。

偷闲

考研期间一共爬了两座山,分别是泰山和老君山。
泰山是三月爬的,当时刚开始准备考研。干大事前总得有个标志性开始,于是便决定爬个泰山,来表决考研的决心。
太多细节已经记不清了,由于cdn欠费,也只能扔一张图片了~

接着就是11月底的老君山。当时刚从自习室回来,吃个晚饭再继续学。结果室友刷到了老君山下雪的视频。以及大学生免门票,便来了场说走就走的旅行。结果路上发现人太多,已经取消了,真够离谱的。
决定去爬后,当场定了凌晨的火车,回自习室把书收了,就开始收拾东西,准备出发。
坐了7个小时的硬座,终于到了洛阳站。不过硬座是真的没有体验,太闹腾了。后来发现还要再坐两个半小时的大巴,才能到老君山,差点猝死过去。
到了老君山后,先做了一级索道,然后开始爬山。雪还没有化,路有点滑,全是冰雪,不过风景独美。到达山顶时,全是雾,以为要带着失望回去了,结果出太阳了,完整的见证了整个规程,太壮观了,照片确实拍不出风景的美。
202402
勇敢的人,先享受世界
等到下山的时候,已经快6点了,还要再坐大巴回市里。此时已经又累又虚,本来打算坐高铁,结果赶不上了,便买了卧铺回去。不过也幸亏没赶上,便去了洛阳城楼那游玩了一番。

小姐姐很飒,哈哈哈

实习

按照学校安排,考完研后就开始没有工资的实习了,预计到5月底才结束。期间还得忙毕设以及复试(如果有希望的话)
每天7点起,匆忙洗漱,买点早饭就赶地铁了。不过好在实习不是很忙,老师都挺好,可以忙些其他的。有时间得考虑找个兼职,赚点钱,哎~。都要大四毕业了,还没开始赚钱,太悲哀了

且行且珍惜,今年失去了非常好的人,原因是我,没办法,我就是一个很矛盾的人,希望大家要珍惜眼前人
预计今年6月毕业,写个大学四年的终结吧。总感觉大一开学还在昨天,然而现在宿舍已经走了两个人了。
此外,在自习室遇到许多朋友,被投喂了好多,哈哈哈。
祝6号楼自习室的朋友们,期末考试顺利,早日解放。研友们成功上岸,金榜题名!
希望3月份,我们还能在自习室相遇~

  •