Saturday, May 14, 2022

V2EX - 技术

V2EX - 技术


完全使用 Linux 桌面一年了,依然是个 Linux 新手

Posted: 14 May 2022 05:19 AM PDT

不熟悉系统目录结构,不了解 GRUB ,不了解文件系统,以及很多常识。

现在问我 systemd 启动顺序、iptables table 和 chain 的执行顺序、snap flatpak appimage 的区别等等,我不去 Google 也答不上来。

虽然天天用命令行,但也没有特别熟悉的命令,很依赖 bash 的自动补全。不是天天用的命令全部靠搜,要么搜自己的笔记,要么 Google 搜。

没有硬核的排错能力,不敢过多个性化,不敢升级内核,只敢跟着官方滚。

曾以为常用 Linux 是学习 Linux 的捷径,但这样下去我觉得再过几年也还是这个水平,各位有什么提升的心得和建议吗?

企业微信、钉钉、飞书只能三选一吗?

Posted: 14 May 2022 05:15 AM PDT

20 人不到的小研发团队,组织协同选什么好呢? 企业微信因为强行绑定企业邮箱,导致我之前免费的企业邮出现了各种诡异的账号系统异常,丢失邮箱账号,管理邮箱突然变更等,所以基本排除。 钉钉感觉好重,飞书没用过。 想找个轻量级的,满足日常沟通,工作流程开展即可。 有更适合的推荐吗?

URLCron 更新了,同时提供 10 个高级版兑换码

Posted: 14 May 2022 05:11 AM PDT

URLCron V1.1 发布了,这次主要更新了:

  1. 免费版套餐至少需要一个月订阅一次,过期后任务将停止(定期续订,可以避免浪费)
  2. 增加了兑换码功能
  3. 修复了一些小 bug

还是再介绍一下 URLCron ,毕竟没什么名气。
URLCron 是一个基于 HTTP 的在线定时任务服务,根据你设定的时间去访问你的 url ,可以替代 linux 和 windows 自带的 cron 服务。优点是管理方便、简单、可视化,可以在 PC 和手机上操作。

有什么使用场景

  • 触发 wordpress 的 wp-cron ,实现准时的定时任务并提高性能;
  • 触发 seafile 的 webcron ;
  • 触发 vps 脚本,实现定时任务
  • 。。。

todo

  • 海外节点
  • 会话持久化,可以用于签到等场景
  • 多语言
  • 邀请

直接上码:

  1. RBVDOQ-67Y8-9A9H-3HXT
  2. RBVDOQ-3FWS-7AO7-R3UL
  3. RBVDOQ-6UEM-PSCB-W2EL
  4. RBVDOQ-DACY-5NXU-S0BT
  5. RBVDOQ-CX48-0BV3-N0W6
  6. RBVDOQ-QON2-QH5R-KQBN
  7. RBVDOQ-RMM9-WRFN-8YH0
  8. RBVDOQ-F0NY-6WRC-20J4
  9. RBVDOQ-2KWA-7GUN-6UOD
  10. RBVDOQ-S3DY-VJML-6WEK

食用方法:
注册或登录后,点击侧边栏 『我的订阅』,输入兑换码即可。
服务地址: https://urlcron.itutil.cn
(新域名 urlcron.com 正在备案,预计一周内会更换域名)

如果大家使用过程中有什么问题或建议,都可以给我留言

libui-ng 轻量的跨平台 UI 库

Posted: 14 May 2022 05:07 AM PDT

libui 很久没有更新了。最近发现,一个新的 fork , libui-ng 出来了。

libui-ng 的好处,就是直接利用 Unix/macOS/Windows 平台的原生 UI 功能,静态编译出很小的单个可执行文件。

如果想做个小工具之类的,就可以直接用 libui-ng ,一套代码编译出三个平台的 GUI 程序,大小也就几百 k ,不像 Qt 那样臃肿。

缺点就是,目前可用功能不多,像键盘鼠标事件等还没有完全支持等。



markdown 文件中的图片是本地存储,怎样批量把本 markdown 文件里的图片上传云存储

Posted: 14 May 2022 05:06 AM PDT

将 obsidian 中本地存储的图片改为云存档

图片 file 没法全部上传(有隐私),有没有将本 markdwon 文件自动上传云端的插件推荐?或者其他思路也可以。

如何对图片加密使其避免被网盘屏蔽

Posted: 14 May 2022 04:41 AM PDT

先说需求,我想把图片传到网盘上,再在自己的页面上通过请求网盘 api 来浏览图片,这里面会有解密图片数据的机会。

