Tuesday, September 21, 2021

V2EX - 技术

V2EX - 技术


VSCode 正则表达式替换的两个大坑

Posted: 21 Sep 2021 04:17 AM PDT

  1. 通过 [\s\S] 来跨行,这种用法是可能不起作用的,因为会漏掉\r,建议用[\w\W]
  2. 侧边栏替换面板换行的快捷键是Shift+Enter,但是编辑器上方的悬浮窗是Ctrl+Enter

有什么办法可以彻底关闭手机的屏幕?

Posted: 21 Sep 2021 04:16 AM PDT

之前看了《如何处理闲置安卓机的帖子》,给自己闲置的小米 6 装了 Ubuntu Touch,打算作为测试机使用;

由于图形界面完全用不到,所以就关掉了。但是关掉图形界面,重启之后,屏幕一直显示个 mi,而且屏幕常亮,关不掉;系统应该是启动成功了,ssh 进去没问题;

4YxSts.jpg

所以想找个办法彻底关掉屏幕,一直这么亮着也耗电啊。。

体验了一段时间 Windows11 各种难受

Posted: 21 Sep 2021 04:10 AM PDT

1.最难受的就是圆角设计,真是东施效颦,不知道后续微软会不会把自家 LOGO 也改成圆角的,目前最大的愿望就是希望正式版有改回直角的选项;
2.任务栏的开始图标,一抹浓厚的山寨风;
3.反应慢,操作起来顿挫感严重;
4.主观有一种特简陋的感觉,像是个半成品,尤其是打开设置的时候,虽然用的开发版,但是 10 月 5 号正式版就发布了,开发版应该比正式版还要新;
5.个人认为 Windows 隔代魔咒还会持续,Windows11 绝对是短命,口碑差的一代,而且我预言,就跟 windows8 的开始菜单一样,以后的版本必定会改回直角设计的。

有没有比较完整的 protobuf 教程?

Posted: 21 Sep 2021 03:55 AM PDT

谷歌官网的入门教程比较简略,而且是英文版的,求推荐最好是中文版的 protobuf 教程。 原因是近期跳槽后,发现新东家的 proto 文件动不动就几千行,原来通信 request 和 response 定义的比较简单,这次真的刷新了我的认知。

用 nestjs 重构了下个人空间后端

Posted: 21 Sep 2021 03:44 AM PDT

最近这段时间终于把之前那个项目结构写的很乱的后端重构了一下,整体设计参考了 nodepress,一个很优秀的项目,重构之后整个项目都规范了不少。这是重构后的项目 server-next

今天也是抽空写了一下整体的架构,居然发现已经写了 100+ 个接口了,我都有点佩服我自己。CURD 能写的这么勤。开始写文档之后才发现我是真的不会写文档,是不是不适合做程序员的料。

emm,随便在推广一下我花了一年多时间打磨的 mx-space,是一个个人空间。前后端分离架构,为未来创造无限的可能。然后最近在写文档欢迎大家围观,讨论学习。

Mix Space

wget 是阅读软件项目文档的好帮手

Posted: 21 Sep 2021 03:23 AM PDT

例如,想全面搜索.coverage,如果用谷歌的话,实际上效果并不好,只要带点符号就会出问题,更不用说使用正则或者布尔表达式搜索。

最好的办法就是将这些文档全部下载到本地,本来以为这会很麻烦,没想到 wget 自带这个功能,例如下载poetry的文档,用wget -r -np -nc -k -c 'http://python-poetry.org/docs'

对于很多没有自带 pdf 文档下载服务的项目很有用。

对于 widevine 认证 有了解的么

Posted: 21 Sep 2021 03:02 AM PDT

买了一个 X60Pro 我看 Netflix 官网上有支持 HDR 但是我下载了以后发现 不仅没有 HDR 了连 HD 都没有 认证为 L3 这是为啥

小米的频段阉割,实际上是软屏蔽?

Posted: 21 Sep 2021 02:52 AM PDT

人在美国,手持 Redmi K30 Pro,下了个 Cellular Pro 看了下,居然搜到了 B4 、B12 频段。

但是似乎并不包含在官方支持的频段列表里:

官方参数: 4G bands	1, 3, 5, 7, 8, 34, 38, 39, 40, 41 

