

多版本共存——巨型项目组件库升级的必经之路
组件库升级是一个令开发者头痛的事情,即使像 Ant Design 这种经历了多年发展的组件库,升级也不是一件容易的事情——轻则 API 不兼容,重则影响自定义样式和用户体验。(为什么 API 不兼容反而影响小呢?因为 Ant Design 提供了 codemod 工具辅助解决 API 的迁移,并且如果使用了 TypeScript,类型不匹配是不会编译成功的。)我们部门的项目,为了符合部门设计规范,用的是自己开发的组件库,而我是组件库的主负责人。在去年 Q3、Q4 我们做了大量的走查问题修复和功能开发,其中有些修改无法向下兼容,这就导致了我们的组件库升级成了一个大问题。经过简单的测试,暴力升级伴随的最显著问题是行高变小和表单错位,这对于一个 to B 的项目来说是致命的。组件库升级的难点我们的项目从两年前开..
更多如何自签名带 SAN 字段的 SSL/TLS 证书
前言在本站之前一篇文章 如何成为 CA,并签发自己的证书 中,我们介绍了如何做一个“正规”的自签名证书。但是,这个方法对于现代的浏览器不太管用了,因为 Chrome、Firefox 等浏览器已经不再判定证书的 CN (Common Name) 字段与域名是否一致了,而是改用判定 SAN (Subject Alternative Name) 字段。具体为什么这么做以及 SAN 的含义,网上有很多解释,很重要但是这里不谈,只谈如何在自签名证书中正确配置 SAN 字段。网上的教程有很多,但很多没有说清楚,或者缺少一些关键步骤和参数,导致实际情况下出各种问题,这里我尽量整理了一个完善的版本。准备步骤首先,CA 的证书与文首提到的文章一致,如果之前配置过,那就不需要再生成了。然后,生成待签发证书的私钥,这一步也与上..
更多网站资源迁移说明
网站迁移说明博客站 blog.rustfisher.com 和教程站 an.rustfisher.com 的网站资源已经上传到github。rustfisher.github.io - githubAnRFDev.github.io - github并托管在cloudflarean.rustfisher.com -> anrfdev-github-io.pages.devblog.rustfisher.com -> rustfisher-github-io.pages.dev若访问速度过慢,可考虑使用🪜
更多

Flask中如何嵌套启动子线程?
如果你在Flask中启动过子线程,然后在子线程中读写过g对象或者尝试从request对象中读取url参数,那么,你肯定对下面这个报错不陌生:RuntimeError: Working outside of request context..例如下面这段Flask代码:123456789101112131415import threadingfrom flask import Flask, requestapp = Flask(__name__)def inner_func(): doc_id = request.args.get('doc_id', '') print(f'用户ID为:{doc_id}')@app.route('/start_thread')def start_thread()..
更多

