Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts


Why do low-code development is a pseudo requirement?

低代码开发平台被广泛宣传为降低技术门槛的解决方案,但其本质是否真的解决了开发难题仍值得深思。文章通过对比网页设计工具与低代码平台的相似性指出,所见即所得(WYSIWYG)的开发模式在复杂场景中反而会暴露局限性——当需求涉及动态表单、复杂交互或可扩展性时,低代码平台生成的代码往往充斥着冗余标记,缺乏结构复用能力。作者进一步质疑:若企业具备组织低代码开发团队的能力,为何不直接招聘原生开发人员?这种看似降低学习成本的方案,实际上隐含了对平台规则的深度掌握需求,甚至可能形成新的技术债务。代码作为人类对现实世界的抽象,其价值在于通过形式化语言实现精准控制,而低代码平台试图以图形化操作替代代码逻辑,本质上是用非标准化的抽象方式处理复杂问题。尽管低代码在特定场景(如快速构建简易工具)中具备价值,但其适用范围受限于需求复杂度、基础设施完备性及开发者基础素养。文章结尾抛出值得反思的问题:当低代码平台宣称“无需编程即可开发”时,是否忽略了软件工程的核心价值?在AI逐步介入开发流程的今天,我们究竟是在解放生产力,还是将复杂问题强行简化为可被机器理解的表象?--Qwen3

Software Development Low Code PowerApps WYSIWYG Low code Development Software Abstraction

Play with Windows Subsystem for Android with Google Play

本文探讨了如何突破Windows 11子系统对Android应用生态的限制,从基础环境配置到实现Google Play服务的完整实践路径。文章揭示了微软官方仅支持Amazon应用商店的局限性,进而展示了开发者社区通过MagiskOnWSA等开源项目实现深度定制的可能性。重点解析了通过Hyper-V虚拟化技术搭建Android运行环境的底层逻辑,包括adb调试接口的运用、自定义APK的部署机制以及系统级服务的安装策略。特别针对网络连接这一关键问题,详述了虚拟交换机配置与IP地址分配的协同机制,解决了子系统与主机网络共享的难题。文章不仅提供了从环境准备到功能扩展的完整操作链,更隐含着对操作系统虚拟化技术边界探索的思考:当Android生态突破硬件载体进入Windows系统时,这种跨平台融合是否预示着移动计算的新形态?如何平衡系统安全与用户自定义需求的矛盾?读者或许会思考,当Google Play服务成功运行在Windows子系统中时,这是否意味着传统操作系统的界限正在被重新定义?--Qwen3

bash Windows 11 Android Windows Subsystem For Android WSA Magisk MagiskOnWSA Google Google Play adb

Use you local server to replace the cloud with FRP.

通过FRP技术将本地服务器暴露至公网替代部分云服务以降低每月数百美元的云服务器成本成为可能。文章展示了如何利用家中旧电脑结合FRP工具构建替代方案,通过将本地设备端口映射到互联网,使内网服务具备公网可访问性。该方案核心依赖FRP的反向代理原理——服务端部署于云服务器(如Azure或Vultr),客户端运行于本地设备,利用TCP/UDP协议建立连接通道,无需设备拥有公网IP即可实现服务暴露。具体实施步骤涵盖云服务器采购与FRP服务端配置、本地设备FRP客户端部署、网络策略调整及自动化更新机制搭建。成本测算表明:一次性投入300美元购买硬件后,每月仅需支付20美元云服务器费用和10-20美元网络带宽成本,相较传统云方案每月150美元的支出节省超过90%。文章引发思考:当家庭宽带带宽与云服务器性能差距逐渐缩小时,是否意味着企业级应用可更多采用边缘计算架构?如何平衡数据安全性与成本优化目标?是否应重新评估传统数据中心的部署模式?这些值得每个云计算从业者深思的问题,或许正推动着IT基础设施的下一次范式变革。--Qwen3

IP bash Linux Windows Server Cloud FRP Network Port Firewall

Setup Minecraft perfect game experience

This article walks through a structured approach to enhance Minecraft Java Edition through custom configuration offering a polished gameplay experience. Starting with Java installation via Winget or official sources the guide transitions into acquiring the Java Edition launcher emphasizing the distinction from Bedrock. It then details the transition to Fabric mod loader enabling a modular ecosystem for performance and visual enhancements including Sodium for optimized rendering Iris for shader support and Complementary Shaders to transform environmental aesthetics. The workflow extends to essential utility mods like Xaero's maps for navigation and a curated list of quality-of-life improvements ranging from inventory management to advanced combat indicators. For server operators the text proposes PaperMC as a foundation alongside data packs that expand world generation and structural diversity while suggesting configuration tweaks to balance challenge and creativity. The narrative invit...--Qwen3

