Sunday, June 12, 2022

V2EX - 技术

V2EX - 技术


吐槽: Windows 竟然没有 rsync...

Posted: 12 Jun 2022 04:54 AM PDT

今天终于闲了会儿,突发奇想把媳妇闲置很久的本子拿来折腾。
为了不挨打先备份资料,把闲置很久的小米硬盘路由拎出来挂了个 smb ,然后 Windows 下挂载网络磁盘
复制粘贴简直要命,中间 wifi 抽风断了下,40g 的文件夹复制了 20g 过去,看着就蛋疼
掏出 powershell ,rsync ,命令不认识,掏出 mingw64 ,rsync 不认识,网上一查,各种收费版,一个 power shell 版的 github 上 10 年前的,装了还报错...
于是装个 python 然后写个遍历文件夹判断大小不同重新复制

Windows 下同步文件夹都用什么?总不至于都是各自造的轮子吧?简直了

前端开发 RN macbook air 还是 pro ?

Posted: 12 Jun 2022 04:42 AM PDT

前端 react-native 开发,平时工作中比较耗性能和占硬盘的是 xcode

现在手上的是 2020 年买的 macbook air ,8G 内存 256G 硬盘,够用,没啥特别大问题。但是最近愈发的卡顿,还经常死机(一周两次的频率,往往是在微信打字的时候),而且硬盘也快满了。

于是乎决定换新了,请问是推荐 air 还是 pro ?

air 的话大概会买 新款的 16G 内存 512G 硬盘 M2 芯片 官网价格 13399

pro 的话大概会选 新款的 13 寸 16G 内存 512G 硬盘 M2 芯片 官网价格 12999

为什么 pro 比 air 更便宜 ?我有点搞不懂了...

ZOOM 这家公司未来前景如何?推荐程度如何

Posted: 12 Jun 2022 04:37 AM PDT

现在在一线互联网公司,因为公司发展受阻,所以最近有换工作的想法,手里几个 offer 目前就觉得 Zoom 还行,遂有此贴,不是求职单纯是为了咨询,所以没有发在「酷工作」。

先来说一下个人情况:

  • 2021 年校招 ssp ,无股票
  • 带一条业务线的单独业务分支,但是业务因为政策问题迟迟无法上线
  • 后半年有机会晋升,但是可能性不大,因为后半年窗口比较小
  • 字节一个月前三面挂过,现在被捞起来流程中,还没面完,走完估计两周

再来说下 Zoom 的情况:

  • Zoom 给了一个平的总包
  • 没有一个明确的级别体系和晋升规则
  • 薪资有 1/3 股票构成,月 base 比目前低 10+
  • 我不太清楚美股变现规则,手续费和税之类不是很懂

我的顾虑:

  • 返回互联网会不会被卡级别、卡涨幅?
  • 在 Zoom 会不会成长停滞
  • Zoom 在后疫情时代会不会发展受阻?

感谢各位大佬各抒己见🙏

腾讯云误封挖矿 称是监管部门通报 无任何证据 求 v 友支招

Posted: 12 Jun 2022 04:36 AM PDT

2021 年 1 月 432 拿下的 4 年腾讯轻量云服务器,使用 1 年半体验还行。

2022 年 6 月 12 日上午收到微信通知,称有挖矿预警。感到很诧异,一直是私钥登录,还能被黑?看了看腾讯云自己的监控,各种使用率都无异常;近期无异常登录记录,日志一切正常。这时还能正常登录觉得问题不大。

在线联系后客服称监管部门通报,需要直接清退。"当前查询您此服务器被监管部门通告涉及挖矿行为导致封禁。"啥其他证据没有,就让我备份退款了。我当然不干,工单、在线咨询、电话致电都是一样的结果,对于这个所谓的"监管部门"一问三不知,我在工单中提到:"请给出任何有效的证据,包括涉及挖矿的时间、端口、进程与文件名,你们的云盾 24 小时运行在服务器上,不会这个都检查不到吧?"。没有得到正面回应,就是个复读机。

