Monday, March 7, 2022

V2EX - 技术

V2EX - 技术


关于序列化和编码这两个概念的疑惑

Posted: 07 Mar 2022 12:06 AM PST

一直搞不清序列化和编码这两个概念,感觉有很多东西混在了一起。。。

现在我的理解是这样

  • 编码表示将文本转化成字节流,以便放到内存或网络传输。最常见的是 Unicode 和 ASCII ,还有 GB2312 等等。
  • 序列化其实可以分成两类:
    • 将对象变成字节流,比如用 unicode 编码字符串,或用 Protobuf 编码对象。这里面只涉及编码这一步。
    • 将对象转换成公共的格式。比如,把对象变成 json 或 xml 。

而 json/xml 最后用 unicode 编码成字节流(可能有做一些压缩空格之类的预处理),才到网络中传输。

  • 我之前常常把 json 和 protobuf 划为对等,都认为是编码方式,但其实是 protobuf 和 Unicode 才是对等的。
  • json/xml 是数据交换格式,表示如何把对象变成文本,而 protobuf 并不是,因此不能以文本表示这个数据(只能用字节流表示)。json/xml 和 protobuf 不是同一个地位上的东西。
  • 数据交换格式也可以定义自己的转换成字节流的编码方式,但一般是用 Unicode ,因为运用最广泛。

不知道我这样理解对不对?

MIUI 通过硬编码内置了 DNS?

Posted: 07 Mar 2022 12:04 AM PST

我应该选择哪个入职啊,一点头绪都没有

Posted: 07 Mar 2022 12:04 AM PST

一个是北京的央企,大概就是嵌入式软件,总包 24 吧,到手感觉没多少钱,只不过这个是老师推荐的,说这个适合我,但感觉没什么钱赚,往上爬需要运气和勤奋,跳槽感觉有点难,感觉科研工程性质的。另一个是上海的银行,软开,税前 30 吧,感觉这个钱会多一些,但是涨幅不大,想涨薪应该得跳槽。两个加班都会有,但都不会占据周末。我应该选择哪个啊,好纠结。

周末花了两天时间,把所有国外公司的服务数据全部都备份了一遍

Posted: 07 Mar 2022 12:04 AM PST

乌鸦和鹅子打的火热,鹅子的毛各种被拔被制裁,各种互联网服务不可用。

国家要求互联网企业数据落地境内估计也是考虑到这方面的原因,毕竟意识形态不一样,哪天搞不好突然被制裁,各种数据放云上拉不下来到时候就是各种麻烦。

1password 、onedrive 一类的第三方服务数据全部都本地备份了一份。

现在只求岁月安好,虽然知道城门紧闭是迟早的事情。

大家都是怎么开始逐渐放弃自己的兴趣爱好的

Posted: 07 Mar 2022 12:04 AM PST

今天跟同事聊天,发现男人在结婚后很少拥有自己的时间了。

特别是要孩子之后,自己想干点啥,都得等到孩子睡了,然后在客厅,熬夜才有时间。熬到 2-3 点是常态,要不然真没自己的时间。

感觉心态慢慢不好了。觉得自己想做的事情都没做完,想玩的游戏都没玩够,怎么破。

各位做过微服务的大佬,请教一个问题

Posted: 07 Mar 2022 12:04 AM PST

我们公司的项目,主要用 python 、和 go 开发。我想咨询一下,服务注册、服务发现、配置中心。用哪几个比较合适,nacos 、consol 、etcd

继续推进我的独立游戏,大致雏形已经敲定,上 demo

Posted: 07 Mar 2022 12:04 AM PST

之前演示过几个 demo (参考我之前的帖子),基本都是纯展示性的,为了探索某个功能(比如捏人)而做的,其中的部分素材并不会应用到我的实际游戏中。

这次则是实际游戏的演示 demo 了,游戏是赛博朋克风格的,我知道这个风格做的人已经非常多了,但个人比较偏爱这个题材。demo 展示了部分场景(只有一个街区),部分角色,和部分动画。目前正在攻克游戏中的任务机制和战斗系统。

游戏确定采用这种低多边形风格(降低流量压力),最终上线的时候会有捏人系统+任务+副本+对战游戏。目前展示的部分对模型进行了压缩,初次访问加载流量仅有 2mb (约等于 V2EX 首页的加载流量),最终成品会控制在一个场景 5mb 左右。

