ChatGPT自推出以来大受欢迎,发布会也已抢去了昔日Apple的风光,大家都关注起了ChatGPT/OpenAI每次要发布新公布功能。

我们经常看到有人有了新功能资格,有人却没有,那么这个发布策略是怎么样的呢,这里我记录下我所了解的。

OpenAI 发布会

OpenAI/ChatGPT的新功能,往往是通过发布会来宣布,比如语音模式,GPTs等。此时我们往往只能在推特或者其它渠道看到他们的体验/宣传视频。

不得不说这种感觉很不爽。我们能做的只是等待。

阅读全文 »

Mac/iPhone端均可方便的开启MitM,那么ATV端如何做呢,这里总结下方法。

Surge Mac网关模式

假如Mac端直接网关模式,同时开启MitM,ATV在没有开启Surge的情况下连接网络,那么此时ATV发起的请求自然也会走Mac端的解密。

Surge ATV直接MitM

  1. Mac/iPhone等设备操作,利用Surge导出证书文件。

    Surge ATV配置文件用的是哪个设备的,则这里导出哪个设备的证书文件,避免配置文件中证书配置不一致

阅读全文 »

WebShell SSH登陆OpenCloudOS 9会直接断开。仔细调查后明白了问题点,这里总结下。

WebShell SSH登陆流程

这里WebShell使用的nodejs-ssh2实现终端登录

  1. ssh connect开启登陆交互Shell
  2. 登陆成功后,SSH底层连接复用,开启exec命令执行Channel,这里并发执行了4个命令。

报错信息

阅读全文 »

在Mac下执行tar压缩文件后在Linux CentOS下执行发现异常输出tar: Ignoring unknown extended header keyword LIBARCHIVE.xattr.com.apple.metadata:kMDItemTextContentLanguage,查询后发现是Mac下的tar不一样导致,这里总结下问题。

问题

Mac下执行如下命令进行tar打包

1
tar -czvf  ../xxxx.tar.gz --exclude='.DS_Store' xxxx/*

目标机器CentOS下执行tar解压缩

阅读全文 »

开发时遇到需求是Shell里需要执行下载安装CodeServer,因此就需要识别机器的CPU架构从而下载对应的程序包了。

CodeServer程序包

不同CPU架构需要安装不同程序

脚本

阅读全文 »

终端中输入命令时,光标后面会给出一个推荐命令,如果OK,按➡️就可以快速选择输入,这种功能业界叫autosuggestion.

autosuggestion!=autocompletion

首先搞清楚相关概念的不同。

  1. autosuggestion是基于历史或其它逻辑自动给出推荐的命令输入,这个命令是完整的,推荐位置在光标后面

  2. autocompletion是基于命令规范或其它逻辑给出当前输入命令的选项值,需要按键触发,一般是Tab键,补全的并不是完整的命令,而是当前命令的选项值,同时补全推荐会是多个,需要用户自行去选择。

由上可以知道两者不同,且并无冲突。

阅读全文 »

网页实现文件下载可以使用成熟的类库FileSaver.js,其压缩后的大小也就2KB,引入的话也并不会对站点有多大的体积负担。同时我们也需要了解下该pkg的实现,这里就梳理下实现逻辑。

saveAs API

先看下API方法的参数情况,可以看到直接传入文件数据或者URL都可。

1
FileSaver saveAs(Blob/File/Url, optional DOMString filename, optional Object { autoBom })

处理流程

阅读全文 »

今天升级ChatGPT iOS之后,发现支持Background Conversations了。快速使用了下觉得很棒,这里介绍下如何使用该功能。

限制

  1. 目前看并没有限制,仅仅是在灰度阶段,如果还没有设置入口,请耐心等待。

  2. App的话建议升级到最新版。我这里是iOS端升级到了1.2024.150

开启Background Conversations

进入设置即可看到对应选项,开启即可。

阅读全文 »

公司有job会每天扫描研发项目,其中node项目会针对pkg的组件漏洞及时提醒,有必要的话我们都是要及时处理的,毕竟安全无小事,这里总结下做法。

组件漏洞一般是指采用的npm包版本在开源漏洞库中有记录,即社区里已经告知了该版本存在漏洞,因此是建议升级到某些版本的。

在接到这样的通知时要做的就是尽快升级。当然实际的操作会分几种情况

  1. 直接依赖
    如果pkg是作为直接依赖,那么直接升级即可,只是需要注意如果是大版本更新,要考虑使用上是否有变动,是的话,需要调整下调用写法,当然更多是要验证,影响大的话,要降低发布速度,安全第一。
  2. 间接依赖
    如果pkg是作为间接依赖,会麻烦一点。优先是把直接依赖找出来,进行升级,如果直接依赖的包并没有新版本,这时可以利用resolution直接控制包版本。当然这里一样是要确定版本升级是否是大版本更新,同时修复发布的话,风险有多大。

npm ls pkg

阅读全文 »

Chrome浏览器的network中经常会看到ping类型的请求,好奇是怎么发起又有什么作用呢。这里分析总结下。

调查后发现ping类型请求是通过navigator.sendBeacon发起,该方法可携带数据。实际上发送的还是post请求。即服务端还是按照post请求去处理和返回。

该请求是由浏览器异步发起的,发起方是navigator并非是所在网页内的单线程JS。由于这个特性,网页的开关不会影响这个请求的执行。

阅读全文 »
0%