目前在工信部和深圳 12315 提交了申诉,估计不会有什么结果。看看 v 友能不能支招,不排斥诉讼手段,我硬要看看哪来的挖矿证据。

小米相册的逻辑太混乱了

Posted: 12 Jun 2022 04:34 AM PDT

迫于双开微信等需求,告别 iPhone ,加入 Android 阵营,买了一个小米 12X ,在用小米换机的时候发现,从 iPhone 传照片到小米,一共 84 张照片,在 DCIM 下被分成了 79 个文件夹,照片名字是一长串随机大写英文字母,文件夹名字是 group+随机三位数,日期竟然莫名其妙地都是 2022 年 3 月 2 日。
打开相册 app ,首页照片的顺序都是乱的,点开一张照片发现拍摄日期还是对的,也就是说,一张 2021 年 9 月 6 日拍摄的照片,在文件管理 app 里作为一个文件,日期成了 2022 年 3 月 2 日,然后在相册 app 里默认也是按文件日期来排序,然而点开这张照片,可以看到拍摄日期还是 2021 年 9 月 6 日,只有右滑到相册 app 的第二屏"相册",选择"全部照片",才可以选择以拍摄日期排序,并且此时的顺序是正常的,然后就觉得,这个逻辑也太混乱了,难道默认以拍摄日期排序不好吗?

分享一下如何免 ROOT 隐藏状态栏 NFC/闹钟等图标

Posted: 12 Jun 2022 04:33 AM PDT

因为最新的 MIUI 测试版 /其它部分 UI 会始终显示 NFC 图标,所以写一下这个图标如何隐藏。

准备工作:

  1. USB 数据线
  2. 电脑端 adb
  3. 手机打开 USB 调试,部分设备需要打开USB 调试(安全模式) 一般会在 USB 调试开关的下方

操作步骤:

adb shell settings put secure icon_blacklist nfc 

nfc 可以替换成下面的内容,多个的话可以用,分割。

图标 图标描述
volume 静音 /震动图标
location 定位图标
speakerphone 麦克风使用中图标
wifi wifi
hotspot 热点
alarm_clock 闹钟
bluetooth 蓝牙
airplane 飞行模式
headphone 耳机
cast 录屏状态
nfc nfc

如果需要恢复,需要使用:

adb shell settings put secure icon_blacklist null 会一次性恢复所有图标 

Magisk 顶级开发者居然都是国人

Posted: 12 Jun 2022 04:26 AM PDT

之前只知道吴是台湾的,Magisk 更新后,看了下其他主要开发者 GitHub 发现都是国人

大家游戏机用哪一版本的的 Win10?

Posted: 12 Jun 2022 04:04 AM PDT

目前游戏机配置:5950X + 128G RAM + RTX2080



目前安装:Win10 LTSC 2021



因为是 AMD,听说 2H1 也就是 LTSC 2021 有针对 AMD 优化,所以装了 Win10 LTSC 2021 EN ,目前感觉良好,就遇到一个 IME BUG ,修复后感觉还是有点不爽。而且 Task manager Performance stats 是不是有延迟,总是显示慢半拍? GPU accelerate Schedule 也有问题。感觉这 2021 版本的 LTSC 怎么这么烂!大家有没有什么推荐的 Windows 游戏系统版本,不要 Win11!

萌新提问(idea vim)

Posted: 12 Jun 2022 01:29 AM PDT

求一个 idea vim 的配置文件..看了很多其他的要么功能不全要么都是英文简绍

小飞页升级变智能修复 Bug 更快速了

Posted: 12 Jun 2022 12:41 AM PDT

想起之前小飞页后台升级真让我纠结,因为后台是对应一个版本号来访问的( pagepanyun.com/7.15.0/pager )就是这样子。

