以前的流程是
dev 提交 -> 触发 CI -> 单元测试 -> build Docker Image --> checkout helm chart env yaml --> 自动更新里面的 docker image --> 提交 helm chart
helm chart 提交触发 CD -> helm upgrade 更新 dev k8s 集群。
Prod 类似但是多了 review & approve 的过程
serialNumber 这个字段多长?是否超过了 ES 索引的长度?
把台式机拉公司做我的开发机,然后 IDEA 远程连接开发,在家也有 vpn 连到公司网络
----
意思是台式机放公司里接公司网络?你从家里用 vpn 链接公司网络访问这个台式机?
那这样选择很多啊
1. 你在台式机上装 Windows server 系列,在里面用 IDEA 开发调试,从 Mac 上通过 RDP 访问
2. 你在台式机上装个 Linux ,从 Mac 上通过 SSH 连接,IDEA 装在 Mac 里面通过 Java debug 端口远程调试
3. 你在台式机上装个 ESXi 或者其它虚拟机 hypervisor ,然后装 Win/Linux ,开发直接 RDP 到 Win ,调试运行在 Linux ,Mac 只做远程客户端
我买的是水星的,自带界面和 app 非常垃圾
但是它有两个优点
1. 支持 POE ,几根网线连到 POE 交换机上,不用拉电源线
2. 支持 rstp 串流,直接在 NAS 上写个脚本用 ffmpeg 直接保存视频就 OK, 回放交给 NAS
1. 买个二三十块钱的插座检测仪,看看房子的地线,零火线是否接错/缺失
2. 看房子总闸是否有漏电保护(剩余电流保护)
3. 看热水器的插头是否有单独的漏电保护器
4. 漏电保护器都有按钮( T ),理论上每个月按一下测试,会跳,否则就是故障应该更换
5. 看热水器的品牌,如果是海尔美的这种大品牌,问题不大
6. 可以自己买个高灵敏度的带漏电保护的插座,专门插热水器
@
fuckfaker 当年听前同事说,在某公司为了过测把系统里的 top 命令改了,任何负载下 cpu 都不会高于 X%来达到性能要求
20 多年前刚毕业在东软,当时上面说的是日本人给东软 2000$每人月,然后东软给下面人的工资是 2000 RMB
@
levelworm 8088 ( 8 位) 就行。不知道那个老师是自己吹牛还是什么,当时说是国外留学回来的
以前大学时候学完了组成原理,就是用 74LS 系列的元件,加上面包版导线 2 极管数码管实现一个最简单的计算机,
直接跑机器语言,4 位,实现最简单的几条指令,MOV ,ADD ,JMP ,JL ,能输入两个数算个加法就 OK
搞完了发现那两三个礼拜学的东西比一学期组成原理课堂上的东西都多
印象最深的是指导老师一直说你们这个多简单如何如何,当年他在什么地方项目是用同样的东西搭出来,自己写 BIOS ,要能跑通 DOS3.0
啥公司这么猛,以前老板把整个分公司都干掉了都不敢裁几个孕妇,办公室都空了就留下几个孕妇干点零零碎碎的活
记得当年老板想给上海联通做项目,告知回款是三年。你觉得时间长就是你公司实力不行
光盘可以用千年盘系列的,就是有点贵。老早以前美国公司的代码库备份方式就是每周刻盘,寄到一个什么类似保险公司的地方放进一个号称 N 种防护的保险柜里面
个人觉得自己搭 NAS 其实没啥意思,优点是方便,但是消费级别的东西,其实还是很脆弱,电源问题可能把所有的盘烧坏,普通消费级别的 Raid 恢复性也没那么靠谱
或者也可以考虑类似 AWS 冰山存储这种,价钱非常便宜,缺点就是不能实时提取数据,有个延迟
首推洗碗机。再也不用洗碗了,往里面一扔完事。
次推折叠车。
有些要求严格的地方何止要指定版本;还要指定 Hash
latest 这种是严格禁止的
1. KeyCloak 或者类似的,但是好像现在只有 KeyCloak 还在维护
2. 主要的云都有类似的东西,比如 Azure AD B2C 但是要考虑费用
每个人依次生成随机数,如果满足条件且小于剩余钱数,给这个人分钱,对下一个人;
如果到了最后一个人那么判断剩余钱数是否满足条件。如果 OK 那么找到一个方案。否则前一个人重新来
import java.util.Arrays;
import java.util.Random;
public class RedBag {
private Random random = new Random();
public static void main(String[] args) {
int[] r = new RedBag().resolve(new int[10], 10,0, 100, 100);
System.out.println(Arrays.toString(r));
r = new RedBag().resolve(new int[10], 10, 0, 10, 10);
System.out.println(Arrays.toString(r));
}
/// result: Result for each persion
/// N: Total number of person
/// n: Current person, [0, N - 1]
/// M: Total money
/// m: How much money left
private int[] resolve(int[] result, int N, int n, int M, int m) {
// Last person, and the left money is OK
if (n == N - 1) {
if (m >= 1 && m < 0.3 * M) {
result[n] = m;
return result;
} else {
return null;
}
}
// left money cannot give at least $1 per person
if (m < N - n) {
return null;
}
int value = 0;
while (true) {
// Try to give some money to current person
int range = Math.min(m, (int) Math.floor(0.3 * M));
value = random.nextInt(range) + 1;
if (value < m) {
result[n] = value;
int[] r = resolve(result, N, n + 1, M, m - value);
if (r != null) {
return r;
}
}
}
}
}