Sunday, November 28, 2021

V2EX - 技术

V2EX - 技术


关于 adguard 和 clash

Posted: 28 Nov 2021 09:42 AM PST

家人们 我设置了安卓的 adguard 和 clash 现在可以共存了,但是这样会不会影响 clash 里面的白名单 因为我刚才看 clash 的白名单那个已经失效了 第一次用

Google 英文搜索也被内容农场污染的差不多了

Posted: 28 Nov 2021 09:17 AM PST

平常一直只用英文搜索 Google, 但是今天搜了点东西发现英文搜索也变成内容农场的形状了.
比如搜索: python os.rename force overwrite
会得到以下结果: 搜索结果

继中文搜索沦陷之后, 英文搜索也沦陷了. 各位 V 友有无对策?

如何有效防止脱发 或者怎么补救

Posted: 28 Nov 2021 09:07 AM PST

昨天和一众长辈吃饭

亲戚指着我的发际线说:"这几年看样子 xx 吃了不少苦啊"

感觉扎心了。

酒到酣处,甚至有点不是滋味。

对比一下 4 年前,这发际线真的是上移了太多了吧。

想去植发,但不知道效果怎么样。有没有朋友植了发的案例分享一下啊? 自己之前也是不太在意。

关于数据验重的问题

Posted: 28 Nov 2021 08:44 AM PST

场景:批量新增,批量修改,对某个字段进行数据库验重,需要将重复的数据标记出来。
这里考虑到一个问题,修改的时候,可能会出现两条数据的字段值互换。

Golang 的包管理一定要下下载到 GOPATH 中, 再导入到 Vendor 目录吗?

Posted: 28 Nov 2021 08:03 AM PST

Golang 包管理的疑问. 目前的创建项目的顺序是: go mod init

把可能需要的包都 go get 下载. 编写主文件. go mod tidy

go mod vendor

请教, 应该是什么样的姿势? 我希望是直接把项目依赖安装到项目目录中... 比如 npm i xxx 或者像 python 那样有个虚拟环境?

给大家看一个我上了当的 Steam 诈骗网站

Posted: 28 Nov 2021 07:05 AM PST

https://5earenas.com/

有一说一这个网站做的很有创意,通过好友信息让你帮忙投票。我没注意就输入账号密码和令牌正常登陆了,还好有令牌,马上反应过来后修改了密码。建议大家一定要绑定手机令牌啊!

PS. 不知道在这种页面中登陆后的 cookie 不知道是否会被用来做坏事,目前 PUBG 、CSGO 、库存还没看到什么异常。

nodejs 有哪些好用的增删改查框架?

Posted: 28 Nov 2021 07:03 AM PST

后端的功能是服务管理,有几十个增删改查的接口,很多接口都有时间、IP 、备注等参数,有些是必须有些是可选。如果每个接口都手动判断参数是否存在、长度是否正确、格式是否合法,写起来很累赘。最后还要数据库执行,很多接口需要分页,手动实现 SQL 也很累赘。

有没有简单易用的 nodejs 框架可实现上述提到的功能,例如参数自动校验,只需事先定义参数格式即可。分页等功能也能自动加上。

推荐个第三方群晖助手 APP

Posted: 28 Nov 2021 06:35 AM PST

看上去跟群晖 DSM 界面整合的还蛮好,没啥认知与学习成本,安装即上手。

https://toscode.gitee.com/apaipai/dsm_helper

各位 Gopher 大佬,贵公司团队开发使用的 Go 生态的相关工具、库包有哪些啊

Posted: 28 Nov 2021 05:27 AM PST

在昆明,个人公司只有两个人写 go ,使用的 gin+gorm 写 http 接口,多个服务之间调对应服务的 http 接口了,部署是打包成 image, docker compose 管理

个人目前在学习 k8s ,grpc, 之前也看了一些 go-mico go-zero 等

想了解下主流的多人开发的大概使用的技术栈 工具 或开发架构大概是什么样的,是使用上面的一些微服务框架, 还是直接基于 grpc 等自己封装 自己造?

关于 vue3 封装的问题

Posted: 28 Nov 2021 04:06 AM PST

我想封装一个prompt的功能,

