打造可验证的技术自我介绍:从Markdown到个人技术主页

逆变器专题(9)-基于dq坐标系的逆变器解耦控制建模与实时仿真分析 本文深入探讨了基于dq坐标系的逆变器解耦控制建模与实时仿真分析。通过生动的比喻和详细的数学推导,阐述了如何通过坐标变换和前馈补偿实现d轴与q轴的独立控制,从而提升系统动态性能与稳定性。文章还介绍了在MATLAB/Simulink中搭建仿真模型、分析动态响应与稳定性的方法,并展望了硬件在环(HIL)实时仿真的高级验证手段,为新能源并网与电机驱动领域的工程师提供了宝贵的实践指南。 阅读详情

技术社区里最常见的自我介绍,往往不是文档,而是一句很抽象的话:“这样那样的……大梦想?!”它可能出现在博客的副标题、GitHub 仓库的 README 开头、个人主页的 slogan,或者简历里的“自我评价”。这句话是真诚的,但作为技术信息,它几乎没有可验证的内容。别人看完之后,不知道你解决过什么问题、熟练使用哪些工具、能接手什么任务、做过什么可以复盘的项目。

真正的技术自我介绍,应该更像一个小型工程:有定位,有结构,有数据,有部署方案,还要有迭代机制。这篇文章就把这个目标拆开讲。如果你正在写简历、整理 GitHub 个人主页、准备团队 Wiki 里的个人介绍,或者只想让博客的 About 页面更有信息量,下面这套方法可以直接套用。整篇文章会走完四个阶段:把梦想拆成需求、盘点技术证据、写出 Markdown 自述、发布成在线个人技术主页,最后补充验证指标和常见排错。

1. 先理解技术自我介绍为什么需要结构化

写代码前要做需求分析,写自我介绍也一样。一个没有结构的自我介绍,就像一段没有分层、没有异常处理、没有注释的代码:能跑,但无法维护,也没法给别人 review。技术自我介绍本质上是把个人经验处理成可被别人消费的信息,这个过程完全可以借鉴软件工程里的“输入-处理-输出-反馈”模型。

1.1 技术自述的输入、处理、输出与反馈

一份技术自述的输入,是你做过的事情,包括技术栈、项目、代码、文章、线上问题和复盘记录。处理环节要做的是去噪和结构化,比如把“我了解分布式”改成“我处理过分布式锁在订单接口中的误用问题,并把排查过程写成了文章”。输出是最终呈现给别人看的 Markdown、README 或网页。反馈则是别人读完后的反应,包括他们是否快速理解了你的技术定位,是否会追问某个项目细节,看到数据是否会觉得可信。

这套流程里最容易出问题的是“处理”环节。很多人写自我介绍时,把输入和输出直接连接,省略了“验证证据”这一步。比如写“熟悉 Redis”,却没有列出是在什么场景下使用的,是缓存还是分布式锁,是单机还是集群,遇到过大 key 还是连接池问题。没有这些上下文,“熟悉”就无法被验证。

1.2 一份技术自述要回答的四个问题

任何一份技术自述,只要能让读者快速获得以下四个问题的答案,就已经成功了一半。

问题 要回答的内容 常见失败写法
技术定位是什么 主要解决哪类问题 “热爱技术,学习能力强”
凭什么能解决 熟练使用哪些技术组合 “会用 Spring Boot”
有什么证据 做过什么项目、写过什么文章、解决过什么问题 “参与过多个系统开发”
从哪里联系或继续了解 博客、开源仓库、邮箱、作品链接 什么都不留

第一和第三个问题最容易出现空泛表达。定位不能靠形容词,要靠“领域 + 技术栈 + 交付物”的组合;证据不能靠感觉,要靠项目、指标和文章链接。第二和第四个问题则反映了一个态度:自我介绍不是终点,而是用户通往你其他工作的入口。

1.3 受众不同,语气和证据优先级也不同

写一份自述之前,先想清楚谁会看。面试官关心的是你能不能胜任岗位,所以项目职责和性能指标要放在前面;合作者关心的是你的技术栈和他是否有交集,所以技术栈和项目领域要写清楚;普通读者最关心的是你的踩坑经验能不能复用,所以代码片段和文章链接更有价值;未来的你自己,关心的是这段经历有没有沉淀成可回顾的记录,所以版本和日期很重要。

