Monday, June 20, 2022

V2EX - 技术

V2EX - 技术


淘宝居然良心了一回

Posted: 20 Jun 2022 07:11 AM PDT

可以用网页版跟商家聊天了,而且聊天框很好用,UI 简洁,消息也跟 APP 实时同步。

electron-vue 用 nedb 持久化存储,找不到持久化文件

Posted: 20 Jun 2022 07:08 AM PDT

nedb 配置如下:

import Datastore from 'nedb' import path from 'path' import { remote } from 'electron'  export const saledb = new Datastore({   autoload: true,   filename: path.join(remote.app.getPath('userData'), 'data1.json')   // 路径打印出来是 C:\Users\Administrator\AppData\Roaming\Electron\data1.json   // filename: 'D:\\data\\data1.db' }) 

filename C 盘路径和 D 盘路径都试了,都找不到持久化的文件,困惑啊,求解。

安卓手机弹窗漏洞

Posted: 20 Jun 2022 07:08 AM PDT

具体表现就是手机使用过一段时间就弹出全屏广告,要等一段时间后才能关闭。

端午的时候回家,老爸的手机出现上述问题,拿手机过来后,在桌面发现了一个不认识的 App ,卸载后手机恢复正常。

后面姑姑说她手机也出现了类似的问题,拿到手机后发现桌面并没有什么奇怪的 App ,以为隐藏了去应用管理找也没发现奇怪的 App ,再次翻应用列表时发现,应用"文件管理"图标不太对(用过一段时间的 EMUI ,要不还真发现不了),点击进入详情,发现可卸载,卸载后手机恢复正常。

上面两个 App 我都检查过都没有悬浮窗的权限,手机内有悬浮窗权限的应用比较敏感的只有快应用,猜测是不是利用了快应用的什么漏洞,毕竟今年 2 月差评君发过一篇文章《安卓手机上的这个功能,终于也被广告沦陷了》。(我在差评君微信搜索这篇文章,结果被删了,看来还是解决提出问题的人容易🐶,不过百度搜一下还是有完整文章的)

刚重新阅读了一下差评君的那篇文章发现广告的展示逻辑基本一致,猜测广告展示逻辑是流氓 App 唤起快应用,这个快应用就展示全屏的广告,跟悬浮窗关系不大。由于长辈的手机都是用的底部虚拟按键,全屏时无法调出任务列表和回到桌面,关闭广告时该快应用也被关闭了(或者快应用可以在任务列表隐藏),所以很难定位流氓 App 。

前天在虎扑见有人说这个问题,才意识到这个问题是比较普遍的问题,而且很影响正常使用,所以整理了下我知道的信息想来 v2 讨论一下。

发这个贴的目的是希望大家遇到类似的问题知道怎么处理,毕竟隐藏的还是比较深的,还有看下能不能从技术方面讨论一下相关的实现原理。最好别把话题歪到 iOS 和鸿蒙上。

另外 360 那么牛的嘛,找不到问题的时候我也用了荣耀自带的安全管家扫描了一下,并没有什么用。

k8s 裸机配置时那么多的 node、pod、service、PVC、PV 配置文件,都是硬记下来然后手写?还是说一般都是用到了去查?或者说普遍使用 GUI?还是说普遍不用裸机配置都是上云?

Posted: 20 Jun 2022 07:03 AM PDT

这两天看完了 @balabalaguguji 的 docker 教程,点了下主页发现有 k8s 的教程

说实话他的 docker 教程讲得很简单也很明白,所以就顺着去看 k8s 了,

就产生了这样的疑问

> 实际生产环境下是普遍可视化操作还是说仅需要了解即可  > 用到了再去查相关资料? 

用主 PC 做 NAS 有哪些坏处?

Posted: 20 Jun 2022 07:02 AM PDT

我家里的情况,有一台游戏电脑,一台 8 盘位 DIY NAS ,NAS 对我来说的主要作用就是一个 Plex 服务器。

最近我想升级电脑和 NAS 的时候突然想到,我为什么不能让他俩二合一呢?

一台 24 小时开机的高性能游戏电脑,配一个 8 盘位的 ATX NAS 机箱,这不就是 PC/NAS 二合一吗? NAS 系统能做的,windows 似乎也都能做啊。省钱省空间,性能还更强,维护似乎还更方便了。

这么一想,单独的 NAS 似乎没有什么存在必要啊,唯一的好处似乎就是省电,但待机状态下的高性能电脑应该也用不了多少电,能不能省电都不一定啊。

想问问各位大佬,平日开发异常是怎么处理的。

Posted: 20 Jun 2022 07:01 AM PDT

曾经写了一段代码,在最逻辑外层捕获了空指针,因为内部逻辑出现空指针一定是数据查不到导致的异常,所以方便处理,我统一在最外层捕获空指针打印 xxx 数据查不到的日志。结果被项目总监拿出来吐槽了。说空指针为什么要去捕获他。让我调整这段代码。然后我就得在内部逻辑判断多个 if 语句去 isEmpty 判断是否为空。。

就是想了解下,我原先这种处理方式是不合适还是异常本身就不应该去捕获再做逻辑判断。

JD 首页秒杀抢购 Python 脚本

Posted: 20 Jun 2022 06:46 AM PDT

代码地址:

https://github.com/geeeeeeeek/jd_qianggou

使用步骤:

第一步:获取 cookie

登录 pc 版 JD 商城,进入购物车,打开控制台,查看接口 https://api.m.jd.com/api?functionId=pcCart_jc_getCurrentCart 的 cookie ,填入 cookie 的输入框

第二步:获取商品 id

找到需要抢购的商品,查看详情,可以看到浏览器的 URL 为 https://item.jd.com/xxxxxxxx.html , 复制 xxxxxxxx 填入商品 ID 框,

第三步:设置抢购时间和数量

抢购时间需要格式设置,格式为 yyyy-MM-dd HH:mm:ss ,如 2022-05-02 12:00:00 。数量可随意设置,但需要考虑到店铺的库存以及是否设置为限购 1 件。

第四步:开始抢单

这个时候可以泡一杯茶,静待好事发生。

即可

Python 使用 http 代理访问 https 网站报 407 错误

Posted: 20 Jun 2022 06:43 AM PDT

最近使用Pythonrequests库进行 API 访问,使用了http代理,访问http请求正常,但是在访问https请求的时候,会提示 407 状态(Tunnel connection failed: 407 Proxy Authentication Required),请教各位网友有遇到类似问题吗?如何解决的,感谢。 Python 的测试代码如下:

proxy = 'user:pass@xxx.xxx.xxx.xxx:1080' proxies = {     'http':'http://' + proxy,     'https':'https://' + proxy } url = 'https://api.ipify.org/?format=json' res = requests.get(url=url,proxies=proxies) 

已经排除的问题:

  • 1 http代理没有白名单,用户名密码都是正确的;
  • 2 使用curl -x user:pass@xxx.xxx.xxx.xxx:1080 https://api.ipify.org/?format=json来访问https地址,能正常工作;
  • 3 将上述Python代码中的 'https':'https://' + proxy的第二个https修改为http,也是无效;
  • 4 使用gostv2ray来转发这个http代理,然后用Pythonrequests来访问gostv2ray的监听端口,也是能正常访问https的。

周末用旧电脑做了一台 nas,感觉相当的简单

Posted: 20 Jun 2022 06:41 AM PDT

618 换了 12700k ,淘汰了原来的 AMD 4750g ,本来打算出掉但是咸鱼挂了 2 天没人要,刚好看到 nas 热帖就打算自己做一台。

首先是安装 pve ,非常简单,就跟用 u 盘安装 Windows 一样,不停的点下一步就好了。
然后在 pve 安装了 Windows 10 LTSC 2021 ,也挺简单的,有驱动不认但是 pve 网站提供了下载。
再就安装了黑群晖,这个稍微麻烦一点,去论坛找了下最新的引导和教程,加上安装也就花了 10-20 分钟吧,出了一点小插曲,安装的时候忘了断网导致黑裙无法初始化,很快就解决了。

整个机子我是插在小米的 wifi 插座上可以实时监控功耗,由于目前 16t 的硬盘还没到,所以群晖啥也没装,就只安装了 Windows 上常用的下载软件,大概测试了一下功耗。

只开启 pve ,15-16w
然后打开黑裙(给了 4 核 8g 内存),16w
再然后打开 Windows10 (给了 16 核 8g 内存),20w-25w 之间
再打开阿里云盘全速下载( 300m 宽带,35MB/s ),35w 左右

后期加上 16t 硬盘,平均按照 30w 来算吧,一年就是 260 度电,0.65 一度电要花 168 块钱电费。

这还没算上硬件成本,算性价比感觉还不如买云盘会员呢,一年也是这个数,唯一的好处大概就是好玩吧。

go 程序进程权限的问题

Posted: 20 Jun 2022 06:36 AM PDT

因为我的软件需要创建虚拟网卡, 软件就需要 root 权限运行。 有个需求可以读取 macosx 的剪贴板, 这个时候坑就来了, 发现 macosx 的剪贴板做了用户隔离的,root 用户读取不到普通用户的剪贴板。 这就形成了一个死局。哈哈, 这个坑是苹果出来的。

  1. 我想知道能不能够实现一个 go 程序,能够隔离出运行的权限。 把某一段代码的权限降级成 user 用户, 而创建网卡的程序为 root 用户?   2. 有 Macosx 在 root 用户无法获取剪贴板, 大家有什么好的方案吗?             刚才我已经给 https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard 仓库的 2 位开发者发邮件了,不知道能不能获得他们的帮助。 哎,哎,哎。 

MacOSX- pasteboard readme 文件。

   The pasteboard service in Mac OS X is registered in a "bootstrap namespace" (see Apple's [TN2083][9]). The namespaces exist in a hierarchy: "higher" namespaces include access to "lower" namespaces. A process in a lower namespace can not access higher namespaces. So, all process can access the lowest, "root" bootstrap namespace, but only processes in a higher namespace can access that namespace. Processes created as a part of a Mac OS X login session are automatically included in the user's "per-user" bootstrap namespace. The pasteboard service is only available to processes in the per-user bootstrap namespace. 

为什么我在原型中添加属性没有生效?

Posted: 20 Jun 2022 06:25 AM PDT

我是按照 MDN 教程敲得 迷茫中 Xxd1N8.png XxaI6s.png

CSDN 为什么一直被骂还一直变大

Posted: 20 Jun 2022 06:00 AM PDT

刚看到 88 块 VIP ,是谁给普信 CSDN 的勇气?当然应该还是足够多的(XX)用户基数吧。。。
几乎所有人都在感叹 CSDN 这么些年来的衰落,一步步变成了自己最讨厌的样子,内容逐渐屎化,但是这并不妨碍他内容的渗透面逐渐扩大,赚更多的钱。

本站对 CSDN 的抱怨贴也是长期月经年经,搜索关键字也是清一色的臭骂贴,但为啥人家在屎坑里游泳怡然,甚至还边游边开了香槟,日子一天比一天更好了。

虽然感觉这样的发展是极其不健康,对社区也是一种毒害,但是劣币驱逐良币就正在发生,对此各位有啥想法呢?

另外,有没有任何可能性来消灭脓疮,迫使社区进入良性循环呢?而不是简单的 block ,当然,这对个人是最快消除影响的办法。

iconfont 一直不能上传,迫于项目压力,用 eggjs 快速搞了个本地部署版本

Posted: 20 Jun 2022 05:49 AM PDT

项目地址 ,github.com fyddaben/iconfontLocal

模仿 iconfont ,本地部署的 icon 生成平台,争取做到最小成本的过渡 主要转化模块,来自 @daipeng7/iconfont-webpack-plugin 支持多个项目

iStat Menus 家庭版车 20/人

Posted: 20 Jun 2022 05:41 AM PDT

刚开了个家庭版,有没有兄弟需要的? 20 CNY/人。

全志 A133 Android 10 系统启动后,如何把 /dev/block/mmcblk0p2 自动挂载到某个目录里

Posted: 20 Jun 2022 05:40 AM PDT

/dev/block/mmcblk0p2 是 boot logo 的存储位置,当安卓系统启动后,想动态的替换开机图片,目前 /dev/block/mmcblk0p2 存在,但是 mount 时失败。这方面的解决办法在哪里可以查到?

Neovim Java 开发环境

Posted: 20 Jun 2022 05:34 AM PDT

Neovim Java 开发环境

配置地址Neovim Java 开发环境

使用体验

已经使用此配置开发半年多了,基本功能都有,开发起来没有什么问题。如果你使用 maven 来管理项目(gradle应该也一样),目前配置体验非常不错。有代码补全,Code Actions反编译 Class, 查找依赖库 ClassDebug 等功能。手动编译,打包构建可配置.tasks.json(类似vscode tasks)执行命令。如果你喜欢终端下工作,欢迎尝试一下

使用插件

状态栏

大纲(依赖 LSP )

文件管理

搜索预览

T Chat 第四期「亚东 - 我在字节做 APM 」6 月 23 日晚 8 点开播

Posted: 20 Jun 2022 04:49 AM PDT

T Chat 第四期「亚东 - 我在字节做 APM 」 6 月 23 日晚 8 点开播

前言

"T Chat | 我在大厂做研发"系列直播活动第四期 6 月 23 日晚 8 点正式开播!

活动详情

入群报名

长按下图识别二维码添加官方助手,回复「加群」即可入群提前和讲师交流

B 站观看

长按下图识别二维码或点击阅读原文也可直接预约 B 站直播间本场直播

直播规划

T 技术沙龙联合老司机技术发起了 T Chat |我在大厂做研发 系列直播计划。邀请一线互联网大厂的研发专家,采用在线直播的方式,分享他们团队 or 个人的研发实践经验,帮助开发者更好地了解大型互联网公司团队的运作机制,以及研发专家们的最新动态。该系列直播计划至少做 24 期,从 2022 年 4 月 28 日起,每两周的周四晚上 8:00 - 9:30 进行,直播内容采用"30 + 60"的模式,即:

  • 前 30 分钟由讲师进行主题分享;
  • 后 60 分钟由主持人和讲师 1 对 1 交流,讨论一些大家感兴趣的话题。

直播规划一览

注:想看往期所有活动录播的请戳:我在大厂做研发总结

主办方简介

T 技术沙龙

T 沙龙,全称为 T 技术沙龙,是一个以促进开发者之间技术交流为目的的技术沙龙组织,成立后一直在定期举办各种面向开发者的线上 & 线下沙龙活动。从 2016 年 3 月份开始,在北京、上海、成都、杭州和深圳等地相继举办了 30 多场线下沙龙活动,同时也举办了多场线上活动。

老司机技术

老司机技术是一个由移动端技术爱好者组成的团体,致力于在技术内容传播的过程中创造更多的精品内容。也是这两年《 WWDC 内参》活动的主要组织者,GitHub 、公众号和掘金等平台均拥有广大的读者群体,2018 年至今共发布 200 期,各个渠道累计周报的阅读量达 600 多万次。

相关链接

请问一下,有什么办法能让本地打开的 pdf 文件进入全屏(浏览器),试过监听按键事件和鼠标事件都无效

Posted: 20 Jun 2022 03:57 AM PDT

就是希望能通过 JS 调用的途径来进入全屏(非 http 协议下),希望各位能提供一下思路

刚才差点酿成大错

Posted: 20 Jun 2022 03:45 AM PDT

一台 Dell 办公电脑台式机,一直用来当开发服务器的虚拟机,上面跑了 3 个 VM ,都是给当下开发团队使用的活跃系统

今天一早登上去看到 Dell 提示要更新两个啥驱动,趁着尚未开始工作的时间就想着给它升级了吧

于是就关闭 VM ,升级,重启

远程掉线以后 2-3 分钟发现机器还未重启,硬盘灯竟然不亮(电源灯亮)!

思索了 10 秒钟,贱贱的按了下电源键,发现无反应

突然感觉不那么简单,于是把显示器接上去,我靠!

这货竟然在更新 BIOS !!!

有惊无险逃过了一劫

大家引以为戒!

工作之余,会偶尔去面试吗?

Posted: 20 Jun 2022 03:44 AM PDT

工作了之后多数时间都是写普通需求,等再去面试,碰到各种原理性的东西,自己已经忘记了或者没去探究过。

突然感觉自己虚度了,如果要偶尔面试,该怎么行动?会不会被公司 HR 听到,把我开掉……

求推荐 Android 备用手机 2000 以下

Posted: 20 Jun 2022 03:43 AM PDT

主力水果机
想买个安卓能刷原生系统的手机,2000 以下。
大家有什么推荐的吗

两块 NVMe 固态, ECC 内存的独立服务器,上 ZFS 存数据可靠性会更高么?

Posted: 20 Jun 2022 03:38 AM PDT

因为服务对 CPU 性能的要求越来越高,上了两台 Hetzner 的 AX51-NVMe 来降低成本(配置都是 AMD R7-3700X 家用 CPU 两条三星 32GBECC 内存 两块三星 1TB NVMe 固态),目前两块硬盘是用自带的系统安装脚本组的软 RAID1 。听说用 ZFS 数据可靠性更高,请问 V 友有必要换么?(服务都在 PVE 虚拟机中,数据非常重要,目前已有每天凌晨同步 S3 桶备份,每周全量离线备份)

node 无法 curl 通 master

Posted: 20 Jun 2022 03:15 AM PDT

刚学 k8s, 准备将之前走 idocker 上部署的服务迁移到 k3s 上, 发现 node 无法连接 master, 找了好几天也不是知道原因, 特来求助

  • master 创建方式
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \     sh -s - server \     --docker \     --kube-apiserver-arg advertise-address=$master_ip \     --node-external-ip $master_ip \     --tls-san=$master_ip 
  • node 创建方式
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn \     K3S_TOKEN=$master_k3s_token \     K3S_URL=https://$master_ip:6443 \     sh -s - agent \     --docker \     --node-external-ip $node_ip 
  • master 查看 node

image-20220620172146808.png

目前问题:

我在 master 部署了 harbor 但是在 node 上无法访问 提示连接超时

image-20220620171952682.png

但是 ping 是可以成功的

image-20220620172600844.png

WeChatPlayer.exe 进程 CPU 占用过高

Posted: 20 Jun 2022 02:54 AM PDT

本人为了保留微信的历史聊天记录,专门弄了一个服务器,运行 Win 版的微信,24 小时小时运行。

这台服务器还同时运行了别的程序,别的程序都没问题,唯独微信出幺蛾子。只要运行微信,服务器的 CPU 占用就一直维持在 50%上下,关闭微信,服务器 CPU 占用马上就下降到个位数。最后定位出问题的进程为:WeChatPlayer.exe,使用 taskkill 命令强制结束此进程,服务器的 CPU 占用马上下降到个位数,但不一会此进程又会自动重启。

各位有没有遇到类似问题,如何破解?

加了两块 500G NVMe SSD,不组 RAID 怎么和原来 4 块 8T 硬盘一起使用

Posted: 20 Jun 2022 02:45 AM PDT

机器配置如下

  • 型号:威联通 TS-464C
  • 内存:16G
  • 硬盘:4x8T(西数红盘 plus)+2x500G (三星 980 )

硬盘组合几点背景和要求

  • 机械盘不想组 RAID ,有了 SSD 速度慢不了
  • SSD 可以用作加速盘或者中间层( Qtier 模式)
  • 任意一块硬盘坏了尽量不影响其他盘数据
  • 重要数据会定时冷备到其他地方,数据安全要求不高

目前对Qtier,单独模式静态卷 不知道怎么用,有没有小伙伴能指点下?

附几个系统截图

3861655655615_.pic.jpg 3871655655650_.pic.jpg 3881655655695_.pic.jpg 3891655655746_.pic.jpg

腾讯云轻量服务器有没有办法跨账号内网互联?

Posted: 20 Jun 2022 01:30 AM PDT

有几台轻量服务器,想内网互联做 K8S,但是在不同的账号下面的同一地域,有没有什么办法能内网互联互通?最好免费...

Win11 22h2 开始微软输入法为每个窗口独立保存中英输入状态,坑死了

Posted: 20 Jun 2022 01:13 AM PDT

一直用切换键盘布局来切换中英输入+打中文时按 shift 临时切换 IME 的全局中英文输入。

在 22h2 的某个更新(估计是六月更新)后微软输入法开始为每个窗口保存独立的中英输入状态:
开着输入法打开新的终端窗口,输入法的默认输入模式会切换回中文、
来回切换窗口无法判断输入状态。用起来特别难受。

请教下 yubikey 原理

Posted: 20 Jun 2022 01:03 AM PDT

yubikey 是一个硬件密钥。这里只讨论它的 PGP 智能卡功能。

目前来看,yubikey 是 write-only 的,即:私钥一旦导入,就无法导出。那么问题来了,它怎么实现加密(签名)的?

  1. 如果用了某种协议读取了里面的密钥。那是不是可以用这种协议导出密钥?
  2. 如果主机压根无法取得密钥,那谁执行的加密?难道是 yubikey 自己算的?
  3. 还是可以协商出一个临时密钥性质的东西,而这个临时密钥加密后,公钥也可以解密?(在我的 RSA 认知中,好像不能这样吧)

新版本 IDEA 如何处理控制台中文输出乱码的问题?

Posted: 20 Jun 2022 12:37 AM PDT

按默认配置安装了最新的 idea 社区版,创建了新项目,并创建了 hello world 文件( src/Main.java )只有这一个文件。按 Ctrl+Shift+F10 单文件编译执行正常输出 hello world ,但如果替换为中文则会显示乱码。

目前做了的工作:在 Settings 里把 File Encodings 相关全部调成了 utf-8,以及把 idea 目录下的 idea64.exe.vmoptions ,修改为结尾添加了

-Dfile:econding=UTF-8 -Dconsole.encoding=UTF-8 

经过以上两点修改后乱码问题仍无改善,请问应该怎么设置呢?网上资料大部分是旧版 idea 的,新版里不太适用

虚拟机共享网络,是不是端口转发就可以了?

Posted: 19 Jun 2022 11:56 PM PDT

主机 ubuntu ,虚拟机 win10 ,虚拟机设置端口转发 19180 转发到 19180 虚拟机里开了一个翻墙软件,软件端口 19180 ,但是这个软件不能设置局域网共享网络。 于是用 netsh 设置 netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=19180 connectaddress=127.0.0.1 connectport=19180 但是在 ubuntu 里还是没办法用虚拟机里的翻墙网络,该怎么办?

如何用非 root 用户通过 ip 这个命令创建 tap 设备?

Posted: 19 Jun 2022 11:50 PM PDT

用 root 用户执行以下命令可以创建 tap 设备:
ip tuntap add mode tap tap0

用普通用户执行会报错:
ioctl(TUNSETIFF): Operation not permitted

我用如下命令设置了 /usr/sbin/ip 文件的 capabilities 还是不行。
setcap cap_net_admin+ep /usr/sbin/ip

请教一下,在树莓派安装 emby 权限问题

Posted: 19 Jun 2022 11:09 PM PDT

安装 deb 包,用户 emby 。
硬盘挂载,/mnt/wd pi:pi 700 。
选择媒体库文件的时候,无法选择文件夹
改成 766 不行,pi:emby,也不行
新建一个组 gpiem,都附加到用户,pi:gpiem,也不行。
最后 chown emby:emby ,文件夹可以选择,媒体文件可以扫描。

但是 aria2 无法下载,samba 无权限读取了。
整晕了。

如何解析获取到的 multipart/form-data 数据?

Posted: 19 Jun 2022 09:10 PM PDT

用 axios get 方式,返回的是 multipart/form-data ,有什么办法能解析这数据? multer 行不行?

《C++服务器开发精髓》这本书怎么样,有更好的书推荐吗

Posted: 19 Jun 2022 09:02 PM PDT

网上对这本书的书评褒贬不一 个人感觉对有 C++基础、刚工作接触 C++后端开发工作的人来说,有一定帮助(可以少走一些弯路)涵盖的内容也较广。但作为一部"立意"这么高的书,还有很多需要继续完善的地方。 各位怎么看呢,有没有类似的书推荐?一本或 n 本

自己实现 cloudbase 的 api

Posted: 19 Jun 2022 08:53 PM PDT

现在有一个基于腾讯 cloudbase 的程序,迫于给 cloudbase 交份子钱的压力,想自己实现它提供的功能,比如使用 mongodb 和 springboot 来实现,不知道有没有碰到类似情况的 v 友传道解惑。

Python 去重问题

Posted: 19 Jun 2022 08:41 PM PDT

list1 = [{b: 1, c: 2}, {b: 2, c: 3}, {b: 3, c: 4},{b: 2, c: 1}]
list2 = [{a: 1, d: 0.1},{a: 2, d: 0.1},{a: 3, d: 0.2},{a: 4, d: 0.3},{a: 5, d: 0.1},{a: 6, d: 0.1}]

list1 和 list2 都是 DataFrame.

问题 1: list1 怎么把{b: 2, c: 1}这种数据范围重复的值去掉?
问题 2: 把 list2 中符合(a>=b and a <= b)的 d 字段 value 相加赋值给 list1[0]['d']


各位大佬帮忙解答一下或提供思路 谢谢了

独立产品灵感周刊 DecoHack #018 - 全球前 10 名最流行的网站变化

Posted: 19 Jun 2022 08:34 PM PDT

本周刊记录有趣好玩的独立产品设计开发相关内容,每周发布,感兴趣的伙伴可以点击订阅我的周刊。为保证每期都能收到建议邮件订阅。欢迎通过 Twitter 私信推荐或投稿。

产品推荐

1.Lapse - 这是一个电脑端的录屏工具,一键快速记录延时视频,买断制的工具产品,$25 美金。选择输出帧数 /尺寸 /格式 /画质。然后导出。简化了操作流程,这类产品还是非常不错的,用完即走的设计理念。

2.Wanderlust New Tab - 浏览器插件,新建一个网页就会随机展示一个景点的照片壁纸,没有其他任何功能。够极简。支持 ChromeFirefoxEdge

3.Wix Logo Maker - 最大的网站制作工具 Wix 出的一个在线制作 Logo 的工具,这类网站也是非常多,Google 一下 Logo Maker 可以找到很多,如果真的不是专业的设计师,还真的有可能用得到。同样,Wix 也做了 business-card-maker 名片制作工具。

4.goodpalette - 一个配色工具,很直观的预览样式非常方便,这个网站是可以配一些对比色,并不止是同色系的配色工具。之前有推荐过一个 UI Colors 这个配色工具是同色系的配色生成,非常和谐。

5.haus.fm - 喜欢电子音乐的可以看这个 FM 电台网站,专为电子音乐设计的音乐推荐引擎。可以收听由全球顶级艺术家唱片公司策划的电子音乐。

6.Avrora - Sleep Booster - 除了潮汐之外,还有很多冥想类型的产品,这个产品上线快三年时间,全球下载量近 1000 万,发达国家是主要目标市场,是一个解决睡眠问题为主的产品。让你养成更好的睡眠习,有丰富的内容:特殊呼吸技巧、冥想课程、睡眠故事、平静的声音等等。产品的界面非常简洁好看。有 iOSAndroid 端。

7.Sleep Reset - 冥想应用 Simple Habit 的创始人 Yunha Kim 最近推出了一款名为 Sleep Reset 的新应用,以帮助您改善睡眠。可以下载 AndroidiOS 。该公司决定采用不吃药改善睡眠的方法,并与亚利桑那大学、明尼苏达大学和斯坦福大学睡眠医学中心的专家合作开发其计划。

Yunha Kim 也是 Simple Habit 应用程序的创始人。五分钟冥想应用 Simple Habit 它已经筹集了 1250 万美元的融资,根据 SensorTower 提供的数据,Simple Habit 是 2018 年第三季度 iOS App Store 中第三大最受欢迎的冥想应用程序。该应用程序在下载量和收入方面仅落后于 Calm 和 Headspace .

8.Calendar Notification - 一个非常小的 APP ,功能就是在通知面板中永久以通知的形式查看日历和议程。可以设置查看一个月或一天。还有一些定制选项,简单说,它基本上就是在你的通知中放了一个小工具。

9.LaudableApps - 这个网站收集了很多小众又好看的 APP 。@laudable_apps

10.Grace - 使用 Apple 的 Screen Time API 构建的家长控制应用程序。家长可以直观的界面中远程配置各种屏幕时间控制,包括每日屏幕时间限制、应用时间限制、应用内购买限制以及阻止浪费时间的应用等。还可以创建屏幕时间表。在这里下载

这个 API 是去年在 Apple 全球开发者大会上推出的。新的 API 可以让开发人员创建一个与 Apple 内置工具配合使用的界面,可以有扩展功能。可以在这篇文章看看更多相关内容。

11.pfolio.site - 网站收集顶级设计师和开发人员的个人网站,可以在这里找找灵感和想法。

开源项目

1.awesome-readme-template - Github 上 README 的模版库,非常多。

2.Three.js 实现的粒子头骨网页 - Anderson Mancini 在 Three.js 中制作了这个交互式头骨。可以在 YouTube 上看他的开发过程,项目也是开源的。

3.plasmo - 自动部署浏览器扩展应用程序的框架。开源的

4.SwiftBar - 功能强大的 macOS 菜单栏定制工具。

随便看看

1.330+ Notion Resources - 这是一个关于 Notion 的资源列表,非常多相关的内容导航。

2.准爸爸的清单 - 给准爸爸看的书,付费电子书,还有戒烟工具箱书。

3.如何在生活和工作中获得更多控制权 - 花一些时间来反思和记录你希望在生活中拥有更多控制权的地方可以帮助你为未来设定目标。每周开始时设定一个小意图可以帮助您养成有目的地思考自己的需求的习惯。

4.1993 年以来最流行的网站变化 - 2022 年了,全球前 10 名最流行的网站中有 9 个在中国这片土地上无法正常访问。

5.Addy Osmani 分享了他在 Google Chrome 担任高级工程经理 10 年所学到的一些软件工程软技能。学习新事物,精通技术,批判性思考。

6.设计一个世界上最令人满意的复选框,这篇文章讲述了如何在产品设计中加入游戏感的艺术设计。设计过程的思考讲的很完整。

更多内容可以订阅我的周刊: 竹白订阅官网RSS 订阅Telegram 频道Twitter

github 的个人账号相关的服务挂了

Posted: 19 Jun 2022 08:28 PM PDT

个人头像下拉菜单显示 Sorry, something went wrong. 首页相关的仓库都更新记录都是 loading

咨询一个 ES 的问题

Posted: 19 Jun 2022 08:26 PM PDT

一个业务系统之前用的是 ES6.x 的,查询里的 filter 写的是

{   terms:{     eventName:[     "xxx"     ]   } } 

然后换了个 ES7.x 的版本 这个查询就查不到数据了 要改成

{   terms:{     eventName.keyword:[     "xxx"     ]   } } 

eventName 要改成 eventName.keyword 才有数据 请问这个查询怎么兼容,我翻了一下 es 的更新日志也没有发现相关的变更项

Python 下载文件并处理最佳实践是什么

Posted: 19 Jun 2022 07:56 PM PDT

我这边需要实现一个接口: 参数是

{"pdf_file": "http://myserver/somefolder/somefile.pdf"} 

输出是

{"key1": "value1", "key2":"value2"} ~~  PDF 文件为几页到几十页的文字  现在测试结果是 下载这个文件大约需要 5 秒 处理大约需要 5 秒  问题时如何加快这个过程?  网上搜到的一个例子是:   ~~~python class Job(BaseModel):     uid: UUID = Field(default=uuid4())     status: str = "in_progress"     result: int = None   jobs: Dict[UUID, Job] = {}   async def run_in_process(fn, *args):     loop = asyncio.get_event_loop()     return await loop.run_in_executor(app.state.executor, fn, *args)  # wait and return result   async def start_cpu_bound_task(uid: UUID, stream: io.BufferedReader, filename: str) -> None:     jobs[uid].result = await run_in_process(cpu_bound_func, stream, filename)     jobs[uid].status = "complete"   @app.post("/new_cpu_bound_task/", status_code=HTTPStatus.ACCEPTED) async def task_handler(req: InsurancePoliciesExtractionReqeust, background_tasks: BackgroundTasks):     new_task = Job()     jobs[new_task.uid] = new_task     ## 以下是我改动的     content = None     async with aiohttp.ClientSession() as session:         async with session.get(req.pdf_file) as resp:             if resp.status == 200:                 content = io.BytesIO(await resp.read())                 filename = os.path.basename(req.pdf_file)     ## 以上是我的改动     background_tasks.add_task(start_cpu_bound_task, new_task.uid, content, filename)     return new_task   @app.get("/status/{uid}") async def status_handler(uid: UUID):     return jobs[uid]   @app.on_event("startup") async def startup_event():     app.state.executor = ProcessPoolExecutor()   @app.on_event("shutdown") async def on_shutdown():     app.state.executor.shutdown() 

原生 Android 系统,当连接 WiFi 网络无法连接互联网时,如何自动用 4G 上网

Posted: 19 Jun 2022 06:01 PM PDT

原始 Android ,当连接 WiFi 网络无法连接互联网时,如何自动用 4G 上网。 小米华为等定制的 Android 系统都有类似的功能。4G 和 wifi 都打开连接时候,如果 WiFi 无法连接互联网,可以自动采用 4G 上网。 问题:原生 Android 系统有没有对应的方式啊,ps:没 root

我们开发一款 RabbitMQ GUI 客户端,一键生成拓扑图,或许值得一试

Posted: 19 Jun 2022 05:40 PM PDT

RabbitMQ GUI 客户端工具( RabbitMQ Assistant )

RabbitMQ 是一个开源消息代理软件(有时称为面向消息的中间件),它最初实现了高级消息队列协议 (AMQP),后来扩展了一个插件架构以支持流式文本消息传递协议 (STOMP) 、MQ 遥测传输 (MQTT) 和其他协议。RabbitMQ 服务器用 Erlang 编写。

平时用控制台或者网页进行管理不免有点不方便,尤其在读取消息的时候不支持过滤和批量发送消息,在此推荐一个漂亮的 GUI 客户端工具。

下载地址http://www.redisant.cn/rta


免费试用(如果用完,3 的倍数楼层可以私聊获取):

  • 10891ED2-7672-4742-BA53-C3CF75C4D67B
  • 1438F76A-987D-4CFA-BFA9-B56354507129
  • 1D740BAB-0AB5-40A6-8A5F-D2CA9BA4AD62
  • 430126DB-9698-4FB5-A458-64F5B1709C92
  • 81747048-2F8E-4B1E-AA6F-83D96F5E4E5F
  • 9A041D73-AE6B-4682-8505-0C24851EC246
  • 9A6BE227-7459-4378-87E6-2AB43CE2C4AE
  • AF2447EE-52EF-4838-8BB2-EACC524D7B18
  • BB965042-7819-4F3D-8CE8-64A51A0A8C31
  • E744B8A0-FA11-49AF-9551-6DC1D5B5800A

主要特点

生成拓扑图

为指定的 vhost 一键生成拓扑图,支持导出 png 、svg 、pdf 、tk 等多种格式,让您的消息流动一目了然。

生成拓扑图

数据格式化

RabbitMQ Assistant 会自动识别并格式化不同的消息格式,包括 Text 、JSON 、XML 、HEX 、MessagePack ,以及各种整数、浮点类型。

数据格式化

测试生产者和消费者

您可以测试解决方案的各个部分,模拟进出的第三方消息。您可以创建和编辑测试消息,一个接一个或批量发送

测试生产者和消费者

查看交换器上的绑定

查看交换器上的绑定

其他功能就不一一介绍了,有兴趣的可自行探索。

简单好用的推送助手

Posted: 19 Jun 2022 03:57 PM PDT

推送助手是什么?

推送助手是一个集成了电话、短信、邮件、飞书、钉钉、微信、企业微信等多通道的消息推送平台。

用户只需要调用一个简单的 URL ,就可以完成多通道的消息推送。

推送助手场景:

推送助手可以用来做登录短信验证、报警消息短信电话通知、重置密码邮件接收、飞书机器人、钉钉机器人、微信机器人等消息推送,可以满足不同渠道消息推送。

为什么选推送助手?

  • 使用超级简单:只需要调用简单的 url 就可以实现不同渠道的消息推送
  • 快速接入:不需要对接多种平台接口,一分钟实现短信、电话、邮件等推送能力,节省时间成本
  • 高效稳定:系统支持高并发、高可靠性,快速推送目标渠道

如何使用?

  • 1 、微信扫一扫注册用户
  • 2 、选择消息通道,创建消息模版
  • 3 、复制 URL ,发送消息

短信发送

注册用户 创建短信模版 拷贝 URL 发送短信 收到短信

群组是什么?

当你想把一条消息,同时推送给多个人时就可以通过创建群组功能,在执行 URL 时添加 group 参数就可以

创建群组 群发消息

关于推送助手

上海时巴克科技有限公司旗下的推送产品,公司旗下现有产品「 Spug 开源运维平台」「 Spug 推送助手」,公司专注为中小企业服务,推送助手帮助用户快速实现电话、短信、邮件、飞书、钉钉、微信、企业微信等多通道消息快速推送。

官网链接: https://push.spug.cc


更多资讯、视频、欢迎关注公众号"Spug 社区"

<center> </center>

两盘位群晖 basic 模式,升级其中一块硬盘的最佳方式是什么?

Posted: 19 Jun 2022 02:38 PM PDT

群晖 DS218+,2 块 4T 硬盘 basic 模式,套件 /docker/重要资料在硬盘 1 ,硬盘 2 存放电影剧集以及备份了硬盘 1 中的部分数据。

618 买了块大容量硬盘(价格太坑,还好有消费券),打算升级硬盘 2 (优先升级硬盘 2 吧?),请问最佳的方式是什么?网上搜了几个方法,不知道是否都可行。

1.拔硬盘 1 ,插入新硬盘,将旧硬盘 2 的数据直接拷贝到新硬盘,然后拔下两盘,插入硬盘 1 和新硬盘。

2.拔硬盘 1 ,旧硬盘 2 和新硬盘组 raid1 ,用新硬盘替换旧硬盘 2 ,恢复新硬盘 basic 模式。

3.电脑上做个黑群晖虚拟机挂载新硬盘,把旧硬盘 2 数据迁移到新硬盘。

Windows 上面到底有没有管理多文件不卡死的资源管理工具

Posted: 19 Jun 2022 01:57 PM PDT

如题,目前使用的是新版 12 代 U ,windows11 资源管理器查看 3K 个图片就卡死(开启了预览) 求一个跟手机相册一样,不用卡死的资源管理器或者图片管理器? 话说为了预览个图片还在应用商店花了 7 快买插件。

LeetCode 的 Java 题目,同样的数据,本地能过测试但是在线过不了

Posted: 19 Jun 2022 12:27 PM PDT

题目:

https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/

就是一个二叉搜索树,两个节点 p 和 q 找到最近公共祖先。这个树最大节点数目是 100000(虽然题目没说,但是我在美国 leetcode 里面找到了说明,而且在美国 leetcode 和这里提交,报错情况一模一样)

我的做法是先把这个树变成一个 index 为 1 对应 root 的数组vals,左子树 index 是 2*index, 右子树是 2*index+1 。

找到 p 的 index 是 pIndex ,q 的 index 是 qIndex ,然后在 boolean 数组visited里面把 p 的 parent 都标记为 true ,然后分析 q ,q 的第一个 visited 为 true 的地方就是最近的公共节点。

代码是这样:

class Solution {         public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {             if (root == null) {                 return null;             }             final int maxSize = 9000000;             int[] vals = new int[maxSize];             TreeNode[] nodes = new TreeNode[maxSize];             boolean[] visited = new boolean[maxSize];             var nodeStack = new ArrayDeque<TreeNode>();             var indexStack = new ArrayDeque<Integer>();             nodeStack.offerLast(root);             indexStack.offerLast(1);             int pIndex = 0, qIndex = 0;             while (nodeStack.size() != 0) {                 var node = nodeStack.pollFirst();                 var index = indexStack.pollFirst();                 vals[index] = node.val;                 nodes[index] = node;                 if (node == p) {                     pIndex = index;                 } else if (node == q) {                     qIndex = index;                 }                 if (node.left != null) {                     nodeStack.offerLast(node.left);                     indexStack.offerLast(2 * index);                 }                 if (node.right != null) {                     nodeStack.offerLast(node.right);                     indexStack.offerLast(2 * index + 1);                 }             }             while (pIndex >= 1) {                 visited[pIndex] = true;                 pIndex /= 2;             }             TreeNode answer = null;             while (qIndex >= 1) {                 if (visited[qIndex]) {                     answer = nodes[qIndex];                     break;                 }                 qIndex /= 2;             }             return answer;         }     } 

报错是:

java.lang.ArrayIndexOutOfBoundsException: Index 12694084 out of bounds for length 9000000   at line 21, Solution.lowestCommonAncestor   at line 55, __DriverSolution__.__helper__   at line 102, __Driver__.main 

也就是说,我在第一个 while 里面第三行 val[index] = node.val 时,index 超过了 900000.

但是我在本地测试同样的数据,没有任何问题,能给出正确答案。

从逻辑上说,这个测试数据集给出了 20000 个节点,也不可能让 index 达到报错里面所说的 12694084 。。。(很简单的逻辑。。。)

真不知道出了什么问题。。。

求教一个 sql 优化问题

Posted: 19 Jun 2022 10:02 AM PDT

使用了 nodejs 的 orm 库 sequelize ,在一条查询中生成了如下 sql ,

SELECT `Images`.*, `tags`.`id` AS `tags.id`, `tags`.`name` AS `tags.name`, `tags`.`translatedName` AS `tags.translatedName`, `tags`.`customName` AS `tags.customName`, `author`.`id` AS `author.id`, `author`.`name` AS `author.name`, `author`.`profileImageUrl` AS `author.profileImageUrl`          FROM (SELECT `Images`.`id`, `Images`.`title`, `Images`.`previewUrl`, `Images`.`totalBookmarks`, `Images`.`totalView`, `Images`.`originUrlJson`, `Images`.`authorId` FROM `imgStorage` AS `Images`             WHERE `Images`.`authorId` = 1096811              ORDER BY `Images`.`totalBookmarks`              DESC LIMIT '0', '30') AS `Images`      LEFT OUTER JOIN ( `ImagesTags` AS `tags->ImagesTags` INNER JOIN `imgTags` AS `tags` ON `tags`.`id` = `tags->ImagesTags`.`TagId`)      ON `Images`.`id` = `tags->ImagesTags`.`ImageId`      LEFT OUTER JOIN `Author` AS `author` ON `Images`.`authorId` = `author`.`id` ORDER BY `Images`.`totalBookmarks` DESC 

EXPLAIN QUERY PLAN SELECT 发现会触发 ImagesTags AS tags->ImagesTags 的全表扫描,随着数据量增加会变的非常慢
几乎所有涉及 通过 Images ImagesTags 关联 Tag 的情况下都发生
于是尝试在 ImagesTags 建立如下索引 [ImageId ,TagId],[TagId,ImageId],[ImageId],[TagId]
发现不管是都建还是分别只建一个都不生效
于是想问下,这种情况有办法通过建立索引来解决么?如果可以应该怎么建?
我现在通过,单独查出 Images 然后每一项单独通过 ImagesTags 查 tags 能极大的解决性能问题,但后面如果想再通过 tag 来过滤 Images 似乎会很麻烦..求解

No comments:

Post a Comment