现在问题在于,我怎么样能最简单的加密图片来保证不会被网盘屏蔽?

现在初步的想法是对图片数据每一位异或 1 处理,只是不知道这种简单的处理方式 AI 能不能检测出来,希望有了解这方面的大佬指点一下。

另外大家有没有什么简单高性能又可靠的图片加密方案呢?

2022 年, web 前端终于可以做到元素跨页面动画了

Posted: 14 May 2022 03:28 AM PDT

就是原生应用很常见的那种点击列表会把缩略图带到详情的那种效果,也就是 Flutter 的 Hero animation

像这样 ↓

https://user-images.githubusercontent.com/93594/141100217-ba1fa157-cd79-4a9d-b3b4-67484d3c7dbf.mp4

完整介绍视频 ↓

https://www.youtube.com/watch?v=JCJUPJ_zDQ4

看着十分美好,然而现在还是金丝雀阪本限定,不知道这个功能普及要多久呢

有上亿的词算词频怎么算比较快

Posted: 14 May 2022 03:25 AM PDT

有上亿的词算词频怎么算比较快,内存跟 cpu 都不是问题的话。现在就是一个大字典,词是 key ,词频是 value 。想用词的长度多加一层散列但感觉也提升不大,这些词的长度基本都在 1-5 之间

群晖升级系统的技术细节

Posted: 14 May 2022 02:33 AM PDT

我的理解是白群晖应该有个 bootloader. 这个 bootloader 放在一个独立的存储芯片上。比如 eMMC. 当白群晖升级系统的时候,我想请教一下大家:

1.这个 bootloader 会不会在某个版本也会更新。有没有办法在升级之前从它的 pat 文件看出来。

2.对于黑群晖,我的理解是这个 bootloader 与白群晖不一样。如果白群晖会升级 bootloader, 那我不小心在黑群晖更新页面点击了更新,是不是会导致 bootloader 被替换成白的 bootloader,从而这也是部分黑群升级后失联的原因?当然失联还有其他原因,好像是黑群晖的 bootloader 会对群晖原始系统打 patch,从而黑群晖硬件也能运行白群晖的系统。如果白群晖的系统恰好在 patch 的地方变了,就要适配新的 bootloader.从这个角度看,它不仅仅是一个普通的 bootloader.

在 Windows 中一键安装纯净的 Chromium 浏览器

Posted: 14 May 2022 02:24 AM PDT

写了一个 PowerShell 自动安装和更新脚本,无部署依赖、联网即可完成,欢迎体验!如果喜欢,求 star 、求安装情况的反馈

https://github.com/LittleboyHarry/ohmycrx/blob/master/install-chromium.ps1

不考虑 flash 等专有软件,日常使用无广告和云服务捆绑、无魔改、高版本内核的 Chromium 看看多数网页,似乎也挺好的

定制化需求三天一变,累死技术部

Posted: 14 May 2022 01:58 AM PDT

平均每 3 天约甲方看一次系统,然后提整改建议,回来改,然后再去,卷的太累了,跪求大佬们的应对经验

windows rdp 在切换过客户端 DPI 后变的迟缓的问题有人遇到过吗?

Posted: 14 May 2022 01:49 AM PDT

该问题的触发条件:
* 有 3 台电脑 A B ,C ,系统都是 windows 10 ,其中 C 作为 rdp 的服务器。
* BC 电脑的分辨率是 1080P ,dpi 设定在 100%,A 电脑是 2K 屏,DPI 设定在 125%
* 用 B 以 rdp 的方式登录 C ,在 C 上启动一些以 UI 工作的软件,如浏览器,文本编辑器,IDE ,等等等。实际上这个过程中 B 不是必须的,可以直接在 C 上启动。
* 从 A 电脑上以 rdp 的方式登录 C ,注意,因为 A 的 dpi 比 C 高,所以此时 C 的桌面的 DPI 被强行拉高了。


问题表现:
此时,从 A 的角度操作 C ,会发现 C 电脑上那些 UI 软件,滚动(切换)内容变的迟缓,有明显的卡顿,虚化,跳帧现象发生。越老一些的,不能自适应 dpi 的软件,该现象越明显;新一点的能自适应 dpi 的软件比如浏览器,该现象轻微的多,但是同样也能感觉到界面滚动的流畅度的细微变化。


解决办法:重启这些软件,可以立刻解决问题。

我现在就很奇怪这样的现象是如何发生?

请问如何在 Android 上屏蔽 Google 内容农场(uBlacklist 替代品?)

Posted: 14 May 2022 01:38 AM PDT

