Saturday, January 22, 2022

V2EX - 技术

V2EX - 技术


开发一个 TinyPNG 图像压缩桌面端工具,免费开源,无限制

Posted: 22 Jan 2022 03:52 AM PST

TinyPNG 是一款深受前端工程师 喜爱的图片压缩工具,打开 http://tinypng.com ,将图批量拖拽至指定区域,图片即开始压缩。官方给出的数据显示,PNG 文件最高能减小 70%的体积。

不过网页端压缩有单张图片 5M 的限制。所以推荐一个免费开源的 TinyPNG 桌面端工具,支持一件拖放,没有单次压缩数量限制,可显示上传下载进度,小巧快速。希望各位给个星星支持下,GitHub 和安装包下载地址见文末。

Github 地址: https://github.com/chenjing1294/TinyGUI 安装包下载地址: http://www.redisant.cn/#Family

如何搜索所有被弃用 @deprecated 方法?

Posted: 22 Jan 2022 03:20 AM PST

在前几年的更新中 VSCode 早已支持了 JavaScript 的已弃用方法标注@deprecated,今天在看以前自己写的几坨代码时发现有几个已被抛弃的方法:(会被标上删除线)

心里一颤,想着如何找出当前代码中所有已弃用方法,我到处搜了一圈,硬是没找着

stackoverflow 上有一篇帖子:
https://stackoverflow.com/questions/68760282/is-there-an-extension-of-cli-command-to-find-all-deprecated-methods-used-in-a-pr
但是是基于 angular 框架的...我这只是普通的前端 js 罢了

除此之外我是真没找着其他的方法了...只能直接用眼慢慢找
所以咱想知道有没有方法能按@deprecated标注搜索出当前文件中所有的已弃用函数方法

PS:"问题"面板没有任何关于弃用的输出...

如何验证程序的正确性

Posted: 22 Jan 2022 03:11 AM PST

突然想到一个问题:

我们在 leetcode 上提交的代码,有个"程序"来验证我们提交的代码的正确性,可哪个程序去验证这个"程序"的正确性呢?

据说 Go 2.0 的错误处理有可能是这个样子

Posted: 22 Jan 2022 02:51 AM PST