如果把一份面向面试官的自我介绍原封不动放到开源项目 README 里,会显得很突兀;反过来也是一样。比较好的做法是准备一个“主版本”,它包含完整信息,再针对不同场景做删减。主版本正是接下来要产出的核心资产。

2. 把“大梦想”拆成可验证的技术定位

“大梦想”本身不是问题,问题是它没有中间层。程序员可以有大梦想,但写给别人的自我介绍里必须补上“我要往哪个具体方向走、我当前到什么阶段、我拿什么交付物证明我在走”。没有这三级拆解,梦想就只能是口号。

2.1 从梦想到目标:先补上中间层

一个可执行的大梦想应该按下面的链路拆解:

梦想 -> 领域方向 -> 中短期目标 -> 交付物 -> 验证指标

例如,“成为能解决复杂系统问题的架构师”是梦想;“分布式系统性能调优”是领域方向;接下来一年的目标是“能独立负责接口性能分析和容量规划,并输出复盘文档”;交付物是“性能调优方案、压测报告、线上问题复盘”;验证指标是“不同场景下的 P99 延迟变化、CPU 和内存水位变化、事故恢复时长”。

这样拆分之后,“大梦想”就变成了可执行的路线。别人看到的不是一句口号,而是一个有目标、有产物、有结果的技术规划。

2.2 用定位公式替代口号

技术定位的推荐公式:

定位 = 领域方向 + 核心能力 + 交付物

一个站得住脚的技术定位是:

Java 后端研发工程师 + 分布式系统性能调优 + 线上问题复盘与技术文章

另一个偏前端的定位是:

前端开发者 + 跨端应用架构 + 组件库设计与性能优化实践

这比“热爱编程,追求极致”信息量大得多。因为读者能马上判断你是不是他要找的人,也能判断你的交付物是不是可以在团队内复用。

2.3 拆分示例:一个大梦想的三级拆解

这里用一张表演示拆解过程。下面数据是示例,落地时要替换成你自己的实际情况。

层 内容
梦想 成为能独立负责高并发系统稳定性的后端架构师
领域方向 后端服务治理、分布式事务、数据库性能优化
第二年目标 完成订单链路压测,推动慢 SQL 治理,沉淀 10 篇复盘文章
交付物 压测报告、治理方案、代码改造 PR、可复用的排查文档
验证指标 P99 延迟下降约 30%,慢 SQL 数量减少 40%,事故恢复时长缩短 50%

表格里的指标是示例性的,但它展示了一个关键思想:每个目标都要有验收手段。没有验收手段的目标,写进自我介绍里会让读者感觉没有实质内容。

3. 用证据表盘点技术栈与项目,避免空泛描述

写自我介绍最痛苦的不是没有内容,而是内容散落在不同仓库、不同机器、不同人的记忆里。所以第一步不是写句子,而是先盘存货。盘存货要使用表格,因为表格能强制你填完“技术”“场景”“证据”这三列,方便发现哪些技能只在简历里出现过,却没有任何真实用例支撑。

3.1 技术栈表:让每个技能都有真实用例

技术栈不要直接写成“熟悉 Java、Spring Boot、Redis、MySQL、Kafka”这样的一行字,那只是标签。更推荐做成一张表:

方向 技术 使用程度 真实用例 证据位置
服务端 Java 日常使用 订单接口、任务调度、消息消费 仓库 order-service
框架 Spring Boot 日常使用 自动配置、统一异常、参数校验 仓库 order-service
存储 MySQL 日常使用 核心订单表建模、慢 SQL 优化 复盘文:《一次慢查询排查》
缓存 Redis 偶尔使用 分布式锁、热点数据缓存 线上问题复盘
消息 Kafka 偶尔使用 订单状态变更异步通知 仓库 event-service

使用程度不要写得过宽。推荐使用三个档位:“日常使用”“偶尔使用”“学习研究”。这样既不会过度承诺,也保留了技术广度的表达空间。每个技术都要有“真实用例”和“证据位置”两列,如果没有,就说明这个技能目前还不能出现在主版本里。

3.2 项目表:用职责、技术、指标代替流水账

项目经历的常见问题是写成“我做了 XX 系统”的流水账。更好的表格结构是这样:

项目 我的职责 使用的技术 我解决的难点 结果指标
订单中心性能优化 接口优化、压测、复盘 Spring Boot、Redis、MySQL 热点商品缓存击穿 P99 下降 30%,缓存命中率提升到 90%(示例数据)
消息通知服务 架构设计、开发 Kafka、Java 消费乱序与重试幂等 积压恢复时间缩短 50%(示例数据)

“我解决的难点”和“结果指标”是项目表的灵魂。如果没有这两列,项目就只是功能描述。结果指标可以不是轰动性的数据,但必须是真实的、你自己能说清楚口径的数据。哪怕只是“单元测试覆盖率从 30% 提升到 60%”,也比“提升了系统稳定性”更有说服力。

3.3 证据从哪来:版本记录、日志、监控与复盘

整理证据时,不是靠记忆,而是靠这些既有产物:

  • Git 提交记录:能看到你提交过什么功能、修过什么 bug。
  • Pull Request 描述:能看到你面向协作场景的表达能力。
  • 监控大盘截图:能看到请求量、延迟、错误率的变化。
  • 故障复盘文档:能看到异常发现、定位、解决和预防过程。
  • 技术文章草稿:哪怕没发布,也是很好的素材来源。
  • 文档和 Wiki:能反映你对技术方案的记录习惯。

把这些证据按项目归拢,再对应到前面两张表,就能发现哪些地方可以写实,哪些地方只能写成“了解”。写“了解”不丢人,但没有项目支撑却写“精通”才是隐患。

3.4 学习项目和生产项目必须分开标注

盘点项目时,最容易让人误读的是把课程项目、个人 demo 和线上生产项目混在一起写。这里要明确区分:

  • 学习环境项目:作用是证明学习能力和动手能力,应该标注“学习项目”,并说明它解决的学习目标。
  • 开发调试项目:主要作用是展示调试和排错能力,可以写清楚遇到了什么问题、怎么定位的。
  • 生产环境项目:作用是证明你能在真实流量、真实数据、真实协作下工作,需要标注“已上线”“团队协作”等方式验证。
  • 个人开源项目:作用是证明你有独立交付和维护能力,要写清楚使用量或 release 节奏,但不能虚构数据。

好项目描述会明确告诉读者这个项目的运行环境,避免别人误判你的经验。坏项目描述则全都是“上线了”三个字,经不起追问。

4. 从 Markdown 模板开始,写一份能迭代的自述

素材盘点完成之后,就可以开始写了。Markdown 是最合适的载体,因为它可以进 Git,可以渲染成网页,可以放进 README,也可以在需要时转换成 PDF 或 HTML。技术自述应该是一份文本资产,而不是每次投简历时都现场拼凑的一段话。

4.1 自述文档的核心结构

一份技术自述建议按下面的顺序组织:

  1. 顶部一句话定位:用一句话说清领域、角色和交付物。
  2. 当前技术方向:最近主要在研究什么、解决什么问题。
  3. 技术栈表:简洁、可验证。
  4. 项目经历表或分段介绍:按重要性排列。
  5. 技术写作与开源记录:博客、PPT、分享、开源仓库。
  6. 如何联系:邮箱、主页、GitHub,注意隐私。
  7. 版本与日期:标注最后更新时间。

顺序背后的逻辑是:先让人快速判断“你是谁”,再给出证据,最后提供入口。如果你开头写一大堆“自我评价”,读者可能在前两段就失去耐心。

4.2 一份可直接改写的 Markdown 示例

下面是一份完整示例,其中的人名、项目和指标都是演示数据,实际使用时要全部替换成你自己的真实信息。

# 示例开发者

> 技术定位:Java 后端研发工程师,专注分布式系统性能优化与线上稳定性保障。

## 一句话介绍

三年后端开发经验,主要做订单域接口设计、性能分析与故障排查,长期把复盘整理成技术文章。

## 最近在做什么

- 完善订单链路压测方案,推动慢 SQL 治理。
- 维护一套可复用的线上问题排查文档。
- 每周更新一篇技术复盘。

## 技术栈

