【随笔】五周年创作纪念日
- 今天收到了 CSDN 的创作五周年提示,正好前几天(7.31)我也成功申请了 CSDN 博客专家,趁这个机会分享一下这几年写博客的感受吧


机缘
- 关注我比较久的读者应该知道我是从学传统工科半路出家搞计算机的,这里的经历还是比较曲折的
-
玩航模,高中就开始自制航模飞机(固定翼),对航空很感兴趣
-
飞行器设计专业就读
-
大一开始接触飞控,玩多旋翼无人机,对控制产生兴趣
-
大二学单片机搞电赛,拿了很多校级电赛的小奖,纯软件部分写了一些 pid 模拟程序,喜欢上了编程的 “创造感”
-
了解到人工智能,觉得能自主学习的程序非常神奇,想做一个能自己学会玩贪吃蛇游戏的程序,未果,甚至连一个基本思路都没有。自此想转计算机,当时觉得此生的终极目标就是做一个能和人流畅对话的聊天机器人,可以通过图灵测试那种
-
大二结束时强行转了计算机科学,其实我理论力学材料力学等专业课学得也还行,但想到这可能是此生仅有的系统学习计算机的机会了,还是转了重读计算机的大二。虽然有一点嵌入式编程的底子,初期还是非常艰难,数据结构课还有算法课都是低空飘过
-
补计算机课的同时仍然继续搞电赛,参加了 RM 等规模更大的比赛,但基本都是参与奖
-
18 年参加了英飞凌的全国无人机竞赛,333个队伍中拿到了全国并列第二,终于在弱电这块拿到一个重量级的奖。期间也终于了解了飞控的原理并进行了一点二次开发,成就感很强


当时有些计算机专业的同学会写技术博客,感觉是个值得学习的好习惯,但一直懒得动笔。这次比赛后心情很好,就趁这个契机,在厦门大学(决赛场地)附近的一个麦当劳写了第一篇博客 大疆Onboard SDK 3.2玫瑰线例程浅析。后来写博客就成了习惯,我本人是 intp,特别喜欢把问题条分缕析地分析清楚的感觉,所以我的博客基本都是成系列的,写得也会比较细。一度想把所有专业课笔记都记录成博客形式,但是太耗时了最后放弃了 -
本科期间计算机的专业课我都很喜欢。自己写过 MIPS 的流水线 CPU,写过PL/0编译器,用纯汇编写过贪吃蛇游戏,还用了一个多月写过一个电商系统,包括 app、web 前端和后台的全部代码(SSM 框架)
当时一段时间内的终极理想是:借助 FPGA,在自己写的 CPU 上运行自己写的编译器,执行自己写的程序,最后也没实现2333
另一方面嵌入式比赛也一直在做,成为了校 RM 队的主力队员,其实这时我已经很想去做视觉部分了,但是因为人手不足,最后我还是一直在写步兵的控制代码,配合视觉部分做自瞄联调,最后 19 年比赛时我们是赛区命中率最高的队伍
-
我知道我想做的是 AI,但是嵌入式部分还有一个夙愿没完成,就是最开始吸引我的无人机飞控开发,于是我用 19 年电赛的无人机题来做我嵌入式开发的收尾。这次深入了解了飞控的原理,也进行了更多二次开发。可以说只要给我足够的时间,我有信心自己写一个完整的四轴飞控了。期间的文章有
- [随笔]2019省电赛无人机题(B题)总结
- 超详细多旋翼无人机飞控 pid 控制器结构图(含视觉追踪)
-
大四保研了本校计算机专业,终于开始系统地学习人工智能了,方向选了强化学习,终于知道怎么做能自己学会贪吃蛇的程序了 2333。出乎意料的是我的终极理想也被 ChatGPT 实现了,所以我现在在做 GPT+强化学习的课题 23333
-
收获
-
写了这么久博客,阅读量已经累计到 50w+,有了 8000+ 粉丝,也有不少人加我微信qq等讨论问题,认识了不少同行。这些成就在我保研时也有一定助力,非常感谢大家的支持