demo 地址: https://o.jamfer.com/6.html
控制方法:WASD 控制角色移动,鼠标左键控制视角,滚轮控制视野

想逃离开发行业了!

Posted: 07 Mar 2022 12:03 AM PST

我个人在之前就是靠着兴趣做开发,因为从小喜欢电子产品,初中就开始接触这些,所以顺理成章的在毕业后走上码农这个职业!

跟大多数 V 友一样,从家乡奔向了一线城市开始耕地,刚开始真的是纯粹的兴趣支撑,公司本来 965 ,我自己主动加班 996 就只是为了白嫖公司电脑+电费,想着反正下班回去依旧是电脑不离手,还不如白嫖公司香!周末就各种学习,参加技术沙龙,技术演讲,自己也关注了一堆公众号,也自己写一些博客!感觉很享受这种兴趣带来的学习的动力。

就在这 2 年,突然就很想逃离这个行业
以前的 996 是兴趣驱动,现在的 996 是公司要求以及来自同事的卷
以前的公众号是技术分享,现在的公众号都是为了卖课
以前程序员只是高薪职业,现在程序员成了高危职业
以前 35 岁只是个年龄,现在 35 岁成了裁员分界线
等等。。。。

这些变化已经把我的兴趣磨没了!
以前的电脑不离手,现在的电脑不想开
以前的主动 996 ,现在的下班倒计时
以前的主动学习,现在的躺平吃老本

从 2 年前开始,就完全不想学习新东西,对于工作上的事也只是按步就班完成,不想优化,不想使用新技术。上班踩点,准时下班,取关了大部份的公众号(卖课),自己的技术博客最后一篇的日期也停留在了 2 年前。就这样混了 2 年,实在感觉有点受不了了。想着趁着自己还没有被银行捆住,没有被家庭捆住,从年初开始,我慢慢的接触一些非计算机行业的人,看能否找到一个契机或者机会,去其他行业试试。或许其他行业比不上现在的工资,但就是想换个环境了!唉

求教一个问题

Posted: 06 Mar 2022 11:49 PM PST

大佬们,目前我在弄一个类似于自助售货机的东西

流程大概是:机器显示二维码->微信扫码支付->服务器收到微信回调->通知设备支付完成->设备开始工作

服务器通知设备支付完成,这一步该怎么优化比较好,有的地方网络质量不太好

设备数量的话,现在是几十台,过几个月可能会接入一两千台

目前通知设备支付完成,用的是 websocket

大佬们,有没有什么建议..以前一直都是在写 crud😭😭..

激活软件 API 适合做成 RESTful API 吗?当序列号不存在时应该返回 200 然后在返回内容中加一个状态属性还是直接 404 状态码更好?

Posted: 06 Mar 2022 11:45 PM PST

最近看了 RESTful API ,里面建议的是返回 404 状态码。感觉这个场合不太适合 RESTful API ,请问应该返回 200 然后 API 里再加一个状态属性还是直接 404 状态码更好?返回 404 的话感觉有一种 API 不存在的意思。

如果这个场合不适合 RESTful API ,那其它 RESTful API 应该和普通的 API 混在一起吗,还是 api/v1/ 下专门放 RESTful API ,其它 API 直接放 api/ 下?或者有什么更好的解决方案么?

CentOS 如何无痛迁移到 Debian ?

Posted: 06 Mar 2022 11:38 PM PST

阅读 CentOS 之后,大家会选择谁 有感。

两台国外 VPS ,均是几年前创建的,里面已经安装部署了很多程序和服务,都是 CentOS 7 系统,如果想迁移到 Debian 11 ,有什么无痛迁移实践?

项目运行后,线程越来越多

Posted: 06 Mar 2022 11:28 PM PST

大家好,请教个问题。
我的一个项目昨晚刚运行时用 top -Hp 显示 Threads 有 400 多。
现在过了十几个小时 显示有 700 多。
线程越来越多,这可能是什么原因呢?

最近 dubbo 遇到几次 Thread pool is EXHAUSTED!
初步判断是线程在 synchronized 内没退出,导致其他线程进不来。
我暂时移除了一些没必要的 synchronized ,是否能解决问题有待验证。

不知两者有没关联。

我对线程方面的知识马马虎虎,现在一头雾水,麻烦大家了。

