计算与生活的艺术
Search
Ctrl K
计算与生活的艺术
Search
Ctrl K
01 车载技术
AUTOSAR 入门教程(10)BSWM
AUTOSAR 入门教程(11)ECUM
AUTOSAR 入门教程(12)Diagnostic
AUTOSAR 入门教程(13)DCM
AUTOSAR 入门教程(14)DEM
AUTOSAR 入门教程(15)Gateway
AUTOSAR 入门教程(16)RamTst
AUTOSAR 入门教程(17)CorTst
AUTOSAR 入门教程(18)Crypto
AUTOSAR 入门教程(1)基础篇一
AUTOSAR 入门教程(2)基础篇二
AUTOSAR 入门教程(3)Watchdog Services
AUTOSAR 入门教程(4)MemStack(一)
AUTOSAR 入门教程(5)MemStack(二)
AUTOSAR 入门教程(6)ComStack(一)
AUTOSAR 入门教程(7)ComStack CAN(二)
AUTOSAR 入门教程(8)ComStack CANTP(三)
AUTOSAR 入门教程(9)CanNm
CAN 帧 ID 详解:优先级、仲裁与 DBC 协议
CANoe 推荐的工程结构
Classic AUTOSAR Det 调试技巧
DoIP 真实诊断通信报文记录
DTC 故障码分类说明
EB Classic AUTOSAR 使用指南
ETAS Adaptive AUTOSAR 技术细节剖析
ETAS Adaptive AUTOSAR 简介
FBL 与 APP 为何要有各自的中断向量表
IAR 烧写芯驰 E3 该如何配置
Linux 包管理工具 aptitude 教程
Linux 文件属性
Linux 是怎样工作的
MAC 层解决了什么问题?
MCU 为什么要用外部闪存
MCU 的最小系统理论
NOR Flash 接口选型:SPI Flash vs HyperFlash
NvM 模块架构指南
NXP S32G 以太网加速模块(PFE)简介
RAM 与 FLASH 存储器:特性对比及应用边界
RTOS 任务切换深度解析
RTOS 是如何实现双核 MCU 消息通信的
S32G CAN_43_LLCE 调试经验总结
UDS 入门指南
UDS 协议零基础入门指南
UDS 请求及响应格式
vsomeip 从入门到精通
一张图看懂 UDS 协议栈的 ISO 标准分工
一文看懂 Linux 与 Windows 的文件系统差别
中间件开发中的 Linux 基础命令
中间件开发中的 Linux 高级命令
为什么变量只能定义一次,却能声明多次
为什么需要关中断
什么是 CAN 控制器
从零开始 AUTOSAR 软件架构
内存管理在智驾中间件中的实践
内部集成电路 - I2C 协议
剖析 UDS 诊断帧
多核处理器:同构与异构的硬件设计及软件实现
如何入门嵌入式
如何利用 DaVinciConfigurator 插件集成 EB
如何掌握所有外设的开发
如何替换 Vector SIP 包的 CAN 模块
如何理解 AUTOSAR 核心思想
如何理解寄存器
如何评估与提升你的 Classic AUTOSAR 掌握程度
嵌入式外设配置指南
嵌入式网络开发必读:lwIP 协议栈核心设计与移植实践
嵌入式调试原理揭秘
提升嵌入式系统效率:如何利用位域和联合体优化内存布局
提升网络性能与安全性:VLAN 技术的应用与实践
揭秘 AUTOSAR:现代汽车背后的智能模块化架
搭建 RTSP 视屏推拉流
汽车软件开发的基石:AUTOSAR 深度报告
汽车里的微型计算机:一文看懂 MCU 与 ECU 的区别与联系
沉默的逻辑:解析寻址响应机制
深入理解 CAN 总线:从数据帧结构到 ID 分配策略
深入理解 Cortex-M3 的异常与中断系统:从概念到实现
深入解析 UDS 0x19 服务:DTC 状态机与故障存储读取机制
深入解析 UDS 诊断服务 2F:精准掌控 ECU 输入输出的“遥控器”
深入解析以太网数据链路层:帧结构、协议类型与网络基石
深入解读 DoIP 协议
深入解读 SOMEIP 协议
深入解读车载时间同步
激光雷达基础知识
激光雷达环境干扰的系统分析
程序启动代码做了什么
简析 XCP 协议原理
编译器、链接器、调试器:构建项目最小文件集
聊聊 Classic AUTOSAR BSW 是如何分层的
聊聊事件驱动架构
芯驰 E3 PWM 配置指南
芯驰 E3 启动及升级机制详解
芯驰 E3 国产 Flash 替换指南
表驱动法和状态机架构深入解析
解密现代汽车的神经系统:KL30 和 KL15 电源管理与网络通信的智能协同
讲讲 Linux 动态库显式加载函数
谈 Adaptive AUTOSAR 运行管理
谈 RTOS 软件开发理论
谈单片机软件架构
谈谈 SOMEIP 和 DDS 的差异在哪里
谈静态动态库和显式隐式加载
车载信息安全工具清单
通信中间件 SOMEIP 与 DDS 部署方案
通信协议和中间件的演进和未来
零基础入门链接脚本
静态库和动态库的编译和使用教程
02 桌面与移动应用开发
5 步掌握前端核心原理:从 DOM 操作到动效实现的工程化思维不是框架
Linux 上使用 Androidstudio 时启动模拟器报错
Obsidian 自动推送公众号插件实现分析
URL 原理与设计:从互联网地址到 REST API 的完整理解
为什么你的代码难以维护?可能是缺少面向对象思维
为什么你的蓝牙耳机总是左右耳电量不均?深度解析 TWS 耳机的技术困境
为什么手机上的网页总是不如原生应用顺手
为什么苹果要放弃 GCC?解析 Clang、LLVM 的架构优势与商业考量
为什么说粘包是错误概念?TCP 数据流处理的正确姿势
从零开始学数据库:用一个博客系统例子快速掌握建表与关联
从零开始构建 Web 应用(一)
从零开始构建 Web 应用(三)
从零开始构建 Web 应用(二)
从零开始构建 Web 应用(四)
前端小白入门 Electron 系列(一):如何搭建开发环境
十年学会编程
原型设计和 UI 设计是什么?
告别 C 语言代码维护噩梦:模块化设计原则与落地实践
图形界面开发的五种实现范式:从底层绘制到组件化演进
图形界面设计指南
基本算法实现之递归
基本算法实现之递推
基本算法思想之分治
基本算法思想之概率
基本算法思想之穷举法
大型项目中名字冲突的解决方案:从 C 前缀到现代命名空间机制对比
如何摆脱学习焦虑:程序员的专注之道
如何理解 UML 类图
如何系统掌握算法?程序员必备数据结构与刷题实战手册
如何编写高效代码?从冯·诺伊曼体系结构理解计算机工作本质
如何解决 IP 地址浪费问题?CIDR 与 IPv6 技术演进全解析
如何解决进程间的资源竞争与协作?并发程序设计的挑战与方案
如何设置开机自启动?
如何设计数据结构
我到底学会了 Web 开发吗?
插入排序之直接插入排序
编程生涯
03 Racket与函数式编程
Racket 入门教程大纲
Racket 学习路线图:核心知识与实践指南
Racket 编译完全指南
Racket 语言:一门用于设计和实现编程语言的语言
Scheme 元编程
【GUI】入门 Noise(一):跨语言嵌入的艺术 - 三层架构与异步模型
【GUI】入门 Noise(七):Racket DSL 的设计与实现 - 宏系统与代码生成
【GUI】入门 Noise(三):XCFramework 的作用 - 多平台二进制框架分发
【GUI】入门 Noise(九):使用 Noise 库进行跨语言开发完整指南
【GUI】入门 Noise(二):深度解析:Racket 嵌入 Swift 应用的底层机制
【GUI】入门 Noise(五):解析 Noise Swift 包交付文件 - 结构与依赖关系
【GUI】入门 Noise(八):DSL 快速入门指南 - 定义记录、枚举与 RPC
【GUI】入门 Noise(六):编译背后的 ctool - Racket 代码的 C 工具链依赖
【GUI】入门 Noise(十一):迁移:如何在 CSharp 中嵌入 Racket?
【GUI】入门 Noise(十):实战:从零构建 Swift + Racket 计算器应用
【GUI】入门 Noise(四):如何为 Noise 编译 Racket - 多平台构建指南
【GUI】还在用默认控件?Racket GUI 自定义控件开发指南帮你打造专属界面
【工具】Racket 包开发实战:手把手教你发布符合官方标准的 Racket 包
【工具】为什么你的 Racket 代码括号总出错?Paredit 插件结构化编辑解决方案
【算法】为什么你的 Racket 代码性能不佳?可能是数据结构选错了 🚀
【译】”更坏就是更好“的崛起
【译文】Lisp 操作系统
【译文】racket gui 拯救了世界
【译文】Racket:一门用于创造新语言的语言
【译文】Scheme 语言足够用于产品开发
【译文】函数式外壳与可重用组件:简化 GUI 开发
【译文】如何部署 Racket Web 应用
【译文】如果 Lisp 如此伟大
【译文】延续在 Racket Web 中的应用
【译文】梦寐以求的语言
【译文】编程范式简介
【译文】语言与机器
【语法】5 步掌握 Racket 闭包技巧:从零实现面向对象风格的封装与继承
【语法】为什么你的 Racket 代码难以维护?模块化设计可能是解决方案
【语法】告别循环:用 Racket 高阶函数提升代码可读性与健壮性
【转载】你是如何成为 Lisp 程序员的
为什么你的代码总是难以维护?可能是编程范式选择错误
为什么你的调试效率低下?可能是缺少 Lisp REPL 这样的交互式工具
为什么我用 Lisp 编程
为什么理解符号表达式是掌握 Lisp 元编程的关键?
为什么编程语言需要类型系统?深入探讨变量类型的设计哲学
什么是函数式编程
函数式编程才是计算的本质
函数式编程扫盲篇
基于 Github Webhook 实现自动化部署数字花园
符号与机器(一):符号:抽象、语义
符号与机器(三):图灵机的解释
符号与机器(二):符号,计算抽象
符号与机器(五):重新发明 Lambda 演算
符号与机器(四):寻找扫地机🧹
04 工具与实用教程
Batocera 家庭游戏完全指南:从怀旧到硬核,一篇全掌握
Batocera 技术解析:模拟器、BIOS 与加密机制
Obsidian 的 Callout 使用场景
Rime 输入法入门教程
UNRAID 如何部署 DNSPod
Windowser or Linuxer
写给 Windows 用户的 macOS 操作指南
博客同步至腾讯云开发者社区
如何开启 Ubuntu RDP 远程桌面
如何用 Obsidian 优雅地写博客
我的 Obsidian 设置和使用教程
我的 Surge 配置和使用教程
新手入门 3D 打印:如何选耗材
新手入门 3D 打印:底板选择与保养
新手入门 3D 打印:耗材保存
记录微软输入法的两个神奇功能
谈谈那些我常用的 NAS 服务
配置你的专属 Deepin
配置你的专属 Manjaro-i3wm
05 生活随笔
为什么照片整理会成为负担?以及一套真正可持续的照片整理方法论
云南蜜月 13 天行程规划
完美主义的一些反思
我的家庭照片管理实践:从“文件命名焦虑”到“零心智负担”的整理方法
揭秘公司压薪套路
杭州西湖周末旅游攻略
特斯拉焕新款 Model 3 配件攻略
电煮锅制作鸡爪煲
行动力才是我们最缺乏的东西
隐形降薪与绩效扣发:员工应对策略分析
高压锅制作银耳羹
06 副业实战
Digital Obsidian Garden 接入 Google AdSense 广告完整指南
Google AdSense 博客广告接入完整指南
为什么你的副业不赚钱?互联网副业背后的价值交换与变现逻辑
你的知识产出为何难以变现?破解AI时代隐性生产力困境的四步法则
技术人员如何真正理解商业:从“只会做产品”到“能跑起来的生意”
生成式 AI 冲击下,技术人如何重构副业模式?
07 AI工程实践
Agent Skill、MCP 与 Agent 技术体系全解:能力边界与实际价值剖析
AI 时代的高效读书方法论:如何利用 AI 优化阅读策略
AI 时代网站重构:传统形态向结构化服务的演进路径
Claude Code 使用指南:安装、配置与实践
Clawdbot 安装和使用指南
Gemini CLI 使用指南:安装、配置与实践
iFlow CLI 实践指南:配置、命令与项目开发流程
MCP 入门指南:让 AI 接上“超级网线”
Vibe Coding 中的技术栈选择指南
Vibe Coding 实战:如何与 AI 高效协作,提升 10 倍编程效率
为什么你的 AI 总给废话?程序员提问能力提升指南
为什么你的 AI 编程总是失控?可能是缺少这个小步闭环策略
从符号推理到 AGI:如何系统掌握人工智能发展史与技术演进路径?
协议的幻觉:为什么 AI 依然无法替代你的“老旧”软件界面?
如何免费体验 Claude Code:国内用户完整指南
如何避免 AI 依赖陷阱?程序员独立思考的实战策略
想本地跑大模型却怕硬件不够?这份配置指南帮你避坑
我的常用 MCP 和 Skills 清单
打破 AI 数据孤岛!Anthropic 开源革命性模型上下文协议 MCP
超越对话:2025年大型语言模型如何实现深度推理与自主任务执行?
99 王垠文章
“解决问题”与“消灭问题”
主页
付费
简历
Select a result to preview
付费
喜欢我的文章的人,可以自愿付费。你可以使用以下方式付款。
支付宝
微信
赞赏名单:
昵称
金额
向往
6.66