Saturday, October 23, 2021

V2EX - 技术

V2EX - 技术


程序员 5 年坚持制作免费教程造福百万学生

Posted: 23 Oct 2021 04:47 AM PDT

标题为微博热搜看到,此人 B 站:/165659472 ,虽然我不是程序员,简单了解下值得竖大拇指👍🏻,不知道 V 站有没有他账号。

视频在线播放卡慢,如何实现视频分片加载呢?前段 vue,后台 go

Posted: 23 Oct 2021 04:46 AM PDT

现在就是直接请求一整个视频文件,浏览器直接播放,几百兆的视频几乎无法在线播放。我看视频网站都是把视频切分成 ts 文件,具体怎么实现呢?

程序获取手机指定号码的短信

Posted: 23 Oct 2021 04:19 AM PDT

目前接手了一个自动化项目,其中有个步骤涉及到手机短信验证码的校验,目前都是人肉接收短信后再手动填入到程序中去,非常麻烦,所以在想这样的一个方案:

1.该号码为专用,平时只会相关的验证码,本身没有其他使用;

2.采用一个 [开源程序] ,把手机管理起来(手机可以长期插着电脑),每次收到短信之后会自动根据号码和关键字筛选,并通过 API 方式对内部提供

3.主程序通过该 API 获取从而实现自动化

因此想咨询一下,是否存在比这更好的方案,或者有没有这个 [开源程序] 的推荐,非常感谢

声明:文中提到的自动化项目非违法的数据爬取等类似的项目

为什么 MS 不继续发展 AOW,而是弄 WSA?

Posted: 23 Oct 2021 03:45 AM PDT

AOW 是以前 Windows 10 Mobile 那个,运行时转译字节码,然后部分功能例如文件存储、摄像头调用桥接到 Windows 10 Mobile 系统上。当时用 Lumia 535 有幸试过一下,1G ram 的机子运行比较简单的 apk,跑起来还算挺流畅的。
现在 Windows 11 这个 WSA 就是个虚拟机,也就将虚拟机里面的消息通知接入到了 Win11 系统。用公司的电脑体验了一下,启动虚拟机就占了 900 多 M 的内存了。

比起虚拟机的方案,AOW 的方案不是更佳么?虽然工作量应该要多不少,但是技术上当时也验证过了,搞不懂为什么 MS 不继续发展 AOW 。

c 语言条件编译宏太多, 有什么办法解决吗

Posted: 23 Oct 2021 03:35 AM PDT

嵌入式代码需要兼容的版本太多了, 同一个函数里面条件宏比代码逻辑还多了, 然后用 vscode 看代码头都大了, 大家有什么办法解决一下吗?

对帖子的补充与终结 [现在在 github 开源项目上不回答别人的问题,都是错了么]

Posted: 23 Oct 2021 03:27 AM PDT

原文链接: [开撕] 现在在 github 开源项目上不回答别人的问题,都是错了么?并且还是错的很严重的那种么?

我是这边篇文章的发帖人,昨天我实在太过气愤,只想在 v2 上找个公道,因为除了 V2 我也不知道在哪找个公道。

发了文章后,经过了一个晚上的冷静,大家也都在支持我,现在公道找回了,气也消了,还有很多 v 友都到 github 支持我,这里我非常谢谢大家。

我听了大家的建议,github 和 v 站都把他 block 了,今天是周末,希望大家都有个愉快的周末,多陪陪家人,不要再因为我这件事浪费大家的宝贵时间。

从这件事,我也得出了几个反思,与大家分享下:

  • 第一点也是最重要的一点,个人隐私问题。建议大家在 github 或者博客获取其他的社交媒体上,不要留摸索能找到个人通讯软件的东西。例如:QQ 邮箱之类的。若果要用 QQ 邮箱,v 友们推荐说有 QQ 邮箱的马甲:foxmail 之类的。

  • 搞技术的人,遇到不懂的问题,先要 Google 或者 stackoverflow,很多博客已经写的很好了,花点时间看下,然后再对比下源码,一会就能找到答案。

  • 我最开始搞 Android 时,看别人的文章也遇到很多问题,但是我都不去打扰,实在不懂的话,我都是先留言说:你好,我能不能请教下问题。突然加别人微信或者 QQ 真的很唐突,正常人都会觉得冒犯。

  • 遇到不礼貌的人、价值观不同的人,趁早拉黑、block,gitbub 我玩的不太多,昨天第一时间没找到能 block,后面还是 v 友教的。

  • 写文章不容易,开源项目也不容易,用心维护公众号的人也不容易,别轻易诋毁,有质疑,大家礼貌交流,如果这些人都被骂走了,技术圈就变成了饭圈了。