-
另一方面这些博文也是我自己的一个资料库,有什么东西忘了看看自己写的博客就能快速想起来,这对我很重要
日常
- 平衡日常工作和写博客对我而言是一个挑战,因为我 intp 的习惯总会写得太长太细,反而耽误了一些事。最近在尝试写更精炼的文章。比如论文阅读部分就开了新专栏 论文速览
成就
- CSDN 提升我这里可以放自己的项目代码,那我就放一下我 github 中的几个工程吧
- Telegram GPT 聊天机器人:这是我收获 star 最多的项目
- RL_Platform-CrossTheWall:本科毕设做的项目,是一个可视化的 RL 离散测试环境,可以直观地测试对比各种 RL、IL 算法的性能。其可视化效果图也在我的多篇博客中用作素材,如 强化学习拾遗 —— 强化学习的样本效率
- Inverted_pendulum_simulator:直线倒立摆模拟器,可以在此体验串级 PID 的调参过程。配套的视频讲解见 up为研究玄学,竟自学python半个月编写倒立摆模拟器
- Assembly-Gluttonous-Snake:纯汇编写的贪吃蛇游戏程序,详细说明见 IA32汇编语言 —— 贪吃蛇游戏
- RL_task_practice:我的强化学习项目仓库,其中的每个项目都是在某个环境测试某个 RL 算法,可以独立运行,致力于做到简洁清晰
憧憬
- 以后会继续在 CSDN 发布博客的,希望能打造个人 IP,不过会更加考虑到日常工作和写博客的平衡
相关文章:
【随笔】五周年创作纪念日
今天收到了 CSDN 的创作五周年提示,正好前几天(7.31)我也成功申请了 CSDN 博客专家,趁这个机会分享一下这几年写博客的感受吧 机缘 关注我比较久的读者应该知道我是从学传统工科半路出家搞计算机的,这里的经历还是比…...
7_分类算法—逻辑回归
文章目录 逻辑回归:1 Logistic回归(二分类问题)1.1 sigmoid函数1.2 Logistic回归及似然函数(求解)1.3 θ参数求解1.4 Logistic回归损失函数1.5 LogisticRegression总结 2 Softmax回归(多分类问题࿰…...
【计算机网络】应用层协议 -- DNS协议
文章目录 1. DNS背景2. 域名简介3. 域名解析过程4. 使用dig查看DNS过程 1. DNS背景 DNS(Domain Name System,域名系统)协议,是一个用来将域名转化为IP地址的应用层协议。 TCP/IP当中通过IP地址和端口号的方式,来确定…...
ES6 - 数组新增的一些常用方法
文章目录 1,Array.from()2,Array.of()3,find(),findIndex(),findLast()和findLastIndex()4,Array.fill()5,keys(),values() 和 entries()6,Array.includes()7,…...
【BEV感知】3-BEV开源数据集
3-BEV开源数据集 1 KITTI1.1 KITTI数据怎么采集?1.2 KITTI数据规模有多大?1.3 KITTI标注了哪些目标?1.4 转换矩阵1.5 标签文件 2 nuScenes2.1 nuScenes Vs KITTI2.2 标注文件 1 KITTI KITTI 1.1 KITTI数据怎么采集? 通过车载相机、激光雷达等传感器采集。 只提供了相机正…...
Kafka-Broker工作流程
kafka集群在启动时,会将每个broker节点注册到zookeeper中,每个broker节点都有一个controller,哪个controller先在zookeeper中注册,哪个controller就负责监听brokers节点变化,当有分区的leader挂掉时,contro…...
第八篇-Tesla P40+ChatGLM2+LoRA
部署环境 系统:CentOS-7CPU: 14C28T显卡:Tesla P40 24G驱动: 515CUDA: 11.7cuDNN: 8.9.2.26目的 验证P40部署可行性,只做验证学习lora方式微调创建环境 conda create --name glm-tuning python3.10 conda activate glm-tuning克隆项目 git clone http…...
调用feign返回错误的数据
bug描述: 在一个请求方法中会调用到feign去获取其他的数据。 List<Demo> list aaaFeignApi.getData(personSelectGetParam);在调用的时候,打断点到feign的地方,数据是存在的,并且有15条。但是返回到上面代码的时候数据就…...
【Spring】(二)从零开始的 Spring 项目搭建与使用
文章目录 前言一、Spring 项目的创建1.1 创建 Maven 项目1.2 添加 Spring 框架支持1.3 添加启动类 二、储存 Bean 对象2.1 创建 Bean2.1 将 Bean 注册到 Spring 容器 三、获取并使用 Bean 对象3.1 获取Spring 上下文3.2 ApplicationContext 和 BeanFactory 的区别3.3 获取指定的…...
redis五种数据类型介绍
、string(字符串) 它师最基本的类型,可以理解为Memcached一模一样的类型,一个key对应一个value。 注意:一个键最大能存储 512MB。 特性:可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512…...
【JavaEE】Spring Boot - 项目的创建和使用
【JavaEE】Spring Boot 开发要点总结(1) 文章目录 【JavaEE】Spring Boot 开发要点总结(1)1. Spring Boot 的优点2. Spring Boot 项目创建2.1 下载安装插件2.2 创建项目过程2.3 加载项目2.4 启动项目2.5 删除一些没用的文件 3. Sp…...
Git reset、revert用法
reset reset是删除之前的提交记录,所有的提交点都会被清除,我们看下执行前后的git log区别 D:\workspace\android>git log commit 87c1277a57544c53c603b04110e3dde100da8f57 (HEAD -> develop_main) Author: test <test.com> Date: Wed…...
Redis-1
Redis 理论部分 redis 速度快的原因 1、纯内存操作 2、单线程操作,避免了频繁的上下文切换和资源争用问题,多线程需要占用更多的 CPU 资源 3、采用了非阻塞 I/O 多路复用机制 4、提供了非常高效的数据结构,例如双向链表、压缩页表和跳跃…...
【Linux】Linux服务器连接百度网盘:实现上传下载
【Linux】Linux服务器连接百度网盘:实现上传下载 文章目录 【Linux】Linux服务器连接百度网盘:实现上传下载1. 前言2. 具体过程2.1 pip 安装所需包2.2 认证(第一次连接需要认证)2.3 下载所需文件或者目录2.4 其他指令使用2.5 注意…...
ADC模拟看门狗
如果被ADC转换的模拟电压低于低阀值或高于高阀值,AWD模拟看门狗状态位被设置。阀值位 于ADC_HTR和ADC_LTR寄存器的最低12个有效位中。通过设置ADC_CR1寄存器的AWDIE位 以允许产生相应中断。通过以下函数可以进行配置 void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx…...
google谷歌gmail邮箱账号注册手机号无法进行验证怎么办?此电话号码无法用于进行验证 或 此电话号码验证次数太多
谷歌gmail邮箱账号注册手机号无法进行验证怎么办? 使用手机号码注册谷歌gmail邮箱账号时会遇到:此电话号码无法用于进行验证 或 此电话号码验证次数太多。造成注册google谷歌gmail邮箱账号受阻,无法正常完成注册。 谷歌Gmail邮箱账号正确的注册方法与教…...
Spring:IOC技术、Bean、DI
前言 Spring是一个开源的项目,并不是单单的一个技术,发展至今已形成一种开发生态圈。也就是说我们可以完全使用Spring技术完成整个项目的构建、设计与开发。Spring是一个基于IOC和AOP的架构多层j2ee系统的架构。 SpringFramework:Spring框架…...
目标检测与跟踪 (2)- YOLO V8配置与测试
系列文章目录 第一章 目标检测与跟踪 (1)- 机器人视觉与YOLO V8 目标检测与跟踪 (1)- 机器人视觉与YOLO V8_Techblog of HaoWANG的博客-CSDN博客3D物体实时检测、三维目标识别、6D位姿估计一直是机器人视觉领域的核心研究课题&a…...
【Leetcode】56.合并区间
一、题目 1、题目描述 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [ s t a r t i start_i start...
设置系统编码 Beta
在yolov5环境搭建过程中会遇到如下的编码错误警告: 这时,按住“ctrlc”中止进程,然后设置系统编码: 电脑右键属性打开: 重启之后等安装好了,记得回去把bae键取消。...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