问题来了,如果这个版本号( 7.15.0 )发现 Bug 要立即处理,当我很快的修复完这个 Bug 之后,我需要发布一个新版本号 7.15.1 怎么办? 还能怎样只能再创建一个文件夹名称 7.15.1 再上传一次后台系统 ( ̄▽ ̄)"。

想起来就麻烦,如果按这样下去目录会非常多并且占用磁盘空间。还有我没有那么积极的只为一个小小 Bug 立刻发布新的版本号。这样就会影响了用户使用小飞页的体验。

这一次的改变其实也很简单,只是版本号后面少了一个修订号版本,变成了( pagepanyun.com/7.15/pager )虽然只是一个小数点少一位的小小改变,但会影响到整个后台系统逻辑和其它程序关联的问题。

经过几天时间的连续加班加点,最终实现了修复 Bug 不需要创建新版本号目录,只需要覆盖当前 7.15 版本号文件并在用户重新登录后台提示用户有修复版,升级完成后还是原来的版本号 7.15。_注:如果只是修复后台不关联用户站点源码就不会有提示升级。_

小飞页修复版弹出框提示

只有 主版本号 或者 次版本号 变化才会新建版本目录。

小飞页新版本弹出框提示

关于软件版本号规范说明: https://semver.org/lang/zh-CN/

关于 google ad manager 代码,请高手指教。

Posted: 11 Jun 2022 11:52 PM PDT

添加 google ad manager 后,正确显示 adsense 的广告。但是在控制台会报错:
GPT] Exception in googletag.cmd function: TypeError: Cannot read properties of null (reading 'addService').
到底是哪个环节的问题?
下面是本地的代码
import Head from 'next/head';
import { useEffect } from 'react';

const useDfpSlot = ({ path, size, id }) => {
useEffect(() => {
if(window){
const googletag = window['googletag'] || {};
googletag.cmd = googletag.cmd || [];
googletag.cmd.push(() => {
googletag.defineSlot(path, size, id).addService(googletag.pubads());
googletag.pubads().enableSingleRequest();
googletag.enableServices();
googletag.display(id);
});
}
}, [path, size, id]);
};

// 侧边栏广告
export const AdSidebar = () => {
useDfpSlot({
path: '/20000000000/Sidebar',
size: [160,600],
id: 'div-gpt-ad-10000000000-0',
});

return (
<div
id="div-gpt-ad-10000000000-0"
style={{
display: 'inline-block',
width: '160px',
height: '600px',
margin: 'auto'
}}
>
</div>
);
};

// 收件箱广告
export const MailAd = () => {
useDfpSlot({
path: '/20000000000/ads/inbox-Ad',
size: [[728, 90],[970, 90]],
id: 'div-gpt-ad-10000000000-0',
});

return (
<div
id="div-gpt-ad-10000000000-0"
style={{
display: 'inline-block',
width: '970px',
height: '90px',
margin: 'auto',
}}
>
</div>
);
};


// 首页广告
export const MainPageAd = () => {
useDfpSlot({
path: '/20000000000/ads',
size: [728, 90],
id: 'div-gpt-ad-10000000000-0',
});

return (
<div
id="div-gpt-ad-10000000000-0"
style={{
display: 'inline-block',
width: '728px',
height: '90px',
margin: 'auto',
}}
>
</div>
);
};

[ git rebase ] 操作 - 关于远端代码回退的问题

Posted: 11 Jun 2022 10:39 PM PDT

请教下 git rebase 的操作

当前状态:

本地 feature 开发,做了多次本地 commit 后,在同步到远程前,先做了 fetch ,获取 master 最新的远程代码,然后本地 rebase 操作,未 push 。

碰到的问题:

远程的代码有问题做了回退,这时候本地怎么处理比较好?

我尝试了几个方案,都有些复杂。 把自己 rebase 的代码 reset ,本地 stash 保存,然后操作 master 代码回退后,再次 rebase 。这样比较麻烦,有没有更简单的操作?

