Saturday, July 31, 2021

V2EX - 技术

V2EX - 技术


Windows 11 已经可以在 Beta 通道更新

Posted: 31 Jul 2021 04:29 AM PDT

微软 7 月 29 日讯(也就是北京时间的 7 月 30 日了),"我们很得瑟地宣布,我们已经把 Windows 11 全民测试版弄进 beta 通道了!"

We are very excited to announce we are releasing Windows 11 Insider Preview Build 22000.100 to Windows Insiders in the Beta Channel!

刚刚把工作电脑加进了 beta 通道,已经下载了 51%了,看看会有什么坑。

另外,据说微软在 Windows 11 中永久解决了蓝屏的问题,因为 BSOD 已经变成Black Screen of Death了。
随着行业的标准化,将来的 Windows 11 BSOD 和 Mac OS 的五国起码在颜色和闹心程度上变得更统一了。

奇葩的需求

Posted: 31 Jul 2021 04:24 AM PDT

组长要求实现 Excel 导入时,不管 Excel 的标题位置顺序和数量怎么变化,都能插入到对应的数据库字段里面,这种需求怎么实现? 后端用 java

阿里云上 K8S 读写 NFS 好慢

Posted: 31 Jul 2021 04:11 AM PDT

卡在把构建的 WEB-INF 目录复制到 NFS 上面,pod 读取也很慢,tomcat 启动要 10 多分钟

测试环境速度没问题

不晓得是不是测试环境用的群晖 NAS 设置 NFS 在优化上比在云服务器命令安装 NFS Server 要好?

WjkDUA.png

PS: 我自己手动测试,在某台服务器上面挂载 NFS,把目录复制到 NFS,速度也还正常,但是就是不晓得为啥在 K8S 里面就有问题

在不登录服务器的情况下如何获取到远程服务器的时间(比如百度服务器),服务器未开启 ntp,也不在服务器写个程序,直接远程调用的

Posted: 31 Jul 2021 03:32 AM PDT

只是想当然问一下,有的话最好,没有就算了

闲着没事儿写了一个 Logo 制作小工具

Posted: 31 Jul 2021 02:53 AM PDT

少废话看效果:

终于找到了 vim 性能排查的方法了,给各位分享一下,定位垃圾插件

Posted: 31 Jul 2021 02:42 AM PDT

请教:服务器 ping 不通自己本地服务器的外网 ip

Posted: 31 Jul 2021 02:38 AM PDT

阿里云服务器:winserver 问题:可以 ping 通其他 IP 和网站,但是 ping 不通自己本地的外网 IP,别人和别的服务器又可以 ping 通,tracert 自己的外网 IP 也全都是请求超时,求问是什么原因造成的

一个 golang 的题,求个思路

Posted: 31 Jul 2021 01:20 AM PDT

使用 Golang 实现一个方法 func checkList(list []int)(val int,ok bool),输入为一个整数数列(list []int),输出为预测改数列的下一个项的值 val 和是否找到规律 ok 比如 输入 []int{1,3,5,7,9} ,检测出它是等差数列,输出下一项的值 11 和找到了规律 true 输入数列的长度小于 3 时,作 无规律处理。比如:[1,3]判定无规律。[1,3,5]判定为等差数列 不用考虑 int 计算的溢出问题 需要支持的数列

等差数列:递增和递减的等差数列都需要支持     比如 [3,5,7,9,11],最终返回 13 和 true     比如 [11,9,7,5,3],最终返回 1 和 true 等比数列: 比如 [2,4,8,16,32],最终返回 64 和 true     等比数列的公比可以为负整数,但不能为小数     比如 [32,16,8,4,2],返回 0 和 false 即可     比如 [2,-4,8,-16,32],需返回 -64 和 true 开方等差数列: 如果一个数列可以对每一项开根号(比如负数,则认为不可以开根号,再比如 3,开根号无法得到整数,也认为不可以开根号。开根号只取正值,比如根号 4=2,不能等于-2 )并且得到的新的整数数列是等差数列,那么他就是开方等差数列,比如 [1,4,9,16,25],最终返回 36 和 true 上述三种数列的任意组合,可以多层嵌套     比如 [2,15,41,80] 先求两两之差,得到等差数列 [13,26,39],最终返回 132 和 true     比如 [1,2,6,15,31] 先求两两之差,得到平方等差数列 [1,4,9,16],最终返回 56 和 true     比如 [1,1,3,15,105,945] 先求两两之商,得到等差数列[1,3,5,7,9],最终返回 10395 和 true     比如 [2,14,64,202,502,1062,2004],先求两两之差,得到 [12,50,138,300,560,942],再求两两之差,得到 [38,88,162,260,382],再求两两之差,得到等差数列[50,74,98,122],最终返回 3474 和 true 无规律:其他所有未检查出规律的数列,最终返回 0 和 false 当数列同时满足多种规律时,同一级之间按照 等差数列 > 等比数列 > 开方等差数列 的优先级来计算。比如 [1,1,2,6],可以先求差,得到 [0,1,4] 得到平方等差数列,预测的结果为 15 。也可以先求商得到 [1,2,3] 是等差数列,预测的结果为 24 。按照优先级规则,返回先求等差的结果。所以 输入 [1,1,2,6],输出应该为 15 。 

