Sunday, August 29, 2021

V2EX - 技术

V2EX - 技术


求推荐 Windows 下重装系统迁移工具

Posted: 29 Aug 2021 05:02 AM PDT

需要把电脑重装下,请问有什么推荐的迁移工具吗

有 IPv6 地址了,但是不能外网访问不了,兄弟萌,,帮我看看!

Posted: 29 Aug 2021 05:02 AM PDT

我是 ikuai+openwrt,成功开启了 ipv6,https://test-ipv6.com/检测通过,并且可以顺利的访问 IPv6 的网站,比如: http://hdtv.haust.edu.cn ,这是个纯 ipv6 的站

但是现在问题来了,通过手机 4G 网来访问家里的 ikuai,openwrt 的 IPv6 地址竟然访问不通,手机连接家里 Wi-Fi,同样的网址可以访问! 这是咋回事!

球大佬指点一下,现在的问题是,我可以访问别人的 IPv6,但是别人不能访问我!!!

我猜测有两个可能:1.运营商把我的 IPv6 编程的内网,没给 IPv6 分配公网权限。2.我的设置问题,具体哪里出问题了,不知道,大佬觉得哪里有问题可以指点一下 谢谢

抛弃 swagger? 这款零成本的 API 文档生成工具,已支持上传到 Yapi, Rap2, Eolinker 多个平台

Posted: 29 Aug 2021 04:51 AM PDT

Yapi X

造了个轮子,从源码解析标准 Javadoc 文档和 spring 注解生成文档, 上传到 YApi, Rap2, Eolinker, Copy as cURL.

重点!零学习成本,代码即文档,支持多种 API 管理平台

亮点!开箱即用,账户密码登录,易于二次开发

欢迎试用,喜欢的点个星星支持

想问一下 Java 大佬的开发环境, 对 Linux 的依赖大嘛?

Posted: 29 Aug 2021 04:50 AM PDT

我指开发环境

用 windows 的 IDEA?
还是 Linux 的 IDEA?
还是其他 IDE?
还是最近新出的 Code With Me?
还是 vscode + remote?

python 和 Go 都会遇到 windows 下不完美的情况.
譬如 Celery 现在已经不支持 windows 平台.
GO 的一些三方模块依赖 cgo, 需要额外安装 mingw.

不知道 Java 是否有类似情况?

谢谢.

vscode-stats-bar 在状态栏上显示 cpu 占用,网速,内存占用等信息

Posted: 29 Aug 2021 04:09 AM PDT

https://marketplace.visualstudio.com/items?itemName=njzy.stats-bar

https://user-images.githubusercontent.com/19601720/131216513-6e0d5619-4767-40aa-8c2d-782ee732d987.png

主要有以下特性:

  • 支持显示 cpu 占用,系统平均负载,网速,内存占用和启动时间
  • 支持自定义显示格式,顺序和优先级
  • 支持复制 ip 到粘贴板
  • 支持设置显示位置和刷新时间

准备学下 js,搜了一圈,发现 deno 并不怎么样

Posted: 29 Aug 2021 03:53 AM PDT

准备学下 js,因为感觉 js 来写一些命令行小工具还挺好的。

知道 node 生态很火,基本要啥有啥。 然后也知道前几年 node 的创始人,又搞了一个 deno,宣城要干掉 node,本着这个想法,我准备直接学 deno,结果发现 deno 也有好几年,很一般般。带着光环出生 deno,好像不太行的样子。

直接上 deno 的想法,1.新手,直接学新的,这样就可以和老手在同一起跑线,说不定自己就是下个大牛。2.如果 node 还有两三年就被 deno 取代了,那当然应该学新的啦。3.node_modules 黑洞被人调侃了无数遍,负面影响还是有的。

但现在看,好像应该学 node,比如生态在那儿摆起,很成熟、工程化完善。

为什么 make 有时加上 -j 选项就不打印错误了,去掉就打印了?

Posted: 29 Aug 2021 03:39 AM PDT

怎么才能不去掉-j 选项的前提下打印错误?

我发现熟悉 Linux 内核的话看 tlpi 就没那么难了

