Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts


让微软的人组装一台电脑究竟会得到什么怪兽?从装机聊到数据中心

这篇文章探讨了专有计算设备(如Xbox)通过深度定制和场景化优化实现的极致性能与成本优势。作者以游戏设备为例,提出通过ITX机箱整合定制硬件(如支持DMA的显卡、硬件加速硬盘)、虚拟化技术(Hypervisor休眠游戏分区)、独立录屏芯片等方案,可实现1秒开机、自动显示器适配、游戏分区隔离、零崩溃风险、统一账号登录等体验。对比通用PC,专有设备通过物理机特性(如移除冗余功能、增加SRIOV/RDMA等)和场景化设计(如轮转录制芯片、定制硬件分区),可将性能损耗降至最低并显著降低硬件成本。文章指出此类设备在规模化生产后成本可压缩至3000元级,而同性能PC需五位数价格,最终以Xbox为例印证了专有设备"优化登峰造极"的核心观点。--Qwen3

Windows Device Gaming Xbox VBS Hardware Hypervisor

如果要为C919喝彩,你必须先认识运10

中国大飞机项目运10的研制历程与失败原因揭示了时代背景与决策失误对国家科技产业发展的深远影响。运10作为中国首架大型喷气式客机,于20世纪70年代在特殊政治环境下启动,虽在技术积累和工业基础薄弱的条件下依靠工程师手工绘图和艰苦攻关取得阶段性成果,但最终因中美关系变化、麦道公司合作诱惑、国内政策反复及部门扯皮等原因被迫下马。其失败并非技术缺陷而是政治、经济与决策因素共同作用的结果,包括文化大革命期间的政治干预、研发资金断供、人才流失以及"造不如买"的错误决策。现存唯一运10飞机作为历史见证,警示后人坚持自主创新的重要性。此后中国航空工业在经历与麦道和空客合作的挫折后,深刻认识到大飞机研制无法依赖外部力量,转而通过C919项目实现技术突破。尽管C919的市场竞争力尚需验证,但其作为国家战略科技力量的象征,标志着中国航空制造业在历经数十年沉浮后终于迈入自主发展阶段,运10未竟的事业在新时代得以延续。--Qwen3

China Aviation C919 Airplane Airbus Yun 10

Show .NET code coverage rate and unit test status with GitLab CI\CD pipeline

本文展示了一种通过GitLab CI/CD管道自动展示.NET项目代码覆盖率与单元测试状态的完整实践方案。文章从项目结构配置开始指导读者如何通过NuGet包集成coverlet.collector和JunitXml.TestLogger实现测试数据收集,并通过精心设计的.gitlab-ci.yml文件构建包含构建测试发布三个阶段的自动化流水线。核心创新点在于利用正则表达式提取覆盖率数据并结合reportgenerator工具生成标准化报告,最终在GitLab界面实现测试结果可视化和代码覆盖率徽章展示。这种方案不仅实现了持续集成的自动化验证功能,更通过可视化数据为代码质量监控提供了直观依据。当测试覆盖率在合并请求中动态呈现时开发者能即时感知代码改动对测试覆盖的影响这种实时反馈机制是否能推动团队建立更严谨的测试文化?当覆盖率数据与代码质量指标产生关联时如何设计合理的阈值预警机制?或许我们更应该思考在追求高覆盖率的同时如何确保测试用例的有效性和维护性?这些值得深思的问题正在等待每一位实践者去探索答案。--Qwen3

.NET Test Code coverage Continuous Integration GitLab junit YAML

城市天际线 - 解决常见问题

城市天际线中受教育工人不足的困境往往折射出更深层的系统性矛盾:当交通拥堵导致居民通勤受阻教育投入无法转化为劳动力供给时城市规划者是否意识到效率与公平的矛盾?当商业区扩张挤压居住空间引发人口结构失衡时我们是否在追求经济指标时忽略了城市作为生活载体的本质?解决这一问题需要多维度的智慧——从物理空间的高架桥与地铁规划到社会资源的教育投资分配从城市美学的景观设计到人口流动的吸引力营造。值得注意的是治堵不仅是修路的艺术更是对城市脉络的深层理解当货运火车站因设计缺陷成为交通瓶颈时当工业区布局决定商品供应链的稳定性时城市规划者是否在每个决策中都预见了蝴蝶效应?地价过低现象背后藏着基础设施完善度与居民生活质量的辩证关系而商品短缺问题则暴露出本地生产与外部依赖的博弈。当游戏中的虚拟城市映射现实中的城市发展规律时我们不禁思考:在有限资源与无限可能之间如何构建真正可持续的生态?如何让每个决策都成为推动城市进化的杠杆?或许答案就藏在那些看似琐碎却环环相扣的规划细节里——从一条单行道的设置到一所大学的选址从一次地价调整到一整代居民的教育轨迹。--Qwen3