写着写着代码,跑去 YouTube 上找灵感,结果我现在天天看别人写代码,而不是自己写了。

Posted: 31 Jul 2021 12:47 AM PDT

看别人开发游戏真有意思。

Java 都这么多年过去了,生产级别数据库操作库除了 JPA 和 Mybatis 还有什么? JPA 和 mybatis-plus 比优势在什么地方?

Posted: 31 Jul 2021 12:02 AM PDT

MIUI 换成繁体中文,默认搜索引擎就没有谷歌了

Posted: 31 Jul 2021 12:01 AM PDT

其他语言还没试过。简体中文下,简洁版主页可以把搜索框设置成谷歌。

从程序员的角度看灰度发布,是不是真的很难实现和落地?

Posted: 30 Jul 2021 10:59 PM PDT

场景: 我理解灰度发布都是按百分比不断的升级!当升级到百分之 90 后,客服收到大量用户说新功能存在问题,第一时间应该是回滚!

Q1:那么就存在一个数据回滚问题,从数据库,再到 redis 缓存,再到消息中间件 Mq,再扯到大数据 Kafka,这一些列的回滚后的脏数据怎么解决?

想到解决思路:所有的中间件和存储都存 2 遍,首先复制所有的表和 redis 缓存和 Mq 队列,存一个 next_version 后缀 存一个现在的表数据,当发布到 100%后把原来的数据所有都改成 pre_version 后缀,所有的中间和数据 next_version 后缀删除,这样就能顺利的解决回滚问题。

这样就衍生出一个新问题:业务同学一定不能在业务层写这样兼容的代码,那只能是技术支持团队解决,那么怎么保证业务同学写 2 遍数据,能顺利写入?

比如: 用户表新增了一个字段,新增了一个用户联系人表和联系人和用户的关联表 

Q1-1 那么在新功能上线时,业务代码如何做到一次数据插入能兼容上一次版本和新版本?

我想到解决方法,自研中间件拦截层,并在业务代码少许的版本代码,比如在新增值字段要表注解 @newField,新增的表要注解 @newTable

从上面来看灰度发布自研的成本相对来说非常高。

望大佬能说一下自己的解决方法把!谢谢了

今天用学习用 C 实现队列结构时,编译执行阶段出现非常邪乎的问题

Posted: 30 Jul 2021 02:57 PM PDT

这是我的环境:

  1. Windows 10
  2. VS Code
  3. MinGW

下面是我的实现代码:

#include "stdio.h" #include "stdlib.h"  #define OK 1 #define ERROR 0 #define CAPACITY 10  typedef int Status; typedef int ElementType;  Status initQueue(); Status isEmpty(); Status isFull(); Status enQueue(); Status deQueue();  typedef struct {   ElementType *array;   int front, rear;   int capacity;   int size; } *Queue;  int main(void) {   Queue q = NULL;   initQueue(&q);   enQueue(q, 1);   enQueue(q, 2);   enQueue(q, 3);   int foo;   deQueue(q, &foo);   deQueue(q, &foo);   deQueue(q, &foo);   printf("%d", foo);   return 0; }  Status initQueue(Queue *q) {   (*q) = (Queue)malloc(sizeof(Queue));   (*q)->capacity = CAPACITY;   printf("capacity = %d\n", (*q)->capacity);   (*q)->array = (ElementType *)malloc((*q)->capacity * sizeof(ElementType));   (*q)->front = (*q)->size = 0;   (*q)->rear = (*q)->capacity - 1;   printf("queue = %p, capacity = %d, size = %d, front = %d, rear = %d, array = %p\n", (*q), (*q)->capacity, (*q)->size, (*q)->front, (*q)->rear, (*q)->array);   return OK; }  Status isEmpty(Queue q) {   if (q->size == 0)   {     printf("Queqe is empty\n");     return OK;   }   return ERROR; }  Status isFull(Queue q) {   if (q->size == q->capacity)   {     printf("Queqe is full\n");     return OK;   }   return ERROR; }  Status enQueue(Queue q, ElementType e) {   if (isFull(q))   {     return ERROR;   }   q->rear = (q->rear + 1) % q->capacity;   q->array[q->rear] = e;   q->size++;   printf("%d enqueued to queue\n", e);   return OK; }  Status deQueue(Queue q, ElementType *e) {   if (isEmpty(q))   {     return ERROR;   }   *e = q->array[q->front];   q->front = (q->front + 1) % q->capacity;   q->size--;   printf("%d dequeued from queue\n", *e);   return OK; } 