Posted: 29 Aug 2021 03:13 AM PDT

之前《深入理解 Linux 内核》《 Linux 设备驱动程序》《 Linux 内核设计与实现》各刷了差不多 3 遍,前一阵买的 tlpi 一直没看,这两天拿出来看,基本都能看懂了

Java 项目中对于单一的特定 DB 操作需要用 Service 层包装吗?

Posted: 29 Aug 2021 02:46 AM PDT

抛开 BaseService 这种封装了通用操作的类,对于一些特定的更新或查询

比如一个复杂的 SQL,但是只有一个接口会使用,这个时候是需要包装一层 Service,在 Controller 调用 Service,还是直接在 Controller 中注入 Dao 使用?(专业名词好像叫穿层??)

吐槽一下 snowflake,大家用的怎么样?

Posted: 29 Aug 2021 02:40 AM PDT

初步感觉就是快了些,但是看产品介绍总觉得他的功能 awsgcp 都已经有所实现了。这家优势在哪里呢?

各位大哥,有没有国外的爬社区分享一下?

Posted: 29 Aug 2021 02:33 AM PDT

关于 fish shell 的一个误操作坑

Posted: 29 Aug 2021 02:21 AM PDT

之前发现 fish bash 交互做的挺不错的然后打算用段时间,装完了后 chsh 改默认 shell,结果另一个员工把 fish 给卸了导致 root 用户无法进行 SSH 远程登录,后来经过一晚上的折腾进入 centOS 的安全模式后新增用户并赋予管理员权限才缓解过来...,有惊无险的一个 8 月 13 日晚上,主要是当时主机上有 Jira Software 而且开发商务什么的都还在用着

React Keyevent — 非常容易使用的一个键盘事件监听 react 组件,可实现各种自定义快捷键功能,只有不到 3kb

Posted: 29 Aug 2021 01:39 AM PDT

React Keyevent

npm version npm versionnpm version npm version npm version npm version

An easy-to-use keyboard event react component, Can achieve a variety of custom keyboard functions, Package size less than 3kb

非常容易使用的一个键盘事件监听 react 组件,可实现各种自定义快捷键功能,只有不到 3kb

repository-open-graph-template 副本

Repository

https://github.com/yuanguandong/react-keyevent

Live demo

https://react-keyevent.netlify.app/

https://yuanguandong.github.io/react-keyevent/

Install

npm i react-keyevent -S 

How to use

import React, { useState } from "react"; import Keyevent from "react-keyevent";  const TopSide = () => {   const [count, setCount] = useState(0);   const onAltT = () => {     setCount(count + 1);   };   return (     <Keyevent       className="TopSide"       events={{         onAltT,       }}       needFocusing     >       <span className="tip">Click To Focusing</span>       <div className="group">         <span className="key">Alt</span>         <span className="key">T</span>         <span className="count">{count}</span>       </div>     </Keyevent>   ); }; export default TopSide 

Props

property required type defaultValue description
events true { [key: string]: (e: KeyboardEvent) => void } null The binding keyboard events 绑定的键盘事件
needFocusing false boolean false 是否需要聚焦,若值为 true,则需要聚焦 Focus 这个容器组件(点击)

感兴趣的先点个 star 收藏起吧,说不定那天就会用到了!

Flutter 20 分钟开发 B&O 零售商店

Posted: 29 Aug 2021 12:09 AM PDT

由于公司新项目用 Flutter 开发,于是最近在学习 Flutter 相关

空余时间录制了一波视频放到 B 站

https://www.bilibili.com/video/BV14y4y1G7NS/

V 友们轻喷

vscode 远程开发,大家是连接 Linux 系统开发的,有连接 docker 的吗

Posted: 28 Aug 2021 11:59 PM PDT

哪个好点

DataGrip 在 Manjaro 上菜单无法点击

Posted: 28 Aug 2021 10:53 PM PDT

昨天在 Manjaro 上通过 snap 安装了 DataGrip:

sudo snap install datagrip --classic 

但诡异的是,它里面的菜单能够显示但是无法点击。有哪位朋友见过类似情况吗?