| 方向 | 技术 | 使用程度 | 真实用例 |
| --- | --- | --- | --- |
| 服务端 | Java | 日常使用 | 订单服务、任务调度 |
| 框架 | Spring Boot | 日常使用 | 接口开发、自动配置、统一异常 |
| 存储 | MySQL | 日常使用 | 订单表建模、慢 SQL 优化 |
| 缓存 | Redis | 偶尔使用 | 分布式锁、热点缓存 |
| 消息 | Kafka | 偶尔使用 | 订单状态变更异步通知 |

## 项目经历

### 订单中心性能优化(示例数据)

- 职责:接口优化、压测、问题复盘。
- 难点:热点商品缓存击穿,导致数据库压力突增。
- 处理:隔离热点 key,加入本地缓存兜底,调整熔断参数。
- 结果:接口 P99 延迟下降约 30%,缓存命中率提升到 90% 左右。

### 内部消息通知服务(示例数据)

- 职责:架构设计、开发、消费端改造。
- 难点:消费乱序和重复消费。
- 处理:引入幂等表,按业务键去重,消费端拆分为多个独立 consumer。
- 结果:消息积压恢复时间缩短约 50%。

## 技术写作与开源

- 个人博客:https://example.com
- 一篇发布过的复盘:《缓存击穿问题的定位与修复》
- 开源练习:mini-scheduler,一个简单的定时任务调度器仓库

## 联系

- 邮箱:example@example.com(示例)

示例里的关键不是具体数字,而是每个板块都有可被追问的细节。读者如果问你“P99 怎么测的”“幂等表怎么设计的”,你能快速给出的回答,才是这份自述真正的价值。

4.3 用 Git 和版本号管理自述

自述文档也是一种需要版本管理的文件。推荐把它放进一个独立仓库,用 Git 管理:

# 初始化个人 hub 仓库
git init

# 添加自述文档
git add README.md

# 提交第一个版本
git commit -m "docs: 初始化个人技术自述 v1.0"

# 绑定远程仓库,使用自己的仓库地址替换
git remote add origin https://github.com/yourname/yourname.git

# 推送
git branch -M main
git push -u origin main

自述文档可以按自己的节奏升级,比如半年一个版本:v1.0 代表第一次整理完成,v1.1 代表补充了 1 个项目,v2.0 代表技术方向发生明显变化。版本号的意义是让自己和读者都能看到内容在演进。

5. 把自述发布成可访问的个人技术主页

Markdown 写完之后,再往前走一步:把它发布成在线可访问的页面。这样在做自我介绍时就不需要甩一段长文本,而是给一个链接,别人打开后能阅读、收藏、反复查看。

5.1 先决定发布方式:从 README 到静态站点

根据维护成本和技术目标,可以选择不同方案:

方案 适合场景 维护成本 特点
GitHub Pages 直接显示 README 快速实现,信息展示为主 低 仓库即页面,适合个人主页
MkDocs / VitePress 静态站点 需要多页面,支持导航 中 Markdown 写作,构建后生成 HTML
自建动态站点 需要后台管理、动态交互 高 不推荐只为了自我介绍做

第一次整理时,选择最简单的方案。先让页面能访问,再考虑装饰性功能。

5.2 直接推送 Markdown 到 GitHub Pages

最简单的做法是创建一个与用户名同名的仓库,命名为 username.github.io ,把 Markdown 内容命名为 README.md 或 index.md 推上去,然后在仓库设置里开启 Pages,选择分支即可。也可以创建一个普通仓库,把 about.md 放进去,用 Pages 直接渲染该文件。

完整的命令流程可以这样理解:

# 当前项目已经写好 README.md
git init
git add README.md
git commit -m "docs: 初始化个人技术自述"

# 假设远程仓库已经创建好
git remote add origin https://github.com/yourname/yourname.github.io.git
git branch -M main
git push -u origin main

推送完成后,进入仓库的 Settings -> Pages,选择 Source 为对应分支和目录,保存后等待几分钟,就能通过 https://username.github.io 访问页面。这里要注意,第一次配置完成后通常会有延迟,遇到 404 时可以检查是否选对了分支和目录。

5.3 用 MkDocs 生成更完整的个人站点

当内容变多后,推荐转成静态站点。MkDocs 是一个轻量方案,只要本地有 Python 环境就可以快速验证。先创建项目结构:

my-about/
├── docs/
│   ├── index.md
│   ├── skills.md
│   └── projects.md
└── mkdocs.yml

