12月 14

使用父组织客户合同定义的服务

iTop 中需要为每个组织单独订立合同。但是经常有一些公共服务是提供给很多组织使用的,比如申请机器,IT支持等等。这种情况下,如果为每一个组织都添加客户合同会非常繁琐,比较合理的方式是,客户合同定义在一个顶级组织中,然后其子组织都能够使用此合同定义的服务。 查询ID为3的组织的所有父组织(包含自身) 查询ID为3的组织的所有父组织(不包含 … Continue reading

12月 06

iTop DEL_MANUAL 逻辑

一个 AttributeExternalKey 类型的属性,on_target_delete 设置为 DEL_MANUAL,但是当删除对应的对象时,没有被阻止,只是提示此属性将被重置为空。 一开始以位遇到新版本的 BUG 了,本意是打算通过 DEL_MANUAL 避免意外删除的,比如 品牌 被 物理设备使用,要删除一个品牌,当这个品牌还在 … Continue reading

8月 12

HTTP 499 状态码的来历

在一次面试中被问到 HTTP 状态码 499 表示什么,我回答 499 表示客户端主动断开连接,是一个Nginx定义的非标准状态码。结果后半句被否定了。是我记错了吗?我当年可是经常和 499 打交道的。 HTTP/1.1标准的状态码 HTTP/1.1 标准(RFC 7231) 定义的状态码[1]https://datatracker.ie … Continue reading

7月 21

汉诺塔问题时间复杂度推导

汉诺塔问题 汉诺塔(台港:河内塔)(Tower of Hanoi)是根据一个传说形成的数学问题[1]https://zh.wikipedia.org/wiki/汉诺塔: 有三根杆子A,B,C。A杆上有 N 个 (N>1) 穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至 C 杆: 每次只能移动一个圆盘; 大盘不能叠在 … Continue reading

7月 09

用主定理解阶乘递归算法的复杂度

上一篇提到,并非所有递推关系式都可应用支配理论。那么,递归求阶乘的算法可以用吗? 递归求阶乘算法 算法如下 计算过程是 $1 \times 2 \times 3 ... \times n$,基本能直接看出来时间复杂度是 $\ O(n)$。 用主定理求解 在 CSDN 上有一篇文章[1]https://blog.csdn.net/weixi … Continue reading

7月 09

二分查找的时间复杂度为什么是O(logn)

直接推导 设问题规模为 $n$,需要 $t$ 次查找,由二分查找的过程可知,每一次查找问题规模减半,最差情况下,直到问题规模为 1 时才找到或者仍未找到,因此可知: $$n \times \left(\frac{1}{2}\right) ^t = 1$$ 则: $$2^t = n$$ 两边取 $\log$,得 $$t = \log_{2} … Continue reading

7月 07

iTop 3.0 版本变化

iTop 3.0 beta 已于 2021 年 4 月发布[1]https://www.itophub.io/wiki/page?id=3_0_0%3Arelease%3A3_0_whats_new,最大的变化是重写了界面,更加现代化。另外还包含很多用户操作体验上的新功能或者优化。在插件开发方面,目前看变化不大,如果老插件有自定义的界面, … Continue reading