<template> <a v-if="!o_visible" @click="o_handle_visible">{{o_label}}</a> <a-modal      :title="o_title"     :ok-text="o_ok_text"     :cancel-text="o_cancel_text"     @ok="o_handle_ok"     v-model:visible="o_visible" >     <a-input v-model:value="o_value" /> </a-modal> </template>  <script> import {ref, defineComponent} from "vue"; import { message } from 'ant-design-vue'; export default defineComponent({     name: 'p_prompt',     props: {         label: {             type: String         },         modal: {             type: Object         },         record: {             type: Object,         }     },     setup(props) {         let o_title = props.modal.title || "请输入谷歌验证码";         let o_ok_text = props.modal.ok_text || "提交"         let o_cancel_text = props.modal.cancel_text || "取消"         let o_visible = ref(false);         let o_value = ref("");         let o_label = props.label          let fn_reset = () => {             o_value.value = ""         }          let o_handle_visible = () => {             o_visible.value = true;         }         let o_handle_ok = async () => {             let ret = await props.modal.handle_ok(props.record, props.modal, o_value.value);             if(ret) {                 message.success(props.modal.success_text || "操作成功");                 o_visible.value = false;                 // o_value.value = "";                 fn_reset();                 return;             }         }      // __export__     return {         o_title,         o_ok_text,         o_cancel_text,         o_visible,         o_handle_visible,         o_value,         o_label,         o_handle_ok,     }     // __end_export__      } }) </script> 

这是代码

但是问题是 <a v-if="!o_visible" @click="o_handle_visible">{{o_label}}</a> 这个东西我像做成 slots, 但是做成 slots,怎么触发 o_handle_visible 事件呢 我就想和 popconfirm 一样的使用体验

<a-popconfirm     title="Are you sure delete this task?"     ok-text="Yes"     cancel-text="No"     @confirm="confirm"     @cancel="cancel"   >     <a href="#">Delete</a>   </a-popconfirm> 

大佬我该怎么封装呢?请指点下,我 vue3 菜鸟

请教一个 MySQL 死锁问题,先 delete 再批量 insert 引发的死锁

Posted: 28 Nov 2021 03:26 AM PST

隔离级别是 RR ,这里 c_id 是一个普通索引,(c_id, d_id) 是一个唯一索引。

transaction1 transaction2
BEGIN;
delete from demo where c_id = 'abc';
Query OK, 0 rows affected (0.00 sec)
BEGIN;
delete from demo where c_id = 'xyz';
Query OK, 0 rows affected (0.00 sec)
insert into demo (c_id, d_id) values ('abc', '111'), ('abc', '222'), ('abc', '333');
WAITING
insert into demo (c_id, d_id) values ('xyz', '444'), ('xyz', '555'), ('xyz', '666');
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction

最终事务 1 被回滚了。

死锁的日志关键字:

(1) WAITING FOR THIS LOCK TO BE GRANTED lock_mode X locks gap before rec insert intention waiting (2) TRANSACTION: TRANSACTION 947943174, ACTIVE 0 sec updating or deleting mysql tables in use 1, locked 1 (2) HOLDS THE LOCK(S): RECORD LOCKS space id 899935 page no 578533 n bits 200 index c_id_index of table `demo` trx id 947943174 lock_mode X (2) WAITING FOR THIS LOCK TO BE GRANTED: lock_mode X locks rec but not gap waiting 

原因基本很明确:应该是两个 delete 同时获取了 gap 或 next_key 锁,然后因为不存在记录,导致锁的范围很大,甚至是一个 ∞ 的区间,同时 insert 语句无法获取插入意向锁,并互相等待引发死锁。(这样理解对吗)

那么解决方案是什么?

不能改变隔离级别。

是否先查一下要删除的条件有没有记录,如果有,再执行删除。这样是否就可以了。

Thank you!

ddos 攻击现在少了吗?

Posted: 28 Nov 2021 12:57 AM PST

以前谷歌搜索 bot ,一大堆提供服务的,现在基本搜不到,而且很久没听说谁被攻击了。。。

gcp 哪个区最稳定

Posted: 27 Nov 2021 10:33 PM PST

试了下 gcp vps ,亚太地区非常不稳定,美区打开反应慢,出口带宽低。

初学 Android,请问下这段监听网络变化的代码在 Android 11 如何变得有效?

Posted: 27 Nov 2021 08:32 PM PST

我是在教程看到的,但是我在 Android 11 上发现不起作用了,没有报错,但是也没有达到预期的效果

public class MainActivity extends AppCompatActivity {     NetReceiver netReceiver;     @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          netReceiver = new NetReceiver();         IntentFilter intentFilter = new IntentFilter();         intentFilter.addAction("android.net.CONNECTIVITY_CHANGE");         registerReceiver(netReceiver,intentFilter);      }      @Override     protected void onDestroy() {         super.onDestroy();         unregisterReceiver(netReceiver);     }      public class NetReceiver extends BroadcastReceiver{         @Override         public void onReceive(Context context, Intent intent) {             Toast.makeText(context,"网络发生变化",Toast.LENGTH_LONG).show();              Log.e("mylog","网络发生变化");         }     } } 

我尝试在 AndroidManifest.xml 中添加权限,也是没有效果

     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />   

Github 趋势榜 , 大家认为容易上吗?

Posted: 27 Nov 2021 07:07 PM PST

我前几天创建的,刚刚看,居然在趋势榜上。惊喜呀。

qushibang

想找可以用来托管订阅/配置的服务 QAQ

Posted: 27 Nov 2021 06:30 PM PST

为什么会有这种需求呢?

是因为,我最近开始使用 quan X 了,然后自己做了一个配置,然后托管在 github 的私有库上了,但是这个配置的 raw 的访问是需要 token 的,而这个 token 是临时的,每过一段时间就要更新.

如果放在公有库的话,又因为我把机场的订阅也内置在配置里了,怕被盗用.现在就很矛盾...

想找一个在托管文件的网站,它需要支持直链,而且这个直链不会变更(我对文件的修改不会影响链接),同时又不是公开的.

各位帅气的小哥哥,小姐姐有没有解决的思路或者推荐的方法呢 QAQ

PS:最好是可以提供一个固定的直链和一个不需要太大的存储空间,可以随意的更改直链所链接的文件.
或者想 github 一样的私有库,但是提供了可以永久访问的直链...
( •̀ ω •́ )✧

google play 余额只能在美国使用?

Posted: 27 Nov 2021 01:04 PM PST

如题,有什么办法?有朋友在美国吗?帮忙登录一下 google play 试试

Python 版 switch 尝鲜

Posted: 27 Nov 2021 11:36 AM PST

def handle_input(self, key_event: event.Event) -> None:     for menu in self.menus:         menu.handle_input(key_event)      if key_event.type == pygame.KEYDOWN:         match key_event.key:             case pygame.K_w | pygame.K_UP:                 self.select_menu_key -= 1                 if self.select_menu_key < 0:                     self.select_menu_key = 0                 self._key_menu_select_handle()             case pygame.K_s | pygame.K_DOWN:                 self.select_menu_key += 1                 if self.select_menu_key > len(self.menus) -1:                     self.select_menu_key = len(self.menus) -1                 self._key_menu_select_handle()  

我的 vim 配色还没发识别这个最新的语法😅

FCM 有 IPv6 的推送服务器了

Posted: 27 Nov 2021 10:45 AM PST

观察了几天,有时候是 v4 的服务器地址,有时候是 v6 的地址,貌似 v6 的延迟比较大。 v6.jpg

一个诡异的问题

Posted: 27 Nov 2021 07:50 AM PST

艹,调试了一整天为什么我自定义的 axios config 不生效,最后晚上看 axios repo 的 pull request 发现是我用的那个 axios 版本自定义 config 有 bug

不懂就问, go 不是没有运算符重载吗,为什么 map 可以通过下标访问,数组比较可以用==

Posted: 27 Nov 2021 06:47 AM PST

m:=make(map[int]int) m[0]=0 //map 可以通过下标访问元素 
a:=[]int{1,2,3} b:=[]int{1,2,3} fmt.Print(a==b) //true 

Java 新手求救, jackson 反序列化, TypeReference 里面的内容还有泛型, 怎么解决?

Posted: 27 Nov 2021 05:08 AM PST

omwfYV.png omwXY6.png 这个位置怎么样才能实现动态性啊

omwxSO.png 框住的 extra 一共这么多种类型,全部继承自 AbstractExtra, 这些类实际上没有共同性, 只是为了方便,限定是 extra 我可以根据 cmd 去选择其中一个 extra 子类, 但是不知道 java 的语法怎么写

om0Cmd.png 我写了个测试, 我固定写一种 extra 的类型是可以顺利运行的, 现在是完全不知道怎么动态

XDM, gcp 突然识别我的出国小机子有挖矿行为怎么办?

Posted: 27 Nov 2021 02:07 AM PST

这个机子用了好久了,一直没问题,前天突然警告一次被停了,我删了机子重新部署,用了不倒两天 又被停了
https://s3.bmp.ovh/imgs/2021/11/f5dddbc51f3658cb.png

No comments:

Post a Comment