docs/skills.md 和 docs/projects.md 分别放技术栈表和项目经历,然后使用下面的配置:

site_name: 示例开发者技术主页
nav:
  - 首页: index.md
  - 技术栈: skills.md
  - 项目经历: projects.md
theme:
  name: material

本地构建和发布命令如下:

# 安装依赖
pip install mkdocs

# 新建站点,默认会创建 docs/index.md
mkdocs new my-about

# 本地预览
cd my-about
mkdocs serve

# 构建静态文件
mkdocs build

# 发布到 GitHub Pages(需要 mkdocs 插件)
mkdocs gh-deploy

mkdocs gh-deploy 会把生成的站点推送到仓库的 gh-pages 分支,之后在 Pages 设置里选择部署分支即可。这种方式适合内容多、需要多个页面的场景,维护体验比完全手写 HTML 好很多。

5.4 部署时的常见异常

部署个人主页时容易遇到的问题,大部分集中在路径、分支和缓存上:

问题现象 常见原因 检查方式 处理建议
页面访问 404 未打开 Pages 或选错分支 检查仓库 Settings -> Pages 选择正确分支和目录后重新保存
图片或样式加载失败 静态资源使用了绝对路径 浏览器控制台查看请求路径 使用相对路径或配置正确的 base_url
修改后页面不更新 Pages 构建有延迟或缓存 等待几分钟后强制刷新 清除浏览器缓存,或检查构建日志
中文乱码 文件保存编码不是 UTF-8 用编辑器查看文件编码 统一保存为 UTF-8
构建失败 YAML 缩进写错 查看构建 Action 日志 用本地 mkdocs build 先验证

在线上部署时,不要只看首页显示成功,还要确认子页面、资源路径和更新时间都正常。

6. 用指标验证自我介绍是否真的有效

写完不是结束,要像上线一个功能一样去验收。技术自述的有效性可以用几类指标来验证,同时也要避免单纯追求访问量。

6.1 可以观测的指标有哪些

指标分类 具体指标 说明
访问指标 页面 PV、UV、停留时长 反映有没有人看、是否愿意停留
转化指标 收到合作邀请、面试邀请、订阅、收藏 反映内容是否产生了实际价值
内容指标 文章被追问的频率、项目是否被反复确认 反映证据是否足够扎实
更新指标 最近一次更新时间、版本号 反映内容是否在持续维护

这些指标不需要每天盯着,建议每季度汇总一次。更重要的是看趋势:如果访问量在涨,说明你选择的方向和表达方式在被更多人接受。

6.2 30 秒定位测试是最低成本验收

有一种测试方法不需要任何统计工具:找一位同事或朋友,把你的自述页面给他看 30 秒,然后让他回答三个问题。

  • 这个人主要做什么方向?
  • 他做过最有说服力的事情是什么?
  • 如果想继续了解,应该去哪里?

如果对方回答不出来,说明你的自述传播效率偏低。这通常不是表达天赋问题,而是结构问题:定位不够靠前、证据不够突出、入口不够明显。修改后可以重复测试,直到对方能在 30 秒内抓住关键信息。

6.3 建立季度版本更新节奏

技术自述不需要每月大改,但也不能一年不碰。建议按季度维护:

  • 每个季度末更新技术栈“真实用例”列,把新做的项目补进去。
  • 删除已经不再相关的内容,避免信息过载。
  • 检查链接是否失效,包括博客文章、开源仓库和联系方式。
  • 如果技术方向发生变化,更新顶部的定位句。

这种节奏和发布新版本很像:每季度一个快照,年底回顾时可以清楚看到自己的变化。

7. 常见问题与排查:写不出来、太杂、过期、夸大

写技术自述的过程中会遇到几个高频问题。它们不是写作技巧问题,而是素材管理和信息梳理问题。

7.1 没有项目可写时,怎么找素材

没有“上线项目”并不代表没有内容。可以把以下素材作为起点:

  • 学习 demo:做了什么功能,采用了什么架构,踩过什么坑。
  • 课程项目或毕业设计:解决什么问题,自己负责哪部分。
  • 开源练习代码:独立完成过什么小工具。
  • 技术文章或笔记:说明你具备总结和输出能力。