iOS 和 Mac 上用 Adguard 屏蔽广告 + uBlacklist 屏蔽 Google 搜索结果里的内容农场,上网冲浪体验很好。
到了 Android 这边发现移动端 Chrome 并不支持装扩展,也不想用 Firefox 。
好不容易解决了 Adguard 屏蔽广告的问题,但是屏蔽搜索内容请问有什么优解吗?能像 uBlacklist 那样支持订阅的话就更好了。

补充:最好可以在不换浏览器的情况下实现,不是很想为了屏蔽广告的需求换奇奇怪怪的第三方浏览器

Ps. Android 手机已解锁并成功安装了 Magisk

现在主力使用 photoshop 做 UI 设计的多不多

Posted: 14 May 2022 12:52 AM PDT

作为开发者,已经快忘了怎么在 psd 文件上取尺寸找图层了

如果现在进入一个设计工具栈比较陈旧(没有不敬的意思)的部门 /公司,如何去推动 sketch 或者 figma 落地?

请教各位老哥, PostgreSQL、PostGIS 基于地理空间的查询如何优化速度?

Posted: 14 May 2022 12:49 AM PDT

场景:

可以理解为:记录飞机飞行的轨迹,把经、纬度点,高度、速度、航向存入PostgreSQL数据库,并在经纬度列建立 gist 索引。

数据量大概在 1 亿条左右。

想实现查询指定区域范围(圆形、矩形、多边形)内的轨迹。

测试:

随机在经度(-180°,180°),纬度(-90°,90°)的范围内生成 1 亿个坐标点,保留小数点后 5 位小数,并存入数据库,测试在指定的范围内的查询速度。

查询矩形区域32°*32°的范围,查询出来的记录数约为 150 万条,用时 15 分钟左右。

问题:

  1. 想请问各位老哥,如何把查询的时间给优化下去,现在耗时 15 分钟有点儿太长了。
  2. 如果不关注实时的点,只关注整体的轨迹线,如何把轨迹线抽取出来?做压缩?这样查询速度会不会快一些。
  3. 如果抽取轨迹线的话,如何保留速度、航向、高度等特征值。想以后做分析用,比如突然转向、突然减速、突然高度骤降等。

业内是如何实现 App 启动页热更新的?

Posted: 14 May 2022 12:17 AM PDT

国内大多数 app 都实现了这个,特别是用来加插广告,我本来以为是用 webview 套 h5 页面,但是我测试时总有白屏延迟, 不知道他们是如果做到那么丝滑的

腾讯轻量云国内节点被封,解封需要上传身份证

Posted: 13 May 2022 11:55 PM PDT

[腾讯云] 服务违规封禁提醒
尊敬的腾讯云用户,您好!

您的腾讯云账号(账号 ID:xxxxxxxx ,昵称:xxxx )下的设备( IP:xxxxxxxxxxxxxxx )存在通过技术手段使其成为跨境访问节点等行为。根据《中华人民共和国计算机信息网络国际联网管理暂行规定》等法律法规规定及腾讯云服务协议要求,您的服务已被限制使用。给您带来不便,敬请谅解!


大概从最近两周开始,我所在的城市访问国外 vsp 越来越不稳定,于是用国内的一台腾讯轻量云主机做中转(跨地区),一开始用的是 socket 转发,后面怕被检查到就用 v2ray 中转,使用的频率不是很高,但还是封了,解封需要上传身份,提交工单,有必要吗?

vagrant 启动 virtualbox 报错:HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter

Posted: 13 May 2022 11:34 PM PDT

image-20220514135158893

vagrant_2.2.19_x86_64.msi 、VirtualBox-6.1.34-150636-Win.exe

网上搜了几个教程必须重启 VirtualBox Host-Only Ethernet Adapter 。。。

重启之后,就正常启动了

但是每次重启电脑后有出现这种问题。。。

没有一劳永逸的办法吗

Android 原生连接不上企业 WiFi,有啥解决办法吗

Posted: 13 May 2022 10:26 PM PDT

最近公司要开发出海的 APP ,发了个 Pixel6 ,是 Android 原生系统,但是连不上公司的 WiFi ,不能选择忽略证书了,不太好开发,而且也不太好抓包,问公司的 IT 的,他们也不知道咋弄,求问各位大佬有没有解决办法

1password8 的 ssh agent 体验

Posted: 13 May 2022 09:27 PM PDT



开启 SSH Agent 后,每次 git 操作都会弹出授权,大家习惯吗。

试用一天已经嫌烦了


相关介绍 https://developer.1password.com/docs/ssh