最后,真心谢谢大家,祝大家周末愉快!

请教一个 WSL2 上代理的问题

Posted: 23 Oct 2021 03:03 AM PDT

因为 windows 分配给 wsl2 的 IP 是动态变化的,所以我在.bashrc 设置了如下环境变量,我想用curl cip.cc检测终端是不走代理,但返回的是国内当地的 ip 地址

export host_ip=$(cat /etc/resolv.conf |grep -oP '(?<=nameserver\ ).*') export https_proxy="http://${host_ip}:7890" export http_proxy="http://${host_ip}:7890" export all_proxy="http://${host_ip}:7890" 

所以请教下大家,终端走代理的正确姿势该怎么操作呢?

一个 async function 数组, 怎样一个一个顺序执行?

Posted: 23 Oct 2021 02:12 AM PDT

想做到的是,每过一秒,分别打印:
this is 0
this is 1
this is 2
~
this is 8

下面的代码结果是过一秒后全部执行。

是不是哪里写的不对呢,多谢指教

var jobs = [];  for(let i = 0; i < 8; i++) {     jobs.push(async function(){         setTimeout(function(){             console.log("this is " + i)         },1000)     }); }  (async function () {     for (const job of jobs) {         await job()     }          })(); 

枚举类为何报这个提示

Posted: 23 Oct 2021 02:09 AM PDT

java.net.URLDecoder 中的方法 decode(String encodeStr) 这个方法已经过时,应该使用双参数 decode(String source, String encode)。接口提供方既然明确是过时接口,那么有义务同时提供新的接口;作为调用方来说,有义务去考证过时方法的新实现是什么。

操作系统用户名为中文时,使用 nodejs 的 exec 命令执行指令失败

Posted: 23 Oct 2021 01:39 AM PDT

开发的软件遇到个问题,请教一下如何解决?

通过 nodejs 执行命令,需要执行的程序 compress.exe 是在用户文件夹下,而用户名是中文,这时候会报错,说 the system cannot find the path specified

请问有何办法绕过这个中文用户吗?

实验过,只有系统用户名是中文会报错,如果是文件名中文并不会报错。

C:\Users\虎鲸>node test.js Error: Command failed: C:\Users\虎鲸\AppData\Local\Studio\app-1.0.3\resources\app\ext\fbximporter\fbx2cal3d.exe --log C:\Users\虎鲸\Documents\IMVU Studio Projects\_fbx\_logs\THE_tshirt_Square.fbx.data.txt -f C:\Users\虎鲸\Documents\Studio Projects/_fbx/current.fbx --list-all The system cannot find the path specified.     at ChildProcess.exithandler (child_process.js:383:12)     at ChildProcess.emit (events.js:400:28)     at maybeClose (internal/child_process.js:1058:16)     at Process.ChildProcess._handle.onexit (internal/child_process.js:293:5) {   killed: false,   code: 1,   signal: null,   cmd: 'C:\\Users\\虎鲸\\AppData\\Local\\Studio\\app-1.0.3\\resources\\app\\ext\\fbximporter\\fbx2cal3d.exe --log C:\\Users\\虎鲸\\Documents\\Studio Projects\\_fbx\\_logs\\THE_tshirt_Square.fbx.data.txt -f C:\\Users\\虎鲸\\Documents\\Studio Projects/_fbx/current.fbx --list-all' } 

问个关于内存对齐的问题

Posted: 22 Oct 2021 09:17 PM PDT

为啥

struct FixedLengthHeader {         uint32_t HeaderSize = 0;         uint64_t CryptogramSize = 0;         uint64_t ReservedField = 0; }FixedPackageHeaders; 

占用 20 字节( 4+8+8 ),但是如果用下面这个写法,

    struct FixedLengthHeader {         uint32_t HeaderSize = 0;         uint64_t CryptogramSize = 0;         uint8_t DevFlag = 0;         uint8_t HeaderVer = 0;         uint32_t PackagerVer = 0;         uint16_t Reserved = 0     }FixedPackageHeaders; 

会因为内存对齐占用 24 字节(4+8+2+2+4+4)的内存呢……

群晖 DS119j 内网文件拷贝速度很慢

Posted: 22 Oct 2021 09:16 PM PDT

电脑和 NAS 都是有线直接连接千兆路由器,内网拷贝速度很慢( 10M/s 以内),并且波动很大。远远没有达到千兆内网的读取速度。硬盘是西数红盘 4T 。系统现在是 DSM7.0 。
请问可能的原因是什么,是 NAS 的配置太差了吗?还是机械硬盘的问题?

SubsystemForAndroid 可以移植到 Windows10 吗?