func foobar(a, b int) error {     handle err { return err } // This is our handler     x := check foo(a, b) // check invokes the handle func     y := check bar(a, b) // this on as well } 

看起来还蛮好的。

来源: https://levelup.gitconnected.com/golang-2-0-draft-feature-error-handling-c0a2332b9162

但我觉得还能改进,比如把 handle err { return err } 当作默认行为,不需要写这句就是这个行为,如果写了就覆盖默认行为。

做了一个低聚城市的逛街游戏 demo

Posted: 22 Jan 2022 02:50 AM PST

最后忽然对做游戏感兴趣起来,学了一周的 unity 和 threejs ,写了个逛街的小 demo (其实就像搭积木一样,没啥技术含量)

WASD 控制移动,鼠标左键调整视角,鼠标滚轮调整视野远近

地址: http://o.jamfer.com

注:因为还没有引入物理引擎,所以可以穿模=_=... 不知道大家有没有不错的物理引擎推荐



希望最终能做出一款真正意义的具有可玩性的游戏出来。

升级了一下 node,出大问题了

Posted: 22 Jan 2022 02:25 AM PST

自己的 blog基于 Hexo ,由于各种东西都一直没更新(除了内容文章),所以一直也没升级 node.js ,也没有 node.js 相关的项目。最近突然有个项目需要用到 latest 版本的 node ,就在官网更新了,然后我自己的 blog 就没法再 Generate 了。

MyUsername@My-Laptop MINGW64 /d/blog (main) $ hexo clean&&hexo g (node:7552) [DEP0128] DeprecationWarning: Invalid 'main' field in 'D:\blog\node_modules\jsftp\package.json' of './jsftp.js'. Please either fix that or report it to the module author (Use `node --trace-deprecation ...` to show where the warning was created) INFO  Deleted database. INFO  Deleted public folder. (node:2648) [DEP0128] DeprecationWarning: Invalid 'main' field in 'D:\blog\node_modules\jsftp\package.json' of './jsftp.js'. Please either fix that or report it to the module author (Use `node --trace-deprecation ...` to show where the warning was created) INFO  Start processing D:\blog\source\_data\bangumis.json INFO  167 bangumis have been loaded INFO  Generating urls for last 100 posts 

旧的 node 版本是node-v12.18.1-x64,新的版本我装的是node-v16.13.2-x64,然后我把node_modules文件夹删掉后执行npm install,也会报错,日志有点长,点击此处获取。

不知道是否能隔离两个项目的 node 版本(系统是 Windows 10 Pro )或者让 blog 支持新版本的 node 。

不懂就问: 如何把 ios 设备的照片自动备份到局域网 nas!

Posted: 22 Jan 2022 02:14 AM PST

有啥好的方案吗? 需求是这样的,家里有 nas ,硬盘空间还有不少,因为不想用各种云服务,但是长期用 iphone ,东西都在上面,也不好换,所以就在想

有没有好的方法,可以回到家里自动同步图片到 nas 。或者连上 Wi-Fi ,或者尽可能的达到类自动!

群晖是有类似的功能,之前用过一段时间后面换掉的。现在硬盘全部转给 truenas 了,能满足我的需求,如果单独为了同步照片,装个黑群属实大材小用。所以还请各位大佬不要推荐群晖,我没有群晖,也不想用群晖

本人设备,unraid+truenas ,自己组的

K40 12 版本的 PE

Posted: 22 Jan 2022 02:09 AM PST

K40 PixelExperience 版本 12 第一版已推出,有哪位大哥试水

创客是硬件开发+软件开发? 创客的门槛高吗?

Posted: 22 Jan 2022 01:48 AM PST

经常在视频网站看到各种创客的开发,AI 小车啦,智能设备啦,,比如野生钢铁侠这样的知名 up 主,看他们做的东西很炫酷很有趣。

那么创客既要做硬件开发,也要做软件开发,真全栈啊,感觉技术门槛还是很高的。不过似乎也没有用到很高端的工艺,比如示波器。也有很多直接用开源的方案,比如开源硬件,开源软件,驱动好像也是现成的,各种现成模块的拼装。

所以,创客的门槛到底多高,或者说以后的趋势,大众化?

请教一下, PHP 能否实现这样的操作?

Posted: 22 Jan 2022 12:56 AM PST

环境是在 WordPress 。现有一个.cdb 后缀的数据库,需要一段 php 代码来实现:

用户在发文编辑器中填写'张三'后,发布文章。
文章在渲染给用户看时,会从 cdb 数据库读取张三的照片、姓名、年龄、简介等信息,并且可视化的呈现给读者。

这能实现么?如果能的话,希望懂 php 或 WP 的大佬写一下,可以细聊,有偿,感谢。Q1161178080 (加时说一下 V2EX 哈)

小米手机 怎么限制应用使用时间

Posted: 22 Jan 2022 12:51 AM PST

儿童放假了.而风筝守护也下线了. 用什么可以限制儿童使用时间呢,

现在大人都忍不住不停的看手机, 更别说不到 10 岁的儿童了.

  1. miui 的儿童模式是完全是为学前儿童设置的低幼版,完全没法用.

  2. 针对青少年和老人有一个亲情守护功能,就是独立的风筝守护应用, 在信息保护法发布前突然下线了.不能限制应用时长了,完全不能用了

  3. 在屏幕使用时间里,可以设置各应用的使用时间限制,但是.但是,时间到了之后,单击延长时间,连密码都不用输入就又可以玩了..

  4. 第三方 app, 系统限制,需要给各种权限后,可能是系统限制? 使用虚拟桌面, 不停刷新 /切换等来进行限制,实在是体验不好.

之前 miui 系统作为人性化的代表,现在华为 苹果都可以很方便的限制应用时长, 而 miui 自己多年前都有的,并且简单好用的功能,现在怎么做成这个样子了呢

不换手机,各位有什么方法,或好用的 app 推荐吗?

超详细的 ARM 架构适配介绍!

Posted: 21 Jan 2022 11:49 PM PST

Cloudpods 是一个开源的 Golang 实现的云原生的多云和混合云融合平台。

Cloudpods 不仅可以管理本地的虚拟机和物理机资源,还可以管理其他公有云和私有云平台的资源。

GitHub: https://github.com/yunionio/cloudpods,欢迎大家使用+star

本文主要介绍云联壹云平台如何适配 ARM ,并运行在 ARM CPU 架构的机器上。

背景介绍

1 、平台服务运行架构

云联壹云平台采用容器化,分布式的架构运行在 Kubernetes ( K8s )之上。下面是平台服务运行的架构图:

图片

在多个节点之上,我们会构建 Kubernetes 的集群 ,它是一个容器管理的平台。

在 Kubernetes 的平台之上,后端服务都是容器化的,是以容器的方式去分布式运行。

通过 K8s 去做调度的管理,然后将服务自动地打散到多个节点上运行,总结两点是服务容器化,并依靠 K8s 来提供容器分布式运行的环境。

另外,底层的节点是有类型的,控制层面的服务运行在控制节点,平台内置了一个私有云,提供了完整的私有云功能。

若要使用私用云这个功能,则还需要一些计算节点,计算节点上会跑虚拟化相关的软件,提供私有云虚拟化的功能,总结来说就是计算节点运行私有云的虚拟机。

2 、CPU 架构简介

大家熟悉的服务器或者台式机都是 X86 架构的 CPU ,X86 架构的 CPU 特点是性能高,并且软件的兼容性很好。

大家平常工作中使用的大部分是英特尔等提供的 X86 架构的 CPU ,对于英特尔和 AMD 大家都不陌生,这两家厂商专门生产 X86 架构 CPU 。

另外 X86 64 位这种架构的 CPU 存在别名,例如 x86_64 或者 amd64 都代表 X86 架构的 64 位 CPU 。

图片

与 X86 不同的是还有另一种称为 ARM 的架构,这是本文的主题,那么 ARM 架构的 CPU 和 X86 架构的 CPU 相比有何不同?

它的制造成本更低,ARM 架构的芯片的功耗也很低,代表性的厂商和使用者是苹果和华为。

苹果将生产的 ARM 芯片用到笔记本或 IMAC 上,ARM 架构的 CPU 越来越普及。

国内的华为会生产基于 ARM 架构的服务器,64 位 ARM 架构 CPU 也有别名,例如 arm64 、aarch64 ,这两种叫法表达同一个意思。

3 、为什么适配 ARM

因为 ARM 的 CPU 普及是大环境下的发展趋势,例如在国际上,苹果将 ARM 架构的 CPU 投入到笔记本和台式机上,在国产化方面,国内有鲲鹏和飞腾 CPU ,国产的基于 ARM 架构的服务器,现在市场上主流的是鲲鹏和飞腾。 在国产化上,使用 ARM 架构也是一个趋势。

另外是适配了 ARM 架构能够提升产品的竞争力,竞争力体现在能够支持管理基于 ARM64 位和 X86_64 架构的虚拟化混合部署。

图片

这种混合部署的意思是可以同时把服务运行在 ARM 和 X86 的服务器上,同时运行各自的虚拟化,可以通过我们平台统一部署和管理。

接下来还有如何适配 ARM64 和技术细节的超详细介绍,篇幅所限,了解全文请看: https://mp.weixin.qq.com/s/v-kxWac16wsfmuUAhhNExQ

GitHub: https://github.com/yunionio/cloudpods

这套程序谁知道是什么程序吗

Posted: 21 Jan 2022 09:58 PM PST

cgcbbs.we378.com 看着风格不错。我也想要一套。

求一个熟悉 nacos 和 docker 的大哥,帮忙解答一下 docker-compose 启动 naocos 集群的问题

Posted: 21 Jan 2022 09:57 PM PST

彦祖们,我使用这个仓库: https://github.com/nacos-group/nacos-docker/blob/master/README_ZH.md

提供的 docker-compose.yml 去启动 nacos 集群

日志显示 nacos 启动正常了

  nacos1    |  nacos1    |          ,--. nacos1    |        ,--.'| nacos1    |    ,--,:  : |                                           Nacos 2.0.3 nacos1    | ,`--.'`|  ' :                       ,---.               Running in cluster mode, All function modules nacos1    | |   :  :  | |                      '   ,'\   .--.--.    Port: 8848 nacos1    | :   |   \ | :  ,--.--.     ,---.  /   /   | /  /    '   Pid: 1 nacos1    | |   : '  '; | /       \   /     \.   ; ,. :|  :  /`./   Console: http://nacos1:8848/nacos/index.html nacos1    | '   ' ;.    ;.--.  .-. | /    / ''   | |: :|  :  ;_ nacos1    | |   | | \   | \__\/: . ..    ' / '   | .; : \  \    `.      https://nacos.io nacos1    | '   : |  ; .' ," .--.; |'   ; :__|   :    |  `----.   \ nacos1    | |   | '`--'  /  /  ,.  |'   | '.'|\   \  /  /  /`--'  / nacos1    | '   : |     ;  :   .'   \   :    : `----'  '--'.     / nacos1    | ;   |.'     |  ,     .-./\   \  /            `--'---' nacos1    | '---'        `--`---'     `----' nacos1    |  nacos3    | 2022-01-22 11:37:37,117 INFO Nacos is starting... nacos3    |  nacos3    | 2022-01-22 11:37:38,133 INFO Nacos is starting... nacos3    |  nacos3    | 2022-01-22 11:37:39,151 INFO Nacos is starting... nacos3    |  nacos3    | 2022-01-22 11:37:40,175 INFO Nacos is starting... nacos3    |  nacos3    | 2022-01-22 11:37:41,223 INFO Nacos is starting... nacos3    |  nacos3    | 2022-01-22 11:37:42,272 INFO Nacos is starting... nacos3    |  nacos3    | 2022-01-22 11:37:43,374 INFO Nacos is starting... nacos3    |  nacos3    | 2022-01-22 11:37:44,659 INFO Nacos is starting... nacos3    |  nacos3    | 2022-01-22 11:37:45,904 INFO Nacos is starting... nacos3    |  nacos3    | 2022-01-22 11:37:48,495 INFO Nacos is starting... nacos3    |   

但是我怎么访问 nacos 的控制台呢?

http://127.0.0.1:8848/nacos/index.html 访问不了

http://nacos1:8848/nacos/index.html 更访问不了(因为我压根没有 nacos1 这个 host )

我本地 ifconfig 显示有多个网卡

➜  ~ ifconfig  lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 	options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP> 	inet 127.0.0.1 netmask 0xff000000  	inet6 ::1 prefixlen 128  	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1  	nd6 options=201<PERFORMNUD,DAD> gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 stf0: flags=0<> mtu 1280 en5: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 	ether ac:de:48:00:11:22  	inet6 fe80::aede:48ff:fe00:1122%en5 prefixlen 64 scopeid 0x4  	nd6 options=201<PERFORMNUD,DAD> 	media: autoselect (100baseTX <full-duplex>) 	status: active ap1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500 	options=400<CHANNEL_IO> 	ether b2:9c:4a:cc:e4:9c  	media: autoselect 	status: inactive en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 	options=400<CHANNEL_IO> 	ether 90:9c:4a:cc:e4:9c  	inet6 fe80::6d:3c00:f311:eed%en0 prefixlen 64 secured scopeid 0x7  	inet 10.30.60.53 netmask 0xffffff00 broadcast 10.30.60.255 	nd6 options=201<PERFORMNUD,DAD> 	media: autoselect 	status: active en8: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 	options=460<TSO4,TSO6,CHANNEL_IO> 	ether ba:b2:eb:c7:a3:44  	media: autoselect <full-duplex> 	status: inactive en9: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 	options=460<TSO4,TSO6,CHANNEL_IO> 	ether ba:b2:eb:c7:a3:45  	media: autoselect <full-duplex> 	status: inactive en3: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 	options=460<TSO4,TSO6,CHANNEL_IO> 	ether ba:b2:eb:c7:a3:41  	media: autoselect <full-duplex> 	status: inactive en4: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 	options=460<TSO4,TSO6,CHANNEL_IO> 	ether ba:b2:eb:c7:a3:40  	media: autoselect <full-duplex> 	status: inactive bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 	options=63<RXCSUM,TXCSUM,TSO4,TSO6> 	ether ba:b2:eb:c7:a3:41  	Configuration: 		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0 		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200 		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0 		ipfilter disabled flags 0x0 	member: en3 flags=3<LEARNING,DISCOVER> 	        ifmaxaddr 0 port 10 priority 0 path cost 0 	member: en4 flags=3<LEARNING,DISCOVER> 	        ifmaxaddr 0 port 11 priority 0 path cost 0 	member: en8 flags=3<LEARNING,DISCOVER> 	        ifmaxaddr 0 port 8 priority 0 path cost 0 	member: en9 flags=3<LEARNING,DISCOVER> 	        ifmaxaddr 0 port 9 priority 0 path cost 0 	nd6 options=201<PERFORMNUD,DAD> 	media: <unknown type> 	status: inactive p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304 	options=400<CHANNEL_IO> 	ether 02:9c:4a:cc:e4:9c  	media: autoselect 	status: inactive awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484 	options=400<CHANNEL_IO> 	ether 52:bf:d6:37:e4:e1  	inet6 fe80::50bf:d6ff:fe37:e4e1%awdl0 prefixlen 64 scopeid 0xe  	nd6 options=201<PERFORMNUD,DAD> 	media: autoselect 	status: active llw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 	options=400<CHANNEL_IO> 	ether 52:bf:d6:37:e4:e1  	inet6 fe80::50bf:d6ff:fe37:e4e1%llw0 prefixlen 64 scopeid 0xf  	nd6 options=201<PERFORMNUD,DAD> 	media: autoselect 	status: active utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380 	inet6 fe80::9e4e:800a:5b29:1e0d%utun0 prefixlen 64 scopeid 0x10  	nd6 options=201<PERFORMNUD,DAD> utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000 	inet6 fe80::c370:7e36:ee82:4eca%utun1 prefixlen 64 scopeid 0x11  	nd6 options=201<PERFORMNUD,DAD> en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 	options=404<VLAN_MTU,CHANNEL_IO> 	ether 00:0e:c6:6f:94:ac  	nd6 options=201<PERFORMNUD,DAD> 	media: autoselect 	status: inactive  

本质上还是对 docker 不熟悉。求彦祖解答,比心♥️

大佬们这个悬浮软件(有批注、截图、录屏)app 名字是啥

Posted: 21 Jan 2022 07:45 PM PST

之前刷视频看到个软件,感觉挺方便挺好用的。就是不知道 app 的名字。 同类型的 FV 我安装了,UI 图标和这个不一样。FV 用了下感觉没这个好用。

火影世界网页游戏,谁还知道这游戏

Posted: 21 Jan 2022 07:42 PM PST

这游戏倒闭十多年了,谁知道,是蓝港在线公司开发运营的,横版网页游戏。 现在想找这游戏的源代码或者一键端。 不知道雪藏在哪个大神手里了。 我想高价收。 VX:biaocun123

为什么 Go 语言使用者会非常反感别人批评 Go 语言?

Posted: 21 Jan 2022 03:29 PM PST

真的好奇怪,发帖评价使用体验都变成了不被允许的行为。动不动就是指责别人包含其他程序语言的偏见,指责别人不懂 Go 的"大道至简"…
我是个 Kotlin 吹,我吹 kt 时也是抱着语法糖和库吹,可别人有理有据反驳时我也不会表现出 Go 用户一样的行为。
总而言之部分 Go 语言使用者给我的感觉更像是粉丝而不是用户,很好奇这是什么原因造成的。

golang csp 模型和单纯的协程框架在 web 上性能上哪个更好点

Posted: 21 Jan 2022 05:28 AM PST

并发和 cpu 、内存资源的消耗,哪个更有优势一点

golang 写 web ,原生异步,组件开发者一般注意这点 但是目前压测 php swoole ,2c4g 的配置,压性能排行榜长期霸榜第一的 actix-web ( rust ),以及和 fiber ( golang )相差的并不多,这两个 40kqps ,swoole 30 多 kqps

php 的组件多的用不完,不过很多都是基于 fpm 开发,用在异步框架上有小毛病 所以最近想换个新的轻量异步框架,1kqps 内存消耗不超过 100mb ,个人项目,普通 curd web ,技术激进点也可以(个人 k3s 中,放 2 个 pod )

ps:压测用的 wrk2 ,处理过协调遗漏,ab 应该会更高一点

顺便问下和 kernel bypass (io_uring)的对比,有 benchmark 最好。目前看只有人移植到了 nginx ,内存占用可观,swoole 的 issue 说似乎不准备加入这个,golang 中有移植好可用的项目不

No comments:

Post a Comment