top - 14:53:14 up 272 days, 14:33, 2 users, load average: 0.03, 0.08, 0.07
Threads: 784 total, 0 running, 784 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.2 sy, 0.0 ni, 99.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16265568 total, 2255248 free, 4649916 used, 9360404 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 11268112 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
11757 root 20 0 10.4g 1.2g 15192 S 0.3 7.8 0:36.19 java
11766 root 20 0 10.4g 1.2g 15192 S 0.3 7.8 0:30.22 java
8721 root 20 0 10.4g 1.2g 15192 S 0.3 7.8 0:00.25 java
1050 root 20 0 10.4g 1.2g 15192 S 0.3 7.8 0:00.17 java
5155 root 20 0 10.4g 1.2g 15192 S 0.3 7.8 0:00.17 java
11747 root 20 0 10.4g 1.2g 15192 S 0.0 7.8 0:00.00 java
11748 root 20 0 10.4g 1.2g 15192 S 0.0 7.8 0:11.86 java
11749 root 20 0 10.4g 1.2g 15192 S 0.0 7.8 0:07.78 java
11750 root 20 0 10.4g 1.2g 15192 S 0.0 7.8 0:07.79 java
11751 root 20 0 10.4g 1.2g 15192 S 0.0 7.8 0:07.77 java
11752 root 20 0 10.4g 1.2g 15192 S 0.0 7.8 0:07.74 java
11753 root 20 0 10.4g 1.2g 15192 S 0.0 7.8 0:07.78 java

持续冒泡, goal 添加快速开始文档

Posted: 06 Mar 2022 11:19 PM PST

虽然忙,但还是来混个眼熟

快速开始

[小调查]大家公司商业项目宿主机都用的什么 Linux 发行版

Posted: 06 Mar 2022 11:17 PM PST

据我了解,菊厂 optic 商用都是 suse ; 所以好奇大家的商业项目都是什么发行版,哈哈

阶段总结,越总结越觉得无力:会的很少,不会的很多

Posted: 06 Mar 2022 10:21 PM PST

阶段总结的总结

  • 学历和际遇让人不甘心,总想多走几步,看看能否脱离这状况.

总结流程

  • 干活前,找文档做记录.
  • 干活时,出问题找资料做记录.
  • 干完活,写笔记做记录.

总结的作用

  • 日积月累,或多或少有一些数量了.
  • 目前认为总结的作用是加深记忆,加快查找.
  • 偶然激情来了,根据笔记水一篇公众号.
  • 却没有那种眼前一亮的作用.

无力感

  • 是总觉方法不对还是使用方法不对呢?
  • 各位靓仔靓女可以给些建议吗

adb 关闭后仍然存在挂起进程,无法关闭

Posted: 06 Mar 2022 10:03 PM PST

image.png

不管是直接结束进程还是 adb kill-server,都会留下一个挂起的进程,结束进程显示拒绝访问,只能重启解决。

而且只要挂起进程存在,adb mdns check 就无法工作,显示 ERROR: mdns daemon unavailable

同样的行为在自己的两台开发机上都能复现,都是 Window 11 最新版

获取进程句柄关闭也是拒绝访问。

image.png

Google Pixel 5 和升级了氧 11 的 OnePlus A6000 有多大区别?

Posted: 06 Mar 2022 09:45 PM PST

至少我看 Google Play 分辨不出两者的区别吧?会不会某些应用用着有区别?

Python :strip()方法的正则表达式余运算判断传参

Posted: 06 Mar 2022 09:04 PM PST

题目: 写一个函数,它接受一个字符串,做的事情和 strip()字符串方法一样。如果只传入了要去除的字符串,没有其他参数,那么就从该字符串首尾去除空白字符。否则,函数第二个参数指定的字符将从该字符串中去除。

问题: 这一行 % (t, t) 是如何起作用的, 原理是如何?

 import re ​ def re_strip(s, t=r'\s'):     t_format = r'^%s*|%s*$' % (t, t)     s_re = re.compile(t_format)     s = s_re.sub('',s)     return s ​ print(re_strip('aadasdfsaaa','a')) print(re_strip('  dafsdfa sadfasd  '))  

vscode sshremote 隐藏终端的快捷键是啥

Posted: 06 Mar 2022 09:02 PM PST