写学习 demo 时一定要标注“学习项目”,不要让人误以为是生产系统。生产环境经验无法凭空获得,但学习项目能证明你的动手能力和学习意愿。

7.2 技术栈太多或太浅,怎么聚焦

技术栈列得太多,会稀释核心定位。推荐采用“2+1”策略:标注两个最常用的技术方向,一个正在学习的方向。写“学习研究”并不丢人,它能告诉读者你有持续学习的能力。

如果某个技术只在课程里用过,就放到“学习研究”档;如果某个技术在工作中使用超过半年,且能说出至少一个难点,才值得放到“日常使用”。这个规则能避免技术栈表变成名词堆砌。

7.3 数据不真实或口径不一致,会被很快识别

写技术自述最容易翻车的地方是数据。写“性能提升 50%”之前,先想清楚这些问题:从哪个时间点到哪个时间点?测试环境还是生产环境?压测工具是什么?并发数是多少?指标口径是什么?

如果数据口径说不清,建议宁可不写数字。真正有说服力的写法是“接口 P99 延迟在压测场景下从 900ms 降到 600ms,用了缓存的本地兜底 + 异步化改造”,这比“性能提升巨大”更可信。

7.4 信息长期不更新,等于告诉别人你已停更

技术自述的链接发出后,读者可能会收藏,隔几个月再来看。如果看到“最后更新:两年多以前”,会明显降低信任感。解决方法是至少在文档顶部或底部保留“最后更新时间”字段,并坚持做季度更新。

> 最后更新时间:2025 年第二季度

这一个字段就能避免页面看起来像死链。

7.5 隐私与安全边界

发布个人技术自述时,要确认下面几类信息没有泄露:

  • 公司内部系统地址、端口、数据库连接串。
  • 没有公开过的业务数据和用户数据。
  • 密钥、Token、证书、云服务凭证。
  • 同事、团队和客户的个人信息。
  • 还没有解禁的架构方案或事故细节。

写项目经历时,可以把数据和系统名称替换成抽象描述,比如“订单系统”“消息服务”,保留技术和结果即可。信息安全边界比展示效果优先级高得多,这一点必须放在前面。

8. 最佳实践与长期维护建议

最后把这些内容整理成可以直接用于工作的实践建议。技术自述不是一次性任务,它应该随着你的技术成长持续演进。

8.1 可复用的写作检查清单

发布前逐项检查下面内容,可以避免大部分问题:

  • 顶部定位是否一句话能说清,是否包含“领域 + 能力 + 交付物”。
  • 技术栈表是否每个技术都有真实用例。
  • 项目经历是否有“难点 + 处理 + 结果”三段式。
  • 数据指标是否口径明确,是否标注为示例数据或真实数据。
  • 学习项目和生产项目是否明确区分。
  • 是否保留了联系方式和内容入口。
  • 是否标注最后更新时间。
  • 是否检查过链接、图片、路径和页面构建。
  • 是否检查了敏感信息、密钥、内部地址和隐私数据。

8.2 下一步:从自述扩展到博客与开源

自述只是入口,真正支撑它的是持续产出的内容。建议定期做三件事:

  • 写技术复盘文章:把排查过程和方案讲清楚,这比空写技术栈更可信。
  • 维护开源练习仓库:哪怕只是一个小工具,也能展示代码组织和 commit 习惯。
  • 整理问答记录:把别人问过的技术问题,沉淀成 FAQ 或知识库。

这些内容又会反过来变成你技术自述里的“证据位置”。自述和技术内容之间是相互加强的关系,而不是一次性展示。

8.3 给新手的练习建议

如果你现在还不知道怎么写,先不要追求完美。按下面的最小闭环练习一次:

  1. 花 20 分钟,把技术栈和项目信息填入文中提供的三张表。
  2. 花 30 分钟,把表格内容改成 Markdown 自述。
  3. 用 GitHub Pages 或 MkDocs 发布,先不考虑域名和样式。
  4. 让一个朋友做 30 秒定位测试,记录反馈。
  5. 根据反馈改一版,把更新时间写进去。

“这样那样的……大梦想”可以保留,但要在它后面补上一句话:一个领域方向,一个中短期目标,以及一件已经做出来的交付物。当梦想变成可执行的技术路线时,它才真正值得写进简历、README 和个人主页。对程序员来说,一份能不断维护、能验证、能被人快速理解的技术自述,就是大梦想落地的最好证明。