远程 SSH 连入 WSL2,一套最完美的解决办法

Posted: 13 May 2022 08:08 PM PDT

2022 年, Swift 开发用 Xcode 还是 AppCode

Posted: 13 May 2022 07:50 PM PDT

最近打算学学 Swift 搞搞原生小软件玩,iOS/MacOS ,不打算学习 OC 。目前其他语言用的 JB 的全家桶,还算熟练。用了这么多年 Mac 真正第一次尝试用 Xcode ,好看是真滴好看,用起来 ... 起初我以为是我用不习惯(快捷键),或者功能设计不太一样,结果找了半天是没有。

所以想咨询下现在用 AppCode 开发咋样?

有没有类似滴滴那样的可以显示所有使用滴滴 app 的司机实时位置的开源应用?

Posted: 13 May 2022 06:19 PM PDT

求助。 分为用户端和后台控制面板。前者就是单纯登陆就可以使自己的实时位置被系统看到。后者就是能实时监控所有使用 app 的用户的位置。

希望找一个模版做点关于大容量并发、地理围栏相关的测试研究

在办公室插电源笔记本触摸屏完全失灵,不插电源灵敏度变得很低,在宿舍都正常,是办公室的电有问题吗?

Posted: 13 May 2022 05:25 PM PDT

操作系统如何使用?欢迎大家一起讨论

Posted: 13 May 2022 05:02 PM PDT

想请教大家在一般的操作系统使用中涉及的操作

下面是我认为的一些结构,很不成熟也很不完整,希望大家可以友善地提出自己的意见,一起学习。

### 1.软件管理
基本使用
- 软件搜索,查看软件描述
- 软件安装,安装指定版本软件
- 软件卸载,是否卸载依赖软件
- 软件列表查看
- 管理软件源
- 检查软件更新
- 更新软件包,更新指定的软件包
- 清楚软件下载的缓存

其他使用
- 打包一个软件
- 上传自己打包的软件
### 2.进程管理
基本使用
- 查看活跃进程
- 将进程调到后台 /前台
- 将进程挂起 /暂停 /恢复 /杀死
- 查看进程的 CPU/MEM 占用

其他使用
- 查看进程相关的文件
- 查看进程相关的内存
### 3.文件管理
基本使用
- 查看文件,使用工具打开各种文件
- 导航文件目录
- 变更文件权限
- 批量地处理文件
### 4.用户管理
基本使用
- 创建新的用户
- 登录用户账号
- 登出用户账号
- 注销用户账号
- 变更用户信息
### 5.网络管理
基本使用
- 查看网络端口占用情况
- 杀死占用指定端口的进程

macOS 桌面也用到了 JavaScript + HTML + CSS 来实现

Posted: 13 May 2022 04:05 PM PDT

macOS UI macOS UI2

而且还是用 React.js 来写的,看来用 Web 技术写桌面 UI 是一大趋势了。

原文: https://blog.jim-nielsen.com/2022/inspecting-web-views-in-macos/

有没有喜欢独来独往,不报团的程序老哥?

Posted: 13 May 2022 03:48 PM PDT

喜欢一个人去吃饭,一个人抽烟,一个人吃完饭转转。

久而久之,就成了无法融入团队的特例了。

但是强行融入,没有共同话题,感觉就是"陪笑"。

Python 已经修复了在 windows 上的系统代理注册表错误 BUG

Posted: 13 May 2022 02:01 PM PDT

开发基于 mongo 的数据后台,有现成轮子么?

Posted: 13 May 2022 01:43 PM PDT

我不太懂后端,在做一个数据后台。大概长这样: https://xiaoe.yunduhb.com/uploads/ueditor/20201225/1-2012251414021P.jpg

数据存在 mongo 里,和前端规定一个查询数据的 json 语法。 后端的工作就是然后把 json 翻译成 mongo 查询,查出来再返回给前端。 感觉这事儿很无聊,已经第二次做了,这种事儿有没有个别人做过的 python 通用项目? 并不是想偷懒,而是想做个偏通用的,又不想重新造轮子。

关于 Java 很啰嗦的问题

Posted: 13 May 2022 01:39 PM PDT

我先声明啊,我不是来吹捧 java 的,我只是想说一个事实,编程语言 没有谁绝对的碾压谁,真遇到了实际业务需求,写出来的代码量绝对是半斤八两。

我希望大家 在 吐槽一门语言的时候,可以理性一点,不要瞎喷。这篇文章的用意就在于此。

还有一点,我用 go 来比较,是因为 go 擅长的场景,跟 java 有一定的重叠,有很多公司都用 go 开发 web 。绝对没有对 go 不敬的意思。