唤出终端是 ctrl + j, 但是我没找到隐藏的快捷键。。。不知道有大佬知道吗?

C++(Qt)获取所有活跃网卡的 IP 地址/子网大小/网关地址的最佳实践是什么?这么常见的一个需求, Google 出来的代码竟没有一个能在 Windows 10/macOS 12 下工作

Posted: 06 Mar 2022 08:30 PM PST

不是我的问题,底下评论区也都在说 xx 系统下不能用。IP 地址 / 子网大小 /网关地址 都需要。
Windows 下我还尝试过解析 ipconfig 输出,但发现不同系统语言下输出格式不一样。
有 V 友做过类似的东西,可以分享一下思路(最好附上代码)么?

两台机器 rsync 版本不同 通过互联网(非内网)传输备份 会丢失文件吗?

Posted: 06 Mar 2022 08:24 PM PST

单个节点如何实现全球访问缓慢

Posted: 06 Mar 2022 07:59 PM PST

场景:
使用的是 udp 服务,目前后端只能配置单台服务器,面向全球化,用户不使用 vpn 的情况如何解决网络延迟的问题。udpspeed ?(这个似乎也要挂代理的形式)

关于 openstack 组件的流量走向图查询的问题

Posted: 06 Mar 2022 07:23 PM PST

我在学习 openstack 的过程中,看到很多中文资料里给除了各组件的流量图,比如 nova 服务,当用户发起请求,nova 组件会产生怎样的流量走向,经过 nova 服务内的哪些组件。
我的疑问: 在官方文档或者其他渠道是怎样的查询思路查到标准版的流量图,我不知道该怎么搜索。能否劳烦 v 友指点一下我。

有人写过广告联盟管理系统吗?类似 Hasoffers,Cake,Performancehorizon,Impact 等

Posted: 06 Mar 2022 06:43 PM PST

要求包含结算子系统 (Paypal ,crypto gateway 接入可选)。 包含 tracking system (可以接入第三方也可以,如 voluum/matomo 等)。

欢迎联系,谈谈开发费用和周期

请教一下,如何在 github actions 中定时跑某个分支的任务。

Posted: 06 Mar 2022 11:36 AM PST

各位大佬们,请求一个问题:如何在 github actions 中定时跑某个分支的任务。

仓库有两个分支,一个是 dev 、另一个是 main 。dev 是主分支,main 是需要定时构建任务的分支。现在我的 yml 是这样写的:

name: GitHub Pages  on:   push:     branches:       - main   schedule:     - cron: "0 21 * * *" ...  

这样写的话在凌晨 5 点左右就会执行,但是执行的内容是 dev 分支的,而不是 main 分支。

要如何写才是 定时执行 main 分支的代码哈~

有人在 Android 和 PC 之间用过 Miracast 的吗

Posted: 06 Mar 2022 09:15 AM PST

想在 Windows 和 Android 之间投屏,注意到 Windows 有自带一个 Miracast ,按照网上的方法测试了一下是支持的。

然后我用自己的手机( Android 12 ),连不上,具体原因不明;

我用我的备用机( Android 5.1 ),连上了,但是断开了就再也连不上了;

我用我家人的手机( Android 6 ),也是能连上,但是断开后也是再也连不上了。

有没有用过这个的传授一下经验,谢谢。

另外有好的方案也可以讲一下,笔记本是 Asus ,手机都是小米( miui )。miui+那个并不好用,这个就不用说了; asus 的 Link to myASUS 的屏幕拓展功能现在收费,也不必再说了。

Mac 上如何看到 debian 系统内备份的 root 目录中的.bash_history?

Posted: 06 Mar 2022 08:40 AM PST

我突然发现,在 Mac 上,看不到以前从服务器上备份下来的 /root 目录内的.bash_history 文件。。。 是我当初没备份么?还是查看方法不对... root 目录下就是灭有.bash_history ,想查个历史命令。。

请教下,通过 fetch/axios 从网上 GET 到的文件, response.data 是 ArrayBuffer 还是 Blob,怎么转换呀?

Posted: 06 Mar 2022 08:28 AM PST

弄了半天,转换来转换去,就是转换不对,没有弄明白。

比如:

