Anduin Xue
Anduin Xue

Anduin's Tech Blog

Featured Posts


Run Windows on Linux for best experience

本文介绍了在Linux环境下使用Virt-Manager工具高效配置Windows虚拟机的方法。主要内容包括:通过硬件直通功能提升GPU和声卡性能;安装 VirtIO驱动以优化存储、网络和串行控制器的性能;开启Hyper-V功能以提高虚拟机的兼容性和性能表现;添加 VirtIO SCSI控制器和 RNG设备以增强稳定性;以及使用模拟 TPM支持Windows的安全特性如BitLocker。这些步骤有助于最大化Windows虚拟机的性能并确保其稳定运行。--DeepSeek

Linux Windows qemu virt manager virtio-drivers windows-vm hyper-v-features performance-tuning virtualization

Using SwinIR for Image Super-Resolution Reconstruction

这篇文章详细介绍了如何通过Docker容器使用SwinIR进行图像超分辨率重建。作者首先指导读者安装必要的软件环境,包括配置NVIDIA驱动和Docker。接着,展示了如何编写Dockerfile来构建自定义的SwinIR容器,其中包括下载模型文件、设置输入输出目录以及指定运行参数等步骤。通过具体的操作命令示例,文章演示了如何将本地图片上传到容器中进行处理,并最终生成高分辨率的重建结果。此外,作者还提供了实际的输入输出图像对比,直观地展示了SwinIR的强大性能。最后,总结了这项技术在修复老旧照片、提升监控视频质量等方面的广泛应用前景。--DeepSeek

NVIDIA Ai CUDA Docker Resolution Image SwinIR Restore

UWP 一个技术上成功但商业上失败的框架之死;一个现代的操作系统究竟应该提供什么?

这篇文章探讨了UWP(通用Windows平台)的兴起与衰落。UWP最初被设计为一个跨设备的应用开发框架,旨在简化应用程序在不同设备上的开发和部署过程。然而,尽管UWP具有许多潜在的优势,如统一API、高效性能以及资源管理优化,但在实际应用中,它面临着一系列挑战。 首先,学习曲线陡峭使得开发者难以快速上手。与传统的Win32编程方式不同,UWP要求开发者适应一种更为受限和抽象的开发模式,这限制了其在许多应用场景中的使用,尤其是在需要直接访问底层系统资源的情况下,如文件管理、硬件控制或进程间通信等。这些限制导致大量工具和应用无法通过UWP实现。 其次,UWP的应用生态系统未能有效建立。由于其学习成本高且功能受限,个人开发者、DIY爱好者以及大型企业纷纷转向其他开发框架,这使得UWP的应用数量相对较少,难以形成规模效应。 此外,微软自身在应用设计上缺乏统一性和一致性,导致用户体验混乱。Windows 11中出现了多个实现类似功能但风格各异的应用程序(如OneNote的不同版本),进一步削弱了用户对UWP的信心和接受度。 文章还提到,随着微软逐步将WinUI组件从UWP迁移出来,并转向新的跨平台开发框架MAUI,UWP逐渐被视为一个过时的技术。尽管MAUI引入了一些改进,但其表现仍不令人满意,尤其是在性能和用户体验方面,这可能对未来的应用开发产生深远影响。 最终,作者认为UWP的失败不仅标志着微软在统一应用开发战略上的挫败,也反映了技术发展中的某种趋势:过于理想化的设计可能难以应对复杂的现实需求。通过回顾UWP的历史,作者表达了对未来应用开发方向的担忧,同时怀念Windows曾经拥有的高效和简洁的应用体验。--DeepSeek

C# Microsoft Windows Microsoft Store UWP Windows Development

Install your own NFS ESXI storage server

搭建高效NFS存储服务器需要从硬件选型、系统安装与配置、网络调优以及性能优化等多方面进行综合考虑,文章详细介绍了如何通过选择支持10Gbps的网卡和高速硬盘来提升传输速度,在软件层面则推荐使用轻量级的Debian系统,并通过绑定技术增强网络稳定性;在网络配置上强调了MTU设置的重要性,同时在存储部分给出了RAID级别的建议以及文件系统的优化方案;服务部署环节详细说明了NFS参数的调整与防火墙策略的设定,确保高效稳定的服务运行;最后通过CrystalDiskBench等工具进行性能测试,验证搭建效果,并借助Cockpit监控网络和磁盘使用情况,确保系统在高负载下的表现符合预期。--DeepSeek

Linux Storage NFS VMware ESXI Vsphere Dell IPMI Debian Server

Install Nextcloud on a Ubuntu 20.04\22.04 server

这篇文章详细介绍了在Ubuntu 20.04 LTS系统上安装和配置Nextcloud的过程,包括系统环境要求、软件依赖安装、手动编译与配置、数据存储路径设置以及数据库优化等内容,并涵盖了服务器及应用的优化策略、用户界面个性化设置、安全与权限管理措施、性能调优方法、备份策略制定以及GPU加速功能的配置建议。--DeepSeek

Web Linux Ubuntu IT Apache2 PHP MySQL Certbot Nextcloud Storage

Install Windows 11 on Vultr cloud machine

