事情的起因是 ChatGPT-Next-Web 这一开源项目更新到 v2.12.2 版本时,默认 Claude3 的请求走官方接口,导致无法使用 one-api、new-api 等中转的 Claude3 服务。而使用 vercel 部署时,会自动拉取最新版本的代码,无法指定版本,导致无法部署旧版本的项目。
那么我们如何能够使用 vercel 部署旧版开源项目呢?其实很简单,一般开源项目都是通过 tag 来管理不同版本的代码的,我们只需要根据相应版本的 tag 创建分支,然后让 vercel 拉取指定分支的代码即可。
首先,我们 fork 该仓库并将 fork 后的仓库 clone 到本地。
然后查看所有的 tag
1git tag
接下来根据先要的 tag 来创建新分支
1git checkout tags/<tag_name> -b <branch_name>
然后推送到远程仓库
1git push origin <branch_name>
最后在 vercel 的项目 setting 中修改拉取的分支名称即可
MISC
未读
本文译自:The origin and virtues of semicolons in programming languages | nicole@web
在为我的编程语言 Lilac 编写语法时,我正在探索语句终止符的不同选择。 . 很有吸引力,或者 ! 。最终,我可能会做出 “无聊 “的选择,即使用 ; 或大量空白。
但我不禁要问:为什么这么多语言的语句终止符都使用分号?我找到了一些关于为什么要使用语句结束符的好文章,但很少有人讨论分号相对于其他选择的具体优点。
为了弄清分号在编程语言中的起源,我查阅了历史资料。早期的编程语言非常少,因此向前追溯并查看所有早期语言相对容易。这样,我们就能找到第一种将分号作为语句分隔符的语言:ALGOL 58。
在 ALGOL 之前,语言通常使用空白来标记语句,每条语句都在自己的行上。ALGOL 引入了语句分隔符,使程序员可以更灵活地将多条语句放在一行,或将一条语句分散到多行。遗憾的是,当我们深入探究为什么要使用分号时,答案并不多!最初的相关论文只是描述了分号是语句分隔符,却没有说明为什么要使用分号。
那我们该怎么办呢?那就是去猜测!
猜测
...
访问链接JETBRA.IN CHECKER | IPFS
挑选一个存活链接,点击进入下述页面
点击左上角的jetbra.zip下载激活工具并解压
使用 vscode 或记事本打开 C:\Users\用户名\AppData\Roaming\JetBrains\产品名\产品名.exe.vmoptions文件
在文件末尾添加 -javaagent:/path/to/ja-netfilter.jar=jetbrains,保存文件
或者解压jetbra.zip后,双击scripts\install-all-users.vbs 或 scripts\install-current-users.vbs
scripts\install-all-users.vbs: 为所有用户安装
scripts\install-all-users.vbs: 为当前用户安装
选择哪个取决于安装 IDE 时选择的方式
执行此脚本会在 IDE 的 vmoptions 文件中添加 -javaagent:/path/to/ja-netfilter.jar=jetbrains,但该方法有一定概率会失效
然后打开 IDE,这 ...
本文将介绍利用我们的学生身份、教育邮箱可以享受到的各类教育优惠,希望大家享受优惠的同不要滥用、售卖、转手自己的学生优惠资格,以免影响后续他人使用。
以下优惠均可能随着时间推移而改变,详细规则请看优惠详情页面。
学生包
Github 学生包
申请链接:https://education.github.com/pack
高质量的开发工具合集,强烈推荐,可享受 Github Copilot 等 Github 福利,并提供 DIgitalocean 的 100 美元代金券,免费域名一枚。
由于 Github 学生包被大量滥用,倒卖,现在申请十分困难,需要在学校附近的 ip,最好使用校园网,除了教育邮箱外,还需要准备英文在读证明(南昌大学教务管理系统公众号可申请)。
JetBrains 学生包
申请链接:https://www.jetbrains.com/student/
免费使用 JetBrains 旗下各类开发工具,如 IDEA、PyCharm 等,强烈推荐,这些强大的开发工具将在我们的学习、工作中发挥巨大作用。
Navicat 学术伙伴计划
申请链接:https://www.nav ...
众所周知,安卓可以通过下载 .apk 文件来安卓应用,但是 ios 由于安全不允许随意安装软件,只能通过 App Store 下载和安装应用。如果想要像安卓一样通过 .ipa 文件安装软件,则需要进行签名,但是个人签名只能维持 7 天,而企业签名价格昂贵且容易掉签。
巨魔商店可以利用 ios 系统中的一个安全漏洞来绕过代码签名验证过程,从而允许用户通过 .ipa 文件安装第三方应用程序。
本文将以我的 iPad (iPadOS 16.0, A12) 为例介绍如何安装巨魔商店。
截至本文发布日期,巨魔商店已经支持 ios 15.5 - 16.6.1,更多机型安装教程请参考官方文档:https://ios.cfw.guide/installing-trollstore/
前置要求
确保你的 ios 设备上已经安装了 提示/Tips app
确保可以通过数据线连接你的 ios 设备和电脑
确保安装了爱思助手
安装 TrollStar
从 [Release TrollStar 1.2 · 34306/TrollStar ](https://github.com/34306/TrollSta ...
我们在项目开发过程中,不可避免会使用到数据库,如果数据库部署在本地,当项目在别的机器上启动时就不能访问原来的数据库了,这对我们的开发带来了极大的不便,所以通常会将数据库部署在远程服务器上,便于在不同机器上都能访问数据库。
MySQL 作为常用数据库之一,其远程访问的配置有点坑,折腾了好久才配置成功,本文就记录下本次踩坑经历。
安装 MySQL
首先我们需要在服务器上安装 MySQL,我使用的服务器镜像为 Ubuntu 22.04.3 LTS。
首先,更新一下软件包列表,便于安装较新的 MySQL。
1sudo apt-get update
然后使用以下命令即可安装 mysql-server。
1sudo apt-get install mysql-server
安装过程中出现上述界面,直接回车选择 dbus.service 即可。
之后,MySQL 服务就安装完成并启动了,输入下列命令可以查看服务状态。
1sudo systemctl status mysql
看到 active (running) 字样说明 MySQL 服务运行正常。
配置远程访问
创建用户
一般来说,不 ...
服务器的内存资源是十分昂贵的,我们在使用服务器运行程序时,经常遇到内存不足,运行崩溃的情况。为了减少购买昂贵的内存资源,又能流畅的运行程序,可以使用虚拟内存来代替。
简单来说,虚拟内存就是操作系统在硬盘上为程序设置的一块“伪内存”,它允许我们假装自己的服务器拥有的物理内存远超于实际情况。当物理内存不够用时,操作系统就会调用虚拟内存,把一些不常用的数据暂时存储到硬盘上去,释放出物理内存空间给予新的数据。
一般来说,服务器都没有开启虚拟内存,需要我们手动开启,本文就教大家如何开启虚拟内存,让小鸡轻松化身大盘鸡!
创建 swap 文件
1.在用户目录下创建 swap 文件夹,并进入该文件夹
12mkdir swapcd swap
2. 创建 swapfile 文件
1dd if=/dev/zero of=/用户目录/swap/swapfile bs=1M count=4096
dd是一个用于复制文件的命令, if用于指定输入文件,of用于指定输出文件, /dev/zero 是一个特殊的设备文件,会不断产生字节值为 0 的数据,bs=1M 指定了每次读取或写入的数据块大小为 1M 字节,c ...
SQL中的 JOIN 操作是根据两个或多个表之间的相关列将它们合并在一起的查询操作,能够大大提高查询效率,本文将对常用的几种 JOIN 操作进行深度解析。
INNER JOIN
只返回两个表中匹配的行,如果某个表中的行在另一个表中没有匹配的行,则这些行不会出现在结果集中,即求两个表的交集。
1234SELECT *FROM AINNER JOIN BON A.key = B.key;
INNER JOIN 可以用于整合不同表中有关联的数据,例如有一个员工表和一个员工薪资表,需要同时查询员工信息和薪资,就可以使用 INNER JOIN 整合两个表的数据。
LEFT JOIN
返回左表(第一个表)的所有行,即使右表(第二个表)中没有匹配的行。如果右表中没有匹配的行,结果集中的右表列将填充NULL值。
1234SELECT *FROM ALEFT JOIN BON A.key = B.key;
同样是员工表和薪资表,如果并不是所有员工都有薪资记录,因为他们刚刚加入公司,或者薪资数据还未更新等,我们想要查询所有员工的信息和薪资,就得允许结果集中存在薪资为 NULL 的数据,这个时候 ...