Friday, February 25, 2022

V2EX - 技术

V2EX - 技术


关于阿里云 mysql 无外网 ip 的连接问题

Posted: 25 Feb 2022 04:35 AM PST

现在公司的测试 mysql 用的是阿里云,没有公网 ip ,只有内网地址。 用 navicat 等客户端连接的时候,需要添加 ssh 隧道(连接一个阿里云的测试服务器,这个服务器有外网 ip )。 现在开发的时候需要直接连上这个 mysql ,SpringBoot 使用 ssh 隧道连接的话会比较麻烦,请问有什么更优雅的方式让开发都可以连上这个 mysql 使用吗。

pip 安装包的时候如何控制搜索顺序?

Posted: 25 Feb 2022 04:34 AM PST

RT ,搭了个私有源地址,当私有源和共有源有同名包的时候,默认会从公有源下载,如何解决这个问题?

全机只有一个 pip.ini ( windows ), 位于 C:\Users\Administrator\AppData\Roaming\pip

内容如下

[global] timeout = 10 index-url =  http://121.xxx.xxx.xxx:8080/simple/ extra-index-url = http://pypi.douban.com/simple/ [install] trusted-host =     121.xxx.xxx.xxx     pypi.douban.com 

想一劳永逸的方式解决, 不想每次安装的时候加 -i 来实现

删除 douban 源,只保留私有源的情况下,安装是成功的,但是有多个源地址的时候,每次总是从 douban 源里面装同名包,明明已经把它优先级排低了...

虚拟 conda 环境(但是确定全机只有一个 pip.ini ,不存在多个 pip.ini 不同调用优先级的问题)

给老家的父母配台 iPhone 吧

Posted: 25 Feb 2022 04:29 AM PST

背景

回老家发现,父母的安卓机被安装了满满的"xx 助手"、"xx 大厅"、"xxx 市场"。各种弹窗。经常被问到,"垃圾不清理手机就中毒"、甚至有不清理"手机爆炸"、权限滥用数不胜数

闲置的 8plus 给他们用,虽然是 5 年前的机器,升级到了 15.3 ,依靠苹果应用市场严格的审核机制。够用,没任何弹窗

运营商手段

联接家中移动宽带,打开微信,偶发弹出"再不清理手机就中毒了",点击后是安卓 apk 下载😓。不在当地,无法具体抓包,推断为运营商劫持,插入的广告。已投诉运营商 bk44V1.jpg

使用开源软件 与 开车 的相同点

Posted: 25 Feb 2022 04:29 AM PST

相关帖子:

思细级恐啊,我们自己搭的 gitlab 的都被黑了!
https://www.v2ex.com/t/836253?p=3

·出厂的时候就知道肯定会有问题(成本考量、销售策略考量、以及未知问题)
·使用者需要了解基本使用知识
·在公共领域使用需要遵守一定规范(交通法、信息安全基本常识)
·可能会有别的别的用户有意无意的伤害

在我喜欢的《交通事故 Video 》系列视频中,有一个经典评论叫"客厅开车",指的是那些根本不管红绿灯和交通法规,好像在家里客厅一样随心所欲开车的人。

Clash 远程命令执行漏洞,有主机上线!

Posted: 25 Feb 2022 04:28 AM PST

职业生涯问题

Posted: 25 Feb 2022 04:27 AM PST

都说在大城市混到了 35 就没什么竞争力了(除了特牛的,毕竟大部分都是普通人,比较平庸),大家对自己的的职业、未来是怎么规划的?
1. 走一步看一步?
2. 回老家?
3. 努力工作,坚信自己能行?
4. 。。。
说说自己的情况,聊聊自己的想法,我想稍微岁数大点的都有想过。
就不要凡尔赛了。。。

各位检查一下自己的鸡场吧

Posted: 25 Feb 2022 04:27 AM PST

企业微信虚拟定位打卡失败了,恶意的软件打卡行为将被记录

Posted: 25 Feb 2022 04:21 AM PST

以前都可以,现在失败了,试了好几个软件都不行。有没有碰到的小伙伴 打卡失败.png

那个 Github 被封的,自己真不知道为什么吗?

Posted: 25 Feb 2022 04:08 AM PST

我刚好也在群里,自己违规使用教育账号薅羊毛,号被封了开始叫冤?

还有别说自己多少 repo 和组织,开源社区封号还看开源的贡献了?

6 个月神奇的兼职经历

Posted: 25 Feb 2022 04:03 AM PST

今天终于松口气了,兼职工作结束了,我可以自由分配时间做自己喜欢的事。

兼职的公司很特殊,老板不懂技术,自己闷头做 app ,app 不运营算创业状态,前面有些项目还有点意思,后来退化到做公众号小程序了。6 个月时间陆陆续续能换了 15 ,16 个开发人员,走的最快的只干了两天。公司现在没前端,后端刚来个新人。

所有项目开发都没有文档,没有项目规划,做完一个换一个,通过原型图或者 ppt 猜意图,这种情况下我构建了底层数据库,知识图谱,设计算法,救火做了很多 api 接口,构建了无数原型,从 AI 到全栈都涉及。编程语言和技术上我几乎用遍自己熟悉的,python ,java ,clojure ,common lisp ,julia ,react ,postgresql ,allegrograph ,rabbitmq 等等等,工作量最大的是写了几百个 api ,做了几百个表,各种业务建模等等,统统都灰飞烟灭了,这些成果只是给老板经验升级用的,唯一值得欣慰的是能在实战中随意用自己喜欢的技术。