CloudCompare 和 PCL:点云网格化分析与处理 点云网格化是将点云数据转化为规则网格的过程,其主要思想是将离散的点云投影到一个平面上,然后对该平面进行划分,形成一系列小区域。在点云网格化方面,PCL 提供了各种算法和工具,可以实现高效的点云网格化操作。以上示例代码中,首先加载了输入的点云数据,然后通过设置合适的网格化算法参数,如搜索半径和最大三角形边长等,执行了网格化操作,最后将网格化结果保存到输出文件中。以上示例代码中,首先加载了输入的点云数据,然后通过设置合适的网格化参数,如分辨率等,执行了网格化操作,最后将网格化结果保存到输出文件中。 阅读详情

相关推荐

[Ethernet in CANoe]3--CANoe工程中SOME/IP报文的详细介绍(一)

和上述第一章节的介绍,我们对SOEMIP通信协议有了初步了解,首先我们先暂停Trace窗口,可以看到整个Trace窗口关于SOMEIP的报文有两种颜色,一种是紫色,另一种是绿色。它使用多播地址,允许服务提供者发布其服务,服务消费者订阅这些服务。上述每点开一个SOMEIP报文,左侧的details就能看到该报文中的具体细节,从IP地址到port口,再到具体的serviceID,都能详细的解析。一旦通过服务发现完成了服务的发布和订阅,服务消费者就可以向服务提供者发送请求,或者服务提供者向消费者发送事件通知。

汽车ECU自动化测试 1411

大模型对抗攻击技术全解析:从越狱提示到自动化红队攻防

在人工智能安全领域,对抗攻击是指通过精心设计的输入样本,诱使机器学习模型产生错误或恶意输出的技术。其核心原理在于利用模型决策边界的不连续性,通过微小扰动改变输入特征,从而误导模型。这项技术的价值在于,它不仅是评估模型鲁棒性的关键手段,更是推动安全AI系统发展的核心驱动力。在实际应用场景中,对抗攻击技术被广泛应用于模型安全性测试、漏洞挖掘和防御机制验证。本文聚焦于大语言模型(LLM)的安全攻防,深入剖析了越狱提示、梯度攻击等热词技术,并探讨了自动化红队这一前沿攻防实践,为构建更安全的AI系统提供了全面的技术视

weixin_30275415的博客 396

Zigbee智能开关和单火取电技术

ZigBee智能开关(单火线)是在ZigBee协议基础上开发由单火线供电的开关,它可以控制各种类型负载的开关,如LED灯,白炽灯,荧光灯和钨丝灯等。配合相应的主机用户可以使用手机远程控制它,进而达到控制灯光开关的目的。它具有自组网功能,使用简单方便,给你的居家生活带来无线享受。可应用于家庭,办公,医院和酒店等场合。

danhuoxian的博客 1万+

实验十四 线程设计

1.源程序: package shiyan14; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.Timer; ...

diaohaojuan7282的博客 271

别再手动配网了!用安信可PB-02模组+PHY Mesh App,5分钟搞定蓝牙Mesh智能灯群控

本文详细介绍了如何使用安信可PB-02模组和PHY Mesh App快速搭建蓝牙Mesh智能灯群控系统。通过5分钟的硬件连接和固件烧录,用户可实现多灯分组控制、场景切换及地理围栏等高级功能,显著提升智能家居部署效率。方案特别适合需要快速实现灯光群控的场景。

weixin_28675839的博客 416

使用VS Code创建第一个Flutter工程

你可以使用任意文本编辑器结合命令行工具来开发Flutter应用。然而,我们推荐使用本文介绍的编辑器插件以获取更好的开发体验。这些插件提供了代码补全、代码高亮、widget辅助编辑等功能,以及为项目的运行和调试提供支持。推荐的开发工具有VS Code、Android Studio、IntelliJ。本文将重点介绍如何使用VS Code进行Flutter应用开发。

2501_91373349的博客 2124

多线程实验