考虑到自己刷了 MIUI EU,也就是说,实际上不支持的频段并非硬件上不支持,而是软件上做了限制?

对比 K30P 和 POCO F2 Pro (两款机型实际上是同一款),POCO F2 Pro 官方可以支持 B2 、B4 频段。

个人猜测有以下三个可能

  1. 猜测一:采用同样的基带方案的手机,支持的频段是相同的。但是每个频段需要购买不同的 license,正版 ROM 为了合规会屏蔽掉没有购买 license 的频段,但是修改版的 ROM 去掉了屏蔽机制,也就是说基带支持什么频段就支持什么频段。
  2. 猜测二:小米阉割频段,可能是国内合规的要求,或是节省国内入网认证费用的需要。
  3. 猜测三:官方支持列表只是"天线、基带等硬件经过调教表现较好"的频段,其他频段实际上也是可以使用的,只是可能无法达到认证标准或是厂商预期而已。

sealos 部署 kubernetes 高可用集群, 这个有人用在生产环境吗?

Posted: 21 Sep 2021 01:38 AM PDT

https://blog.csdn.net/networken/article/details/104049274 项目地址: https://github.com/fanux/sealos 官网: https://sealyun.com/

看说明很牛逼, 但不知道有没有人用在正式生产环境? 能承受较大的用户访问吗? 比如同时 1000 人在线?

当前安卓系统熄屏状态下支持蓝牙耳机按键控制录音吗?

Posted: 21 Sep 2021 01:38 AM PDT

缘由

最近在骑行发现如何和队友沟通成为了一个难题。传统的办法是购买手台,但是对于骑行来说很不方便。

现在人人都有智能手机、蓝牙耳机,目前有没有类似的 App 实现该功能?

从功能上来讲,手机和蓝牙耳机在亮屏状态下是可以发送语音的。

熄屏状态下,可以利用蓝牙耳机实现"对讲"的功能吗?或者说 Android 、iOS 系统是否具备这种条件?

安卓 Microsoft edge 浏览器更新后什么情况

Posted: 21 Sep 2021 12:11 AM PDT

https://ibb.co/n31rT1D https://ibb.co/6vqSqJ2 打开标签页没有新建标签页按钮,底栏又有显示 bug

而且这个菜单栏的菜单图标一个白一个暗灰,这都是啥啊

react 里, 如果只用 函数式组件,就没有必要用到 高阶组件了?

Posted: 21 Sep 2021 12:03 AM PDT

正在深入学 react

看完了高阶组件的章节, 正在看 hooks 章节, 我发现 hooks 章节里,没有介绍高阶组件

在网上也没有找到相关的文章

请问:

是不是,如果我的代码 完全采用 函数式组件 (完全不用类组件) ,就没有必要去深入研究(使用) 高阶组件了?

谢谢

如何永久修改其他模块中的变量

Posted: 20 Sep 2021 11:44 PM PDT

先祝各位中秋愉快~

例如在模块 modulea 中设置 A = True 然后在模块 moduleb 中

from modulea import * print(A)  def fuc(): 	global A 	A = False print(A) 

发现输出是两个真值

问题一:如果我想在模块 b 中修改 A 怎么做呢? 问题二:假如有三个模块 abc,模块 a 用于存放对象 x,模块 b 每天修改对象 x,模块 c 每天调用修改后的 x 应该如何实现?如果只能在 b 中创建一个变量等于 A 再修改的话那么模块多了以后不好管理,我感觉用模块意义也不大了

请问有什么方法能让系统把某个 app 当成另外一个 app 呢?

Posted: 20 Sep 2021 10:02 PM PDT

起因是我有海信的 a7,里面有个功能是锁屏阅读,就是你能在屏幕锁定的时候能显示某些 app 的内容

但是只能显示指定的几个 app,然后那些 app 的质量都不咋地

所以想能不能通过修改我想用的 app 的某些信息来欺骗系统

目前的想法是修改 apk 里面的相关信息,但是因为安卓好久没碰了,还在排雷中

如何在编译期直接操作 AST?

Posted: 20 Sep 2021 07:55 PM PDT