首先目录问题

image.png

总结下来,从工作量的角度来看,就是多了一个倒置的域名而已,而且只需要花建一层目录的时间,并且这个倒置的域名 是有他的意义在里面的,你们可以把他看做是这个

// go 语言里的 import ,前面也有一个域名+项目名 来确定唯一性,包名里的倒置域名就是起这个作用的 import "github.com/scan-util/xxx/xxx" 

还有很重要的一点,你们喷来喷去的那些多余的目录结构,在我们的观念里 根本就不存在,因为从来没有手工去创建过,要不是你们来吐槽,我们还真想不到这一点。

不是因为 习惯了,而是真的从来没有为他们花过 5 秒钟以上的时间。有的连一毫秒都没花过。

方法语法

go

func BytesToString(val []byte) string 

java

public String BytesToString(byte[] val) 

我真没看出来多了什么东西

定义变量

go

name := "张三";  var map = make(map[string]interface{}) var array = make(string[], 10); 

java

String name = "张三";  Map<String, Object> map = new HashMap<>(); String[] array = new String[10];  

好像多了点东西,又好像没多什么。

循环

go

for(i:=0;i<100;i++){  }  for(i<100){  } 

java

for(int i=0;i<100;i++){  }  while(i<100){  } 

确实多了几个字母。

创建类

go

我知道这叫结构体,跟类是两码事,但是 go 就是用它来兼容 oop 的,所以我只能用它来举例子,因为没有其他语法可以实现 oop 了

type DemoParam struct {     name string }  func (demoParam *DemoParam) FormValues(key string) []string { } 

java

class DemoParam {     public String name;          public String[] FormValues(String key){              } } 

字数上相差多少,我是懒得数了,但是你们真的不觉得 java 的结构更清晰吗? 其他的继承,多态 我就不拿出来说了,go 基本上是 用的 c 的编程思想,oop 只是个兼容, 所以用 java 来跟他比 oop 没什么可比性。因为是两个方向。

异常处理

go

 func testFunction(paramStr string) (string, error) {     if xxx {         return Errors.New("xxxx");     } }  paramStr, err := testFunction("ok")                               if err != nil {                                log.Println(err.Error())                            } 

java

public String testFunction(String paramStr){     if (xxx) {         throw new Execption("xxx");     } }  try {     String paramStr = testFunction("ok"); } catch(Execption e){     log.Println(e.getMessage);  } 

这个看起来 go 好像 舒服一点,但是,实际场景下 go 经常是这种姿势

paramStr, err := testFunction("ok")                               if err != nil {                                log.Println(err.Error())                            }  paramStr, err := testFunction2("ok")                               if err != nil {                                log.Println(err.Error())                            }  paramStr, err := testFunction3("ok")                               if err != nil {                                log.Println(err.Error())                            } 

而 java 还是只需要这样

try {     String paramStr = testFunction("ok");     String paramStr = testFunction2("ok");     String paramStr = testFunction3("ok"); } catch(Execption e){     log.Println(e.getMessage);  } 

并且这是 经过人为判断后,返回的错误提示,如果是意外的异常呢? go 里面叫 panic ,java 只要用 try catch 包住了 就可以捕获,但是 go 需要用 defer ,而且一旦抛出异常就意味着这个函数结束了,你如果想在出异常后,处理一下 然后继续往下走,go 会非常的麻烦。

拆箱

go

// 如果有一个 interface{} 类型的变量 a ,想转成 int // 你必须明确的知道,他装箱前就是 int ,不然根本没法拆,必须做一下类型判断。 // 我之前在写框架的时候 就被折磨的够呛,一大堆不必要的 if 

java

// 不管装箱前是什么,只要他的值是一个整数 // 无论是 1 , 还是 "1", 都可以这么转 Integer aInt = Integer.parseInteger(a.toString());  // 也可以直接拆成 String a.toString(); 

如果你们还不服,那很好办,

你们出一个需求给我,我用 java ,你们用 go ,nodejs ,python ,php 随便什么语言,最后来比比 谁的代码少一些。 我敢说,绝对半斤八两,不可能有谁碾压谁的。

而且还有一定的概率,java 在 丰富的生态+强大官方库的 加持下,可以更快完成。

Go 特性少,语法糖太少,味儿苦啊!求开发体验好、生态全的语言推荐

Posted: 13 May 2022 12:42 PM PDT

包括不限于错误 /异常处理,泛型,OOP 等, 还有就是缺失类似 spring 的 bean 扫描功能

