Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts in 2020.6


C# Rotate the square matrix

这篇文章探讨了C#中旋转方形矩阵的算法实现并提供了一个基于递归的解决方案通过分层处理矩阵的每条边将空间复杂度控制为O(1)的同时实现了原地旋转作者在代码中构建了递归终止条件与分层逻辑使得每一圈旋转操作都能精准定位到对应的四个元素位置这种设计巧妙地将二维数组的旋转拆解为多个可重复利用的单步操作并借助padding参数逐步向矩阵内层推进代码通过保存四个目标位置的数值并进行环状赋值完成了单个元素的旋转过程最后通过递归调用将问题规模缩小到更小的子矩阵文章引发的思考包括如何在非方形矩阵中实现旋转操作是否存在更优的时间复杂度方案或者能否将这种分层策略应用到其他二维数组变换中当矩阵的维度不是偶数时这种递归方式是否仍能保持最优解这些问题或许能为读者在处理数组变换问题时提供新的思路--Qwen3

C# Algorithm Matrix Math Matrix Rotation C# Implementation

Creating a proxy to another URL with ASP.NET Core

本文介绍了一种在ASP.NET Core中实现HTTP代理的轻量级方案通过扩展方法将HttpContext转换为可重用的HttpRequestMessage并构建完整的请求转发与响应处理链。文章重点展示了两个核心方法CreateProxyHttpRequest与CopyProxyHttpResponse的实现逻辑:前者通过解析原始请求方法处理流式数据并复制请求头信息构建目标请求对象后者则通过处理响应状态码头信息及响应体实现透明返回。这种设计允许开发者在现有项目中灵活实现请求代理功能而无需部署独立的代理服务器。值得注意的是实现过程中针对不同HTTP方法的处理差异以及头信息的精细拷贝策略都体现了对HTTP协议的深入理解。当访问特定路由时请求将被代理至目标URL(如示例中的google.com)并保持浏览器端的无感知交互。这种技术方案为API调试中间件开发等场景提供了新的可能性但同时也引发思考:如何在实际项目中平衡代理功能的灵活性与安全性?如何处理更复杂的路由规则与身份验证需求?当请求链延长时如何优化性能瓶颈?这些问题都值得开发者结合具体场景深入探索与实践。--Qwen3

ASP.NET Core C# Reverse Proxy Web Proxy HTTP Proxy

Fix Azure Media Player can't play video in iOS mobile devices

当Azure Media Player在iOS设备上遭遇视频播放障碍时开发者往往陷入两难境地——同样的页面在Android设备流畅运行却在iOS设备遭遇无声的崩溃。这种跨平台的兼容性困境揭示了现代视频播放技术中隐藏的复杂生态。开发者需要直面iOS系统对HTML5视频的特殊处理机制其对autoplay和playsinline属性的严苛要求构成了第一道门槛而nativeControlsForTouch的禁用则暗示着系统级控件与自定义皮肤之间的权力博弈。更深层的技术迷局在于MIME类型的精确匹配当application/vnd.ms-sstr+xml与application/dash+xml的细微差异成为播放成败的关键时开发者不得不重新审视流媒体协议的底层逻辑。令人意外的是事件监听器这一常见调试手段在iOS设备上竟可能引发播放器的性能灾难这种反直觉的现象背后或许暗藏着iOS对JavaScript异步操作的优化策略。当开发者删除这些监听器后播放速度的质变性提升不仅提供了技术启示更抛出了一个值得深思的问题:在追求功能完善与性能优化的天平上我们是否过于依赖表面可控的技术方案?而当广告插件和字幕功能在iOS设备上成为播放障碍时开发者是否意识到跨平台开发中"功能迁移"的本质挑战?这些未解之谜仍在等待更多实践者的探索与验证。--Qwen3

Azure Media Player Azure Azure Media Service Video Playback iOS Devices Configuration Adjustments