场景说明:

master  C1 -> C2 -> C3... Cn feature C1 -> C2 -> C3... Cn -> A1 -> A2  远端把一部分代码做了回退,用了 reset --hard ,本地需要把中间的一些改动去掉  

历时 4 个月, CabloyJS 4.21 震撼发布,应对大型项目开发

Posted: 11 Jun 2022 03:30 PM PDT

引言

凡是可以用 JavaScript 来写的应用,最终都会用 JavaScript 来写 | Atwood 定律

目前市面上出现的大多数与 NodeJS 相关的框架,基本都将 NodeJS 定位在工具层中间层代理层,很少在业务层面进行深耕,认为这是 JAVA 的领域,NodeJS 不适合。这种思潮明显是与Atwood 定律相悖的

如果您想感受与众不同的 NodeJS 全栈开发体验,一定要试试自带工作流引擎的 CabloyJS 全栈开源框架。为了提升业务层面的开发效率和开发体验,CabloyJS 在前端和后端均提供了大量实用的工具和组件

有网友反馈说:CabloyJS 是一款教科书级的框架。CabloyJS 包含大量前端和后端最佳实践,从宏观架构到微观编码,都反复的进行抉择和重构。因此,如果您要深入学习和研究 Node 全栈技术,CabloyJS 是一款极佳的源码范例。此外,CabloyJS 也是一款成熟的面向开发人员的低代码开发框架,是协助您快速开发项目的利器

升级清单

CabloyJS 从4.12升级到4.21,历时 4 个月,GitHub 提交数从8000+一路干到11000+,为应对大型项目的开发提供了丰富的工具

4.21.0

4.20.0

  • 重构
    • 重构 Mail 系统配置:支持源码开发+在线编辑两种配置方式
    • 重构 SMS 系统配置:支持源码开发+在线编辑两种配置方式

4.19.0

  • 新增
    • App 应用
      • App 应用是 CabloyJS 应对大型项目的三驾马车之一
      • 一个 App 应用 是一套界面布局的组合,包括三大部件:
        • Menu 页面
        • Home 页面
        • Mine 页面

4.18.0

  • 新增
    • 套件
      • 套件是 CabloyJS 应对大型项目的三驾马车之一
        • 套件模块、应用
        • 一个 套件 可以包含多个 模块

4.17.0

4.16.0

  • 新增
    • 开放认证引擎
      • 允许用户动态分配 ClientID/ClientSecret ,并分配可以访问的权限子集
      • 允许通过命令行直接访问后端服务 API

4.15.0

  • 重构
    • 实现分级授权机制
      • 重构角色管理
      • 重构用户管理
      • 重构资源授权
      • 重构数据授权

4.14.0

  • 重构
    • 重构用户身份认证引擎
    • 重构内置的认证提供者
      • 用户 /密码
      • 短信
      • GitHub
      • 微信:H5 登录、PC Web 登录、小程序登录
      • 企业微信:H5 登录、PC Web 登录、小程序登录
      • 钉钉:H5 登录、PC Web 登录、小程序登录、后台管理登录

4.13.0

  • 新增
    • 通用的svg 图标引擎:制作、管理、使用

演示站点

直接浏览 CabloyJS 的演示站点,增加更直观的感性认知

  1. 体验 CabloyJS 应对大型项目的三驾马车套件模块App 应用

  2. 体验与众不同的pc=mobile+pad自适应布局风格,强烈推荐:分别用PCMobile单独体验演示站点。此言不虚,请您品鉴!!!

相关链接

我与 Apache 软件基金会的故事

Posted: 11 Jun 2022 12:06 AM PDT

原文发布在 公众号:琚致远,也欢迎阅读 创业 2 年值得分享的事情 😊

2015 年我在读大一,在部署 Web 项目时用到了 Apache Web Server ,Apache 软件的羽毛标志只需看一眼就能牢牢记住。

image