Linux 桌面的春天要来了?

Posted: 13 May 2022 10:35 AM PDT

Flutter 3 加入了对 Linux 桌面应用程序的支持: https://medium.com/flutter/introducing-flutter-3-5eb69151622f

NVIDIA 也开源了 Linux GPU 内核模块: https://github.com/NVIDIA/open-gpu-kernel-modules

威联通 HBS3 备份到百度网盘总失败

Posted: 13 May 2022 10:26 AM PDT

看到 HBS3 里面能备份到百度网盘了,本来一阵激动,加密备份,一会儿就没速度了,然后就提示失败,反反复复几次都这样,这功能是不是废的呀,真是无语了,折腾了好久

自建全套开源 DevOps 实践

Posted: 13 May 2022 10:18 AM PDT

国内的 Devops 云平台动辄封号,删库,屏蔽,国内云平台 devops 已死!自建 Devops 平台才靠谱。这里采用开源项目建立一个完善的 Devops 系统,基本运行良好!

个人 devops 实践系统。整套系统可以完全内网实现,不用申请域名、ssl 证书,完全自己管理 dns ,自签名证书。

配合 Consul 可以实现自动负载均衡 Consul

大家有什么更好的项目推荐没?

首发于个人 blog

Google Voice 收到莫名其妙的语言信息

Posted: 13 May 2022 08:46 AM PDT

今天 gv 收到两条莫名其妙的语音信息,来自一位名叫 Barbara Brown 的人,说我的号码一直给他打电话,接通后却没有声音,但我本人并没有给他打过电话,我的通话记录里也没有相关信息,好奇怪。 1.jpg 2.jpg

没人谈谈如何制作 Linux 发行版嘛

Posted: 13 May 2022 07:44 AM PDT

不太清楚制作流程。

我猜可能需要

  • 写启动脚本
  • 开发包管理 或者 集成现有包管理
  • 做一些桌面定制,甚至自己开发桌面
  • 如果是基于现成的发行版做的,需要考虑要把哪些包删除,哪些包可以引入
  • 烧录 ISO,提供镜像下载, 准备论坛,提供交流平台

但问题是,如何把上面这几点整合起来。

所有的 linux 相关的软件都是开源的,都可以自由获取。问题是如何整合?

经常要 google 文档,所以开发了一个文档聚合网站,大家看看觉得有用吗?

Posted: 13 May 2022 07:23 AM PDT

身为一个程序员,经常需要阅读英文文档,但是有些文档网站需要翻墙才能打开,对于不会翻墙的同学不友好,所以有了开发一个文档聚合网站的想法,通过代理,把目标网站的内容代理过来,由于中文文档大家可以用百度直接查询,所以就不考虑中文版了

网站地址: a doc hub

另外请大家帮忙测试一下速度怎么样,目前收录了 400 多个文档网站,涵盖了前端,后端主流技术栈,后续还会继续添加更多的网站,大家有想要收录的网站也欢迎提出意见

有大佬知道 idea 怎么对同一个项目同时打开不同分支的窗口

Posted: 13 May 2022 06:46 AM PDT

有时候代码上线日期不一样,但是后面开发的东西需要看看还没上线的代码,就很难受。

不知道有没有大佬有办法,对于同一个项目,idea 中打开一个分支就打开一个新窗口。

对 coroutine.__await__() 调用 next 为什么会导致重复进入 Future.__await__()

Posted: 13 May 2022 06:11 AM PDT

import types from typing import Any, Awaitable   @types.coroutine def _async_yield(obj):     return (yield obj)   async def gather(*aws: Awaitable[Any], return_exceptions: bool = False):     result_array: list[Any] = [None for _ in range(len(aws))]     done, pending = [], [*aws]     while pending:         for i, awaitable in enumerate(aws):             if awaitable in done:                 continue             try:                 next(awaitable.__await__())                 await _async_yield(None)             except StopIteration as exc:                 result_array[i] = exc.value                 done.append(awaitable)                 pending.remove(awaitable)             except BaseException as exc:                 if not return_exceptions:                     raise                 result_array[i] = exc                 done.append(awaitable)                 pending.remove(awaitable)     return result_array   async def test_wait():     async def a():         return 1      async def b():         import asyncio          await asyncio.sleep(0)         return 2      async def c():         import asyncio          await asyncio.sleep(1)         return 3      return await gather(a(), b(), c(), asyncio.create_task(c()))   if __name__ == "__main__":     import asyncio      print(asyncio.run(test_wait())) 