Configuration Minecraft Game Java Minecraft Optimization Mod Installation

Best practice after installing Windows Server | Why you should NEVER use 'Administrator' user?

在部署Windows Server时默认的Administrator账户存在显著安全隐患其名称易被猜测且缺乏UAC警告机制可能直接导致系统权限被恶意程序窃取本文系统梳理了服务器安全加固的六大核心步骤包括重命名服务器创建强密码账户禁用默认管理员账户修改远程桌面端口禁用危险协议以及安装基础设施工具通过将默认账户替换为自定义账户并配置防火墙规则可有效规避自动化攻击同时推荐部署IIS Crypto WinDirStat FRP等12款实用工具构建纵深防御体系值得注意的是更改RDP端口虽能提升安全性但需同步调整防火墙策略而禁用Administrator账户前必须完成新账户权限验证否则可能引发系统管理权限丢失文章末尾引发思考当服务器暴露于公网时您是否真正评估过默认配置带来的风险又是否意识到一个强密码和非标准端口的组合可能成为抵御攻击的最后防线--Qwen3

Security Windows Server Cloud Configuration Security Configuration IIS Crypto

Install WinGet on Windows Server

这篇博客通过PowerShell脚本实现了在Windows Server上安装WinGet的自动化方案,揭示了微软商店应用在服务器系统中的部署难题。文章展示了通过正则表达式解析微软商店API、动态处理软件包依赖关系的智能安装逻辑,同时提供了手动安装的备选方案。值得注意的是脚本设计中引入的重试机制和版本对比功能,这种对依赖关系不确定性的应对策略,暗示着服务器环境软件包管理的复杂性。当自动安装失败时作者引导读者思考如何通过GitHub Releases手动下载安装包,这种从自动化到手动的过渡策略启发我们思考:在服务器系统中如何建立更稳健的软件部署流程?而安装后可直接使用的Windows Terminal等现代工具的安装示例,则引发了一个更深层次的疑问——在传统服务器架构中引入桌面级应用是否会对系统稳定性产生潜在影响?最后文章对wsreset命令的特殊说明,恰如其分地提醒我们注意不同Windows版本的兼容性边界,这不禁让人思考:在服务器系统中使用微软商店生态的长期可行性究竟如何?--Qwen3

PowerShell Windows Server Install Winget Microsoft Store Automation

精准防控面临的问题来自于健康码的设计需要革新

当前疫情防控中层层叠加的健康码系统正面临精准性的挑战。当苏康码、行程码与出入证并行时,苏州高速路口的货车司机因行程码带星而滞留的场景,暴露出简单叠加验证逻辑的失效。这种以行政区划为边界的防疫思维与病毒传播的时空特性形成矛盾——上海滴水湖的低风险与金鸡湖的高风险共存,却因行政区划标签被等同对待。文章提出将健康码从二元判断升级为动态概率评估的解决方案:通过构建基于时空轨迹的感染概率模型,将每个人的健康状态量化为0-100%的数值指标。该模型通过病例事件的时空扩散特征计算个体风险值,并能通过核酸检测结果进行动态修正。递归算法设计使系统能自动追踪接触链的感染概率变化,形成全城人口的动态风险网络。这种量化体系既能避免"绿码全员"的防疫盲区,又能实现分级防控的精准调节。然而现有系统面临理论安全与实际安全的鸿沟:从AI算法的复杂性到物理按钮的病毒残留,从禁止堂食的政策漏洞到出租车司机的职业风险,防疫的精准化需要技术与人文的双重突破。当健康码2.0时代到来时,我们是否能摆脱"层层加码"的路径依赖?如何让AI模型既考虑病毒传播规律又兼顾个体差异?在防疫成本与生命安全的天平上,技术革新是否真能成为最优解?这些问题的答案,或许就藏在每个人行程轨迹构成的数据洪流之中。--Qwen3

China Health Code Shanghai COVID-19 AI/ML Precision Control

Install Windows 11 on Vultr cloud machine

该文章详细介绍了如何在云服务器上部署Windows 11系统的完整流程。首先需要选择带Windows Server系统和远程桌面功能的云服务器并创建快照,随后通过下载ISO镜像、配置BCD引导项、应用映像文件等步骤完成系统解压和启动配置。在OOBE初始化阶段需通过VNC连接完成本地账户创建和RDP服务启用,最终通过删除旧系统、修改远程端口和创建快照完成云PC部署。整个过程涉及分区格式化、驱动兼容性处理、系统镜像应用、启动项设置及安全配置等核心操作,最终实现可远程访问的Windows 11云桌面环境。--Qwen3