Posted: 22 Oct 2021 08:13 PM PDT

对于平台型的产品,如何做好平台与业务定制的平衡?

Posted: 22 Oct 2021 11:17 AM PDT

现在正在负责公司的一个内部系统,算是平台型的,对接了不同的业务

现在苦于不同的业务有不同的逻辑,不同的字段,处理起来一直在通用与定制间摇摆。

举个小例子,数据导出场景:

通用的字段大家是一样的,但是 A 和 B 业务的场景不一样,A 要在通用的基础上增加 xxx,B 要在通用的基础上增加 yyy 。到处的页面设计和表格也因此需要定制。这只是其中一个小场景,大家在这种情况下,一般怎么处理这种平衡呢?

Linux 系统的路径,存储设备的挂载点,以及挂载这个操作,究竟要怎么理解比较好,越想越复杂

Posted: 22 Oct 2021 09:58 AM PDT

我只知道可以创建一个空目录,然后把一块硬盘挂载到这个目录,那以后存到这个目录下的文件就是存在这块硬盘里。如果在这个目录下再创建一个子目录,再挂载一块新的硬盘,那在这个子目录的文件就会存到这个新的硬盘里。

哦对,还有文件系统这个概念,加上这个更乱了。

想请问大家关于 completablefuture 中参数传递线程安全问题。

Posted: 22 Oct 2021 09:42 AM PDT

搜了 stackoverflow 似乎没有人提过这个问题,因为我也是迫于公司要初学 java,大家见笑了。

这段代码主要想大家帮忙看看 iterate 函数在 for 循环会不会有线程安全的问题。

主要的问题是:

不肯定 iterate 函数 在 for 循环之中,intA 以及 uuid 会不会有线程安全的问题。 1: 就是 thenApply 里面的 intA 与 supplyAsync 里面的是否一致。 2: 也不肯定这传入的参数 intA 与 uuid, 与 thenApply 里面拿到的会不会都是同一组参数。也就是会不会因为循环而导致 uuid 是拿到较为新的情况,而 intA 比较旧?导致计算结果不合理。

我原本想把结果 print 出来测试一下,但是又无从下手,因为这如果真的有线程安全问题也不是 debugger 能看的出来。

先感谢大家的赐教。谢谢

import java.util.ArrayList; import java.util.List; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; import java.util.stream.IntStream;  public class Test {     public static void main(String[] args) {         new Test().run();     }      private void run() {         List<Integer> list = IntStream.range(1,10000).boxed().collect(Collectors.toList());          List<CompletableFuture<Integer>> cfList = new ArrayList<>();          for (Integer intA: list) {             String uuid = UUID.randomUUID().toString();             CompletableFuture<Integer> future = this.iterate(intA,uuid);             cfList.add(future);         }          CompletableFuture<List<Integer>> resultCf = this.allOf(cfList);         resultCf.join();     }      private  CompletableFuture<Integer> iterate(Integer intA, String uuid) {          return CompletableFuture.supplyAsync(()->{ //            假设需要用到第一个参数,然后返回             return intA+2;         }).thenApply((req)->{             return intA+5;         }).thenApply((value)->{ //            假设这个耗时操作要用到第一个参数以及第二个参数。 //            不肯定 在 for 循环之中,intA 以及 uuid 会不会有线程安全的问题。 //            1: 就是 thenApply 里面的 intA 与 supplyAsync 里面的是否一致。 //            2: 也不肯定这传入的参数 intA 与 uuid, 与 thenApply 里面拿到的会不会都是同一组参数。 //            也就是会不会因为循环而导致 uuid 是拿到较为新的情况,而 intA 比较旧?导致计算结果不合理。             System.out.println(uuid);             return 3+value;         });     }  //     等待 list 完毕     private  <T> CompletableFuture<List<T>> allOf(List<CompletableFuture<T>> futuresList) {         CompletableFuture<Void> allFuturesResult =                 CompletableFuture.allOf(futuresList.toArray(new CompletableFuture[0]));         return allFuturesResult.thenApply(v ->                 futuresList.stream().                         map(CompletableFuture::join).                         collect(Collectors.toList())         );     } } 

谷歌浏览器 F12 或者右键检查很慢是什么情况

Posted: 22 Oct 2021 09:05 AM PDT

谷歌浏览器 F12 或者右键检查很慢是什么情况,其他浏览器正常,谷歌浏览器要等 10 来秒才弹出来调试窗口,最近才开始这样

电脑经常弹出 cmd 然后自己关机

Posted: 22 Oct 2021 08:27 AM PDT

有什么办法找到是哪个软件造成的吗?

No comments:

Post a Comment