当前位置: 首页 > news >正文

【随笔】五周年创作纪念日

  • 今天收到了 CSDN 的创作五周年提示,正好前几天(7.31)我也成功申请了 CSDN 博客专家,趁这个机会分享一下这几年写博客的感受吧
    在这里插入图片描述
    在这里插入图片描述

机缘

  • 关注我比较久的读者应该知道我是从学传统工科半路出家搞计算机的,这里的经历还是比较曲折的
    1. 玩航模,高中就开始自制航模飞机(固定翼),对航空很感兴趣

    2. 飞行器设计专业就读

    3. 大一开始接触飞控,玩多旋翼无人机,对控制产生兴趣

    4. 大二学单片机搞电赛,拿了很多校级电赛的小奖,纯软件部分写了一些 pid 模拟程序,喜欢上了编程的 “创造感”

    5. 了解到人工智能,觉得能自主学习的程序非常神奇,想做一个能自己学会玩贪吃蛇游戏的程序,未果,甚至连一个基本思路都没有。自此想转计算机,当时觉得此生的终极目标就是做一个能和人流畅对话的聊天机器人,可以通过图灵测试那种

    6. 大二结束时强行转了计算机科学,其实我理论力学材料力学等专业课学得也还行,但想到这可能是此生仅有的系统学习计算机的机会了,还是转了重读计算机的大二。虽然有一点嵌入式编程的底子,初期还是非常艰难,数据结构课还有算法课都是低空飘过

    7. 补计算机课的同时仍然继续搞电赛,参加了 RM 等规模更大的比赛,但基本都是参与奖

    8. 18 年参加了英飞凌的全国无人机竞赛,333个队伍中拿到了全国并列第二,终于在弱电这块拿到一个重量级的奖。期间也终于了解了飞控的原理并进行了一点二次开发,成就感很强
      在这里插入图片描述
      在这里插入图片描述
      当时有些计算机专业的同学会写技术博客,感觉是个值得学习的好习惯,但一直懒得动笔。这次比赛后心情很好,就趁这个契机,在厦门大学(决赛场地)附近的一个麦当劳写了第一篇博客 大疆Onboard SDK 3.2玫瑰线例程浅析。后来写博客就成了习惯,我本人是 intp,特别喜欢把问题条分缕析地分析清楚的感觉,所以我的博客基本都是成系列的,写得也会比较细。一度想把所有专业课笔记都记录成博客形式,但是太耗时了最后放弃了

    9. 本科期间计算机的专业课我都很喜欢。自己写过 MIPS 的流水线 CPU,写过PL/0编译器,用纯汇编写过贪吃蛇游戏,还用了一个多月写过一个电商系统,包括 app、web 前端和后台的全部代码(SSM 框架)

      当时一段时间内的终极理想是:借助 FPGA,在自己写的 CPU 上运行自己写的编译器,执行自己写的程序,最后也没实现2333

      另一方面嵌入式比赛也一直在做,成为了校 RM 队的主力队员,其实这时我已经很想去做视觉部分了,但是因为人手不足,最后我还是一直在写步兵的控制代码,配合视觉部分做自瞄联调,最后 19 年比赛时我们是赛区命中率最高的队伍

    10. 我知道我想做的是 AI,但是嵌入式部分还有一个夙愿没完成,就是最开始吸引我的无人机飞控开发,于是我用 19 年电赛的无人机题来做我嵌入式开发的收尾。这次深入了解了飞控的原理,也进行了更多二次开发。可以说只要给我足够的时间,我有信心自己写一个完整的四轴飞控了。期间的文章有

      • [随笔]2019省电赛无人机题(B题)总结
      • 超详细多旋翼无人机飞控 pid 控制器结构图(含视觉追踪)
    11. 大四保研了本校计算机专业,终于开始系统地学习人工智能了,方向选了强化学习,终于知道怎么做能自己学会贪吃蛇的程序了 2333。出乎意料的是我的终极理想也被 ChatGPT 实现了,所以我现在在做 GPT+强化学习的课题 23333


收获

  • 写了这么久博客,阅读量已经累计到 50w+,有了 8000+ 粉丝,也有不少人加我微信qq等讨论问题,认识了不少同行。这些成就在我保研时也有一定助力,非常感谢大家的支持
    在这里插入图片描述

  • 另一方面这些博文也是我自己的一个资料库,有什么东西忘了看看自己写的博客就能快速想起来,这对我很重要


日常

  • 平衡日常工作和写博客对我而言是一个挑战,因为我 intp 的习惯总会写得太长太细,反而耽误了一些事。最近在尝试写更精炼的文章。比如论文阅读部分就开了新专栏 论文速览