educated workers shortage city planning tips game strategies traffic congestion solutions population management economic growth

Common SMTP settings to Office 365 to send Emails

本文系统梳理了Office 365 SMTP服务在多个开发工具中的典型配置方案,揭示了现代云邮件服务与开源平台深度整合的技术路径。通过解析Gitea GitLab Mastodon Nextcloud等主流工具的SMTP配置细节,展示了如何在保持邮件安全性的前提下实现自动化通知功能。配置参数中反复出现的TLS验证模式调整与端口设置,暗示了云服务与本地系统在加密协议兼容性上的博弈。当开发者面对不同平台的配置差异时,是否思考过如何构建统一的邮件服务模板?文中提到的"Try false if failed"调试策略,是否启发我们重新审视自动化配置的容错边界?从587端口的STARTTLS到peer验证模式的选择,每个配置项都暗含着对邮件传输安全层级的权衡。当你的系统需要在不同邮件服务间切换时如何保持配置的一致性?如何通过最小的配置调整实现最大化的邮件服务稳定性?这些隐藏在代码块背后的问题,或许正是通往更高效运维方案的钥匙。--Qwen3

Microsoft 365 Mastodon GitLab Gitea SMTP Office365 Exchange

Install GitLab behind a reverse proxy on a Ubuntu 20.04\22.04 server

这篇博客详细介绍了在Ubuntu 20.04/22.04服务器上部署GitLab并配置反向代理的完整流程。文章从基础环境搭建到高级网络配置,逐步引导读者完成GitLab服务的部署与优化。核心内容包括:通过Caddy反向代理实现HTTP/HTTPS流量分发、处理GitLab与反向代理之间的网络信任关系、解决多服务器架构下SSH端口的转发难题,以及通过GitLab Runner实现CI/CD管道的完整集成。作者特别强调了在生产环境中配置反向代理时需要处理的细节问题,例如Nginx的监听端口设置、真实IP地址的传递、SSH服务的端口隔离等关键配置。文章最后展示了如何通过编写.gitlab-ci.yml文件实现.NET项目的自动化构建、代码分析和测试覆盖率统计。整个部署方案不仅涵盖了基础功能的实现,更深入探讨了服务间的网络通信安全性和可扩展性问题。当读者完成这些步骤后,不禁会思考:如何在保持反向代理架构优势的同时进一步优化服务响应速度?当服务器数量增加时,如何设计更灵活的端口管理策略?此外,当引入更多微服务时,如何确保整个CI/CD管道的稳定性和可维护性?这些未展开的问题为读者提供了进一步探索的方向。--Qwen3

bash git Linux Ubuntu Proxy SSH Caddy GitLab nginx

How to install CUDA and cuDNN on Ubuntu 22.04 and test if its installed successfully

本文系统梳理了在Ubuntu 22.04系统上搭建CUDA cuDNN深度学习环境的完整流程 从版本兼容性验证到最终测试的每个环节都暗含着开发者需要主动思考的关键点 比如当看到nvidia-smi显示的驱动版本时 你是否能准确对应CUDA支持表中对应的版本区间 这个对应关系背后反映了NVIDIA对硬件和软件生态的复杂兼容性设计 当安装cuDNN时 复杂的依赖链和文件路径映射提示我们 一个看似简单的库安装可能涉及多层系统权限管理 当PyTorch安装失败时 你是否意识到直接使用pip安装的包可能与特定CUDA版本存在隐式冲突 这些设计选择都值得深入思考 最后的测试环节中 从简单的hello-world并行执行到mnistCUDNN的矩阵运算验证 再到PyTorch的CUDA可用性检查 形成了完整的验证链条 但测试成功是否意味着环境就完美无缺 你的GPU利用率是否达到预期性能 这些都需要通过实际应用来验证 当看到Test passed!的提示时 你是否开始思考如何将这个环境迁移到生产环境 还是考虑如何优化代码利用GPU的计算能力 这些问题的答案或许就藏在你即将展开的实践中--Qwen3

Ubuntu NVIDIA vGPU CUDA cuDNN GPU

让你的数据中心使用 GPU 算力!

根据文章内容,配置NVIDIA vGPU和CUDA环境需完成驱动安装、授权配置、CUDA版本匹配及BIOS设置,其中vGPU拆分类型需统一且迁移时需保证主机兼容性;部署AI应用需安装cuDNN和基础库,通过ffmpeg可验证硬件编码能力,监控温度需使用nvidia-smi工具获取物理GPU数据;故障排查需重点检查驱动授权状态、内核兼容性、Host/Guest驱动版本一致性及BIOS中IO MMU/PCIe AER设置,同时确保VCenter中GPU模式为Shared Direct。--Qwen3

Ubuntu VMware Vsphere Server NVIDIA Ai vGPU Python Tesla CUDA

