2023五一总结:近况与将来
事情有点多,就简单说几句吧~
Your browser does not support the audio tag.
最近的事情
杭电助手团建
[{"url":"https://image.nickxu.me/202305042227317.png","alt":"image-20230504222737293"},{"url":"https://image.nickxu.me/202305042228416.png","alt":"image-20230504222810383"},{"url":"https://image.nickxu.me/202305042228652.png","alt":"image-20230504222817629"},{"url":"https://image.nickxu.me/202305042228681.png","alt":"image-20230504222822653"},{"url":"https://image.nickxu.me/202305042228729.png","alt":"image-20230504222830701"},{"url":"https://image.nickxu.me/202305042228227.png","alt":"image-20230504222846195"},{"url":"https://image.nickxu.me/202305042229391.png","alt":"image-20230504222910356"},{"url":"ht ...
关于软删除的讨论
别急,先挂着
别问我为什么空着就发上来了,我本来是想每一篇都写完再发的,但是后面本地坑挖了很多不想填就直接删了
然后发上来至少别人看着我还有动力去填🤣
7 月 11 日更:
卧槽居然过了这么久了才有空填
过了两个月了基本忘光了,翻了翻聊天记录,记起来了一点点
其实有个大佬的博客 软删除之痛 已经将前情提要概括了一下,下面就简单补充一下
文中写的唯一索引的例子在我们的开发中也遇到了,但是我们有不一样的解决方法
就是在删除的时候改个名,这样就能规避问题了
目前来说感觉这种方法没有还引发新的问题
在 Mac 的 VSC 中使用 g++ 编译器
本人最近开始复习算法刷题了,然后用的是 macOS 上 VSCode 的默认配置,也就是 clang/clang++ 编译器,但是高中的时候用惯了 gcc/g++ 了,很多 g++ 的方言 clang 并不支持,例如 #include <bits/stdc++.h> 之类的
可能你会说,这有什么的,直接把编译指令里面的编译器替换一下不就行了
如果真的这么简单的话就没有这篇博客了(bushi
首先我换了之后并不能解决问题, 接着我发现了一个很恐怖的事情(
我的 gcc 怎么被 clang 夺舍了???
我的第一个反应是卸载 clang ,毕竟我也不想用这玩意,然后我看这东西是哪里安装的
12whereis clangclang: /usr/bin/clang /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/share/man/man1/clang.1
啊,原来是 Xcode 哇,这东西我平时也用不上,还占着这么大的空间,我这就把你卸了
Xcode 是我刚开始上手 macOS 的时候学长建议我安装的,但是这东西快15个G,我平时又用不上
卸完之后我发现 clang 还是在,我就继续看
12whereis clangclang: /usr/bin/clang /Library/Developer/CommandLineTools/usr/share/man/man1/clang.1
原来是 CommandLineTools ,我又搜了一下这个 ...
GORM 的 GEN 模式初上手
最近准备上手一个新项目,然后在选择底层的 ORM 框架
我之前一直用的 GORM ,其实感觉还挺好用的,但是毕竟用多了,这次也想了解下其他的解决方案
之前在和群友讨论 GORM 的时候,我听见有人对它有一些负面的看法,比如说认为 GORM 不算真正的 ORM,因为它很多时候只是在帮你手动拼凑 SQL 语句,只是没有写原生 SQL 那么痛苦而已,我听了之后感觉其实也有点道理
比如说我最近项目里的一句查询
12345l.svcCtx.DBList.Mysql. Where("from_id = ? and to_user_id = ?", in.UserAId, in.UserBId). Or("from_id = ? and to_user_id = ?", in.UserBId, in.UserAId). Order("created_at desc"). First(&result)
其中还是要手打 from_id 和 to_user_id 这些字段名,就像原生 SQL 一样,而真正的 ORM 不应当是这样的,应当走如同 ent 这种代码生成的路子
甚至我也听过有人认为不应该使用 ORM 框架:为什么要旗帜鲜明地反对 orm 和 sql builder
也就是说你的 ORM 虽然方便,但是不方便进行 SQL 语句的审查,也就是说你不能预测线上环境会生成哪些 SQL,会有不确定性
但是其实我觉得吧,他说的场景我现在都还遇不到,我的项目也就是一些简单的 CURD ,而且数据量也不大
那么现在的情况就是说,我可 ...
Hexo 首页添加 Gitcalendar 提交日历
折腾了一上午算是搞定了,先来看看效果
感觉颜色还是不够好看?算了就这样吧
自建后端 Api
首先这个组件是来源于 Akilar 大佬的,然后后端是冰老师写的
Gitcalendar | Akilarの糖果屋https://akilar.top/posts/1f9c68c9/
但是默认的 api 是失效的,必须自建 api ,因为之前 GitHub 接口改了,所以原来的正则不能用,有大佬提了 PR ,但是一直没和进去
所以你自建后端 api 的时候应该是 fork 这个仓库
PS:2023 年 11 月 16 日 更新
今天这个规则又改了,我喂给 GPT 他帮我修好了,我也发起了 PR
不过最新的 commit 还在我的仓库
然后你就跟着教程一路走下去即可
经典域名问题
等你建好了就遇到了经典的 Vercel 被墙问题:在国内没法使用,这时候你就需要给你的 project 添加一个自己的域名
就如我在 『Twikoo』解决 Vercel.app 在国内被墙导致无法使用的问题 中的那样操作
然后你就可以测试一下能否正常访问,例如我的是 https://git-calendar.nickxu.top ,然后加个你 GitHub 用户名的参数试一下
1https://git-calendar.nickxu.top/api?NX-Official
好了,现在后端搭建完毕,其实如果你后端实在搭建不起来也可以用我的后端
搞定颜色
默认的配置文件里面的颜色我感觉和我的暗黑主题不太搭,我就想用 GitHub 上面的那一套配色
但是有个问题就是 GitHub 上面只有 1 种 ...
go-cqhttp QQ 机器人初上手
之前看见过很多 qq 机器人的例子,比如把 ChatGPT 接进群里之类的,然后最近有点空闲,并且感觉宿舍群里也缺少一些自动化的建设,就打算上手做一个
功能上的设计先别搞那么复杂,就先接个 ChatGPT 算了
我就去问关于qq 机器人的最佳实践,然后就知道了 go-cqhttp
大致流程
去官网逛了一下,第一次还没怎么看懂,群友给了一个 demo ,我看懂了
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374package mainimport ( "github.com/gin-gonic/gin" gogpt "github.com/sashabaranov/go-openai" "golang.org/x/net/context" "io/ioutil" "net/http" "net/url")import "github.com/tidwall/gjson"func main() { r := gin.Default() r.POST("/", func(c *gin.Context) { dataReader := c.Request.Body rawDate ...
轻量级日志收集系统 Grafana Loki 初上手
关于日志收集,鄙人最早接触到的是 ELK 那一套(Elasticsearch、Logstash 和 Kibana),最近我青训营的项目也是差不多的架构,但是这一套下来资源占用也太可怕了(特别是 Elasticsearch ,太重了)
go-zero 官方也说了,这一套不建议在小规模的服务上使用,而我一般的实际项目也没多大规模,根本用不上这么重的解决方案,所以我需要找一套更轻量的解决方案
翻了一圈,感觉推荐 Grafana + Loki 的不少
然后我就跑去 Loki官方文档了
这是官方文档中的快速上手的架构图,为了让你感受它的可扩展性,就把内部的读写部分拆出来运行,其实不用这么复杂,直接一个单体也可以
折腾了一圈,大概是这么个逻辑:首先是要有一个 Client(例如图中的 Promtail )去拉取运行日志喂给 Loki ,然后 Loki 去读写 Storage(例如图中的 Minio ),那日志要怎么方便地查看呢?用 Grafana ,这东西界面做的真的很好看
为了让你快速理解与上手,我简化了一下官方 Demo,docker-compose 中只包含四个服务:
产生日志的程序:和官方一样使用了 flog 来不停地向标准输出中放入假日志
Loki:用于打包日志、打标签等
Client:用于拉取日志交给 Loki,Loki 支持多种客户端,你可以在 Grafana Loki clients 中查看支持的所有客户端
我知道有一个 Docker Driver ,但是这东西要给 Docker 装插件,感觉有点麻烦,还是和官方例子一样使用了 Promtail
...
亚运赛会志愿者通用培训
杭州亚运会及赛会志愿服务概述
志愿者含义
自愿
不谋物质报酬
服务于社会公益
奉献力所能及
非本职工作
中国青年志愿者精神
奉献
友爱
互助
进步
志愿者基本行为规范
三会
会站
会笑(难)
会说
三知
知道自己的位置
知道别人问的位置
知道卫生间、医疗点、AED及安全出口
三救
自救(包括不要泄露联系方式给任何人
施救
向谁求助
三受
受苦
受累
受委屈
五定
定人
定岗
定时
定事
定责
熟记亚运会标志以及吉祥物(略
志愿者口号:来吧,朋友(friends unite!)
志愿者之歌:等你来
岗位服务能力要求
语言沟通能力
合作能力
应变能力
志愿服务通用礼仪
基本原则
平等
尊重
宽容
适度
自律
形象塑造
头发 男:前不覆额 后不触领 侧不掩耳 女:前不遮眉 发不披散 过肩盘起
面部 五官
肢体
统一着装
着装整洁
配饰要求
礼仪规范
站 抬头挺胸
坐 二分之一 左进左出
走 成行成列
蹲 高低式 半跪式 交叉式
三方介绍:尊者优先
引领:走路上下楼梯电梯出入口(略)
文明用语
不要说:不归我管 不知道不会
该说不的时候要说不
上岗要求及纪律规范
岗前准备
吃苦受累
岗位差异
遭受委屈
熟悉工作内容及周边环境
赛事安排及有关信息(赛事、城市)
突发事件应对处理
专业技能准备
说话做事符合礼仪要求
做好体能准备
基本要求
业务操作能力
遵守防疫要求
坚守工作岗位
认真履行职责(尽职尽责、通讯畅通、首问负责对口接待
转换期适应调整
团队意识
汇 ...
离散数学2期末复习
函数
函数及其性质的判断、函数值、像、原像等的计算
满射:subjective
单射:ingective
双射:bijective
像是函数值的集合
函数的复合及反函数
顺序不要反了
集合基数的概念
略
图
阶:顶点数
度:顶点作为端点的次数
零图:一条边都没有的图
平凡图:只有一个点的图
握手定理
度数之和等于边数的两倍 $ l = 2m$
入度之和=出度之和=边数
奇度顶点的个数是偶数
可图化条件
度数之和 lll 为偶数
最大度小于等于 n−1n-1n−1 (你一个点最多也就把其他点连一遍)
无向完全图
每个点都与剩余点连接,记作 KnK_{n}Kn ( nnn 为阶数)
边点条数为 n(n−1)2\dfrac{n\left( n-1\right) }{2}2n(n−1)
图的连通性
图的矩阵表示
关联矩阵
邻接矩阵
可达矩阵
Dj
树
m=n−1m=n-1m=n−1
中序:左中右
前序:中左右
后续:左右中
几种特殊的图
欧拉图
通过所有边一次
无向图充要:连通无奇度
有向图充要:强连通、每个点入度等于出度
哈密顿图
通过所有点一次
注意是充分条件不是充要 d(u)+d(v)≥n−1d\left( u\right) +d\left( v\right) \geq n-1d(u)+d(v)≥n−1
二部图与平面图
欧拉公式:n−m+r=2n-m+r=2n−m+r=2
面数之和等于边数两倍
平面图的必要:m≤3n−6m\leq 3n-6m≤3n−6
基本的组合计数公式
排列公式 ...
大二下宿舍上海一日游游记
这篇因为时间拖太久了没写,就感觉没有当时的感觉了
现在只能说把朋友圈 copy 一下了,本来想详细讲讲的(
讲真周末去长三角周边城市不比在下沙玩舒服?早上花一个小时坐高铁到上海虹桥,然后沿着10号线一路玩
上午到中共一大纪念馆,中午吃个饭,继续坐地铁到豫园,顺便还有城隍庙可以逛一下,接着去南京步行街一路逛吃,晚上逛到外滩正好看夜景,最后原路返回坐高铁回杭州,懂不懂国际性大都市的含金量哇🤣
[{"url":"https://image.nickxu.me/202303241108463.png","alt":"image-20230324110835972"},{"url":"https://image.nickxu.me/202303241108172.png","alt":"image-20230324110847152"},{"url":"https://image.nickxu.me/202303241108898.png","alt":"image-20230324110851874"},{"url":"https://image.nickxu.me/202303241108429.png","alt":"image-20230324110857406"},{"url":"https://image.nickxu.me/202303241109812.png","alt":"image-20230324110915794"},{"url":"https://image.nickxu.me/202303241109336.png","alt":" ...
一行命令打包 Docker Compose 中的镜像
最近要在一个离线服务器上运行一个 docker-compose ,但是因为是离线嘛,镜像一个一个打包太麻烦了,就找到了下面这个命令,在一个有网的环境先打包整个 docker-compose 里的镜像
1sudo docker save -o docker-images.tar $(docker-compose config | awk '{if ($1 == "image:") print $2;}')
然后再把文件传输过去,读取的时候就用这个命令
1sudo docker load -i docker-images.tar
第五届字节跳动青训营项目总结
PS:以后写感想类博客一定要当天冲完,不然拖个一个星期真的找不到那种劲了
首先我真的想向字节跳动和掘金社区道个歉,这次青训营我主要就是奔着大项目来的 ,平时的课基本没怎么听
关于课的话,其实是挺好的,但是和第三届的重复了很多,加之一开始结营条件定的太高了,考虑到寒假的精力,我选择直接放弃结营证书,全力去冲项目证书了 (结果最后告诉我没有实体的项目证书)
好了,回到正题,关于这次的项目总结,关于项目的过程在我的 写在大二开学之初 其实已经有所记录了,这一篇再稍微简单补充一下
答辩成绩
作为 h68u 队的队长,这次项目能取得这么好的成绩绝对是在我的意料之外的,我一个双非本科非计算机专业的大二学生,居然能带领团队拿到第一的名次,这我真的想都不敢想
当我第一次看见这个名次的时候,我是愣住的
答辩时与评委的对话,我从未想过能得到评委这么高的肯定
最后的电子版证书
开发过程
项目地址:https://github.com/h68u/h68u-tiktok-app-microservice
项目文档:https://hdu-help.feishu.cn/docx/KuGidErAIogvWDxcn2VcTrfUntb
当公布大项目的题目和第三届的一样时,我心里差不多就有个框架了,毕竟有第三届的项目可以参考,这个项目可以很好的锻炼一下社团里面的新人,然后最后让我来收尾做一些优化(我一开始真的是这么计划的
项目框架选的是 go-zero ,一方面我在微服务方面暂时也就比较熟悉这个,而且也挺好用的,另一方面我有其他项目也在用这个框架,但是我也不知道我写的是个什么水平 ...
雅思英语考试基本介绍
这是本人课上记的笔记,不代表我会去考(
考试分类
两大类
A类 学术类 Acadmic ☑️
G类 培训类/移民类 (简单很多
听力口语部分两个是一样的,阅读写作G类简单
(其实还有一种生活技能类,和我们关系不大,很多小孩子考
A类中的分类
普通雅思
成绩只作为英语水平能力证明
UKVI雅思
成绩除了证明能力之外,还可以帮助你申请英国的签证
如果绝对有把握能过就考普通雅思,不然就UKVI(会多一点钱,题目一样,但是学校会告诉你可以申请签证,提前几个月去当地的语言班,之后再考一遍
考试信息
IELTS
2小时45分钟,包含听说读写,换算后总分9分,0.25分一档
听 30min
读 60min
写 60min
说 11-14min
同类的考试还有托福
都是标准化考试,难度差不多体型不一样
雅思主办方两个英国,一个澳大利亚,所以要熟悉一下英式和澳大利亚方言口音
托福是美国办的
托福全机考,雅思有人面对面
雅思作文难些,托福阅读难些
雅思托福大多数时候是通用的
口语考试
和托福不一样,雅思考两天,口语(说)单独安排在考试那周的周一到周五(提前完成)
其他的在礼拜六的上午
雅思口语题库一年换4次(一个季度),建议先让其他人考一下,参考一下其他人的题目
考场在学校,其实可以在11教门口待着,下来一个问一个
老师变数很大,有很和蔼的,有很严的,但是不要被影响,态度好的也不一定打高分
分数水平
全国分数最多是在 5.5-6 分(但是各种各样的人存在,导致分数比较低
杭电的努力一下 6.5-7 分
阅读和听力提升较快
考试流程
听力
30 ...
服务器离线安装Docker
奶奶的昨天在学校的服务器上离线安装docker,折腾了一天都没搞定(
你要下包吧,一堆递归依赖要手动递归下载🙄
然后现在docker也没有源码编译了
我在官方文档找哇,找到了个直接下二进制文件的
然后搞定了
https://docs.docker.com/engine/install/binaries/#install-daemon-and-client-binaries-on-linux
写在大二下开学之初
如你所见,我已经两个多月没有更新博客了,现在开学了,总得恢复更新节奏吧(
最近很乱,就随便写写寒假到现在发生的事吧,想到哪里写到哪里
手搓学习通
如果你要问我我寒假这两个月干什么去了,我会和你说,我一个人折腾完了两个项目
一个是文艺数法学院的一个产品包装教学系统的后端,一个是青训营的项目,先说第一个
这个项目是上个学期杭助群里看见的,缺后端的人,然后我就进了
进了之后发现两个前端,就我一个后端(乐
我为什么想参加呢?第一个自然是有💰(三个人分了大几千块),第二个是想熟悉一下 go-zero 框架,第三个也是想丰富一下简历
对后端来说,我需要完成以下功能:班级系统,然后可以布置作业,学生相互批改作业,有班级云盘放资料,有教学视频给学生看…
乐!这不就是学习通嘛(
夜之城度假
我很快冲完了班级和云盘两个服务,剩一个作业的系统没写,毕竟有点累了,就想摆一下
然后正好 2077 打半价,这游戏缝缝补补了两年,我看了一下测评,现在可以入手了
讲真,我感觉现在这质量已经勉强能配得上发售的宣传了,我认为其实还不错,最后给了个好评
一开始我还没搞懂各种机制,第一个档被各种虐,去看攻略才熟悉,其实你偷芯片的时候上到天台拿到三郎的武士刀觉,后面就很舒服了
然后第二个档我打算尝试一下刀剑流,跟着教程走很舒服,那几天我真的沉迷其中,基本上就是住在夜之城了
我已经很久没有遇到这么让我惊艳的作品了,上一次还是大表哥2
可惜的是,这东西剧情太短了,大概40小时就干完主线了,让然后我又去看各种攻略,尝试各种流派
然后我第三个档尝试的是黑客流,这玩到后期是真的爽,拿着网监5基本上是瞪谁谁死,拿着应龙单 ...
第五届字节跳动青训营项目会议纪要
明确目标
项目质量
我们的目标是一等奖,重振h68u荣光
有第三届的项目可供参考:https://github.com/h68u/h68u-tiktok-app
DDL
约寒假结束,但肯定要提前完成
个人要求
不要当死人
当你遇到问题时:
自己折腾
搜索引擎
B站
copilot
ChatGPT
群里问
必备技能:
gorm
redis
熟悉 go-zero
项目规划
框架
go-zero
原因/优点
有现成模板,鄙人的项目:https://github.com/hdu-packaging-design/hdu-packaging-design-be
微服务
及其清晰的项目结构
方便结合 docker、k8s 部署
易于搭配各种监控组件
日后参加面试系统开发
时间规划
最晚过年前冲出功能完善的demo,再继续改进
可改进问题
缓存一致性
暂时先更新数据库后删除缓存值,后面再考虑要不要上消息队列等
可参考资料:
聊一聊缓存和数据库不一致性问题的产生及主流解决方案以及扩展的思考
万字图文讲透数据库缓存一致性问题
热点数据
分库分表
可参考资料:
好好的系统,为什么要分库分表?
Mysql大数据表处理方案
B站也有相关的视频
其他解决方法后面再思考
监控组件
prometheus+grafan 服务监控
jaeger 链路追踪
kafka+Elasticsearch 日志分析
https://www.waterflow.link/articles/1661696351405 连着3篇
B 站 go-zero官方视频也有这方面内容
团队分工
自由 ...