成就

  • CSDN 提升我这里可以放自己的项目代码,那我就放一下我 github 中的几个工程吧
    1. Telegram GPT 聊天机器人:这是我收获 star 最多的项目
    2. RL_Platform-CrossTheWall:本科毕设做的项目,是一个可视化的 RL 离散测试环境,可以直观地测试对比各种 RL、IL 算法的性能。其可视化效果图也在我的多篇博客中用作素材,如 强化学习拾遗 —— 强化学习的样本效率
    3. Inverted_pendulum_simulator:直线倒立摆模拟器,可以在此体验串级 PID 的调参过程。配套的视频讲解见 up为研究玄学,竟自学python半个月编写倒立摆模拟器
    4. Assembly-Gluttonous-Snake:纯汇编写的贪吃蛇游戏程序,详细说明见 IA32汇编语言 —— 贪吃蛇游戏
    5. 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回归(多分类问题&#xff0…...

【计算机网络】应用层协议 -- 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&#xff0c…...

【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描述&#xff1a; 在一个请求方法中会调用到feign去获取其他的数据。 List<Demo> list aaaFeignApi.getData(personSelectGetParam);在调用的时候&#xff0c;打断点到feign的地方&#xff0c;数据是存在的&#xff0c;并且有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&#xff08;字符串&#xff09; 它师最基本的类型&#xff0c;可以理解为Memcached一模一样的类型&#xff0c;一个key对应一个value。 注意&#xff1a;一个键最大能存储 512MB。 特性&#xff1a;可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512…...

【JavaEE】Spring Boot - 项目的创建和使用

【JavaEE】Spring Boot 开发要点总结&#xff08;1&#xff09; 文章目录 【JavaEE】Spring Boot 开发要点总结&#xff08;1&#xff09;1. Spring Boot 的优点2. Spring Boot 项目创建2.1 下载安装插件2.2 创建项目过程2.3 加载项目2.4 启动项目2.5 删除一些没用的文件 3. Sp…...

Git reset、revert用法

reset reset是删除之前的提交记录&#xff0c;所有的提交点都会被清除&#xff0c;我们看下执行前后的git log区别 D:\workspace\android>git log commit 87c1277a57544c53c603b04110e3dde100da8f57 (HEAD -> develop_main) Author: test <test.com> Date: Wed…...

Redis-1

Redis 理论部分 redis 速度快的原因 1、纯内存操作 2、单线程操作&#xff0c;避免了频繁的上下文切换和资源争用问题&#xff0c;多线程需要占用更多的 CPU 资源 3、采用了非阻塞 I/O 多路复用机制 4、提供了非常高效的数据结构&#xff0c;例如双向链表、压缩页表和跳跃…...

【Linux】Linux服务器连接百度网盘:实现上传下载

【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载 文章目录 【Linux】Linux服务器连接百度网盘&#xff1a;实现上传下载1. 前言2. 具体过程2.1 pip 安装所需包2.2 认证&#xff08;第一次连接需要认证&#xff09;2.3 下载所需文件或者目录2.4 其他指令使用2.5 注意…...

ADC模拟看门狗

如果被ADC转换的模拟电压低于低阀值或高于高阀值&#xff0c;AWD模拟看门狗状态位被设置。阀值位 于ADC_HTR和ADC_LTR寄存器的最低12个有效位中。通过设置ADC_CR1寄存器的AWDIE位 以允许产生相应中断。通过以下函数可以进行配置 void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx…...

google谷歌gmail邮箱账号注册手机号无法进行验证怎么办?此电话号码无法用于进行验证 或 此电话号码验证次数太多

谷歌gmail邮箱账号注册手机号无法进行验证怎么办? 使用手机号码注册谷歌gmail邮箱账号时会遇到&#xff1a;此电话号码无法用于进行验证 或 此电话号码验证次数太多。造成注册google谷歌gmail邮箱账号受阻&#xff0c;无法正常完成注册。 谷歌Gmail邮箱账号正确的注册方法与教…...

Spring:IOC技术、Bean、DI

前言 Spring是一个开源的项目&#xff0c;并不是单单的一个技术&#xff0c;发展至今已形成一种开发生态圈。也就是说我们可以完全使用Spring技术完成整个项目的构建、设计与开发。Spring是一个基于IOC和AOP的架构多层j2ee系统的架构。 SpringFramework&#xff1a;Spring框架…...

目标检测与跟踪 (2)- YOLO V8配置与测试

系列文章目录 第一章 目标检测与跟踪 &#xff08;1&#xff09;- 机器人视觉与YOLO V8 目标检测与跟踪 &#xff08;1&#xff09;- 机器人视觉与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环境搭建过程中会遇到如下的编码错误警告&#xff1a; 这时&#xff0c;按住“ctrlc”中止进程&#xff0c;然后设置系统编码&#xff1a; 电脑右键属性打开&#xff1a; 重启之后等安装好了&#xff0c;记得回去把bae键取消。...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

Webpack性能优化:构建速度与体积优化策略

一、构建速度优化 1、​​升级Webpack和Node.js​​ ​​优化效果​​&#xff1a;Webpack 4比Webpack 3构建时间降低60%-98%。​​原因​​&#xff1a; V8引擎优化&#xff08;for of替代forEach、Map/Set替代Object&#xff09;。默认使用更快的md4哈希算法。AST直接从Loa…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

图解JavaScript原型:原型链及其分析 | JavaScript图解

​​ 忽略该图的细节&#xff08;如内存地址值没有用二进制&#xff09; 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么&#xff1a;保存在堆中一块区域&#xff0c;同时在栈中有一块区域保存其在堆中的地址&#xff08;也就是我们通常说的该变量指向谁&…...