由依赖关系构建执行拓扑:风控决策引擎的依赖闭包与分层调度
一次信贷或反欺诈决策,往往要串起数十到上百个处理步骤:多源数据查询、特征衍生、模型打分。为了应对特征与模型的频繁迭代和严苛的时延要求(SLA),决策引擎普遍采用声明式依赖编排。本文记录如何由声明式依赖推导出分层执行拓扑,并对其中依赖闭包计算的两版实现做复杂度与实测对比(基准测试:全图规模 $\lvert V \rvert=256$,目标节点数 $\lvert R \rvert=24$,闭包构建耗时从 2,987 ms 降至 2.33 ms)。
SIMUL8 XML Internals: Understanding the XSD Schema for Programmatic Simulation
SIMUL8 is almost always used as a visual desktop tool. But under the hood, every .S8 simulation file can be exported to and imported from an XML format.
Compared to manual GUI drag-and-drop, XML provides a programmatic interface to automate model construction, parameter tuning, and batch scenario generation. To build models this way, the offici...
JupyterHub 进阶实践:集成 Azure AD 实现企业级单点登录 (二期)
引言
前置文章:JupyterHub 极简部署实践:基于 SystemdSpawner 与本地 PAM 认证 (一期)
在一期部署中,我们成功搭建了基于 SystemdSpawner 与本地 PAM 认证的多用户 JupyterHub。随着团队规模的扩大,手动管理 Linux 用户、维护密码不仅繁琐,而且无法满足企业对单点登录(SSO)与多因素认证(MFA)的安全合规要求。
本期我们将 JupyterHub 升级为 Azure AD(Microsoft Entra ID)OAuth2 认证。由于一期已经严格遵循了统一的用户名规范,本次升级无需迁移已有用户数据,可以实现无痛过渡。
JupyterHub 极简部署实践:基于 SystemdSpawner 与本地 PAM 认证 (一期)
为什么选择 JupyterHub + SystemdSpawner
多用户 Jupyter 平台常见方案是基于 Kubernetes (Zero to JupyterHub) 或 Docker (DockerSpawner)。但对于中小团队或单机部署,Kubernetes 维护成本过高,DockerSpawner 存在数据权限映射和容器管理开销。
我们需要一个更轻量、贴合宿主机环境的方案。SystemdSpawner 是一个理想的选择:它能够利用 Linux 原生 systemd 服务的 cgroup 限制 CPU 和内存资源,且用户打开 Terminal 直接就是真实的宿主机 Shell,方便使用宿主机已安装的各种开发工具。这非常适合单机、多用户的高效共享开发服务器。
如何使用 NetBird 快速构建企业级安全内网
为什么选择 NetBird
随着企业业务的分布式发展和远程办公的普及,构建一个安全、高效且易于管理的内网变得至关重要。传统的 VPN 解决方案(如 OpenVPN、IPsec)配置繁琐,对客户端支持有限,且由于中心化架构容易产生网络瓶颈。
我们需要一个现代化的替代方案,它应该具备以下特质:部署简单、配置下发自动化、基于点对点直连(降低延迟),且拥有直观的管理面板。这就是我们选择 NetBird 的原因。它不仅满足上述所有需求,还完美地平衡了企业级安全需求与极简的运维体验。
用 Node.js 实现 Windows RDP 自动登录
一台 Windows 机器上有多个账号,其中一个需要在后台保持登录来跑依赖桌面会话的定时任务。手动用远程桌面连一下太原始,改注册表 AutoAdminLogon 也只能设默认登录账号,无法在 A 账号已登录的情况下让 B 账号也在后台上线。最终方案:用 Node.js 在本地跑一个 RDP 客户端,连本机 3389 端口把目标账号登上去。
RulEuler:基于 Rete 算法的开源规则引擎
业务系统里大量的 if-else 判断逻辑(风控策略、审批流程、定价规则等)散落在代码中,每次调整都要改代码、测试、发版。RulEuler 是一个基于 Rete 算法的开源规则引擎,将业务规则从代码中剥离,通过可视化编辑和文本表达式管理规则,实现热更新和独立维护。
共计 33 篇文章,5 页。