『高等数学』P2:多元函数求导
复合函数链式求导
(最后不要忘合并)
隐函数求导
(例1略)
(雅各比行列式)
练习题
我圈出来的地方应该是写错了的,应该是 z2−xyz^{2}-xyz2−xy
『高等数学』P1:空间几何、多元函数极限、偏导
平面与空间直线
平面
直线
表示直线的时候 0 是可以在分母上的
二元函数的极限
偏导数
(略)
全微分
练习题
『随笔』618桌面改造计划
前情提要
鄙人自开学以来桌面一直是没有放显示器的,毕竟从小到大一直用小屏的笔记本电脑打游戏,上了大学也没有什么感觉。我高考后买的一台屏幕 13 寸的 ROG 幻13,可以 360° 旋转,还支持触控,加上一支微软的 Surface Pen,上课记笔记就变得十分方便,也就一直用到了现在,直到——
直到我参加了字节跳动的青训营(笑)
青训营最后有一个小组项目,然后我发现一个小屏就不够我看的了,因为要一边写代码,一边看文档,一边还要关注群里面的最新消息,这是我第一次这么急切地想要一个大屏幕,最好能来个双屏
并且,我平时桌面是很乱的,一堆乱七八糟的东西,还有一堆充电线,真的看着都影响工作效率,必须要有行之有效的解决方法
并且还有看书的问题,如果我想看书的话,必须把电脑往里面推,屏幕就隔得很远,不容易看清。而且如果以后要放一个大屏的话,支架肯定会占据很大一块桌面空间,纸质资料很多的话可能顶着支架,很烦(杭电的桌子不大,经我测量约为 100*50*40,长宽高)
所以,这次改造一共要解决三个痛点:
屏幕不够大
桌面太乱
看书体验不够舒适
那么,我最后有没有解决这些问题呢?
成品演示
这应该是我目前能想到的最优解了,那个键盘其实还可以往里推,还是有点深度的
看一下全景
其实后面也是有一堆乱七八糟的线的,只是屏幕挡住了,眼不见心不烦
可以迁一个 USB Hub 出来放桌面上,但其实平时没有很多拔插的需求
分步讲解
买台子
首先,综合各方面考虑,我必须为我的屏幕买一个台子
这样就不会因为它的支架而困扰,台子下面可以放很多东西
而且不能太高,杭电的桌面高度很低,上面有个大书架
经过 ...
『字节青训营-3rd』结营感想(待后续)
福利鄙人平时上课的时候使用 IDM 把视频爬了下来,各位可以使用下面的链接访问!
阿里云:https://www.aliyundrive.com/s/xW4crbwj2f2 (被反馈貌似无法下载)
提取码: 5m2g
百度云:https://pan.baidu.com/s/1nAhcW__vhYPQfOGYXUO-Xg
提取码:89nn
呼!为期一个多月的课程已经结束了,我们的小组项目也进入了收尾阶段,是时候来写一篇总结了
课程方面
总体的课程安排
一个月的时间,从 Golang 的入门开始,到网络,到架构,到存储,真的可以说是收获颇丰
从5月7日到5月17日,我们学习了Go 语言原理与实践,最后的那一天还做了个小项目
从5月17日到5月24日,我们学习的是网络与部署的相关内容
25日上了算法课,讲了一种老师的新排序算法,可以取各种主流算法的长处,并被 Golang 的新版本采用
从27日到29日,连上三节课,讲的是框架方面的内容,而且很多东西都是学校里学不到的,比如微服务之类的,学校肯定不会给你教这个
接着,从5月31日到6月2日,开始讲中间件,消息队列的两种主流处理方式的的确确吸引到了我
最后一部分便是存储与数据库了,从最简单的单机存储,一种讲到分布式对象存储,算是开眼了,了解了很多此前闻所未闻的东西
我的感受
总的来说,这门课我能给满分,毕竟讲得是真的好,下面是几个本次课程给我最大的几个点
讲师资历深厚
来给我们上课的老师都是字节内部工作了很久的老员工,比如给我们讲对象存储的老师介绍自己说是18年来字节的,是对象存储的早期成员,一路见证了字节对象存储容量的持续爆 ...
『Golang』import 中下划线,点,别名的作用
下划线
众所周知,在 Golang 中如果 import 了一个包,会自动运行它的 init() 函数,并且如果你不在你的代码中使用该包,就无法编译
而如果你只需要它的 init() 函数,不需要使用它内部其他组件,就可以加一个下划线
例如在使用 GORM 时,不仅要引入 GORM 的包,还要引入数据库驱动
1234import ( _ "example.com/my_mysql_driver" "gorm.io/gorm")
点
加点后,在调用时可以省略包名前缀
1234567package main import . "fmt" func main() { Println("Hello World!")}
别名
别名就更简单了,就是取别名的意思
1234567package main import f "fmt" func main() { f.Println("Hello World!")}
『面试八股文』1:如何在40亿个整数中寻找一个数字
前情提要:
本篇来源于B站视频:漫画面试系列-如何在40亿个整数中寻找一个数字
整数是 32 位的 int
机器只有 2G 内存
可以使用很多机器
『大学物理』叉乘的计算
感谢 B 站视频:叉乘/向量积的右手螺旋法则
a→×b→\overrightarrow{a}\times \overrightarrow{b}
a×b
方向判定
伸直右手,四指向前,大拇指垂直,将四指指向 a→\overrightarrow{a}a 的方向,然后向 b→\overrightarrow{b}b 的方向弯曲,大拇指的方向就是 a→×b→\overrightarrow{a}\times \overrightarrow{b}a×b 的方向
大小判定
∣a→×b→∣=∣a→∣⋅∣b→∣⋅sinθ\left| \overrightarrow{a}\times \overrightarrow{b}\right| =\left| \overrightarrow{a}\right| \cdot \left| \overrightarrow{b}\right| \cdot \sin \theta
a×b=a⋅b⋅sinθ
使用行列式计算
a→×b→=∣ijkaxayazbxbybz∣\overrightarrow{a}\times \overrightarrow{b}=\begin{vmatrix}
i & j & k \\
a_{x} & a_{y} & a_{z} \\
b_{x} & b_{y} & b_{z}
\end{vmatrix}a×b=iaxbxjaybykazbz
『字节青训营-3rd』L20:Tos 对象存储实战
抖音背后的存储
重任来袭
短视频架构初探
存储需求
存储需求量细化
寻找天选存储
为什么对象存储
前情回顾
存储对比
分布式存储选型
易用性
接口对比
(听上去好像真的很方便)
适应环境
对象存储怎么用
申请 Bucket
(链接是一个视频,实操如何在字节内部创建 Bucket)
Restful 接口
(也是一个内部视频,你可用看见这个视频本身就是放在 TOS 上的)
MultiUpload 接口
Listprefix 接口
TOS字节内部实践
(这是讲师18年来到字节后积累的经验)
开发一个对象存储
可扩展性之 Partition
持久度之 Replication
成本之 EC
(任何一块坏了,可以从其他块推导出这一块的内容)
成本之温热转换
架构细化
存储需求量细化
高可用之拆分
高可用之粤核酸的启发
高可用之镜像灾备
未来展望
课后总结
『字节青训营-3rd』L19:深入理解 RDBMS
经典案例
从一场红包雨说起
RDBMS 事务 ACID
红包雨 与 ACID
原子性
一致性
隔离性
持久性
红包雨 与 高并发
红包雨 与 高可靠
发展历史
前DBMS时代
人工管理
文件系统
(打开记事本记录)
DMBS时代
网状模型
层次模型
关系模型
DBMS数据模型
SQL语言
历史回顾
关键技术
一条SQL的一生
SQL引擎
Parser
Optimizer
Executor
存储引擎
InnoDB
Buffer Pool
Page
B+ Tree
B+树是真的太妙了
事务引擎
Atomicity 与 Undo Log
Isolation 与 锁
Isolation 与 MVCC
Durability 与 Redo Log
企业实践
红包雨挑战
大流量
Sharding
流量突增
扩容
代理连接池
高可用&高可靠
3AZ高可用
HA管理
课程总结
『字节青训营-3rd』L18:带你认识存储 & 数据库
经典案例
数据的产生
数据的流动
数据的持久化
潜在的问题
存储 & 数据库简介
存储系统
系统概览
系统特点
简单:业务逻辑
复杂:错误处理
存储器层级结构
越往上,容量越小,性能越好,越贵
数据怎么从应用到存储介质
RAID 技术
数据库
概览
DSL:领域专用语言(人说人话,狗说狗话)
关系型数据库特点
非关系型数据库特点
数据库 VS 经典存储
结构化数据管理
事务能力
复杂查询能力
数据库的使用方式
主流产品刨析
单机存储
概览
本地文件系统
key-value 存储
分布式存储
HDFS
Ceph
单机数据库
关系型数据库
非关系型数据库
分布式数据库
解决容量问题
解决弹性问题
解决性价比问题
More to Do
新技术演进
概览
SPDK
AI & Storage
高性能硬件
总结
『字节青训营-3rd』L17:分布式定时任务那些事儿
前言
春节集卡瓜分20亿
发展历程
Windows 批处理
Windows 任务计划程序
Linux命令-CronJob
单机定时任务
Timer、Ticker
ScheduledExecutorService
任务调度
Quartz
分布式定时任务
定义
特点
执行方式
业内定时任务框架
Xxl-job
SchedulerX
TCT
知识面扩充
02小结
实现原理
核心架构(重要)
数据流
功能架构
控制台
基本概念
为什么 1 个任务对应 n 个任务实例:
因为一个任务可以执行多次
为什么 1 个任务结构对应 n 个任务结果:
因为每次调度都可能会失败,这时就要重试,每试一次都有结果
任务元数据
任务实例
触发器
核心指责
方案1
方案2
(鄙人感觉是非常巧妙的操作)
高可用
问题引出
数据库行锁模式
分布式锁模式
调度器
资源来源
资源调度
节点选择
任务分片
高级特性
任务编排
故障转移
高可用
执行器
03小结
业务应用
课程回顾
『Go』区分 GoLand 代理和 go proxy
先说结论,这两个完全不是一个东西
GoLand 代理
指的是在 GoLand 进行通信时的代理(如 copilot,更新,登录,集成的 Git 或其他操作)
(如这种操作)
但请注意集成终端可能不使用这个代理,这时就需要通过重新指定代理
(建议将这条命令直接加到终端启动时执行)
Go proxy
这是 Go 在下载依赖时的优先顺序,可以使用 go env 来查看
详细内容可以看这篇
『字节青训营-3rd』L16:走进消息队列
引子
四个案例
本地日志丢掉了,怎么办?
解决方案
前世今生
发展历程
业界对比
消息队列-Kafka
使用场景
如何使用 Kafka
基本概念
Offset
每个消息都有编号
Replica
复制多份副本,如果 Leader 所在的机器挂了,就在 ISR 中的副本重新选一个 Leader
数据复制
由 Controller 分配复制
Kafka 架构
一条消息的自述
思考
不能一个一个发,应该要一起发送
Producer
批量发送
数据压缩
最好的是 ZSTD
Broker
数据的存储
消息文件结构
磁盘结构
顺序写
如何找到消息
偏移量索引文件
时间戳索引文件
传统数据拷贝
零拷贝
Consumer
消息的接收端
Low Level 手动分配
优点:方便快捷
问题:
如果某个 Consumer 挂掉了,那它负责的那些 Partition 直接阻塞
如果某个 Consumer 能力不够,想其他 Consumer 来接替,必会出现机器的启停
High Level 自动分配
Consumer Rebalance
(这个流程有点复杂,可以去查找更多资料学习)
下面是一些缺点
数据复制问题
重启操作
(重启一个节点要很久,重启所有节点要数天甚是数周)
不能并发重启,可能一个片放在两个机器上
替换、扩容、缩容
(只要有节点的变动,就有复制的成本)
负载不均衡
(想解决 IO 问题,引入了新的 IO 问题)
问题总结
消息队列-BMQ
BMQ 简介
读写分离
运维操作对比
HDFS ...
『Redis』缓存与数据库的一致性问题
今天在 B 站上刷到了这个问题,但是没有时间总结,先把视频放这
面试官:缓存和数据库如何保证一致性
你们项目中如何保证 Redis 与 MySQL 的数据一致性?
MySQL和Redis的双写一致性
结论
先更新数据库,再删除缓存
并且结合延时双删或者消息队列
『总结』2022年5月30日阶段性总结
前几天比赛太累了,今天直接摆了一天
睡前又感觉过意不去,做了个简单的阶段性总结