Thursday, May 27, 2021

V2EX - 技术

V2EX - 技术


★3W+! GitHub 中文排行榜,帮助你发现高分优秀中文项目

Posted: 27 May 2021 04:43 AM PDT

GitHub 中文排行榜

榜单设立目的

  • GitHub 中文排行榜,帮助你发现高分优秀中文项目;
  • 各位开发者伙伴可以更高效地吸收国人的优秀经验、成果;
  • 中文项目只能满足阶段性的需求,想要有进一步提升,还请多花时间学习高分神级英文项目;

榜单设立范围

  • 设立 1 个总榜(所有语言项目汇总排名)、18 个分榜(单个语言项目排名);

榜单入选规则

  • 一个小小的要求:项目的 Description 和 README.md 都要包含中文说明;
  • 更新越持续越好:最近半年内有更新过的项目才有机会入选(拥抱活跃,远离僵尸);
  • Stars 越多越好:在满足持续更新的前提条件下,各榜根据 Stars 对项目进行排序;

榜单更新频率

  • 每周更新一次;

榜单推荐

Google 原生系统手机有旗舰处理器吗?

Posted: 27 May 2021 04:08 AM PDT

看了下目前已上市的 Pixel 5,处理器居然才骁龙 765,而不是 8 系列,淘宝水货要 4000 多,太可怕了吧。 有没有旗舰处理器的原生 Android 机啊?不是 Pixel 也行。

已知目录树全文件、目录路径列表,不使用 IO 求空目录

Posted: 27 May 2021 04:00 AM PDT

windows 路径
已知整个目录树所有子目录、文件的路径,str 列表
不考虑虚拟路径(软链硬链 mount/lnk 等)

不实际检查文件 IO,就是 is_dir()这些,单纯通过字符串之间关系,求出没有文件的空目录
有没有较快的方案?

控制器初始化时修改了自己以及父类控制器方法上的注解中的值,但是切面中获取时,父类方法上的注解中的值还是修改前的

Posted: 27 May 2021 03:59 AM PDT

需求上 MyController 中不需要重写父类中方法的逻辑,仅仅注解中 testField 的值不是默认值。

因为不想仅仅为了指定下 testField 而去重写多个方法,所以考虑字类初始化的时候,批量修改 testField 。

但是请求接口的时候,通过观察切面中的日志输出,子类中非重写的方法 method3 的注解对象中的 testField 是被修改为了 test2 ;而请求接口 method1 、method2 的时候,testField 还是 test1,并且切面中输出的注解对象的地址与 static 代码块中输出的不同。

Spring 的 AOP,注解、反射工具类是 hutool 的。

// 注解 @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) public @interface MyAnnotation {     String testField() default "test1"; }  // 抽象控制器 public abstract class AbstractController{          @MyAnnotation     @RequestMapping(value = "method1", method = RequestMethod.GET)     public RestfulResponse<Boolean> method1() {         return new RestfulResponse<>(true);     }          @MyAnnotation     @RequestMapping(value = "method2", method = RequestMethod.GET)     public RestfulResponse<Boolean> method2() {         return new RestfulResponse<>(true);     } }  // 继承抽象控制器 @RestController public class MyController extends AbstractController {          static {         for (Method method : ReflectUtil.getMethods(MyController.class)) {             if (AnnotationUtil.hasAnnotation(method, MyAnnotation.class)) {                 MyAnnotation annotation = AnnotationUtil.getAnnotation(method, MyAnnotation.class);                 AnnotationUtil.setValue(annotation, "testField", "test2");                 // 输出 annotation 地址             }         }     }          @MyAnnotation     @RequestMapping(value = "method3", method = RequestMethod.GET)     public RestfulResponse<Boolean> method3() {         return new RestfulResponse<>(true);     } }  // 切面 @Aspect public class MyAspect implements Ordered {          @Around("@annotation(myAnnotation)")     public Object around(ProceedingJoinPoint pjp, MyAnnotation myAnnotation) throws Throwable {         // 输出 myAnnotation 地址、testField 值         return pjp.proceed();     } } 

请问是那里出了问题,为什么切面中获取到的注解对象和 static 中的不是同一个?

大家是怎么快速的学习一门技术的?

Posted: 27 May 2021 03:32 AM PDT

本人的观点和学习方法:

任何事物的存在都是有价值的

通俗的讲: 任何事物的存在都是有用的

以上的个人的观点先表达的意思是,在编程世界中,比较 Java 语言的所有的类的方法和属性都是有用的,只是你没有使用到它的场景而已。

反观编程的本质就是你知道这个类或者对象能调用什么方法你才能明白怎么处理当前的逻辑。

所以我先表达如今学习一个新技术(比如框架,语言,模式等) 

首先要明白怎么用,随便找网上一个 demo 跑起来,然后看 demo 每行所表达的意思,你就能大概明白怎么用了。

其次要明白怎么写,你要明白这个框架用的时候每个注解,方法,属性,一系类暴露给开发者们使用的,你要会用