这个有意思的问题就是在终端中执行结果不太一致

比如我在 VS code 中的集成终端中( CMD )使用 GCC 编译并执行会是这样的结果:

gcc SequenceQueue.c -o SequenceQueue && SequenceQueue.exe  capacity = 10 queue = 006B1810, capacity = 10, size = 0, front = 0, rear = 9, array = 006B1850 1 enqueued to queue 2 enqueued to queue 3 enqueued to queue 1 dequeued from queue 2 dequeued from queue 3 dequeued from queue 3 

如果将集成终端换成 PowerShell,却是这样的结果:

gcc SequenceQueue.c -o SequenceQueue; .\SequenceQueue  capacity = 10 queue = 00A015F0, capacity = 268435466, size = 0, front = 0, rear = 268435465, array = 00A01600 1 enqueued to queue 2 enqueued to queue 3 enqueued to queue 4 dequeued from queue 2 dequeued from queue 3 dequeued from queue 3 

这 tm 太奇怪了,capacity 咋就变了,rear 是 capacity - 1 才是这样的结果,而且第一个出栈不是 1 而是 4,很明显 CMD 执行的是正确的结果,也不知道 PowerShell 发生了什么。为了排除 VS Code 的原因,直接单独打开 CMD 和 PowerShell 测试

CMD:

gcc SequenceQueue.c -o SequenceQueue && SequenceQueue  capacity = 10 queue = 007915B8, capacity = 10, size = 0, front = 0, rear = 9, array = 007915F0 1 enqueued to queue 2 enqueued to queue 3 enqueued to queue 1 dequeued from queue 2 dequeued from queue 3 dequeued from queue 3 

PowerShell:

gcc SequenceQueue.c -o SequenceQueue; .\SequenceQueue  capacity = 10 queue = 001F2AD0, capacity = 134217738, size = 0, front = 0, rear = 134217737, array = 001F2AE0 1 enqueued to queue 2 enqueued to queue 3 enqueued to queue 4 dequeued from queue 2 dequeued from queue 3 dequeued from queue 3 

这看起来和 VS Code 本身没啥关系,似乎 PowerShell 有点问题?把编译和运行命令分开执行试一下

gcc .\SequenceQueue.c -o .\SequenceQueue  .\SequenceQueue  capacity = 10 queue = 00E62AD0, capacity = 134217738, size = 0, front = 0, rear = 134217737, array = 00E62AE0 1 enqueued to queue 2 enqueued to queue 3 enqueued to queue 4 dequeued from queue 2 dequeued from queue 3 dequeued from queue 3 

好吧,看起来还是不行,capacity 的值乱七八糟,第一个出栈的还是 4 而不是 1 。但是,如果不指定生成后的文件名,PowerShell 它似乎又正确了

(默认生成的 exe 程序名为 a)

gcc .\SequenceQueue.c  .\a.exe  capacity = 10 queue = 00B22E40, capacity = 134217738, size = 0, front = 0, rear = 134217737, array = 02144020 1 enqueued to queue 2 enqueued to queue 3 enqueued to queue 1 dequeued from queue 2 dequeued from queue 3 dequeued from queue 3 

但是 capacity 又是乱七八糟的值,那么可能是 GCC 编译的时候出现了问题?于是在 CMD 中使用 GCC 编译并执行程序,然后在 PowerShell 中执行程序

这是 CMD 中的执行结果:

gcc SequenceQueue.c -o SequenceQueue SequenceQueue.exe  capacity = 10 queue = 00BB15B8, capacity = 10, size = 0, front = 0, rear = 9, array = 00BB15F8 1 enqueued to queue 2 enqueued to queue 3 enqueued to queue 1 dequeued from queue 2 dequeued from queue 3 dequeued from queue 3 

这是 PowerShell 中的执行结果:

.\SequenceQueue.exe  capacity = 10 queue = 001E2AD0, capacity = 134217738, size = 0, front = 0, rear = 134217737, array = 001E2AE0 1 enqueued to queue 2 enqueued to queue 3 enqueued to queue 4 dequeued from queue 2 dequeued from queue 3 dequeued from queue 3 

不是吧,PowerShell 咋回事?那么在 PowerShell 中编译并执行,然后在 CMD 中执行

这是 PowerShell 的:

gcc .\SequenceQueue.c .\SequenceQueue.exe  capacity = 10 queue = 00AB2AD0, capacity = 134217738, size = 0, front = 0, rear = 134217737, array = 00AB2AE0 1 enqueued to queue 2 enqueued to queue 3 enqueued to queue 4 dequeued from queue 2 dequeued from queue 3 dequeued from queue 3 

这是 CMD 的:

gcc SequenceQueue.c -o SequenceQueue SequenceQueue.exe  capacity = 10 queue = 00B515B8, capacity = 10, size = 0, front = 0, rear = 9, array = 00B515F8 1 enqueued to queue 2 enqueued to queue 3 enqueued to queue 1 dequeued from queue 2 dequeued from queue 3 dequeued from queue 3 

妈妈,我想放弃学习了,这都啥跟啥啊,真想一脚踩烂 PowerShell 。好吧,也许不是 GCC 的锅,目前为止我也不知道代码实现是否有哪个地方的问题导致这样的结果,所以希望各位大佬能否复刻一下这种情况,产生这个问题的原因是,我使用 VScode 某个插件一键调用 GCC 编译且执行,总是得到 PowerShell 的结果,然后调试了半天发现不知道问题在哪,于是将代码换到了一些在线运行 C 的网站,发现我的代码似乎没什么太大问题,于是才有了这样的疑问

M1 的 Macbook Pro 可以拿来做渗透吗?

Posted: 30 Jul 2021 12:23 PM PDT

好不容易等到可以装 ARM 的 Windows 了,于是想买个 M1 的 Macbook Pro,主要工作是拿来做渗透测试,然后问题来了,不知道 ARM 的 Windows 能不能跑经常渗透测试用的 EXE 的工具? 有没有好心人试过?求解答~

请教一个群晖局域网速度问题

Posted: 30 Jul 2021 11:21 AM PDT

自己搭的黑群 从群晖文件的直接通过浏览器下载文件 单个下载任务速度始终在 1MB 左右 如果同时多起几个任务的话 速度可以叠加大概到 7MB 左右 如果是上传文件倒是可以到 16MB 左右

已经关闭加密 协议已经改成下限 smb2 上限 smb3

通过 iperf3 测试 udp 和 tcp 带宽都在 100 Mbit 左右 有没有大神知道怎么回事? 怎么才能让单个任务占满带宽

大佬们,用 k8s+Jenkins 去构建 Android 的话 gradle 缓存怎么搞?

Posted: 30 Jul 2021 10:01 AM PDT

现在是 gradle home 的缓存放在 nfs 服务器上,然后 pod 挂载 gradle 缓存的 pvc,但是多个 pod 并行执行的话会有文件锁直接导致报错。

现在的想法是每次构建前把 nfs 的缓存目录 copy 到 pod 的 gradle home,但是 gradle home 太大了( 15g 左右),本机 cp 都要几分钟,影响构建时间,而且如何更新 gradle home 的内容也很麻烦

大佬们有没有好的解决方案?

有交流 nft 的吗

Posted: 30 Jul 2021 08:48 AM PDT

今天在 opensea 上传了朋友的作品, 出售手续费就要 28 刀.....

work

各位是以什么姿势玩的

mybatis batch 插入

Posted: 30 Jul 2021 05:36 AM PDT

使用 mybatis executortype.batch 每批插入 1000 条数据,遇到报错应该怎样日志打印出来报错的那条数据呢,LOG 开的是 INFO,目前想到的是 try catch 插入的方法打印报错的整个 1000 条数据。。

GitLab - 怎么禁止特定仓库的动态出现在 Activity?

Posted: 30 Jul 2021 05:17 AM PDT

nginx-quic chrome 支持度

Posted: 30 Jul 2021 12:36 AM PDT

搭建 nginx-quic,按照 www.nginx.com/blog/introducing-technology-preview-nginx-support-for-quic-http-3 配置的 server 。
www.http3check.net 显示支持 http3 quic 。
但是 chrome 按 f2 显示走的是 tls1.3,不是 quic 协议。

另,chrom 对 cf 的 quic 支持非常友好。对 nginx-quic 支持度不够啊

No comments:

Post a Comment