IE-by-generation-t5
引言本文主要分析CCKS 2022 通用信息抽取 – 基于UIE的基线系统代码实现,代码为DuUIE。本文和目前官方在不停推广的UIE稍微不同的是,本文是采用生成式的方式来做信息提取,也是百度最早论文所实现的方式。目前官方推广的是基于片段抽取的提取方式。对于这两者的不同,可参考DuUIE和UIE的对比。 对于官方宣传的UIE的实现,之前代码也有做过分析UIE-事件提取,感兴趣的可以去看看。 通用信息提取目前对于信息提取没有一个非常严格的定义,但是特点是针对不同的事件定义不同schema。针对给定的句子甚者是文章,来完成对应schema信息的提取。 信息提取形式上可分为三类: 1、flat(即每个schema成分都是平铺的,不存在交叉之类的现象)2、nest(一个schema成分也可作为另外一个schema..
更多

Juniper Junos系统架构和命令模式浅谈
介绍Junos OS 是支持瞻博网络广泛的物理和虚拟网络及安全产品组合的单一操作系统。Junos OS 包括以下架构变化:裸机上运行的 Junos OS FreeBSD 6。这是基于 FreeBSD 6 内核的 Junos OS。(很老版本)Junos OS FreeBSD 10 或更高版本的裸机上。这是基于升级后的 FreeBSD 内核的 Junos OS。从 Junos OS 15.1 版开始,某些硬件平台运行升级版 FreeBSD 的 Junos OS。从 Junos OS 版本 16.1 开始,升级版 FreeBSD 的 Junos OS 可作为访客虚拟机 (VM) 在 Linux 虚拟机主机上运行。有关运行具有升级后的 FreeBSD 的 Junos OS 的更多信息,请在功能探索器中搜索 Ju..
更多

使用cloudflare tunnel打洞,随时随地访问内网服务
由于我家的网络只有ipv6,没有公网ipv4,导致两个问题: ipv4网络下,无法访问家里的服务。 常用端口(80,443)被屏蔽了,要访问的话,必须带上端口号,例如:example.com:9527 cloudflare tunnel很好地解决了这两个问题,有了它我们甚至不需要公网ipv4或ipv6,可以把它理解为免费的打洞工具frp。唯一的缺点是速度可能不够理想,我家里的网络,单连接只有几百k/s,多连接可以跑满上行带宽2M/s,公司的网络单连接也能跑满上行带宽。可以把cloudflare作为备用,在无法使用ipv6的情况下,也至少能低速访问自己的服务。 安装 前置条件 一台已连接互联网的linux服务器(不需要公网ip) cloudflare账户,虽然cloudflare tunnel套餐是免..
更多

i.MXRT1xxx系列启动分析
Foreword 与ST对比,i.MXRT1xxx系列的启动方式和流程都有很大不同,对比ST来说有一部分可以说相当麻烦。 Armv7-M Address Map 一般来说 0x00000000-0x1FFFFFFF的范围程序ROM的地址,SRAM都是从0x20000000-0x3FFFFFFF开始的,一般这个空间上的RAM都是片内的RAM,之后紧接着的就是片上外设的地址。0x60000000-0x7FFFFFFF一般IMXRT系列用的外部RAM都分配在这个区域 对于ST来说官方提供了BootROM,也就是常用的ISP下载,提供了BootMode,可以选择是从官方Boot启动还是自定义启动,到了F7H7的时候,直接给了用户自定义启动地址。一般来说可以从内部Flash或者官方ROM启动,视为一级启..
更多会员卡作为留存手段
小区附近开了一家糕点店,开业首日搞活动路过,就买了些甜甜圈、蛋挞之类的投喂娃。接下来莫名其妙就在他们家连续买了好几周各式糕点,老妈和老婆还专门去开了会员充了值。本来没觉得有啥,但是今天突然读到个东西来自 《销售与市场》杂志上另一个母婴用品店的案例突然觉得收到启发,觉得这玩意不简单。 首先个人家里长辈是比较反对这件事的,觉得外边的食品「不卫生」,老婆也反对「甜食」,所以去光顾糕点店本来就是个罕见行为,更是低频行为。是什么因素导致这个变化呢?就是开业首日结账的时候,店员非常推荐我们钱办会员。比如当时我们在店里消费16元,如果充64元,那么今天这16元就当场免单。而且会员卡以后可以参加8.8折活动。 当时因为孩子也想吃,所以这个16元肯定是要花了。心里一想这64元也就4倍,来消费4次就花光了,这店肯定不会在这之..
更多Juniper RE防护-过滤SSH&Telnet登录
简介1、本教程仅适用于Juniper MX系列和QFX系列设备。(验证过)2、提交配置时候,建议使用可自动回退的提交,防止无法远程管理。3、本教程主要用于Juniper设备的登录防护,限制IP登录SSH或Telnet等远程控制协议。PS:设备如果有公网IP,几乎无时不刻都有扫描和登录攻击。而且Juniper某些版本有Bug可能因此重启。配置命令编写过滤规则1234567891011121314set firewall family inet filter RE-Protect term management_permit from source-address 192.168.2.0/24set firewall family inet filter RE-Protect term management_..
更多