并且,相同机器上的 IDEA 和 Clion 等软件是正常的。

开启桌面端 clashx 或者 clashforWindows 之后就无法使用 ipv6 了,这咋整兄弟萌

Posted: 28 Aug 2021 10:43 PM PDT

前两天折腾之后顺利的开启了 ipv6,但是我一旦开了 clash,就无法访问 ipv6 网站,国外的不能访问我理解,因为开了代理对吧,毕竟代理节点是 ipv4 的,但是国内的网站没有走代理阿 为啥也不能访问阿 可有大佬遇到过的 球解决方案

简单一句话总结,用 clash 怎么访问 ipv6 网站!

如果钱包不做尝试失败限制, 是不是理论上有个足够强大字典文件就可以破解私钥?

Posted: 28 Aug 2021 10:05 PM PDT

特别那些助记词不复杂情况? 我记得之前在 v2 看到一个跑类似破解钱包的 github repo 但是忘记了.

同理破解 ssh/redis 等常用端口进主机并植入勒索加密或者挖矿木马的?

这些字典文件和一些拖库很多在暗网有交易, 但是至今不知道如何拿到, 有人指点下吗? 这样可以避免密码已经泄露

一次查询 n 条数据和查询一条数据重复 n 次的区别和影响?

Posted: 28 Aug 2021 04:40 PM PDT

假设有一个 user 表,{id,name,phone},要根据名字(可能会传很多个)查询 user 的 id 和 phone,一次性查询全部然后转换成{name,user}的 map 匹配好还是每次都去查一次数据库然后 where name = xxx 好?

是否存在一个大概的数量值,来作为这两种方式的分界线?

如何完善 Native Image 下的 SPI 问题?

Posted: 28 Aug 2021 09:35 AM PDT

问题起源于一个基于 Quarkus 框架的 Demo 应用里。由于需要对内容做一个 SHA256withECDSA 的签名,引入了 bouncycastle 依赖。
在 dev 模式下用 JVM 跑就没出过事,但是打 Native Image 跑签名的时候直接提示 ClassNotFound 。进一步 DEBUG 发现,BouncyCastleProvider 使用了 SPI 的机制加载签名类,而 GraalVM 把 ClassLoader 给干碎了……
有没有遇到类似问题的大佬?求科普这类问题的解决方案……

请教,从 FIFO 队列中取出 SQL 语句,写入到 MySQL,如何可以拉满拉爆性能?

Posted: 28 Aug 2021 07:45 AM PDT

情况: 在 main()

    from multiprocessing import Manager     from concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor          # 建立全局变量字典     GOLVAR = Manager().dict()     # SQL 处理队列     SQLQueue = Manager().Queue()           # 处理 SQL 队列功能,一个单独进程在运行     ProcessSQLQueue = futures.ProcessPoolExecutor(max_workers=1)     # 启动     ProcessSQLQueueRet = ProcessSQLQueue.submit(procSQLcmd, SQLServerInfo, SQLQueue, GOLVAR)           def AA(someData,sqlqueue):      	#略      	XXX      	sqlCommand = XXX      	sqlqueue.put(sqlCommand)      	retrun          def BB(someData,sqlqueue):      	#略,和 AA 结构一样,最后往队列里 put(sqlCommand)      	sqlqueue.put(sqlCommand)      	retrun      		     def CC(someData,sqlqueue):      	#略      	sqlqueue.put(sqlCommand)      	retrun          		    # 开动制造     while True:   	# AA,BB,CC,DD 等处理函数按顺序,循环制造 SQL 语句,运行 AA,BB,CC,DD 等处理数据的函数处理上,其实几乎都不怎么占 CPU,I/O,最后向 Manager().Queue() put 入大量 SQL 语句      		      	# 进去的 SQL 语句只有四种,      	# INSERT INTO tblname (x) VALUE (x);      	# INSERT INTO ... SELECT FROM XXX(最复杂也就嵌了 3 层);      	# UPDATE SET...      	# DELETE FROM...      		      	# SQLQueue 量高的时候 1 秒进 4 万条,低的时候,200 秒不进 1 条        	time.sleep(100)  