报错所处的位置:

    # asyncio/futures.py line 281     def __await__(self):         if not self.done():             self._asyncio_future_blocking = True             yield self  # This tells Task to wait for completion.         if not self.done():             raise RuntimeError("await wasn't used with future")         return self.result()  # May raise too. 

抄袭 localtest.me, 我买了 localtest.rs

Posted: 13 May 2022 05:36 AM PDT

一直在用localtest.me,这回做完rslocal 想着搭建一个公共服务的时候就随手搜了下localtest.rs,没想到居然还在,就买下来了。

现在当您使用 rslocal 的时候,您将获得一个 xxx.localtest.rs 的域名访问您的内网服务。

目前刚上线,欢迎大家前来试用。

https://localtest.rs

有什么快速摆脱咸鱼态的方法吗

Posted: 13 May 2022 04:33 AM PDT

毕业后在湾区小公司咸鱼了两年,工资不高,天天摸鱼,偶尔刷题,随缘面试。最近拿了一个 L5 offer ,估计还有六周入职,感觉按照现在每天摸鱼的状态大概率要被辞退。

30 不到就躺了两年自己回想起来也挺羞愧的,打算重新做人,有什么办法快速进入卷王状态吗?

SpringBoot 创建的 jar 包热部署

Posted: 13 May 2022 03:20 AM PDT

有一台服务器,部署了 jar 包,指定了端口,同时 nginx 反向代理提供服务,但是服务更新的时候,需要更新 jar 包,当前是关闭服务,重新启动,会有 5s 左右的间隔是服务停机,有比较好的办法么?

想过双端口,固定双端口,新服务启动后自动检测没使用的端口,不过操作起来比较复杂,nginx 上也需要很多配置改造,有更好的方案么?

[Workspace] 企业版车,当前 [12 人]

Posted: 13 May 2022 02:24 AM PDT

主要是长期用 Google 全家桶,数据不是太多的(短期 50T 以下,长期不超过 100T 的),上百 T 的大佬就算了。

价格就是官方价格,土区 Enterprise Standard 是 120 里拉每月,可以选择按月按即时汇率支付,也可以按当前汇率预存。 欢迎上车,在任意时刻如果人数不足五人,楼主认购剩余席位。类似港币兑换美元的弱方保证。

图个一劳永逸,不用到处导数据,也可以放心使用 Gmail 和 photos 了。

========================

小仓鼠可加 v:stuazt 或 tg: @stuazt

观望,插眼,凑热闹,可加 TG 群:t.me/lyugw

接口参数绑定, 公共处理代码生成工具

Posted: 13 May 2022 01:44 AM PDT

很久之前写过一个自动创建, 校验请求参数的文章: gin 自动映射参数及自动校验, 文章介绍了一种通过反射创建请求参数, 绑定请求参数到实例, 校验处理, 并调用 HandlerFunc 的手段. 最近我想到用代码生成来做这个功能, 这样就没有反射带来的性能问题, 顺便玩一下 go 语言元编程.

使用该工具后, 接口处理函数将变成下面这样:

func TestHandler(ctx *gin.Context, request *param.Request) (*param.Response, error)  

这个工具可以生成一个包装函数, 帮你做那些无聊的操作, 比如创建请求参数结构体, 绑定请求参数, 绑定响应, 校验参数等等之类的, 生成的包装函数再调用这个函数处理真正的业务, 设置路由的时候改成生成的包装函数即可.

安装

这个是一个工具, 不会依赖到项目, 如果出现找不到命令, 记得添加 gopath/bin 目录到环境变量.

go install github.com/dengzii/genx 

效果

使用 genx 后, 我们的 API 处理函数就变成下面这样子了, 函数第二个参数就是请求绑定的结构体, 返回的分别是响应体和错误, 所有参数都是可选的, 但是顺序不可变, 可选指针, 例如没有请求参数则去除第二个参数即可.

//go:generate genx handler func TestHandler(ctx *gin.Context, request *param.TestRequest) (*param.TestResponse, error) { // ... return &param.LoginResponse{Token: "token"}, nil } 

只需要给函数添加一行注释, 注释没有要求必须是函数注释第几行, 注意 // 后面没有空格, goland 左侧就会出现一个运行按钮, 也可以在包目录下执行 go generate 命令或者 genx, 工具会扫描当前包下所有带有该注释的函数, 并且以文件做划分生成对应的绑定参数代码.

//go:generate genx handler 

生成后的代码大概如下

func GenxTestHandler(ctx *gin.Context) {    req := &param.LoginRequest{}    _ = ctx.BindJSON(req)    resp, err := TestHandler(ctx, req)    if err != nil {       ctx.JSON( http.StatusBadRequest, gin.H{"error": err.Error()})       return    }    ctx.JSON( http.StatusOK, resp) } 