不妨假设现在有一个场景,需要大量的模板代码。具体一点,你在使用 gRPC 的时候写完 proto,生成了一车的 class 。
现在有没有一种比较易用的方式,实现去掉这块模板代码?
解决这个问题思路其实有两个方向,基于作用时间区分,一个是编译期注入,一个是运行时生成。
前者的思路需要在编译期根据注解做额外的操作。类似的技术方案是 lombok 和 aspectj 。其中 lombok 本身就是做同一个事情,但没有找到合适的扩展方案。反过来 aspectj 的 CTW 做的事是 weaving,并不支持更多代码生成上的功能。
后者的思路则要去处理类加载这块的问题,一方面可能需要定制类加载器,hook 桩代码,根据桩代码同时生成所有目标字节码。这种方案受限于类加载器本身的限制,修改类继承之类的操作都不太可能实现,也会拖慢类加载的效率。
肯定有人会回复:干嘛不干脆重写一个前端?成本考量下,自行添加一丢丢语法糖显然是最便宜的方案。
在选择使用直接编译期操作 AST 的方案情况下,有没有相对成熟的案例?

不知道算不算 Windows11 的 BUG

Posted: 20 Sep 2021 03:59 PM PDT

在桌面点击鼠标右键,大家都知道,会弹出菜单,一般是设置桌面之类的东西。
但是 Windows11 在桌面点击右键弹出菜单特别慢,于是……

先打开 Task Manager,停留在 Processes 那一页,用于监控
你在桌面上点一下右键,不等菜单弹出迅速偏移一下鼠标,再点一下右键……如此不断地点击,你就会发现,Windows Explorer 这个进程的 CPU 占用率会飞速上升,直到占用 CPU 100%……

Python 超集语言——鸣蛇,双语文档网站终于搞完了

Posted: 20 Sep 2021 03:06 PM PDT

https://github.com/abersheeran/mingshe

https://mingshe.aber.sh/

这一次我写了许久文档来阐述语法说明和使用方法,并且完整地编写了中文和英文两种语言的文档。起码能覆盖 80% 以上的程序员能熟练阅读的自然语言了吧。

还得特别感谢 @frostming 为鸣蛇编写了 VSCode 高亮插件 https://marketplace.visualstudio.com/items?itemName=frostming.vscode-mingshe 以及提供了安装后免手动加代码、自动加载鸣蛇代码模块的方法。

如果你的项目是 3.9+ 的,可以尝试使用一下鸣蛇,目前在我几个小玩意里运行起来一切顺畅。如果是低于这个版本的,但又想试试管道、可选链这些语法的,也可以用,但是需要自己手动执行 mingshe --compile 命令来编译到纯 Python 代码。

希望大家有兴趣的试试,没兴趣的只给个 star 也行。🤭

pip search 搜索目前(2021 年 9 月)还是不能用,大家目前在用什么替代方案呢?

Posted: 20 Sep 2021 02:00 PM PDT

[ Python ]如何取回生成器的返回值

Posted: 20 Sep 2021 10:58 AM PDT

以下是一个校验文件的函数,algorithm_name是哈希类型的名称,checksum是已知的校验码。

def iter_check(filepath: str | bytes | os.PathLike[str | bytes], algorithm_name: str, checksum: str):     algorithm = get_algorithm(algorithm_name)     with open(filepath, mode='rb') as file:         algorithm_instance = algorithm()         for block in iter(partial(file.read, 1024), b''):             yield block             algorithm_instance.update(block)     return algorithm_instance.hexdigest() == checksum 

其本质上是一个生成器,每一次迭代都会yield一个block。那么,能否取回最后由return返回的校验结果?

现在打开百度网盘就卡的要命 是不是被当成服务器了

Posted: 20 Sep 2021 09:54 AM PDT

手贱升级到了 win 11,体验了两天还是回到 win 10 了,真香

Posted: 20 Sep 2021 09:03 AM PDT

目前恢复到 21H1 这个版本,很稳定,很流畅

(failed)net::ERR_CONNECTION_CLOSED

Posted: 20 Sep 2021 06:42 AM PDT

你们开发 Web 时,有遇到过这个报错吗

我最近线上 Web 遇到过这个错,页面效果是没有返回状态码,只有报错,提示(failed)net::ERR_CONNECTION_CLOSED 。

同时我同样请求只是参数变化了,就没有报错,正常 200 。

现在的问题是这个报错是什么意思,没有理解。

https://imgur.com/a/TbsExBE

No comments:

Post a Comment