PowerShell Windows Server Cloud Windows Windows 11 DISM Bcdedit Vultr Cloud PC

Lint markdown with customized rule by JavaScript

本文围绕一个程序员在维护中文烹饪指南GitHub仓库时遇到的Markdown格式校验挑战展开,介绍了如何通过JavaScript构建自定义规则的校验系统。当标准Markdown校验工具无法满足特定格式需求时,作者通过Node.js脚本实现了包含标题层级校验、单位规范检查和必要声明验证的定制化方案,同时将校验流程集成到GitHub Actions的CI管道中。校验逻辑覆盖了文件标题必须与菜品名称对应、二级标题需严格包含四个固定模块、以及必须包含特定声明语句等要求,通过异步文件处理和错误聚合机制确保代码可维护性。这种结合编程思维与代码审查的实践,不仅解决了技术文档的格式统一问题,更引发我们思考:当面对多语言混合的文档体系时,如何设计可扩展的校验规则?在自动化校验与人工审查之间,是否存在更智能的平衡点?当技术规范与文化表达产生冲突时,又该如何通过代码构建包容性的文档标准?--Qwen3

GitHub node JavaScript GitHub Actions Continuous Integration markdown

Raise up Visual Studio Code correctly in your C# client-side program

在开发需要与Visual Studio Code联动的C#客户端程序时开发者常陷入一个认知盲区:如何突破传统教程的框架实现"从程序中调用编辑器"的逆向交互。本文揭示了一个被忽视的系统调用机制——通过ProcessStartInfo的UseShellExecute属性触发Windows外壳程序执行链,这个看似简单的布尔值设置实则打通了程序与编辑器的深层连接通道。当开发人员试图将文件夹路径注入VS Code时隐藏的控制台窗口与指定工作目录的组合策略构成了体验优化的双重维度。这种技术方案背后暗含着对操作系统进程管理的深刻理解:为何必须依赖外壳执行?隐藏控制台是否会影响系统稳定性?当跨平台需求出现时如何保持接口一致性?这些未解之谜引导我们思考更深层的技术哲学——在软件生态日益碎片化的今天,如何构建程序间优雅的协作范式?或许答案就藏在那些被默认设置遮蔽的API细节中。--Qwen3

C# VSCode WPF c# programming vs code process.start

Auto backup for Minecraft on Linux

本文探讨了在Linux系统上为Minecraft服务器构建自动备份方案的实践过程揭示了从Git压缩方案到直接复制文件夹的优化路径并展示了如何利用tmux会话管理和自动化脚本实现游戏数据的高效备份作者通过对比Git方案带来的CPU资源消耗问题最终选择基于文件复制的轻量级解决方案详细描述了通过tmux启动服务器进程保存游戏状态执行文件复制和清理旧备份的完整流程代码示例清晰呈现了路径定义时间戳命名存档清理等核心逻辑并提出了如何在保证数据安全的同时避免过度占用系统资源的思考当服务器面临突发故障时如何确保备份脚本的可靠性又该如何在多台服务器间扩展这套方案的兼容性这些问题或许能为你的自动化运维带来新的启发--Qwen3

bash Linux Minecraft Backup Minecraft server Automatic backup

Validate an object in any C# projects

这篇文章探讨了C#项目中对象验证的最佳实践并提出了重构传统验证逻辑的创新思路。通过对比传统多层if-else验证方式带来的代码冗余问题,揭示了将验证规则内聚到数据模型中的重要性。文章展示了如何在非ASP.NET Core项目中复用框架的模型验证机制,通过定义[Required]、[MinLength]等数据注解实现声明式验证,并进一步演示了自定义[NoSpace]属性验证规则的完整实现过程。特别值得关注的是文中提供的递归验证解决方案,该方案利用反射技术实现了对嵌套对象图的自动验证,为复杂对象的校验提供了优雅的解决方案。当面对跨层级对象的验证需求时如何设计更智能的规则继承机制?当验证规则需要动态调整时如何构建可扩展的验证框架?这些开放式问题为开发者提供了深入思考的方向,启发我们探索如何将验证逻辑与领域模型深度结合,同时思考如何将这种声明式验证模式迁移到其他编程范式中。--Qwen3

ASP.NET Core C# .NET Validation DataAnnotations Custom Validation