工作上比全职都累,工作时间和全职差不多,春节假期以后我只休了一天,这几天都干到晚上 11 点,昨天晚上和老板彻底闹崩了,我的付出远远超出薪水所得。但有个兼职机会也不容易,只是不懂技术的老板说话很刻薄,我看在同事的份上才没早走,能坚持下来算是奇迹。

这次经历最大的收获是认识了很多优秀的开发者,在老板眼里都是过客,在我看来人都很好很热情,技术也扎实。我也切身感受到一线开发者的无奈,真是为了生活不得不低头。

对了,common lisp ,clojure 或者一些小众语言有没有兼职和项目合作的机会?我还是想进一步用下高效率的开发技术,坐标 024 。

笔记本用 Linux 的意义何在?

Posted: 25 Feb 2022 03:50 AM PST

1 设置难

普通电脑装个 linux 还算简单,笔记本需要配置电源和风扇,如果不配置,很大可能性续航时间不如 windows

2 是否省资源

ubuntu gnome/kde 也没想的省资源

3 软件

各种 win 下的小众软件要在 linux 下找到替代需要时间

JPA 并发查询同一条数据时的效率问题

Posted: 25 Feb 2022 03:48 AM PST

伪代码

    public RespData findOrderTest(@RequestParam String orderCode,@RequestParam String strategy) {         TbOrder tbOrder = orderDao.findByOrderCodeAndStrategy(orderCode, strategy);                  //do something         try {             Thread.sleep(5000);         } catch (InterruptedException e) {             e.printStackTrace();         }         return RespData.success(tbOrder);     }  

使用 jmeter 并发调用,查询条件不变,反复查询同一条数据,发现查询速率变慢

正常耗时日志

    `---[5054.53776ms] cn.*.PatientAppController:findOrderTest()         +---[54.165884ms] cn.*.TbOrderDao:findByOrderCodeAndStrategy() #349         +---[0.079756ms] javax.persistence.EntityManager:clear() #350         `---[0.018264ms] cn.*.RespData:buildSuccess() #363 

测试期间接口耗时逐渐增加,异常耗时日志

    `---[29406.81247ms] cn.*.PatientAppController:findOrderTest()         +---[24406.507885ms] cn.*.TbOrderDao:findByOrderCodeAndStrategy() #349         +---[0.036484ms] javax.persistence.EntityManager:clear() #350         `---[0.020533ms] cn.*.RespData:buildSuccess() #363 

已排除是数据库性能问题,怀疑是 jpa 内部的实现机制所致,多番测试还是没有找到问题,分享出来给大家看看,请大佬指教

各位大佬在 go 中都是怎么使用事务?有没有更好的方式

Posted: 25 Feb 2022 03:18 AM PST

最近在写 go 项目中发现一个问题,我有一个对外提供的支付接口,接口中又去调了很多封装好的更改数据库的操作函数。然后我发现要是想对整个接口用一个事务的话,需要在接口最开始初始一个*db 连接,然后传给各个函数。这样才能实现一个事务接口。

tx, _ := dao.MysqlDB.Begin()  // 初始化 db 连接 defer tx.Rollback() logic.UpdateProjectDiscountMemo(*tx,proDisMemoList)  // 更新项目折扣 logicCreateUserEventsRecord(*tx,groupId)       // 更新用户记录 tx.Commit() 

工作一年半想重新做 c/c++方向

Posted: 25 Feb 2022 03:16 AM PST

校招毕业工作一年半没有接触 c++了,后续想找 c++方向的工作还能找吗?

charles 如何设置代理验证?我想给代理设置个帐号密码

Posted: 25 Feb 2022 03:13 AM PST

charles 是通过代理服务器的方式进行抓包的对吧

在 ios 上添加代理的时候,下面会有验证用户名和密码的选项(如图: https://tva1.sinaimg.cn/large/e6c9d24egy1gzpyrofjufj20u01hd410.jpg

我想知道这个账户和密码在 charles 上如何添加?我搜索了并没有搜到相关内容

canvas 绘制端点的圆角

Posted: 25 Feb 2022 03:00 AM PST

使用 canvas 的 drawPath 方法绘制的一个箭头符号,如何让红色箭头区域也是圆角? 或者有其他的方法可以方便的绘制出圆角. https://hailong-test.cdn.bcebos.com/A2D75162-3F3D-4C18-A1CB-5CF3962E0799.png

BlackSheep 有什么优势么

Posted: 25 Feb 2022 02:57 AM PST

偶然发现的BlackSheep,有使用过的大佬谈谈 感受么,是否可以当作新手学的第一个 Web 框架呢

ios 装了多开 app 每次都跳转到多开的 app 咋整

Posted: 25 Feb 2022 02:40 AM PST

我装了两个微信客户端,同时登录了两个微信号,每次打游戏的时候要微信登录的时候都是跳转到了非官方版的微信,我想跳转到官方版的咋弄?

或者说,我想指定跳转这两个微信其中的任意一个,应该怎么弄?如何指定 app 跳转到某个特定的 app ?

PHP 编译器 BPC 的第一个成功案例来了!

Posted: 25 Feb 2022 02:30 AM PST

不清楚 BPC 是什么的参看这里:

开发了一年多的 PHP 编译器 BPC 初见成效,发一些测试程序给大家看看

在完成了更多的扩展开发后,BPC 终于成功编译出了它的第一个成规模的应用,来自云招 OurATS 的简历解析工具: bob-parser.

先上链接

https://www.ourats.com/bpc/bob-parser.trial 可直接下载,但速度有限

https://caiyun.139.com/m/i?155CGfDdVPP2m 提取码:zvQ3 和彩云网盘,需要注册才能下载,速度快

此程序仅在 Ubuntu 18.04 amd64 上测试通过,其它平台不保证.

下载回来后当然要 chmod a+x bob-parser.trial 才能执行.

此程序是 bob-parser 的试用版,有诸多限制,正式版是要收费的,先说明一下.

简单介绍下 bob-parser

bob-parser 是一个简历解析工具,就是从简历中提取出来姓名,电话,邮箱,工作经历,教育经历等字段的一个程序.

bob-parser 是一个通用型的解析工具,不是按渠道和模板进行 preg_match 的那种.

bob-parser 原本是云招 OurATS 招聘管理系统的一个基础组件,后独立出来提供在线 API 调用.

bob-parser 使用 PHP 语言开发,现经由 BPC,将所有 PHP 文件编译成一个可执行文件发布出来了.

官网地址是: https://www.bob-parser.com

借由 bob-parser 深入解说一下 BPC 的几个特性

  1. 100%源码保护

    PHP 的源码保护目前最强的应该就是基于 opcode 的了,但据我所知,现在至少有两个可用的 opcode 反编译器,所以 opcode 没有想像的那么安全.

    对比 java 和 C#就能知道,类似字节码的这种机制,被反编译就是市场需求的问题.

    BPC 完全脱离 Zend,将 PHP 最终编译成 C,要想从可执行文件反汇编出 PHP 是不可能的.

  2. 和 PHP 高度兼容

    说一行代码不用动那是夸张,对于 bob-parser 来说,需要将其从 web 方式运行改由 cli 运行,其实也就是新写一个入口文件,并且这个入口文件本身也还能用 php 执行,这样方便对比解析结果是否完全一致,如果不一致,那说明编译器有问题.

    得益于前期开发 BPC 时 phpt 测试做的扎实,bob-parser 的测试用例全过,也就是说一个简历文件,用 php 执行得到的结果和用 BPC 编译出来的可执行文件运行得到的结果是完全一致的,一个字符不差.

  3. 扩展开发极其容易

    bob-parser 除了 PHP 代码之外,还依赖一些外部程序,这些外部程序是因为之前搞不定 PHP 扩展开发,所以才独立出去的,现在扩展开发容易了,这些外部程序能开发成扩展的都开发成扩展了,这也使得 bob-parser 能够最终只生成一个可执行文件.

  4. 在源码保护和高度兼容的前提下,才会考虑性能和内存占用

  5. 编译器本身内置软件授权机制

    对于能够本地部署的程序来说,做到源码保护只是第一步,尤其是像 bob-parser 这样的工具类程序来说,只有一个可执行文件,方便了部署方便了调用,如果没有可靠的授权机制,出去了一份,就等于全都出去了.

    不管什么样的授权,最终在代码里肯定有一处 if 判断,如果满足条件,继续执行,否则报错退出.

    因此,只要定位到这个 if 判断,让它恒为 true,授权限制就绕过了.

    曾看到过一篇文章,讲的是如何去除试用版 ioncube_encoder_xxx_64 的 14 天限制,对二进制可执行文件做处理的工具都是现成的.

    一个简单的思路就是在 PHP 代码里添加多处授权判断以增加安全性,但这样做一是影响正常逻辑,二是需要手动维护.

    BPC 在编译过程中支持随机插入授权判断,大大提高了安全性.

跟组长聊了聊职业规划

Posted: 25 Feb 2022 02:10 AM PST

不知道触发了哪个关键词,一直不让发,偶然看到有老哥贴了外链。

跟组长聊了聊职业规划

开源项目之 good-first-issue

Posted: 25 Feb 2022 02:03 AM PST

开源项目的贡献者群体,大致呈倒金字塔的形态。

项目的管理、规划、主要特性开发或重大缺陷的修复,这些通常是由少量核心的贡献者完成,这可以认为是金字塔的顶部驱动。

还有一些贡献者,提交记录不是很多,但项目参与度也比较紧密;这类贡献者的数量通常也不少,可以认为是金字塔中间力量。

数量最大的部分,是那些有着零星贡献提交记录的贡献者,也正是我们现在讨论的重点:"游客"贡献者。这些"游客"虽然不会贡献重量级的内容,但对一个开源项目而言,同样是有着非常重要的意义:

  • 每一位重要的贡献者都是从"游客"开始的,我们想要增加贡献者的数量和"质量"也要从这里着手
  • 源源不断的"游客"加入,可以让项目呈现出繁荣的景象
  • 新人友好程度是开源项目的成熟标志之一

那么,什么样的 issue 可以标记为 good-first-issue 呢?从字面上看,这是对新人(初次接触)友好的 issues ,也就是对于这类贡献者而言比较容易解决的 issue 。

因此,判断是否应该把一个 issue 标记为 good-first-issue 可以从这两个角度考虑:

  1. 如何定义"新人"?

  2. 如何定义"友好"?这里的"友好",一方面是指参与流程的清晰(当然,这是更广泛的社区治理的范畴),另一方面是指参与要求的明确

  • 有清晰的技术栈要求
    • "新人"和技术水平的高低无关,只表明初次接触某个项目
    • 从更加客观的角度来讲,issue 的创建者可以列举出来完成这个 issue 所需要的技能
  • 有清晰的上下文描述
    • 即使技术水平"高"的贡献者,在不了解 issue 的上下文、背景的前提下,依然是很难去完成
    • 解决 issue 需要的技能
  • 没有明显(或潜在)的时间约束
    • 我们不清楚"新人"什么时候会关注到这些 issue ,因此,不要把这些 issue 和你的 milestone (或其他版本发布计划)挂钩
  • 有助于贡献者了解项目结构(可选)
    • "新人"完成 good-first-issue 的价值不仅仅是可以增加贡献者数量,更有意义的地方在于:可以帮忙更多贡献者进一步熟悉、了解项目的贡献流程以及项目本身

模板

为了方便大家对 good-first-issue 有更形象的认识,我下面给出一个模板:

## Background  ## Technical requirement  ## Expect  ## Potential TODO list 

工具

自动化工具的应用,对于一个开源项目而言是极为重要的。来自 Kubernetes 社区的 Prow 可以帮助项目维护者更好地使用标签。

其他

GitHub 还提供了一个隐藏(没有直接调整的按钮或菜单等)的页面,参考如下——在某个开源项目的仓库地址后加 contribute 即可访问:

https://github.com/LinuxSuRen/open-source-best-practice/contribute

急着转行程序员的人别学 Python 和 C++

Posted: 25 Feb 2022 01:55 AM PST

转发一篇文章: https://mp.weixin.qq.com/s/HRUG-S-5fBiZCxoS1sumCw

最近有一些朋友咨询我转行的事情,很多人想学 python 或 c++并且想靠它们找到工作,我想说千万别这样想。

为什么呢?

首先你目前的需求是要急着转行并且要找到工作找到吃饭的家伙,那么你首先要考虑的是:

学的东西是不是有足够多的岗位

学的东西可以让你比较快的进入到干活阶段

1.先说 python 。

python 这门语言语法很简单入门很容易,但是它的岗位比较少,大部分是数据处理、算法调包、web 后端,而且数据处理、算法调包的工作重点也不是 python ,而是数据和算法知识,也就是说你学了 python 也找不到这种工作;还有就是纯拿 python 来做 web 后端的公司很少,据我所知早期的知乎、字节跳动的部分系统是 python 后端,现在应该都重构完了

所以你学了 python ,工作岗位很少,急着转行的你学它干啥?别听培训班说什么"你要悄悄学 python 然后惊艳所有人"那都是瞎扯

2.再说 c++

c++这门语言很好,但是比较繁琐语法比较多,新手很难出活儿。它主要是运用在系统编程、后端、高性能计算等等,好像还可以用来做客户端,但是现在应该也被其他语言比如 js 蚕食了,据我所知大公司里面用 c++比较多的是腾讯,但是现在部分新系统也在往 go 语言上迁移了,因为 go 语言简单易学好出活儿。

所以急着转行的你为啥要去花很长时间学习一门岗位并没有很多的语言呢?

3.急着转行适合学什么?

我个人看法是:Java 后端或前端

原因就两点:简单易学且工作岗位多。你们平时可以去招聘软件看看,招 java 或前端的很多,客户端就别学了,现在客户端的市场被小程序以及前端蚕食了很多。

4.总结

转行是个大事,我身边有转行成功的,大厂里面也有很多其他专业的同事,程序员这个职业比较看重实力,但是很明显它对学历的要求也在逐渐提高,转行的朋友擦亮眼睛

有什么问题可以在评论区问我,有空了我就会回答

请教关于类加载器报 NoClassDefFoundError 错误的几点疑问(附详细代码)

Posted: 25 Feb 2022 01:28 AM PST

问题代码

URL[] urls = new URL[6]; urls[0] = '/activation-1.1.1.jar' urls[1] = '/animal-sniffer-annotations-1.14.jar' urls[2] = '/annotations-16.0.2.jar' urls[3] = '/antlr-runtime-3.4.jar' urls[4] = '/asm-4.2.jar' urls[5] = '/cglib-3.1.jar' URLClassLoader urlCLassLoader = new URLClassLoader(urls); try {     // 将全部存储到 urlclassload 里面     for (String fullClassName : allFullClassNames)     {         if (!"module-info".equals(fullClassName))         {             Class<?> clazz = urlCLassLoader.loadClass(fullClassName);             System.out.println(fullClassName);         }     } } catch (Exception e) {     e.printStackTrace(); } 

报错前的日志打印

https://paste.ubuntu.org.cn/4545513

net.sf.cglib.transform.AbstractClassTransformer 反编译代码

// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) //  package net.sf.cglib.transform;  import org.objectweb.asm.ClassVisitor;  public abstract class AbstractClassTransformer extends ClassTransformer {     protected AbstractClassTransformer() {         super(262144);     }      public void setTarget(ClassVisitor target) {         this.cv = target;     } } 

AppClassLoader 中没有加载 asm-4.2.jar 与 cglib-3.1.jar 中的类,其他的都有加载过了

上述 jar 包下载地址(无需下载客户端)

https://www.123pan.com/s/dCH9-LYAAA 提取码:v2ex

现在针对以上代码小弟有几个问题:

Class<?> clazz = urlCLassLoader.loadClass("net.sf.cglib.transform.AbstractClassTransformer"); 小弟进入断点后看到这行执行会报错 java.lang.NoClassDefFoundError: org/apache/tools/ant/Task

这个 NoClassDefFoundError 报错的问题,我在<深入理解 Java 虚拟机:JVM 高级特性与最佳实践(第 3 版)周志明>中找到了原因 大概是 类加载过程解析步骤 出现了 符号引用转为直接引用找不到的问题

但是还是有以下疑问

  1. org/apache/tools/ant/Task 在类 net.sf.cglib.transform.AbstractClassTransformer 中没有看到任何符号引用,不知道为何会找这个类
  2. 假设:asm-4.2.jar 引用了 cglib-3.1.jar 中的类,那么是不是在加载 asm-4.2.jar 所有类的时候就会报错 NoClassDefFoundError ?

关于家用服务器的选型问题

Posted: 25 Feb 2022 01:20 AM PST

之前组装了个台式机 用来玩 2077 后来不玩游戏了就把显卡卖了

现在装了服务器在家使用. 配置如下, 彦祖们帮忙参考下适合 7*24 小时开机么? 还是装个洋垃圾好一点

CPU:I7 10700F                                   主板:华硕 TUF GAMING B460M PLUSP 散热:赛普雷 V587 内存:威刚 3000 游戏威龙 8GB  *2 固态:WD SN750 黑盘 500GB NVME 机箱:先马易大师精钢版 电源:EVGA 700W 

官方 scratch 3.0 打开比较慢,搭建了一个国内镜像

Posted: 25 Feb 2022 12:47 AM PST

  1. 定期拉取官方最新代码部署
  2. CDN 加速提升访问速度

体验地址: https://scratch.focalhot.com

GitHub 无预警突然封号

Posted: 25 Feb 2022 12:46 AM PST

被封号的账号用了好几年,没放违反 ToS 的 Repo , 里面合计 77 个 Repo ,2000+贡献,绑定了一堆服务,

本人极度依赖 GitHub (你可以当成我把它当微信、QQ 、TG 、推特、WB 、有图比等社交平台刷) 没有一天停过使用 GitHub

在凌晨 4 点公开了一个 Repo 后,我就去睡觉了,当然那个 Repo 也这是一些代码而已,没什么违反的 今天醒来,没邮件,啥都没有,我项目 404 了,当我还以为这是项目被封后,也就开始害怕了

然后一看,我登录信息过期了,我已经开始慌了,登录上去一看

https://github.com/suspended image.png

更新: 已经发邮件问 GitHub 原因了,现在等回复 已知大规模封号,组织成员无一避免,而且牵扯到无辜组织跟着封号 目前已导致我得知的很多项目突然 404

有没有喜欢听播客的程序员,来一起维护 Open Podcasts

Posted: 25 Feb 2022 12:25 AM PST

React Context 应该怎么用?

Posted: 25 Feb 2022 12:21 AM PST

Context 可以跨层级传数据, 和 props 一样, 当 context 数据变动, Consumer 也会更新.

再一想, context 数据是怎么变化的? Context 数据绑定到 Provider 的 state 中, 需要 setState 来更新 context 数据, 那么 setState 会触发 re-render, 这样子组件自然也会刷新.

但感觉这种情况也不需要 Context 也能实现啊? 比如全局有一个 themeObj, 在最外层的监听这个 obj 的变化, 如果变化, 手动调用 forceUpdate, 这样子组件也会触发更新, 子组件只需要 import 这个 themeObj 使用即可, 每次 re-render 都会拿到最新的数据.

关于 Nginx 实现视频点播的流媒体服务器

Posted: 25 Feb 2022 12:01 AM PST

毕设项目要求利用 Nginx 实现一个流媒体服务器,提供视频点播功能

初步设想的处理步骤:

  1. 利用 Nginx-upload-module 实现视频文件从前端上传到服务器的资源目录
  2. 编写一个模块,将资源目录下的 .mp4 文件通过 ffmpeg 转码切片成符合 HLS 协议的 .m3u8 和 一系列小 ts 文件,存放到片源目录中
  3. Nginx 直接发布片源目录中的资源

目前测试了 Nginx 对 .m3u8 的支持,可以直接拉片源目录中的 .m3u8 到播放器里播放;也测试了 Nginx-upload-module 在 upload_pass 中启动其他模块的功能

想请教各位大佬:

  1. 这个思路是否可行
  2. 如果可以的话,关于 Nginx-upload-module 这个模块,需要利用其他脚本语言实现对上传资源的存储。因为我不想引入其他语言实现,打算直接在我自己编写的模块中处理上传资源并转码切片。那么下面配置中诸如 $upload_file_name 等是变量吗,如何在自己编写的模块中引用他们的数据呢

感谢大佬指点

server {     client_max_body_size 100m;     listen 80;      # Upload form should be submitted to this location     location /upload/ {         # Pass altered request body to this location         upload_pass @test;          # Store files to this directory         # The directory is hashed, subdirectories 0 1 2 3 4 5 6 7 8 9 should exist         upload_store /tmp 1;          # Allow uploaded files to be read only by user         upload_store_access user:r;          # Set specified fields in request body         upload_set_form_field $upload_field_name.name "$upload_file_name";         upload_set_form_field $upload_field_name.content_type "$upload_content_type";         upload_set_form_field $upload_field_name.path "$upload_tmp_path";          # Inform backend about hash and size of a file         upload_aggregate_form_field "$upload_field_name.md5" "$upload_file_md5";         upload_aggregate_form_field "$upload_field_name.size" "$upload_file_size";          upload_pass_form_field "^submit$|^description$";          upload_cleanup 400 404 499 500-505;     }      # Pass altered request body to a backend     location @test {         proxy_pass http://localhost:8080;     } } 

[经验] React 17 和 comsjs 冲突的解决

Posted: 24 Feb 2022 11:37 PM PST

Bug 描述

  • react 17 引入 @cosmjs/amino 运行,报错如下:

    BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it. 

复现步骤

  1. 新建 react 项目

    npx create-react-app react17-cosmjs-conflect 
  2. 安装 @cosmjs/amino

    npm i @cosmjs/amino 
  3. 在 /src/index.js 引入 @cosmjs/stargate

    import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals';  import {decodeBech32Pubkey} from '@cosmjs/amino' console.log(decodeBech32Pubkey)  ReactDOM.render(   <React.StrictMode>     <App />   </React.StrictMode>,   document.getElementById('root') ); reportWebVitals(); 
  4. 运行

    npm run start 
  5. 报错如开篇所示

Bug 原因

npx create-react-app 命令创建的 React17 默认调用的是 webpack5 ,相比 webpack4 ,精简了很多自带的包,需要手动安装才行

解决方法 1

将 react-scripts 由默认的 5.0.0 改为 4.0.3 ,npm i react-scripts@4.0.3 即可

解决方法 2

  1. 将 react 17 的 webpack config 从 node_modules 里暴露出来,如果提示 git uncommitted 就先 commit 一下

    npm run eject 
  2. 安装这 4 个包:

    npm i stream-browserify buffer path-browserify crypto-browserify 
  3. 根据报错提示配置 /config/webpack.config.js

    搜索"resolve:",在 resolve 内添加 fallback 节点,内容如下

    fallback: {   "stream": require.resolve("stream-browserify"),   "buffer": require.resolve("buffer/"),   "path": require.resolve("path-browserify"),   "crypto": require.resolve("crypto-browserify") } 
  4. 这时候再 npm run start 运行就没有 error 了,但是有 40 个 warning ,都是关于 cosmjs 缺少 source map 的,如果不想看到这个错误,可以在跟 resolve 节点同级的地方添加以下属性,搜索"resolve:",在上一行放:

    ignoreWarnings: [/Failed to parse source map/], 

提示:如果没有将 webpack config 从 node_modules 里暴露出来,直接在项目根目录创建 webpack.config.js 文件去配置无法解决此 bug

mac M1 idea 莫名自己重新构建项目索引

Posted: 24 Feb 2022 09:10 PM PST

mac M1 idea 莫名自己重新构建项目索引 这已经是我这个月遇到的第四回这个问题了,不知道是不是个例?有没有什么解决方案啊?

企业官网展示,有什么模板网站可以选择?

Posted: 24 Feb 2022 08:39 PM PST

或者说有什么好的解决方案呢?

升级到 21.10 后进度条输出有问题

Posted: 24 Feb 2022 08:37 PM PST

本来应该是单行刷新的进度条,现在变成每次刷新就换一行了。另一台全新安装的电脑也是这样。不知道有没有 V 友遇到同样情况的。

下载 snap "bitwarden" (63),来自频道 "stable"                         0%     0B/下载 snap "bitwarden" (63),来自频道 "stable"                         0%     0B/下载 snap "bitwarden" (63),来自频道 "stable"                         0%     0B/下载 snap "bitwarden" (63),来自频道 "stable"                         0%     0B/下载 snap "bitwarden" (63),来自频道 "stable"                         0%  355kB/下载 snap "bitwarden" (63),来自频道 "stable"                         0%  296kB/下载 snap "bitwarden" (63),来自频道 "stable"                         0%  508kB/下载 snap "bitwarden" (63),来自频道 "stable"                         1%  667kB/下载 snap "bitwarden" (63),来自频道 "stable"                         1%  791kB/下载 snap "bitwarden" (63),来自频道 "stable"                         1%  890kB/下载 snap "bitwarden" (63),来自频道 "stable"                         1%  971kB/下载 snap "bitwarden" (63),来自频道 "stable"                         1% 1.04MB/下载 snap "bitwarden" (63),来自频道 "stable"                         2% 1.37MB/下载 snap "bitwarden" (63),来自频道 "stable"                         4% 2.29MB/下载 snap "bitwarden" (63),来自频道 "stable"                         4% 2.49MB/下载 snap "bitwarden" (63),来自频道 "stable"                         6% 3.12MB/下载 snap "bitwarden" (63),来自频道 "stable"                         7% 3.56MB/下载 snap "bitwarden" (63),来自频道 "stable"                         9% 4.36MB/下载 snap "bitwarden" (63),来自频道 "stable"                        11% 5.25MB/下载 snap "bitwarden" (63),来自频道 "stable"                        13% 5.67MB/ 

求一个高带宽的低价云服务器做内网穿透

Posted: 24 Feb 2022 07:48 PM PST

PS:现在 V 站不让发迫于 xxx 了?哈哈哈

新手前端,问个项目与项目的公共组件引用问题

Posted: 24 Feb 2022 05:32 PM PST

框架用的 Ionic ,想在 Ionic 的组件库上再弄一个自己的组件库。 在引入自己写的组件库的时候,用 import 引入组件,还是用 vue 的插件写法引入? 这个组件库会被其他项目使用。

客户端与服务端通信使用 GRPC 有什么劣势吗?

Posted: 24 Feb 2022 03:36 PM PST

如题,之前都是安卓和 IOS 基本都是通过 HTTP 的形式与服务端通信的
想了解下如果使用 GRPC 通信的话会有什么劣势吗?
因为接口定义可以直接通过 protobuf 来定义,避免前后端之间频繁的沟通接口字段细节,感觉挺方便的。

群晖这是打算彻底堵住国区能用 chat server 的漏洞?

Posted: 24 Feb 2022 02:22 PM PST

自从群晖在 2020 年要求国区用户手机注册实名认证后,套件中心下架了 chat server 和 vpn server

然后近期看 DSM 的系统更新,在更新前有个提示信息如下:

Synology 套件
Synology Chat Server 在您所在地区与此 DSM 版本不兼容。如果要继续使用 Synology Chat Server ,请保留目前的 DSM 版本。如果要继续更新,您将无法使用 Synology Chat Server 。但是您的数据将会保留。

所以想问问有国区账号用户在更新 DSM 7.0.1-42218 Update 2 后,还能在群晖上安装 chat server 的方法吗

CI/CD 是谁来维护

Posted: 24 Feb 2022 02:13 PM PST

各位 developer ,你司的各种 CI/CD 环境都是专人维护还是开发花时间来维护?

Vue3.0 如何快速入门?

Posted: 24 Feb 2022 01:34 PM PST

需求:按照生产级最佳实践部署小而美的 demo 项目。

背景知识:vue2 使用比较熟练,没用过 typescript

要快速达成需求有什么推荐的阅读项目或者教学吗?

接手了个屎山项目

Posted: 24 Feb 2022 11:38 AM PST

新换了一家公司. 做项目外包的. 入职之后接手的项目, 需求文档没有, 代码注释没有. 一行都没有.
入职一个月项目经理就给我安排了个大活儿, 让我改原有跟统计报表相关的东西 (之前也做了其他功能).

问项目经理说你要改的, 新加的字段都怎么算出来的? 从哪个表哪个字段出来的? 答曰:"你自己看代码嘛. 我们 XX 项目都没注释也都往下做了你咋就做不了."
我无语. 爬屎山去了.
大概总结出各字段的计算公式发给项目经理. 项目经理:"我不关心你这个什么公式的哪有这么复杂, 就很简单的 blablablabla... 就出来了嘛."

我该说什么好...

电商问题的最终瓶颈

Posted: 24 Feb 2022 10:21 AM PST

我自己想了个场景,无限的流量冲击下的购买商品,类似于双 11 ,以及解决方式

面临无限大的流量冲击下的下单服务 首先排除使用队列,因为要保证对用户的实时性; 其次排除限流,前提就是不想错过任何一个流量;

只能利用 redis 去控制库存,在库存为 0 后,还要面对大量的 redis.get(key) > 0 的单纯的判断操作,这时候,只能去无限增加 redis 的服务器去分 key ,同时需要做到自动化扩容。

最终的瓶颈就是 redis 服务器的数量。但是真的可以做到自动化扩容 redis 分 key 的这个操作吗

求一个 patch configmap 的指令

Posted: 24 Feb 2022 10:20 AM PST

# kubectl get configmap myconfig -o yaml   apiVersion: v1 kind: ConfigMap metadata:   name: debug-config data:   debug.json: |-     {         "portServiceDMS": 500,         "Buggdse": {             "Status": false         },         "GHInterval": {             "Start": 5062,             "End": 6000         },         "LOPFdFhd": false,         "CHF": {             "DriverName": "mysql"         },         "Paralbac": {             "LoginURL": "https://127.0.0.1:7788",             "Sources": [                 {                     "ServiceName": "Hopyyu",                     "Status": false,                     "ServiceURL": "https://127.0.0.1:9090/ft/test"                 },                 {                     "SourceName": "Bgudreg",                     "Status": false, # 需要修改这里为 true                     "ServiceURL": "https://127.0.0.1:9090"  # 需要修改这里为 "https://192.168.123.177:9090"                 }             ]         }     }  

请教下各位,如何使用 kubectl patch命令将上面加注释的 2patch 更新,只求个命令行处理,不采用交互指令如edit

顺带再请教下,pod中按以下方式使用的configmappatch configmap后,可以不删除pod就更新配置吗?

  volumes:   - configMap:       name: debug-config     name: debug-config 

飞书 超声波识别会议室 是什么原理?

Posted: 24 Feb 2022 09:30 AM PST

飞书有个功能,进入会议室后,点飞书的投屏功能,就会自动连接你所在的会议室。
他这个功能叫"超声波投屏",需要依赖电脑的麦克风。
所以这个是什么原理? 难道是会议室设备一直放出一个高频率的人听不到的声音,被电脑用麦克风接收? 可如果这样的话,会不会对人有伤害,对设备寿命有很大的伤害?

字符串解密,爬虫大佬救命!

Posted: 24 Feb 2022 08:21 AM PST

爬虫大佬救命!!!

原字符串: 'CXdsnfa58DAFYpZC6jd5KzgvMQcn9WcOJav8JlZHest1E19CY70vNwNTvj1DdAFnQjge1292c8njAVpmIelE6QHw+qvQOSSdrGqInRRfrgZUbsY/Z67/PYHdidZFghj/7eWqYIPCnp6/DlKlvQEn++bwBBBU/DZEjRD55wQA5yBczi3XKg2/tYkT5Y2Z8xF2VWSaAZgj8o2v9yWA/9UT9fVvMOs/G7e7DlhnKCSTQXLimZW/uF1Gj+jNwF1uD4jlqNloMiUQpu0Z5B4RmtLrFhe4R2CQ7T7XpBy223t7Za+u5wh3OfFoqjqqs45Vjw5s6rl3+AAo3CocI6ha56igYK8S8bTU89o51Lst6vwe8pF4xnnY09GK4+Hnuz3rod/GyBY4VvFmzp+///ayJkPSH4D9p0ObwwFPOuXaxyTUJAgXUHhTBWLn6zSeamtzXjJg1rhbc5WoFNiaKkFme63/8PeAo/hPkBBXHyjy70Pum18HK1BLJjVjtiFzr3oG87tSaiAHKt65HAzk6JoBS9ITXPSBQGhNHnSbWy9oTkl+2eA='

base64 解码: b"\twl\x9d\xf6\xb9\xf00\x05b\x96B\xea7y+8/1\x07'\xf5g\x0e%\xab\xfc&VGz\xcbu\x13_Bc\xbd/7\x03S\xbe=Ct\x01gB8\x1e\xd7ovs\xc9\xe3\x01Zf!\xe9D\xe9\x01\xf0\xfa\xab\xd09$\x9d\xacj\x88\x9d\x14_\xae\x06Tn\xc6?g\xae\xff=\x81\xdd\x89\xd6E\x82\x18\xff\xed\xe5\xaa\x83\xc2\x9e\x9e\xbf\x0eR\xa5\xbd\x01'\xfb\xe6\xf0\x04\x10T\xfc6D\x8d\x10\xf9\xe7\x04\x00\xe7 \\\xce-\xd7*\r\xbf\xb5\x89\x13\xe5\x8d\x99\xf3\x11vUd\x9a\x01\x98#\xf2\x8d\xaf\xf7%\x80\xff\xd5\x13\xf5\xf5o0\xeb?\x1b\xb7\xbb\x0eXg($\x93Ar\xe2\x99\x95\xbf\xb8]F\x8f\xe8\xcd\xc0]n\x0f\x88\xe5\xa8\xd9h2%\x10\xa6\xed\x19\xe4\x1e\x11\x9a\xd2\xeb\x16\x17\xb8G\x90\xed>\xd7\xa4\x1c\xb6\xdb{{e\xaf\xae\xe7\x08w9\xf1h\xaa:\xaa\xb3\x8eU\x8f\x0el\xea\xb9w\xf8\x00(\xdc*\x1c#\xa8Z\xe7\xa8\xa0\xaf\x12\xf1\xb4\xd4\xf3\xda9\xd4\xbb-\xea\xfc\x1e\xf2\x91x\xc6y\xd8\xd3\xd1\x8a\xe3\xe1\xe7\xbb=\xeb\xa1\xdf\xc6\xc8\x168V\xf1f\xce\x9f\xbf\xff\xf6\xb2&C\xd2\x1f\x80\xfd\xa7C\x9b\xc3\x01O:\xe5\xda\xc7$\xd4$\x08\x17PxS\x05b\xe7\xeb4\x9ejks^2\xd6\xb8[s\x95\xa8\x14\xd8\x9a*Af{\xad\xff\xf0\xf7\x80\xa3\xf8O\x90\x10W\x1f(\xf2\xefC\xee\x9b_\x07+PK&5c\xb6!s\xafz\x06\xf3\xbbRj \x07*\xde\xb9\x1c\x0c\xe4\xe8\x9a\x01K\xd2\x13\\xf4\x81@hM\x1et\x9b[/hNI~\xd9\xe0"

目测是 bz2 加密: 但是使用 python 的 bz2.decompress() 函数却报错了,OSError: Invalid data stream

有大佬知道怎么解密吗,在线蹲。

有没有专门公布软件漏洞,能订阅自己在用的软件,有漏洞自动邮件通知的网站?

Posted: 24 Feb 2022 07:34 AM PST

现在漏洞都是通过论坛和关注的 tg 频道得知的,有的知名度不太高的项目有漏洞没人发我就不知道。

腾讯云服务器炸了

Posted: 24 Feb 2022 06:19 AM PST

实例都不见了... 轻量云

No comments:

Post a Comment