Apache 软件基金会成立于 1999 年(我出生于 1997 年),作为全球最大的开源软件基金会,我从未想过会现在与它有更深入地联系。

项目

2019 年大学毕业后不久,APISIX 项目发起人联系到我,希望我能为 APISIX 贡献一个 Dashboard 项目。首先,什么是 APISIX ?那时我对 APISIX 项目的理解仅仅是一个开源的 API 网关,那什么是 API 网关呢?我没有使用过这类产品,更谈不上如何做一个与 APISIX 配套的 Dashboard 了。

在大学期间自己接了许多项目(来自学校、朋友介绍、政府部门),尽管我对"如何构建 API 网关控制台"没有思路,但我清楚一个 Web 项目包含了"需求确认、产品设计、代码开发、功能测试、服务上线"这几项基本流程。

image

在多次与 温铭、院生 沟通产品需求后,我为 APISIX 项目制作了 APISIX Dashboard V1:它没有精致的 UI (如下图所示),但能够满足对 APISIX 核心概念地操作,此时自己对 API 网关以及 APISIX 相关概念更加清晰了。

image

值得一提的是:APISIX 内置了数十种插件对 API 请求、响应进行处理,这些插件通过 JSONSchema 进行插件配置参数地合法性检查。以 limit-req 插件为例,它的 JSONSchema 规则如下:

local schema = {     type = "object",     properties = {         rate = {type = "number", exclusiveMinimum = 0},         burst = {type = "number",  minimum = 0},         key = {type = "string"},         key_type = {type = "string",             enum = {"var", "var_combination"},             default = "var",         },         rejected_code = {             type = "integer", minimum = 200, maximum = 599, default = 503         },         rejected_msg = {             type = "string", minLength = 1         },         nodelay = {             type = "boolean", default = false         },         allow_degradation = {type = "boolean", default = false}     },     required = {"rate", "burst", "key"} } 

当用户为某一条 Route 配置插件时,为了降低用户理解 JSONSchema 规则的难度,我们尝试在界面中根据规则直接渲染表单字段,如何在界面中动态地生成插件配置表单是我遇到的最大的挑战。通过一系列调研与测试,我自定义了一个 UI 组件,它可以通过接收 JSONSchema 规则渲染指定表单,这个组件得到了许多用户好评。

在 2020 年中,我们计划开发 Dashboard V2 ,主要原因有:

  1. 随着插件越来越多,自己维护的表单组件不足以覆盖所有插件场景,无意中发现了 react-jsonschema-form 这个流行的 JSONSchema 表单生成器组件,希望使用它来解决表单生成的问题;
  2. Dashboard V1 是自己独立使用 Vue.js 与 ElementUI 开发的,在适配基金会发版要求时我们修改了大量的源码文件,由于种种原因代码变得不易那么维护;
  3. Dashboard V1 是直接对接了 Admin API ( DP ),我们希望采用 DP 与 CP 分离的架构,因此需要为 Dashboard 单独开发一个 API Server 。

直到今天,Apache APISIX Dashboard 依然在缓缓维护着 V2 版本。

具体开发过程不再赘述,但值得分享的事情是自 2019 年到 2020 年末,Apache APISIX Dashboard 与 Website 两个项目的 Web 贡献者非常少,这是由于 Apache APISIX 这个 API 网关属于中间件分类,用户以服务端开发者居多。为了解决事情多、贡献者少的问题,我选择使用 Ant Design 作为 UI 组件库、使用 Ant Design Pro 作为项目脚手架,直接原因是那段时间社区以中国开发者居多,采用文档清晰、产品质量高的 Ant Design 作为项目基础组件,会降低中国开发者的贡献门槛,唯一缺点是 Ant Design 在中国太流行了,许多项目的 Dashboard 长得非常像。

image