最后归纳和模拟应用场景,一个框架或者语言的流行一定有它与众不同的地方,比如 Redis (缓存)它在做分布式锁(秒杀)和排行榜都是比较好的解决方案。

记忆,人类对于某件普通事情的记忆总是短暂的,我们需要把学习一门技术记录一下代码和文档形式,这样我们以后遇到相同的问题,就有现成的解决方案了。

感谢:大家在百忙之中分享自己的学习方法

[工具分享] 整理了一些总计超 51 万 star 的终端命令行工具,欢迎大家补充

Posted: 27 May 2021 03:28 AM PDT

618 求推荐电脑音箱

Posted: 27 May 2021 03:15 AM PDT

之前买了个拜亚动力 DT990,听过之后终于明白了什么才是好耳机,还原度高、不闷、耳朵挠痒的感觉,舒服。

现在想买一个桌面音箱,音质希望能达到 DT990 这种,能蓝牙连接播放,预算 3000 内是否可以,求推荐。

求助: Python 异常信息打印

Posted: 27 May 2021 02:56 AM PDT

1.场景

目前项目里采用 flask 框架做服务,用 teardown_request 做了一个简单的全局接口请求完成后的处理,示例代码如下

def teardown_request(exception):     db_session = g.get("pg_db")     if db_session:         db_session.close()     if exception is not None:         logging.warn(exception) 

2.问题

在 teardown 钩子函数里获取了一个 exception,但是打印的时候只会显示异常的信息。想要打印完整堆栈信息的时候应该怎么处理。traceback 模块结合 try catch 挺好用的,这种场景好像和直接打印效果一样,并没有完整的堆栈,如果我想要获取 exception 这个对象的完整堆栈的话需要怎么弄,求助各位大佬。 

我的 IP 又被谷歌定位成中国区了!

Posted: 27 May 2021 02:17 AM PDT

已经是第二个 IP 了!来自不同主机商。

接上帖:/t/769967

今天第二个 IP 突然右上角的 gmail 消失,预感不妙,搜索一下 myip 发现定位广东,无痕模式进入谷歌跳转 hk 。

不过目前情况较上一个 IP 好一点在于 ncr 后至少搜索结果没有被开启安全模式,应用列表内油管图标还在而且手机的 play 商店还可以正常下载 APP,这些上一个 IP 全部阵亡。 不过目前状态看来也不能乐观,可能过几天也不能用了也说不定。

谷歌翻译没有跳转到 cn,不过图片搜索已经默认跳 cn 了,貌似没找到办法改回来,新闻界面默认 zh 。

自从上次之后检查了浏览器和手机相关权限,确定定位权限是没给的,难不成是通过用户习惯?或者我中文内容搜索太多了?这个不太清楚谷歌是怎么把我两个 IP 都给定位的。

自从上一个 IP 被定位错误后一直在通过"报告 IP 问题"页面进行反馈,不过一段时间过去后没有任何改变。

Merlot

Posted: 27 May 2021 01:51 AM PDT

一个实现很优雅的双栏 Markdown 编辑器。

https://merlot.vercel.app/

https://github.com/thesephist/merlot

想系统的学一下爬虫,各位大佬有没有比较好的,比较系统的教程,最好是从零开始。

Posted: 27 May 2021 01:01 AM PDT

开始用 selenium 感觉还挺好用的,我说那就爬爬淘宝,然后刷一会就被淘宝限制了。网上反爬的教程一大堆,也不知道哪些是可行的。
后来又发现有 Puppeteer 个东西,v 友有爬虫大神能分享点教程么 谢谢了

用 configparser 更新配置项的时候怎么保留注释啊?

Posted: 27 May 2021 12:35 AM PDT

一写入配置文件里的注释就全没了,影响可读性,百度了下,看解决办法要修改模块源码,有没有更好的办法啊?

请问一个特别基础的问题: C#怎么获取从一个 url 链接中读取客户贴过来的数据

Posted: 27 May 2021 12:32 AM PDT

背景是这样的,我们做的是一个以 C#为基础的 RPA 项目,平时很少接触网络相关编程这块,现在由于说某宝某东频繁跳出手机验证码,所以 rpa 厂商那里发给了我们一个链接,是一串链接后面带 post 的,谷歌搜了一圈好像都需要 aspx 啥的,或者说没有找到可以通过 url 获取数据的方法,请问要用哪个 api 才能从 url 获取数据呢?

有没有什么办法类似爱思获取配件的序列号

Posted: 26 May 2021 11:21 PM PDT

libimobiledevice 好像不行

请问这样配置的防火墙为什么可以 web 访问?

Posted: 26 May 2021 08:21 PM PDT

服务器用的 IPFW,规则如下:
Ipfw -q add allow tcp from xxx.xxx.xxx.xxx to me 80 in setup keep-state
Ipfw -q add allow tcp from me to xxx.xxx.xxx.xxx 80 out setup keep-state
第一个规则是允许客户端访问服务器的 80 端口,这个没有问题,第二个规则应该是允许服务器发送数据到客户端的 80 端口,这个规则我觉得有问题,客户端访问服务器时是随机接口,不一定是 80,但这样配置后客户端可以使用 web 服务,请问为什么?谢谢。
另外配置 tcp 协议时如果没有指定端口是不是默认放开所有端口?