文章详细介绍了如何在云服务器上搭建属于自己的Windows 11云电脑的过程。主要内容包括:准备工作和注意事项、虚拟机部署及网络配置、操作系统安装与激活密钥使用、驱动程序安装与远程桌面服务配置、Windows 11个性化设置(如更改账户类型、创建本地用户和密码)、远程桌面功能启用与优化,以及删除旧系统和保存快照以便快速部署更多云电脑。最终目标是打造一个可随时随地访问的个人专属Windows 11云电脑,并建议调整默认RDP端口以提高安全性。--DeepSeek

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

Validate an object in any C# projects

这篇文章详细介绍了如何使用Python进行数据分析和异常值检测,包括使用pandas、scikit-learn等库的方法。接着探讨了机器学习模型验证的重要性,特别是过拟合问题及交叉验证技术。文章还深入讲解了Keras在深度学习中的应用,涵盖神经网络构建、优化器选择和超参数调优策略。此外,文章讨论了如何通过Flask框架部署模型至Web服务,并利用Docker实现容器化以简化部署流程。最后,提到了使用Prometheus和Grafana进行系统监控与性能分析的方法。--DeepSeek

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

Install Windows 11 side-by-side without a USB drive

根据文章内容,以下是其摘要: 本文介绍了如何在现有Windows操作系统上安装新的操作系统。首先,需要扩展系统分区或创建新分区以腾出足够的空间,并确保磁盘未加密(不使用BitLocker)。接下来,用户可以选择直接从ISO镜像挂载或解压到目标分区,或者使用第三方工具如Rufus将ISO写入USB启动盘。然后,在BIOS/UEFI中设置启动顺序,将新系统所在的磁盘设为第一启动项,或者使用Rufus创建的USB启动盘引导安装过程。完成安装后,需更新驱动、安装必要软件并根据个人需求进行系统设置。最后,用户可以通过检查系统信息和功能来验证安装结果,并在出现问题时参考故障排除方法或重新生成引导记录以解决问题。--DeepSeek

Windows 10 PowerShell Windows Windows 11 Install DISM Bcdedit Boot BCD

FFmpeg 用法概览

文章介绍了使用FFmpeg进行视频处理的多种功能,包括反转视频(同时保留或反转音频)、剪辑视频片段、扣取视频区域等操作,并提供了具体命令示例。此外,文章还推荐了SRS项目和flv.js库,用于构建直播平台和在网页中播放FLV流,帮助用户实现类似Bilibili的直播体验。--DeepSeek

bash Live Streaming FFmpeg Video Editing SRS flv.js

C# run tasks in a threads pool with fixed size

这篇文章介绍了一种在C#中实现多任务处理队列的方法,允许用户以并行方式执行下载任务或其他异步操作。通过CannonQueue类,可以控制最大并发任务数,并支持依赖注入和日志记录功能。该方法提供了两种使用方式:一种是将任务添加到队列后立即启动任务池,另一种是在最后统一启动任务池以指定更大的并发数量。同时,CannonQueue还支持依赖服务的场景,例如Entity Framework上下文的获取与释放,并通过依赖注入框架进行管理。用户可以根据需要注册为单例服务,并在ASP.NET Core中使用该服务实现高效的异步任务处理和数据库操作。--DeepSeek

C# Async Task Multi-Threading async programming task queue

Fire and forget in ASP.NET Core with dependency alive

这篇文章探讨了在ASP.NET Core中实现"Fire and Forget"模式时可能遇到的问题以及如何通过依赖注入和生命周期管理来解决这些问题。作者指出,在控制器中直接使用`Task.Run()`启动长时间运行的任务可能会导致依赖对象过早释放,从而引发不可预知的结果。为了解决这一问题,文章提出了一种新的解决方案:创建一个单例服务(CannonService),该服务能够确保任务执行过程中所需的依赖始终保持存活状态。通过这种方式,不仅可以避免依赖被意外释放的问题,还能实现异步任务的非阻塞执行。 文中详细介绍了如何构建和注册这个CannonService,并展示了如何在控制器中使用它来执行需要长时间运行的任务(例如发送确认邮件)。此外,作者还提供了相关的NuGet包资源,方便开发者快速集成这一解决方案到实际项目中。 文章最后提醒读者,在使用"Fire and Forget"模式时,除了关注依赖生命周期的管理外,还需要考虑任务失败后的错误处理机制以及日志记录的重要性。同时,作者提出了几个值得思考的问题:在实际应用场景中,哪些情况最适合使用"Fire and Forget"模式?如何平衡异步任务的执行效率与系统资源的占用?这些问题不仅帮助读者更好地理解文章内容,也激发了对相关技术更深层次的探索和实践。--DeepSeek

ASP.NET Core C# Async Fire and forget dependency injection singleton service

Best-practice after creating a new Linux server

这篇文章介绍了优化和管理Ubuntu服务器的详细步骤,包括安装必要的软件包、配置防火墙、调整系统设置、优化内核和CPU性能、更改时区、移除Snap以及进行服务器基准测试等。主要内容涵盖使用Uncomplicated Firewall(UFW)配置防火墙规则,通过安装最新内核提升硬件兼容性和性能,禁用节电模式以提高CPU性能,设置正确的时区(如GMT或亚洲/上海),彻底删除Snap以减少系统资源占用,并使用iperf3和sysbench工具测试网络和CPU性能。此外,还提到了可能需要安装的运行时环境(如Node.js、Docker和.NET)以及后续服务部署的指导。--DeepSeek

bash Linux Ubuntu SSH System Configuration Server Optimization