实验六   多线程实验 一、实验目的 练习多线程类的两种实现方法,理解多线程程序的生命周期 二、实验内容 编写一多线程程序,实现如下功能: (1)一个线程进行阶乘和的运算(1!+2!+3!+……+12!),每次阶乘计算时间随机间隔0.5-1秒; (2)另一个线程每隔1秒时间读取上个线程的运算结果和计算进程,并在图形界面中实时显示结果。 三、实验设计 (反映设计原理、设计方法、设计过...

喜欢就好 3044

解锁SPWM电压利用率:三次谐波注入幅值的黄金分割点

本文深入探讨了SPWM电压利用率的提升方法,重点介绍了三次谐波注入技术及其黄金分割点(1/6比例)。通过数学推导和工程实践,揭示了如何通过特定幅值的三次谐波注入将电压利用率从86.6%提升至115%,与SVPWM相当。文章还提供了实验室调试流程和DSP实现代码,帮助工程师优化逆变器设计。

weixin_30729609的博客 915

JAVA多线程学习小结

一、线程概念:线程是比进程更小的执行单元。一个进程中可以有多个线程 二、多线程优点:提高了程序的执行效率、充分利用资源、使程序同步执行(Java的垃圾回收机制运用了多线程。) 三、进程与线程的区别 线程与进程的区别可以归纳为以下4点:1)地址空间和其它资源(如打开文件):进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。2)通信:进程间通信IPC,线程间可以直接读写进程...

weixin_30567225的博客 111

CDD数据库文件制作(二)——服务配置(0x27)

主要根据诊断调查表,针对0x27服务在CDD中的每一步配置给出详细介绍 1.会话切换配置 1.1.根据诊断调查表进行信息提取 1.2.子功能添加 1.2.1.Level1安全等级1创建 1.2.2.Level3安全等级3创建 1.2.3.安全等级名字查看与修改 1.3.会话切换信息提取(应用程序下) 1.4.会话转换配置(应用程序下) 1.5.会话切换信息提取(引导程序下) 1.6.会话转换配置(引导程序下) 2.安全等级配置信息提取 2.1.安全访问配置(level1) 2.2.安全访问配置(level2

LOVE135149的博客 2928

在PPT里如何做出晶莹剔透的高级水泡感出来呢

水晶汽泡被大量使用在TED场景的演讲片稿中,给人以强烈的视觉冲击感。其实实现很简单。本篇就用三步教会大家如何制作这样的一种PPT效果。

打造全国最全的AI Agent开发知识领域的博客 1533

实验十四:线程设计

实验十四:线程设计 代码为: package TestCountDown; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class CountDown extends JFrame { ...

weixin_30371875的博客 86

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

实验十四:线程的设计

实验代码: package 实验十四;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel; public class SwitchTest { private JFrame jFrame; private JLabel jl1; private JLabel jl2; private JLa...

weixin_30693683的博客 106

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

实验十四-线程设计

package 实验十四; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; public class SwitchTest { private JFrame jFrame; private JLabel jl1; private J...

weixin_30338743的博客 80

Java实验十四 多线程程序设计

一、实验目的 掌握多线程的概念及其方法 学习编写简单的多线程应用程序 了解多线程的运行原理与周期 实验内容: 必做 1.完成教材P386页J_Thread例题和J_ThreadRunnable 例题,理解线程的创建。 package ex14; public class J_Thread extends Thread { private int m_threadID; //定义私有的整形变量; public J_Thread(int i) { m_threadID = i; System.

InterestAndFun的博客 455

实验十四———线程设计倒计时100天

  问题描述:   用线程设计,制作数字化倒计时,计时单位可用秒、分和天,例如 奥运会100天倒计时天   效果预测   代码粘贴 1 package TimeToEnded; 2 import java.awt.*; 3 import java.awt.event.ActionEvent; 4 import java.awt.event....

dbdwexo8680的博客 504

十四、线程设计

一、代码 packageshiyan14; importjava.awt.event.ActionEvent; importjava.awt.event.ActionListener; importjava.awt.event.KeyEvent; importjava.awt.event.KeyListener; importjava.util.Timer; impor...

weixin_34235371的博客 233
上一篇: 浩鲸科技数据开发B卷笔试复盘:SQL与数仓核心考点全解析
下一篇: vidsaminecraft:Minecraft视频生成与文字保留部署指南
weixin_30263277
博客等级 码龄11年 94粉丝 1391原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值