Ftp 数据连接失败:权限禁止?

Posted: 26 May 2021 07:28 PM PDT

服务器设置了防火墙,打开了服务器 20 、21 端口的出、入,CMD FTP 连接服务器后浏览目录提示; Can't build data connection:Permission denied.
请问为什么我开放了 20 端口仍然无法传输数据?谢谢。

OpenStr 帮助程序员低成本托管视频教程

Posted: 26 May 2021 07:22 PM PDT

openstr.com 是我采用 openmix.org 开源框架 MixPHP MixGo 开发的一套创新的 DRM 系统,旨在帮助开发者低成本发布视频教程,获取必要的收益。另外:这两个框架也是我开发的

想要发布视频教程遇到的问题

开源创造者或编程大神想分享一些技术时:

  • 发布到 bilibili 等公开平台则颗粒无收,用爱发电无法持续坚持
  • 慕课网只能按他们出的选题来讲课,很难匹配,同时抽佣感人
  • 自己部署网站,开发需要时间,同时 OSS 对象存储的流量费用及其高昂
  • 支付渠道很难申请
  • 传统视频网站对教程视频中关联的代码和说明信息无法展示,影响学习体验

离线加密视频网页播放技术

我开发了一个多平台 win mac linux 的 CLI 程序,来负责离线加密视频的驱动

  • 首先我们只需使用 openstr-cli make foo.mp4 命令把我们的 .mp4 视频转换为 .str 加密视频文件
  • 然后使用 openstr-cli emit foo.str 将加密视频发布到网站里
  • 接下来在网站中创建一个频道,将视频发布到这个频道中,例如:PHP 与 Go 的基础知识对比视频讲解
  • 在视频下方提供了和 Github 、Gitee 同样的 Readme 页,开发者可以编写视频中涉及的代码和演讲内容,用户可以边看视频边复制代码测试
  • 然后在视频页面点击分享按钮,将视频信息贴到你的开源项目 Readme 页中,例如:github.com/mix-go/mix
  • 在网页里我们可以添加 .str 的下载地址,当然也可以选择直接通过 QQ 等直接发给你的用户
  • 持有 .str 文件的用户,只需打开 openstr-cli 就可以直接到网页中播放这个视频(付费后)
  • 由于是本地播放,没有流量费用产生,同时视频想多高清就多高清,快进快退也迅速
  • 同时 .str 是加密文件,无需担心视频的泄露问题,随便放哪里都可以

求助:jpa 不使用原生 sql 如何实现 jsonb 字段排序?

Posted: 26 May 2021 09:26 AM PDT

直接使用会报错:No property jsonbField->'field' found for type TestEntity 代码如下: Pageable pageable = PageRequest.of(1, 2, JpaSort.unsafe(Sort.Direction.ASC, "jsonbField->'field'")); Page<TestEntity> page = testRepository.findAll(pageable);

使用 nativeQuery 结合 pageable 没有问题,现在需要复杂筛选如何使用 Criteria 查询实现?

Ubuntu20.04 FoxitPDFReader 无法输入中文注释

Posted: 26 May 2021 08:57 AM PDT

ubuntu20.04 中文输入法使用的是自带的那个 iBus 的 intelligent pinyin 其他软件都能正常输入,foxit 阅读器不行

有人遇到过同样的问题吗

APP 被人恶意举报为诈骗 APP 怎么办

Posted: 26 May 2021 07:06 AM PDT

昨晚收到反诈骗电话问我最近有没被诈骗,有没装过一个炒币的 APP (我之前自己开发的),还上门宣传反诈骗知识。 但是,我的 APP 没有任何诈骗啊,寻思着这应该是被恶意举报的,有人遇到过吗,应该去哪里申诉呢

继承 Python 的 cmd.Cmd 类实现的命令行程序,能实现自动补全功能吗?

Posted: 26 May 2021 07:03 AM PDT

文档中有如下内容:

class cmd.Cmd(completekey='tab', stdin=None, stdout=None)   Cmd.completedefault(text, line, begidx, endidx)  Method called to complete an input line when no command-specific complete_*() method is available. By default, it returns an empty list. 

按照理解,输入命令的时候按 Tab 键应该能自动补全,,可是我试了下就在本行添加了空格,,并没有补全行为,,也没有调用覆写的 completedefault 方法,,哪位知道是什么原因?

程序员们,如何屏蔽手机浏览器访问百度网页自动打开应用商店的问题?

Posted: 26 May 2021 03:05 AM PDT

如题:小米手机+edge 浏览器。访问百度网页,特别是百家号,都是自动给我弹出应用商店来,到底怎么屏蔽掉?不知道调用了什么接口?

No comments:

Post a Comment