export async function downloadPikachu(): Promise<Blob | undefined> {   const options: AxiosRequestConfig = {     method: "GET",     // url: "https://static.wikia.nocookie.net/villainstournament/images/8/89/Pikachu.jpg/revision/latest?cb=20190528172002",     url: "https://static.wikia.nocookie.net/villainstournament/images/8/89/Pikachu.jpg",     headers: {}   };    try {     const res = await axios(options);     if (res.status === 200) {       console.log(res);        // TODO:       // const arrBuffer = res.data as ArrayBuffer;       // const int8Array = Array.from(new Uint8Array(arrBuffer));       // const blob = new Blob([arrBuffer], { type: "application/octet-stream" });       // const blob = new Blob([new Uint8Array(int8Array)]);       // return blob;     }     return undefined;   } catch (error) {     console.log(error);     return undefined;   } } 

p.s. 需要 Blob ,是因为后面还要用(这样 chrome 就能够根据 blob 下载文件了,相当于 save as 成一个文件)

      const urlFile = window.URL.createObjectURL(blobData);       const a = document.createElement("a");       document.body.appendChild(a);       a.href = urlFile;       a.download = fileName;       a.click();       window.URL.revokeObjectURL(urlFile);       a.remove(); 

Cloudflare 和 Google 的 DNS 也有 QUIC

Posted: 06 Mar 2022 07:47 AM PST

mosdns 加入了 DNS over HTTP3 支持。表示是 DoH 但基于 QUIC 而且 CLOUDFLARE 和 GOOGLE 已支持。

实际测试了一下 CLOUDFLARE 可直连,可换最快 IP 。40ms 延时直接起飞,比 adguard 的 QUIC 服务器快一条街。抓包看到协议确实是 QUIC ,用了一小时未发现干扰。大发现。

GOOGLE IP 不通,墙中墙宽带,淦。

貌似是新东西。可以搞。

有个疑问,为什么 docker 本地拉的 lastest 的镜像的 DIGEST 和 hub.docker 上的不一致

Posted: 06 Mar 2022 07:39 AM PST

举例来说,我拉完 nextcloud 的镜像
验证 DIGEST 如下:
nextcloud latest sha256:33020e5c3643667427cc1b2369ff3847346b91d414b1e4bb4d879db93442efd9

但是在 hub.docker.com 上,latest 的 tag 的 DIGEST 为
nextcloud:latest
DIGEST:sha256:d59a37726e7d55c9cebb4ccf86756e78284d84d3ab063fe2035032a255da03c6

如果我强制拉
sudo docker pull nextcloud@sha256:d59a37726e7d55c9cebb4ccf86756e78284d84d3ab063fe2035032a255da03c6

就会出现两个相同的 IMAGE ID 的镜像,但是两个镜像的 DIGEST 却不同,可以排除被劫持之类的,有人知道这是咋肥事吗?

rsync 同步数据报错了!大佬们帮忙看一下咋回事,搜了半天 Google 解决不了,该检查的都检查了

Posted: 06 Mar 2022 07:03 AM PST

从国外服务器拉数据回家里 救救孩子!

可以肯定密码是正确的,但是传文件就报错,不传文件的时候用 rsync 命令可以查看 truenas 上面的目录的,换了另外一台本地 linux 也是报同样的错误!

执行命令如下

rsync -avz --password-file=/etc/rsync.password /home/downloads/rg.rar admin@vaidu.com::truenas 

报错如下

sending incremental file list  rsync: connection unexpectedly closed (0 bytes received so far) [sender]  rsync error: error in rsync protocol data stream (code 12) at io.c(235) [sender=3.1.3] 

三星 S22U 上下滑动的时候文字有拖影

Posted: 06 Mar 2022 06:02 AM PST

上下滑动的时候文字更黑了,有拖影,虽然不明显。
尤其是使用 telegram ,qq 这类软件,需要上下滑动查看消息。

Java 关于生成字体图片

Posted: 06 Mar 2022 05:45 AM PST

目前通过代码生成了如下的 GIF 图,但不完美,有锯齿。 preview.gif

另外如下的 GIF 是如何生成的,完全没有很好的思路,目前的猜测是通过切换相近的字体生成 N 张 PNG 图片合成 GIF ,有知道的请给个思路~~感激不尽 IMG_5457.GIF

微信申请创建网站应用

Posted: 06 Mar 2022 04:05 AM PST

有一条让写网站应用,写什么呢,所以只能是网站建设完毕后才能来申请?

No comments:

Post a Comment