自己独立运营一个面向你的朋友的 AI 绘画系统(基于 Stable Diffusion)

文章介绍了Stable Diffusion模型的部署优化和安全配置方法,包括调整txt2img参数限制生成规模(宽高640x1024)、禁用批量生成功能(Batch count/batch size设为1)、配置采样参数(Euler a算法20步)、设置NSFW过滤词库、隐藏高级功能按钮(通过CSS代码隐藏风格应用/样式创建/种子复用等按钮),通过修改ui配置文件锁定关键参数范围,使用FRPC实现内网穿透并配合Caddy反向代理部署HTTPS加密访问,同时展示了如何通过配置文件定制界面元素和安全策略,最终实现安全可控的在线图像生成服务。--Qwen3

Web Server Tune Stable Diffusion Ai Self hosting

在2023年学习传统软件开发技巧还有意义吗?

在2023年传统软件开发技巧是否仍有价值成为争议焦点。文章指出AI驱动的软件工程正在重构行业底层逻辑,代码生成工具通过自然语言交互替代了传统编程流程,甚至能重构代码、修复bug并优化性能,这种基于深度学习的智能化开发模式已对JetBrains等传统代码分析工具形成降维打击。但作者强调传统软件工程的价值不会消失——正如20年前面向对象编程普及后汇编语言仍是计算机教育的基石,掌握C++、Java等传统语言能帮助开发者建立更深刻的技术认知体系。未来工程师的竞争力将呈现两极分化:掌握AI技术并具备传统工程思维的复合型人才将占据高端岗位,而仅会简单操作AI工具的开发者将陷入低附加值劳动的困境。文章提出关键命题:当AI接管基础编码工作后,工程师的核心价值究竟体现在哪里?如何在传统技术根基与AI前沿领域之间找到最佳平衡点?当代码生成器能完成90%的开发任务时,人类工程师的不可替代性究竟存在于技术架构设计还是系统级问题解决?这些未解之谜或许正是推动行业持续演进的原动力。--Qwen3

AI in Software Development Traditional Software Engineering Future of Programming Learning Strategy for AI Software Engineer Requirements Career Development in Tech

全面了解 HDR!

HDR技术通过扩展显示设备的动态范围和色域范围提升图像真实感和表现力,其中动态范围指最亮与最暗像素值的跨度而色域描述颜色覆盖范围。HDR显示器等级如HDR400/HDR1000以最大亮度nits值划分,低等级显示器显示超亮度内容时需动态映射可能导致细节损失。软件开发中图形视频处理类应用需适配HDR确保色彩精度,普通办公软件无需特殊处理。HDR10作为视频格式要求显示器至少支持1000nits但不要求必达HDR1000硬件标准,HDR400显示器若遇500-550nits高亮度内容会压缩至400nits范围。未来sRGB不会被取代而是与HDR共存,HDR通过提升动态范围和扩展色域增强视觉体验而非替代基础色彩标准。开发HDR应用需关注显示器配置、HDR像素格式支持(如DXGI 1.5)、帧缓冲处理及HDR内容创建编码等技术环节。游戏、VR/AR、科学可视化等高保真场景应用需优先考虑HDR显示能力,而传统sRGB仍将在显示设备中作为基础色彩标准长期存在。--Qwen3

HDR Display RGB HDR Technology DYNAMIC RANGE sRGB Color Gamut

Remove the Bing button from Edge

这篇博客深入探讨了Microsoft Edge浏览器的个性化定制可能性展示了通过系统策略和实验性功能调整来重塑界面体验的实践方法文章首先揭示了隐藏在注册表和策略页面中的Bing按钮控制机制通过简单的PowerShell命令即可实现搜索入口的自由切换这种对默认行为的干预引发了一个值得思考的问题当浏览器的原生设计与用户习惯产生冲突时我们是否应该坚持预设还是主动重构其次关于圆角容器和现代标签页的视觉调整则触及了界面设计的哲学本质在极简主义盛行的今天保留传统直角标签的决策是否意味着对功能优先的回归又或是对过度设计的逆反更耐人寻味的是作者通过禁用头像功能这一细节暗示了界面元素的取舍往往存在多维度考量当极简模式与用户隐私需求产生交集时如何在界面复杂度与信息密度之间寻找平衡点这些问题都为读者提供了延伸思考的契机而博客中展示的定制化路径更像是一把钥匙它不仅打开了Edge浏览器的隐藏配置空间也启发我们重新审视数字产品中用户自主权与设计规范之间的微妙关系那么在浏览器功能日益同质化的当下我们是否还能发现更多被忽略的自定义可能性这些改动是否会影响浏览器的长期稳定性又或者这种个性化尝试本身是否正在孕育下一代浏览器的新形态--Qwen3

PowerShell Edge Bing Edge customization PowerShell script Disable round corners