diff --git a/README.md b/README.md
index f21ed94..26c5108 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,19 @@
# 技术分享PPT
-
在公司内部及社区中分享的PPT.
## Download
-[download in github](https://github.com/rfyiamcool/share_ppt/releases)
+[download in github](https://github.com/rfyiamcool/share_ppt/tags)
-## MENU
+## Agenda
+- [网络编程那些事儿-meican](#网络编程那些事儿-meican)
+- [apache pulsar的设计实现原理](#ApachePulsar的设计实现原理)
+- [Qcon海量长连接消息推送系统实践](#Qcon海量长连接消息推送系统实践)
+- [网络编程那些事儿](#网络编程那些事儿)
+- [Golang项目实战](#Golang项目实战)
- [Etcd的设计与实现](#Etcd的设计与实现)
-- [git的那些事儿](#git的那些事儿)
+- [git的那些事儿](#GIT的那些事儿)
- [分布式消息推送](#分布式消息推送)
- [Kafka的设计与实现](#Kafka的设计与实现)
- [TCP的那些事儿](#TCP的那些事儿)
@@ -17,7 +21,7 @@
- [GRPC的那些事儿](#GRPC的那些事儿)
- [分布式任务系统](#分布式任务系统)
- [优雅的编程者](#优雅的编程者)
-- [分布式行情推送系统(golang)](#分布式行情推送系统(golang))
+- [分布式行情推送系统(golang)](#分布式行情推送系统golang)
- [Redis经验之谈](#Redis经验之谈)
- [http2和quic的那些事儿](#http2和quic的那些事儿)
- [kubernetes的那些事儿](#kubernetes的那些事儿)
@@ -40,6 +44,149 @@
## LIST
+### 网络编程那些事儿-meican
+
+#### 分享时间
+
+2023-12-20
+
+#### ppt地址
+
+[下载地址](network_skill.pdf)
+
+#### 截图
+
+
+
+
+
+
+### ApachePulsar的设计实现原理
+
+#### 分享时间
+
+2023-10-12
+
+#### 内容
+
+- Apache pulsar 的架构设计
+- Pulsar broker 的计算层设计
+- 系统 IO 的介绍 (page cache, buffered io, direct io ...)
+- Pulsar bookKeeper 的存储层设计
+- Pulsar 的高级功能设计
+- QA
+
+#### ppt地址
+
+[下载地址](apache-pulsar.pdf)
+
+#### 截图
+
+
+
+
+
+
+### Qcon海量长连接消息推送系统实践
+
+#### 分享时间
+
+2021-06-30
+#### 内容
+
+- 超百万的⻓连接接入
+- 每天近 100 亿条消息
+- 高峰值时每秒 70w+ 条消息 目标
+- 如何尽量保证消息的低延迟
+- 如何保证系统的高并发
+- 如何保证消息的可靠性
+- 如何保证系统的可用性
+- ...
+
+#### ppt地址
+
+[下载地址](qcon_push_service.pdf)
+
+#### 截图
+
+
+
+
+
+### 网络编程那些事儿
+
+#### 分享时间
+
+2021-12-16
+
+#### 内容
+
+- 收包发包原理, socket及阻塞非阻塞, 同步异步的本质
+- linux 五种IO模型
+- io多路复用模型
+ - select
+ - poll
+ - epoll
+ - 数据结构组成
+ - 如何使用 epoll 的那几个方法
+ - 从底层来讲解 epoll 的实现原理
+ - epolloneshot 的场景
+ - 水平触发和边缘触发到底是怎么一回事, 各种case来描述
+ - 社区中常见的服务端使用 epoll 哪种触发模型
+ - epoll 的开发技巧
+ - io_uring
+- aio 到底是怎么一回事? 存在的问题
+- 当前社区比较流行的 网络编程 模型
+ - 新线程模型
+ - 单多路复用 + 业务线程池模型
+ - prefork 模型
+ - reactor
+ - proactor
+- 常见的网络编程问题
+ - 半连接全连接代表的意思,如何配置,不同内核参数下表现形式
+ - 常见的读写返回值的处理方式
+ - reuseaddr vs reuseport
+ - epoll 的惊群问题
+ - 粘包半包
+ - 半关闭
+ - 如何实现异步 connect
+ - 弱网络问题, kcp
+ - fork, exec, system 在继承传递 fd 的问题
+ - 如何实现网络服务的 upgrade
+ - 论心跳的重要性, 为什么使用应用层心跳
+ - 如何处理各种的网络异常问题
+
+#### ppt地址
+
+[下载地址](network_server.pdf)
+
+#### 截图
+
+
+
+### Golang项目实战
+
+#### 分享时间
+
+2021-11-08
+
+#### 内容
+
+- 代码规范
+- 接口规范
+- Git规范
+- 常见设计模式
+- Golang开发经验
+- Golang编码技巧
+
+#### ppt地址
+
+[下载地址](golang_skills.pdf)
+
+#### 截图
+
+
+
### Etcd的设计与实现
#### 分享时间
@@ -70,7 +217,7 @@
-### GIT的哪儿事儿
+### GIT的那些事儿
#### 分享时间
@@ -205,7 +352,7 @@
-### 分布式行情推送系统(golang)
+### 分布式行情推送系统golang
#### 分享时间
diff --git a/apache-pulsar.pdf b/apache-pulsar.pdf
new file mode 100644
index 0000000..07745ab
Binary files /dev/null and b/apache-pulsar.pdf differ
diff --git a/golang_skills.pdf b/golang_skills.pdf
new file mode 100644
index 0000000..cb9402e
Binary files /dev/null and b/golang_skills.pdf differ
diff --git a/images/golang_skills.jpg b/images/golang_skills.jpg
new file mode 100644
index 0000000..5eeb9a8
Binary files /dev/null and b/images/golang_skills.jpg differ
diff --git a/images/network_server.jpg b/images/network_server.jpg
new file mode 100644
index 0000000..6c7831a
Binary files /dev/null and b/images/network_server.jpg differ
diff --git a/images/network_skill_1.png b/images/network_skill_1.png
new file mode 100644
index 0000000..55501f7
Binary files /dev/null and b/images/network_skill_1.png differ
diff --git a/images/network_skill_2.png b/images/network_skill_2.png
new file mode 100644
index 0000000..c691883
Binary files /dev/null and b/images/network_skill_2.png differ
diff --git a/images/network_skill_3.png b/images/network_skill_3.png
new file mode 100644
index 0000000..b861541
Binary files /dev/null and b/images/network_skill_3.png differ
diff --git a/images/network_skill_4.png b/images/network_skill_4.png
new file mode 100644
index 0000000..dbe19d3
Binary files /dev/null and b/images/network_skill_4.png differ
diff --git a/images/pulsar_1.jpg b/images/pulsar_1.jpg
new file mode 100644
index 0000000..2d0ee94
Binary files /dev/null and b/images/pulsar_1.jpg differ
diff --git a/images/pulsar_2.jpg b/images/pulsar_2.jpg
new file mode 100644
index 0000000..c4e53c3
Binary files /dev/null and b/images/pulsar_2.jpg differ
diff --git a/images/pulsar_3.jpg b/images/pulsar_3.jpg
new file mode 100644
index 0000000..8224274
Binary files /dev/null and b/images/pulsar_3.jpg differ
diff --git a/images/pulsar_4.jpg b/images/pulsar_4.jpg
new file mode 100644
index 0000000..7823b7f
Binary files /dev/null and b/images/pulsar_4.jpg differ
diff --git a/images/qcon_push_service01.jpg b/images/qcon_push_service01.jpg
new file mode 100644
index 0000000..45bf9e7
Binary files /dev/null and b/images/qcon_push_service01.jpg differ
diff --git a/images/qcon_push_service02.jpg b/images/qcon_push_service02.jpg
new file mode 100644
index 0000000..ebc323c
Binary files /dev/null and b/images/qcon_push_service02.jpg differ
diff --git a/images/qcon_push_service03.jpg b/images/qcon_push_service03.jpg
new file mode 100644
index 0000000..1b5fa50
Binary files /dev/null and b/images/qcon_push_service03.jpg differ
diff --git a/images/shark_home.jpg b/images/shark_home.jpg
deleted file mode 100644
index c99e2e6..0000000
Binary files a/images/shark_home.jpg and /dev/null differ
diff --git a/network_server.pdf b/network_server.pdf
new file mode 100644
index 0000000..4070e24
Binary files /dev/null and b/network_server.pdf differ
diff --git a/network_skill.pdf b/network_skill.pdf
new file mode 100644
index 0000000..8703126
Binary files /dev/null and b/network_skill.pdf differ
diff --git a/qcon_push_service.pdf b/qcon_push_service.pdf
new file mode 100644
index 0000000..66941f1
Binary files /dev/null and b/qcon_push_service.pdf differ