从下图可见,自 2020 年中到年末,Dashboard 贡献者数量在明显地上升。来自中国、印度的贡献者们,从一些国际化内容修改到大块模块地开发,为 Dashboard 项目添砖加瓦。其中,有几位贡献者的故事令人瞩目,我会在另一篇文章进行记述。

image

社区

中学时我对 Web 渗透技术非常感兴趣,会在各种技术论坛中学习、交流,那时我便经常听到"社区"这个词。2016 年,我参与到了 freeCodeCamp 中文社区中,并与 Miya 等人参与到中国多个城市站建设当中,以成都、上海、杭州之活跃,并结交了众多志同道合的朋友们。

image

WechatIMG783

2019 年参与到开源项目 APISIX 后,我在不断为项目贡献代码之外,也在关注、回复 GitHub 、邮件列表的用户问题,并与开源用户进行讨论。随着用户地逐渐增多、讨论越来越频繁,忽然我觉得有"社区"的味道了。

APISIX 项目被捐献给 Apache 软件基金会、2020 年从基金会毕业、拥有众多国内大 B 用户地生产使用案例等,每一个事件都吸引了众多行业用户关注、为社区带来了更多用户与贡献者、为项目带来了更多生产用户的内部反馈与实践。

image

社区是由人构建的,Apache APISIX 社区是由来自全球各地、有着不同语言与文化的贡献者、用户以及社区共同参与维护的。在过去 3 年时间里,我们一直在做这样的事情:

  1. 认可、宣传、普及 Apache 文化;
  2. 举办线上或线下社区会议,持续关注用户反馈;
  3. 帮助不同经验的贡献者参与社区之中;
  4. 持续优化项目、丰富文档资料,帮助用户更好地使用产品。

经过不懈的努力与坚持,Apache APISIX 社区贡献者已超过 400 位!🎉

image

成为 Apache APISIX 贡献者,我们会尝试联系大家并邮寄一份周边以表心意。每当收到来自不同国家的贡献者动态,作为社区建设的一份子,因 TA 们付出的卓越贡献而激动不已、也会为自己感到骄傲与自豪!

image

image

用户

Apache APISIX 属于基础软件设施的中间件分类,其用户指全球使用 API 的企业。

2019 年末,贝壳找房是已知的首家超大流量生产用户,那时起便每天处理过亿生产流量,Apache APISIX 表现的非常稳定。

想象一下:每乘地铁、出差乘飞机、购买咖啡 /奶茶、看哔哩哔哩、使用 WPS 时,这些数字服务的背后都有 Apache APISIX 的存在,这种感觉是多么的棒!

我们还有许多生产用户,请访问https://apisix.apache.org/showcase 了解更多。

image

认可

2019 年刚参与 Apache APISIX 时,仅仅是因为它是一个开源项目、自己一直希望深度参与到一个开源项目当中,在 2019 年 10 月份,温铭 告诉我项目成功捐赠到了 Apache Software Foundation ,在毕业之前叫做 apache/incubator-apisix,我被邀请进入 initial committer。我记得很清楚:那天在办公室,内心充满欣喜地打印 Apache CLA 文件,并签名、拍照、上传,然后拥有了自己的 Apache ID juzhiyuan!!!🎉

2020 年,项目从 Apache 软件基金会毕业后,自己成为了正式的 Apache APISIX PMC 成员,除了贡献代码外也在积极维护社区建设,帮助、观察新的贡献者并选举优秀的贡献者加入 Committer 。到目前为止,我已成功推选 8 位优秀的 Committer ,其中 2 现在是 Apache APISIX PMC 成员。

image

2022 年 3 月某一天早上,自己收到了 Apache Member 邀请邮件,这是多么惊喜的事情呀!意味着自己除了关注 Apache APISIX 社区之外,也有了更多的责任与义务,与各位共同维护、发展 Apache 软件基金会。为此,社区专门采访了我,请阅读琚致远:95 后 Apache Member 的成长之路

image

时间线

image

image

image

image

image

image

Summer 2020

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

No comments:

Post a Comment