之后我们绑定路由的时候就在原函数前加一个 Genx 前缀即可

计划

目前只支持最基础的功能: 绑定参数, 校验什么的都还没有, 暂时只支持 gin, 不知道大家对这个小工具的看法如何, 欢迎在评论区发表你的看法.

  • 生成 api handler func 绑定函数
  • 生成绑定 json 请求参数到结构体
  • 生成绑定 json 响应
  • 支持定多种参数类型(Query, Form 等)
  • 支持 gin 外的 web framework
  • 自定义校验器支持
  • 生成公共响应包装
  • 参数校验
  • 错误处理及自定义处理过程

github: https://github.com/dengzii/genx

觉得不错的话 star 一下吧, 任何想法都可以在 issue 中提交.

在 then 中末尾返回 Promise.resolve(),为什么改变了进入微任务队列的顺序呢?

Posted: 13 May 2022 01:38 AM PDT

code

对于上述代码,我的理解:

  1. 第 4 行.then方法所属对象已经resolved,所以 5 ~ 20 行代码进入微任务队列
  2. 跳转第 21 行,.then方法所属对象pending中,所以将 23 ~ 25 行加入第 5 行函数返回值对象的PromiseFulfill属性中
  3. 同步代码结束,从微任务队列中取出 5 ~ 20 行代码执行
  4. 6 ~ 8 行创建一个 resolved Promise 对象,所以 10 ~ 12 行代码进入微任务队列,14 行的then会将 15 ~ 17 行的代码加入第 9 行函数返回值对象的PromiseFulfill属性中
  5. 5 ~ 20 行代码执行结束,所以第 5 行返回的期约对象落定为resolved,因此将 23 ~ 25 行加入微任务队列
  6. 目前微任务队列中有两个任务,10 ~ 12 、23 ~ 25 ,在执行 10 ~ 12 后(打印 333 ),15 ~ 17 被加入微任务队列,然后执行 23 ~ 25 (打印 555 ),然后执行 15 ~ 17 (打印 444 )

实际输出和我上述的理解是一致的( 333 、555 、444 )。

按照 JavaScript 高级程序设计(第 4 版) 330 页的说法:

OraO41.jpg

如果没有显式的返回语句,则 Promise.resolve()会包装默认的返回值 undefined 。

那实际上面例子中 5 ~ 20 行代码,是没有显式的返回语句的,按照我的理解,就相当于执行了 19 行的return Promise.resolve(),但是当我取消注释 19 行后,输出结果变成了 333 、444 、555 。结果和我已经形成的理解不一致,想不太明白,还请各位老师帮助答疑解惑,万分感谢。

Windows Defender 误报 VMware 虚拟机磁盘文件为木马

Posted: 13 May 2022 01:31 AM PDT

VMware Player 内的虚拟机重启的时候,WD 突然报木马,然后删了我的虚拟机磁盘文件之一,导致 VMware 重启失败。

虚拟机和宿主机都是 Win10 21H2

见图:

感觉有点……不可理喻。

有没有 Android 的套壳 webview 开源项目?

Posted: 13 May 2022 12:21 AM PDT

打算做一个手机版 web 页面,需要在手机上以 APP 方式呈现,APP 作为一个浏览器壳子,内核尽量支持比较新的 html 标准。 但是不会 Android 开发,想找一个类似脚手架或是基本开箱即用的开源项目

vue 项目实战

Posted: 12 May 2022 08:39 PM PDT

  • 我看到 B 站上面大部分的 vue 项目实战的源码都需要付费,不知道 v 友有推荐的入门项目实战吗?

开源个自用服务监控,然后使用云函数下发模板消息通知的小脚本

Posted: 12 May 2022 07:14 PM PDT

限制比较多,首先你需要一个认证过的服务号和一个已上线的小程序。

没做工程化,纯能跑就行。

https://github.com/iKeepLearn/nodeScript

各种语言,软件,系统的国内镜像,收藏这一个仓库就够了: Thanks-Mirror

Posted: 12 May 2022 06:28 PM PDT

做了一个整理各语言包管理器:Thanks-Mirror

各种软件以及系统镜像的优秀国内镜像的项目,里边记录了 go ,maven ,node ,python ,yum ,Jenkins ,Docker ,CentOS 等等很多的镜像,方便运维做内部企业私服,以及开发直接配置使用,感兴趣的同学欢迎来围观!

No comments:

Post a Comment