# 处理 SQL 队列 def procSQLcmd(sqlinfo, sqlqueue, golvar):     import time     import datetime     from dbutils.pooled_db import PooledDB     import pymysql     from concurrent.futures import ThreadPoolExecutor     from MYFunc import SQLcmdData     from myFunc import colrRedB     from myFunc import TranDicttoSQLcmd      from warnings import filterwarnings     filterwarnings("error", category=pymysql.Warning)      POOL = PooledDB(         creator=pymysql,  # 使用链接数据库的模块         maxconnections=600,  # 连接池允许的最大连接数,0 和 None 表示不限制连接数         mincached=5,  # 初始化时,链接池中至少创建的空闲的链接,0 表示不创建         maxcached=5,  # 链接池中最多闲置的链接,0 和 None 不限制         blocking=True,  # 连接池中如果没有可用连接后,是否阻塞等待。True,等待; False,不等待然后报错         maxusage=None,  # 一个链接最多被重复使用的次数,None 表示无限制         setsession=[],  # 开始会话前执行的命令列表。         ping=1,  # ping MySQL 服务端,检查是否服务可用。         host=sqlinfo['ip'],         port=sqlinfo['port'],         user=sqlinfo['user'],         password=sqlinfo['password'],         database=sqlinfo['database'],         charset=sqlinfo['charset']     )      DBconn = POOL.connection()          def exeCu(conn, sqltext):         try:             cur = conn.cursor()             cur.execute(sqltext)             # cur.commit()             cur.close()         except pymysql.Warning as e:             # print(f'#detial:{str(e)}\n',colrRedB(f"SQL ERR: {sqltext}"))             sqlsqlcmd = sqltext.replace("'","\\'").replace('"','\\"')             resonsql = str(e).replace("'","\\'").replace('"','\\"')             SQLErrorDict = {'sqlcmd': sqlsqlcmd,                             'reson': resonsql,                             'UpdateTime': datetime.datetime.now().replace(microsecond=0)}             SQLCmd = TranDicttoSQLcmd('MYSQLERRLog', SQLErrorDict, None)             SQLcmdData(sqlinfo, SQLCmd)         return      while True:         if sqlqueue.qsize() == 0:             # 开关             if golvar['stopsqlflag'] == False:                 time.sleep(2)                 break          # SQL 语句执行,必须按队列 FIFO 顺序写入         while not sqlqueue.empty():             with ThreadPoolExecutor(1) as executor:                 executor.submit(exeCu, DBconn, sqlqueue.get())      DBconn.close()     return		 
请教问题: 1 、这样的设计,写入每秒是 800 ~ 2500 条左右,虽然能做到对 MySQL 服务器写入浪涌的削峰填谷,但 SQLQueue 在峰值的时候,很容易一下就超了 17 万,太多的未写入,也影响了 main()的大循环 2 、从 MySQL 的服务器的性能判断来看, SHOW STATUS WHERE (Variable_name like '%thre%' OR Variable_name like '%conn%' OR Variable_name like '%cache%'); SHOW PROCESSLIST;   MySQL 服务器其实跟睡着了没区别,瞬时链接数 3,4 个,没有感受到什么事情(是对 PooledDB 的用法有问题?) 3 、以前以为是服务器 I/O 的问题,换 8 核 16 线程 CPU 的机器,换上 SSD,内存 64GB,my.cnf 的 cache 调到 65%,都没有太大改善 4 、请教如何调整做法,从 SQLQueue 取出 SQL 语句怼服务器,可以拉满拉爆? 5 、小范围,小应用,上大工业架构的方式就算了,折腾不起。。。 

一个古老的问题,如何抓取 DDE 通讯所发送的命令

Posted: 28 Aug 2021 07:09 AM PDT

一个古老的 winform A 向另外一个古老的程序 B 发送 DDE 命令,我怎么"抓包"看到某些操作 A 都给 B 发了些啥命令呢?

手册已经缺失了,只能这么了。

试过 Spy++,能看到 DDE 发起,但看不到具体的命令,是我姿势不对么?

No comments:

Post a Comment