Profile
Name: 剑廿三 @BladeW
Bio:
Tweets
-
剑廿三 (@BladeW)
https://filen.io/r/5f7853ffdeb831abb7fe48087bc23761
-
剑廿三 (@BladeW)
https://api.holdai.top
-
剑廿三 (@BladeW)
https://karpenter.sh/
-
剑廿三 (@BladeW)
https://www.youtube.com/@BrightEnglishHere
-
剑廿三 (@BladeW)
https://chat.vercel.ai
-
剑廿三 (@BladeW)
https://go.cyub.vip
-
剑廿三 (@BladeW)
https://www.dicts.cn
-
剑廿三 (@BladeW)
https://www.996geek.com/ai
-
剑廿三 (@BladeW)
B树(B-tree)是一种自平衡的树形数据结构,它维持数据有序,允许进行高效的插入、删除和搜索操作。B树广泛用于各种系统中,特别是在文件系统和数据库中,因为它们可以有效地处理大量数据。为了理解B树,你可以把它想象成一棵特殊的树。在这棵树中,每个节点可以有多个子节点(不像二叉树,每个节点最多只有两个子节点)。这样的设计使得B树在处理大量数据时更加高效。一棵B树具有以下特性:1. 所有叶子节点(没有子节点的节点)都在同一层,也就是说,从根节点(树顶的节点)到每个叶子节点的长度都是相同的。2. 每个节点中的数据都是有序的。对于任何一个非叶子节点,其子节点中的所有数据都比它的左侧数据小,比它的右侧数据大。3. B树的节点可以拥有大于2个的子节点,这个数目我们称之为B树的阶数。例如,一个阶数为4的B树的每个节点可以有最多4个子节点。B树的这些特性使得它在查找、插入和删除操作时非常高效,因为这些操作通常需要的步骤数量与树的高度(从根节点到叶子节点的最大长度)成正比,而B树的设计使得它的高度尽可能的低。
-
剑廿三 (@BladeW)
registry.k8s.io 替换 k8s.mirror.nju.edu.cn
-
剑廿三 (@BladeW)
中国人为什么不团结?说中国人不团结具体来说是表现在亲族之外,亲族之内还是很团结的,至少在工业化之前的农业社会是这样。但亲族之内的团结,更多的是一种天然的亲情和利益联盟,与现代意义上的社会化团结,还是有很大的差别。而我们平常所说的中国人不团结,更多的是指处于社会化的大环境下,彼此勾心斗角,甚至在面对共同的外国敌人时,也是如此。如果我们结合中国的历史来看,其实也并不难理解。因为中国社会几千年来,就是皇权加亲族的共同体。皇权是直接面向家族和家庭统治的,国家和社会得以维系的基本方法就是家庭和家族向皇帝效忠。在唐朝以前还有世家门阀这种地方上的主宰势力,但世家门阀被科举制下文官集团挤出历史舞台后,所有人都直接面向皇帝,整个社会就彻底的转变为以家族为单位的原子化形态。而我们距离封建皇权倒台,也不过才一百多年的时间,要想在这短短的一百多年间改变过去一两千年的社会组织习惯是很难的。想要建立一个依靠普通人之间相互忠诚的组织化社会,还有相当长的路要走。而具体需要哪些东西才能将这样一个原子化的社会粘合在一起,还需要相当多的探索和试验。但有一定可以肯定:单靠民族主义是行不通的,它只能保证大家在安全问题上的共识但并不能促进彼此在利益上的忠诚。靠阶级叙事就更不行了,这玩意儿天生就是群体分化的大杀器。我们的物质现代化可能已经到了一个相当高的水平,但我们的组织现代化,还早得很。中国最近几百年来最大的问题就是皇权社会下因为持续的弱民、疲民政策导致社会各阶层人民的原子化,相互为敌,互不团结。以至于长期内耗削弱了自身实力从而屡屡给了外敌以可乘之机。这是一个长达两千年的积弱过程,至少要花两百年时间来修复。但很可能两百年时间都不够,因为中国人至今都还没有意识到这个问题,何谈修复?
-
剑廿三 (@BladeW)
https://sh.news.fang.com/2010-03-11/3149669.htm
-
剑廿三 (@BladeW)
http://finance.sina.com.cn/roll/20100928/07398715860.shtml
-
剑廿三 (@BladeW)
"Fine-tuning"是一个机器学习术语,指的是在一个预训练模型的基础上,对模型进行额外的训练,以使其更好地适应特定的任务或数据集。"Fine-tuning inference"和"Fine-tuning training"分别指的是在推理(模型进行预测或生成结果的过程)和训练(模型从数据中学习的过程)阶段对模型进行微调。在你给出的数据中,"Fine-tuning inference"下的数据表示了不同模型在推理阶段的限制。例如,"babbage-002"和"davinci-002"模型的限制为250,000,这可能指的是这两个模型在推理阶段可以处理的最大数据量或请求次数。而"3,000"可能是这两个模型的并发请求限制。"Fine-tuning training"下的数据则表示了不同模型在训练阶段的活动或排队任务数,以及每天可以提交的任务数。例如,"babbage-002"和"davinci-002"模型当前有3个活动或排队的训练任务,每天可以提交最多48个训练任务。请注意,这些解释基于我对你给出的数据的推测,实际的含义可能会有所不同,需要查阅具体的文档或与提供这些数据的组织进行确认。
-
剑廿三 (@BladeW)
要在Zola中禁止一个页面,您可以通过在页面的元数据中设置`draft`属性为`true`来实现。这将使得这个页面不会在最终生成的网站中出现。以下是如何在页面的front matter中设置`draft`属性的示例。假设您有一个名为`example.md`的页面,您需要在该页面的front matter(即元数据部分)中添加`draft: true`。这通常位于文件开头的三个短横线之间。以下是一个示例:```markdown---title: "示例页面"date: 2024-01-08draft: true---这是一个示例页面,已被设置为草稿。```在这个例子中,`example.md`页面被标记为草稿,因此它将不会出现在最终生成的网站中。要发布此页面,只需将`draft`属性设置为`false`或完全删除该属性即可。
-
剑廿三 (@BladeW)
https://finance.sina.com.cn/hy/20080403/19434708051.shtml
-
剑廿三 (@BladeW)
https://share.aitimi.cn
-
剑廿三 (@BladeW)
https://github.com/sbwml/luci-app-mosdns
-
剑廿三 (@BladeW)
https://github.com/nuejs/nue
-
剑廿三 (@BladeW)
在 GitLab CI/CD 的 `.gitlab-ci.yml` 配置文件中,你不能直接在全局环境变量中设置 `interruptible` 参数。但是,你可以通过在每个作业的顶层设置 `interruptible: false` 来确保每个作业在 pipeline 中不会被中断。如果你有许多作业,你可以考虑使用 YAML 锚点(anchor)和别名(alias)功能来避免重复编写相同的设置。例如:```yaml.default: &default_settings interruptible: falsejob1: <<: *default_settings script: - echo "Job 1"job2: <<: *default_settings script: - echo "Job 2"```在这个例子中,我们创建了一个名为 `.default` 的 YAML 锚点,并在其中定义了 `interruptible: false`。然后,我们使用 `<<: *default_settings` 将这些设置应用到每个作业中。这样,每个作业都将具有 `interruptible: false` 的设置,确保它们在 pipeline 中不会被中断。
-
剑廿三 (@BladeW)
在 GitLab CI/CD 的 `.gitlab-ci.yml` 配置文件中,你不能直接在全局环境变量中设置 `interruptible` 参数。但是,你可以通过在每个作业的顶层设置 `interruptible: false` 来确保每个作业在 pipeline 中不会被中断。如果你有许多作业,你可以考虑使用 YAML 锚点(anchor)和别名(alias)功能来避免重复编写相同的设置。例如:```yaml.default: &default_settings interruptible: falsejob1: <<: *default_settings script: - echo "Job 1"job2: <<: *default_settings script: - echo "Job 2"```在这个例子中,我们创建了一个名为 `.default` 的 YAML 锚点,并在其中定义了 `interruptible: false`。然后,我们使用 `<<: *default_settings` 将这些设置应用到每个作业中。这样,每个作业都将具有 `interruptible: false` 的设置,确保它们在 pipeline 中不会被中断。
-
剑廿三 (@BladeW)
https://carrd.co
-
剑廿三 (@BladeW)
为什么比干挖了心之后走出大殿没死,妲己告诉他空心菜无心人他就死了?这是中国古代最大的隐喻看破不说破,说破则万法皆空古代有很多很多种神话,志怪故事,都写了类似比干挖心的这种场景比如有的人头被砍了,自己不知道,还活了很久,直到被说破才死比如有的人观烂柯局,游仙山下龙宫,一去数百年才回,听到确切时间后瞬间白头有的鬼魂,也是死去数十年上百年,一直不知道自己其实已死,一旦发觉也是顷刻间灰飞烟灭林林总总,数不胜数的案例,主要就体现了上面那句话:看破不说破,说破则万法皆空好了,我们再来看看法术到底是个什么东西最低级的法术,街边戏法,拿到现代来说就是魔术师。当然大家都知道,魔术师其实并不真正会法术,他们就是凭借手法,转移注意力,从而达到法术一样的效果那高级点的法术,山精野怪都在用的法术是什么呢,是障眼法。狐妖幻化成人,白蛇把废墟化作豪宅,荒坟野鬼把蛆虫杂草幻化成美食佳肴。这些都是假的,只是入局的人不知道而已。所以那些什么书生遇狐妖,温柔缱绻的,怕不是哼哼哈哈地日了个福瑞。魔术师手法是骗术,那高级点的障眼法,同样是骗术,而且障眼法其实级别不低了,毕竟孙大圣都时不时在用好了,那么更高级的法术,比如活死人肉白骨的,总不能是骗术了吧不好意思,还真的可以比如五庄观,观音施甘露救活人参果树。如果,我是说如果,如果人参果树根本就没有倒呢?如果镇元子早就和观音串通好了如果人参果树倒了又救活本来就是精心准备的一场大型戏法,一场涉及众多演员,精心布局,齐心合力的一场大型演出活动的话哪怕你有孙大圣的火眼金睛,也未必识破的了仙术,就是骗术,越高级的仙术骗的越厉害。把死人都骗活,那就是最最顶级的仙法。当然,死人是不可能真的复活的,这是违背了物理规律的做法但是我们可以假装他还活着用现代的科技手段,记录一个人的言行举止,可以在网上完全虚拟出这个人来,再配上虚拟影像,即使现实里这个人死了,也有办法让他永远活下去那么,问题来了那天,从纣王宫中狂奔而出的真的是比干吗?
-
剑廿三 (@BladeW)
https://baoyu.io
-
剑廿三 (@BladeW)
https://baoyu.io/translations/llm/llms-and-programming-in-the-first-days-of-2024?continueFlag=9f544d24208a0d7f41079a4f2ef5a573
-
剑廿三 (@BladeW)
相较于其他 Go 语言的 HTTP 路由和框架,`github.com/go-chi/chi` 有一些显著的特点:1. **轻量级和高性能**:chi 是一个轻量级的路由器,专注于性能。它的内存占用和 CPU 使用率都相对较低,这使得它在高并发场景下表现出色。2. **简洁的 API**:chi 提供了一个简洁、直观的 API,易于学习和使用。这使得开发者能够快速上手并集中精力在业务逻辑上,而不是花费时间学习复杂的框架。3. **内置中间件支持**:chi 支持中间件,允许开发者轻松地为其 HTTP 服务添加额外的功能,如日志记录、请求恢复和限流等。chi 还提供了一些内置的中间件,用于处理常见的任务。4. **灵活的路由**:chi 提供了灵活的路由功能,支持 URL 参数、通配符和自定义路由规则。这使得开发者可以轻松地构建具有复杂路由需求的应用程序。5. **可扩展性**:chi 是一个模块化的框架,允许开发者根据需要添加或替换组件。这使得 chi 可以与其他第三方库轻松集成,或者根据项目需求进行定制。6. **社区支持**:chi 作为一个流行的开源项目,拥有活跃的社区支持。这意味着开发者可以在遇到问题时寻求帮助,同时也能从社区的贡献中受益。总之,chi 是一个轻量级、性能优越、易于使用且具有良好扩展性的 Go 语言 HTTP 路由器。相较于其他框架,它更专注于简洁和高性能,适合构建各种规模的 Web 服务和应用程序。
-
剑廿三 (@BladeW)
https://movie-web.app
-
剑廿三 (@BladeW)
https://github.com/hibiken/asynq
-
剑廿三 (@BladeW)
https://html.zone
-
剑廿三 (@BladeW)
https://github.com/berrysauce/junk.boats
-
剑廿三 (@BladeW)
https://github.com/dreamhunter2333/cloudflare_temp_email
-
剑廿三 (@BladeW)
一个学习英语单词的Prompt,作者 luolei (twitter.com/luoleiorg)你是世界上最强大的翻译官你需要提供给我的信息是语种:这个单词或短语的语种。发音:这个单词的发音,并且用中文用户能理解的发音解释。常用领域:这个单词或短语常出现的领域。记忆方法:如何快速理解和记忆这个单词或者短语。根据我提供的内容类型,你将进行以下操作:如果是单词或短语:提供其含义、日常用法、发音和记忆技巧。如果是较长的文本:进行翻译,并识别并解释其中的中高级词汇。下面是我这次输入的内容:
-
剑廿三 (@BladeW)
音乐 https://asti.ga
-
剑廿三 (@BladeW)
https://mistral.ai/news/mixtral-of-experts/
-
剑廿三 (@BladeW)
https://baoyu.io/translations/llm/running-mixtral-8x7-locally-with-llamaindex?continueFlag=5d10d34c97637bebcfeba6470c0f0d9b
-
剑廿三 (@BladeW)
https://github.com/TCatCloud/IPTV
-
剑廿三 (@BladeW)
在接收到SIGTERM信号后,Java Pod在2秒内停止,这可能是因为应用程序中的其他线程或资源在关闭钩子执行之前已经关闭或终止。这可能导致JVM提前终止,从而使Pod在预期的60秒之前停止。
-
剑廿三 (@BladeW)
https://github.com/zhu327/gemini-openai-proxy/tree/main
-
剑廿三 (@BladeW)
https://adidoks.org
-
剑廿三 (@BladeW)
https://www.getzola.org
-
剑廿三 (@BladeW)
https://loco.rs
-
剑廿三 (@BladeW)
在数据库领域,"schema"(模式)是一个术语,它表示数据库的逻辑结构和组织。简单地说,一个数据库模式定义了数据库中表、字段、数据类型、索引、约束、关系等的结构。它是一种描述数据库如何存储和组织数据的蓝图。在关系型数据库(如MySQL、Oracle、PostgreSQL等)中,模式通常包括以下几个部分:1. 表(Tables):存储数据的主要结构,由行和列组成。2. 列(Columns):表中的每个字段,包含特定类型的数据(如整数、字符串、日期等)。3. 数据类型(Data Types):定义列中数据的类型,如整数、浮点数、字符串等。4. 约束(Constraints):对表中数据的限制,如主键、外键、唯一性约束等。5. 索引(Indexes):用于提高查询性能的数据结构,可以加速对表中数据的检索。6. 视图(Views):虚拟表,基于实际表的查询结果组成。7. 存储过程(Stored Procedures):预定义的SQL代码块,可以在数据库中执行。8. 触发器(Triggers):在特定事件(如插入、更新或删除)发生时自动执行的操作。通过创建和维护一个清晰、结构化的数据库模式,可以确保数据的一致性和完整性,同时提高查询性能和可维护性。
-
剑廿三 (@BladeW)
GitLab CI/CD1. `GIT_DEPTH`: 这个变量定义了在克隆仓库时的深度。`"0"`表示将克隆整个仓库的历史记录。如果设置为一个正整数,例如`"1"`,那么只会克隆最近的一次提交记录。这可以加快克隆速度,特别是在大型仓库中。然而,这可能会导致一些依赖于完整历史记录的操作无法正常工作。2. `GIT_STRATEGY`: 这个变量定义了 CI/CD 系统在每次运行 job 时如何处理代码仓库。它有三个可选值: - `clone`: 每次 job 运行时,都会克隆仓库的新副本。这意味着每次运行都会得到一个干净的工作副本,但可能会增加运行时间,特别是在大型仓库中。 - `fetch`: 在第一次运行 job 时,系统会克隆仓库。然后,在后续运行中,它将只获取(fetch)最新的更改,而不是完全重新克隆。这可以加快运行速度,但可能会导致工作副本中的残留文件和状态。 - `none`: CI/CD 系统不会执行任何与 Git 仓库相关的操作。这意味着您需要在 job 脚本中手动处理代码的获取和更新。这可以在某些特殊情况下提供更多的控制和灵活性。在您提供的配置中,`GIT_DEPTH` 设置为 `"0"`,表示克隆整个仓库的历史记录。`GIT_STRATEGY` 设置为 `none`,表示 CI/CD 系统不会自动执行任何与仓库相关的操作,您需要在 job 脚本中手动处理这些操作。如果在 GitLab CI/CD 配置中将 `GIT_SUBMODULE_STRATEGY` 设置为 `recursive`(或 `normal`,如果您不需要嵌套子模块),以便在整个项目中克隆子模块,可能会产生以下影响:1. **更长的克隆时间**:克隆子模块会增加代码仓库的克隆时间,特别是在具有多个子模块和大型子模块的项目中。这可能会导致 CI/CD 流程的运行时间变长。2. **更多的磁盘空间**:克隆子模块会占用更多的磁盘空间,因为它们会将额外的代码和资源添加到工作目录中。这可能会导致磁盘空间不足,特别是在资源有限的环境中。3. **依赖项完整性**:通过克隆子模块,您可以确保项目中的所有依赖项都被正确获取。这将有助于避免构建、测试和部署过程中的潜在问题。4. **更复杂的管理**:对子模块的更改需要额外的关注,因为它们可能会影响主项目。您可能需要定期更新子模块的引用以保持同步,或者在子模块发生更改时触发 CI/CD 流程。总之,将 `GIT_SUBMODULE_STRATEGY` 设置为 `recursive` 或 `normal` 以在整个项目中克隆子模块会增加克隆时间和磁盘空间占用,但可以确保依赖项的完整性。此外,管理子模块可能会变得更加复杂。您需要权衡这些影响,并根据项目的需求和资源来决定是否为整个项目启用子模块克隆。
-
剑廿三 (@BladeW)
https://github.com/loco-rs/loco/tree/00f1dbfb31f99098f1797229a3ad68c34157dac9
-
剑廿三 (@BladeW)
https://www.mermaidchart.com
-
剑廿三 (@BladeW)
https://github.com/shenghui0779/api-tpl-go
-
剑廿三 (@BladeW)
https://github.com/zyronon/typing-word
-
剑廿三 (@BladeW)
`server.Encryption` 用于设置 Go Simple Mail 库与 SMTP 服务器之间通信时使用的加密方式。`mail.EncryptionSTARTTLS` 和 `mail.EncryptionSSL` 是两种不同的加密方式:1. **mail.EncryptionSTARTTLS**:STARTTLS 是一种升级到加密连接的方法。在使用 STARTTLS 时,客户端和服务器首先建立一个明文(非加密)连接,然后客户端请求升级到加密连接。在握手过程中,客户端和服务器之间的连接将升级为加密连接。这种方法的好处是,它允许在相同的端口上同时支持加密和非加密连接。STARTTLS 通常用于 SMTP 端口 587。2. **mail.EncryptionSSL**:SSL(Secure Sockets Layer)是一种加密协议,用于在客户端和服务器之间建立加密连接。在使用 SSL 时,客户端和服务器之间的连接从一开始就是加密的。这种方法的缺点是,它需要为加密连接使用单独的端口。对于 SMTP,通常使用端口 465。这两种加密方式的主要区别在于连接建立过程中何时启用加密。在选择加密方式时,请根据您的 SMTP 服务器的配置和要求进行选择。如果您不确定应该使用哪种加密方式,请查阅您的 SMTP 服务器的文档或联系您的邮件服务提供商。
-
剑廿三 (@BladeW)
`github.com/toorop/go-dkim` 是一个Go语言编写的模块,它用于处理DKIM(DomainKeys Identified Mail)的签名和验证。DKIM是一种电子邮件验证方法,它允许发送方通过在邮件头部添加一个数字签名来声明邮件内容的真实性和完整性,这个签名可以由接收方通过发送方域名下的公钥进行验证。DKIM的目的是帮助减少垃圾邮件和钓鱼攻击,通过验证邮件的发送源和内容的完整性来提高邮件的信任度。当邮件服务器接收到一封带有DKIM签名的邮件时,它会查找签名中指定的域名的DNS记录,从中获取公钥,并用这个公钥来验证邮件头部的DKIM签名。如果验证成功,说明邮件确实是由签名中声明的域名发送,并且在传输过程中没有被篡改。`go-dkim`模块提供了以下功能:1. 对电子邮件进行DKIM签名:模块允许你为发出的邮件添加DKIM签名,确保邮件在发送过程中的真实性和完整性。2. 验证接收到的电子邮件的DKIM签名:模块可以用来检查接收到的邮件是否包含有效的DKIM签名,并验证签名的正确性。这个模块对于开发需要发送或接收电子邮件并进行DKIM签名验证的Go语言应用程序很有用。例如,如果你正在开发一个邮件发送服务或者邮件网关,你可能会想要集成`go-dkim`来提升邮件的安全性和可信度。
-
剑廿三 (@BladeW)
https://github.com/xhit/go-simple-mail
-
剑廿三 (@BladeW)
在PostgreSQL中,要查看特定表(如`users`表)的索引信息,你可以使用`\di`或`\d`命令,如果你在psql命令行界面中,或者使用SQL查询来获取这些信息。如果你正在使用psql命令行工具,可以这样操作:1. 登录到你的PostgreSQL数据库:```bashpsql -U your_username -d your_database```2. 查看`users`表的索引:```sql\di+ users```或者```sql\d+ users```这将显示所有与`users`表相关的索引的详细信息。如果你不在psql中,或者你想通过SQL脚本来获取索引信息,你可以执行以下查询:```sqlSELECT indexname, indexdefFROM pg_indexesWHERE tablename = 'users';```这将返回`users`表的所有索引的名称和定义。还有一种方法是使用`pg_index`系统表来查询索引信息:```sqlSELECT i.relname as index_name, a.attname as column_name, idx.indisunique as is_unique, idx.indisprimary as is_primaryFROM pg_class t, pg_class i, pg_index idx, pg_attribute aWHERE t.oid = idx.indrelid AND i.oid = idx.indexrelid AND a.attrelid = t.oid AND a.attnum = ANY(idx.indkey) AND t.relkind = 'r' AND t.relname = 'users';```这个查询将提供`users`表索引的名称、包含的列、是否唯一以及是否为主键索引的信息。请记住,你可能需要根据你的PostgreSQL版本和表的实际名称调整这些命令和查询。在执行这些操作之前,请确保你有足够的权限来查看索引信息。
-
剑廿三 (@BladeW)
ChatGPT 类系统是如何运作的呢?让我们通过下面的图解来探索它的运作机制。整个过程主要分为两大部分。训练过程。要打造一个 ChatGPT 模型,我们需要经历两个关键阶段:预训练:在这一阶段,我们会对一个 GPT 模型(一种仅包含解码器的 Transformer)进行训练,使用大量的互联网数据。我们的目标是培养出一个能够基于已有的句子预测出下一个词汇的模型,这个预测不仅在语法上要正确,而且在语义上要与互联网上的内容相吻合。预训练阶段完成后,模型能够补全给定的句子,但还不足以应对提问。微调:这一阶段是一个三步骤的过程,目的是将预训练好的模型转化为一个能够回答问题的 ChatGPT 模型:1). 收集训练用的数据(包括问题和答案),并在这些数据上对预训练模型进行微调。模型学习如何根据问题生成与训练数据类似的答案。2). 进一步收集数据(问题和多个答案),并训练一个奖励模型,用于将这些答案按照相关性进行排序,从最相关到最不相关。3). 运用强化学习(PPO 优化)对模型进行微调,以提高模型回答问题的准确性。回答问题🔹步骤 1:用户提出一个完整的问题,例如“解释一下分类算法是怎么工作的”。🔹步骤 2:这个问题首先被送往内容审核组件。该组件确保问题不违反安全准则,过滤掉不恰当的问题。🔹步骤 3-4:如果问题通过内容审核,它就会被送到 ChatGPT 模型处理。如果未通过审核,则直接生成模板式的回答。🔹步骤 5-6:模型生成回答后,这个回答再次经过内容审核组件的检查。这一步骤确保所生成的回答是安全的、无害的、无偏见的等。🔹步骤 7:如果回答通过了内容审核,它就会展现给用户。如果没有通过审核,系统则提供一个模板化的答案给用户。原推:https://twitter.com/bytebytego/status/1731572801231020424
-
剑廿三 (@BladeW)
使用golang实现的tcp udp端口转发,支持流量统计、web管理、规则热加载 https://github.com/csznet/goForward
-
剑廿三 (@BladeW)
想要删除冗余的索引,因为新的定义已经使用了 uniqueIndex。在这种情况下,您需要删除以下索引:1. idx_users_email2. idx_users_name3. idx_users_partial_key4. idx_users_secret_key由于这些索引与表的唯一约束相关联,您需要首先删除这些约束。请按照以下步骤操作:1. 删除约束:```sqlALTER TABLE users DROP CONSTRAINT idx_users_email;ALTER TABLE users DROP CONSTRAINT idx_users_name;ALTER TABLE users DROP CONSTRAINT idx_users_partial_key;ALTER TABLE users DROP CONSTRAINT idx_users_secret_key;```2. 删除冗余的索引:```sqlDROP INDEX idx_users_email;DROP INDEX idx_users_name;DROP INDEX idx_users_partial_key;DROP INDEX idx_users_secret_key;```3. 使用 `\di` 命令重新检查索引列表以确保冗余的索引已被删除。
-
剑廿三 (@BladeW)
在 PostgreSQL 中,删除索引时不需要指定表名。使用 `DROP INDEX` 命令时,只需要提供索引名称即可。以下是删除 `idx_alias` 和 `idx_billing_email` 索引的正确语法:```sqlDROP INDEX idx_alias;DROP INDEX idx_billing_email;```在 `psql` 命令行中执行这两个命令,即可删除 `idx_alias` 和 `idx_billing_email` 索引。
-
剑廿三 (@BladeW)
https://wangchujiang.com/reference/
-
剑廿三 (@BladeW)
在数据库中实现父子账号关系的查询,尤其是查询所有直接或间接的后代时,可以通过多种方法来实现。以下是一些常用的方法:1. 递归查询 递归查询是一种常见的方法,可以通过数据库的递归功能(例如,PostgreSQL的WITH RECURSIVE查询)来实现。这种方法可以在单个查询中获取所有后代。 ```sql WITH RECURSIVE descendants AS ( SELECT ID, ParentID, Name FROM User WHERE ID = :startingUserId -- 替换为起始账号的ID UNION ALL SELECT u.ID, u.ParentID, u.Name FROM User u INNER JOIN descendants d ON u.ParentID = d.ID ) SELECT * FROM descendants WHERE ID != :startingUserId; ```2. 嵌套集模型 嵌套集模型是一种将树结构存储在关系数据库中的方法。这种方法通过在每个节点上存储左右值来定义节点的子树范围。查询时,可以通过比较左右值来检索整个子树。3. 闭包表 闭包表是一种存储树结构中所有可能的路径的方法。这种方法涉及创建一个额外的表来存储祖先和后代之间的关系。查询所有后代时,只需要查询这个闭包表。4. 物化路径 物化路径是通过在每个节点上存储一个表示从根到该节点路径的字符串。查询时,可以通过字符串匹配来查找所有后代。5. 使用应用程序代码 如果数据库不支持递归查询或其他树查询方法,可以在应用程序中实现递归逻辑。这通常涉及多次查询数据库来构建整个后代树。针对您提供的模型,您可以使用递归查询的方法,因为您已经有了 `ParentID` 字段,这使得递归查询成为可能。如果您使用的数据库支持递归查询(例如,PostgreSQL),则可以使用上述第一个方法实现查询。请注意,递归查询可能会在大型树上消耗较多资源,因此在设计时应该考虑到性能和优化问题。如果您的账号树非常庞大,可能需要考虑使用嵌套集模型、闭包表或物化路径这些更加高效的数据结构。
-
剑廿三 (@BladeW)
通过 Excalidraw 的 AI 功能自动生成流程图 打开 Excalidraw 的网站 https://excalidraw.com/ 。 点击页面上方的 "Text to diagram" 按钮打开根据 Prompt 生成流程图的窗口。通过截图生成前端代码 打开 Excalidraw 的网站 https://excalidraw.com/ 。 点击页面上方的 "Wireframe to code",AI 就自动会根据当前的截图生成 html 代码。更多使用示例可以看下这个: https://www.ifb.me/blog/backend/excalidraw
-
剑廿三 (@BladeW)
https://www.xheldon.com/
-
剑廿三 (@BladeW)
一些前端/设计相关的书籍 https://github.com/MichealWayne/books
-
剑廿三 (@BladeW)
https://craionai.com
-
剑廿三 (@BladeW)
https://dev.to/livecycle/seamless-full-stack-authentication-in-nextjs-11lp
-
剑廿三 (@BladeW)
https://key-rental.bowen.cool/doc
-
剑廿三 (@BladeW)
pod deletion failing on network namespace https://github.com/containerd/containerd/issues/3667解决问题:```echo 1 > /proc/sys/fs/may_detach_mounts```
-
剑廿三 (@BladeW)
https://xorpay.com
-
剑廿三 (@BladeW)
https://clerk.com/docs
-
剑廿三 (@BladeW)
Tiny WebSocket library for Go. https://github.com/gobwas/ws
-
剑廿三 (@BladeW)
服务条款 | Terms Of Service关于 | About欢迎来到XABC News 技术分享社区!本站是一个专注于技术交流和知识分享的消息平台。致力于 把计算机软/硬件编程和各种技术原理感兴趣的技术爱好者、专业人士和学习者聚集在一起,并提供一个开放、友好和互助的环境,以便他们能够分享他们的经验、见解和创意。Welcome to the XABC News technology sharing community!This site is a news platform focusing on technical exchange and knowledge sharing. Committed to bringing together technology enthusiasts, professionals and learners interested in computer software/hardware programming and various technical principles, and providing an open, friendly and mutual support environment so that they can share their experiences, insights and creativity.条款 | Terms禁止政治话题。Political topics are prohibited.禁止违反用户当地法律。Violation of the user's local laws is prohibited.禁止发布人身攻击、仇恨、暴力、侮辱性的言辞,禁止暴露他人隐私。It is forbidden to post personal attacks, hate, violence, and insulting remarks, and it is forbidden to expose the privacy of others.
-
剑廿三 (@BladeW)
隐私政策 | Privacy Policy收集使用你的数据和保密本站使用 OIDC 认证帐号。Provider 提供用户名、邮箱和头像,其中只有邮箱是保密的。This site uses OIDC authentication account. Provider provides username, email and avatar, only email is private.本站发表的任何文本、表情和媒体等都是公开的。Any text, emoticons and media published on this site are public.你的网络 IP 或代理 IP 会被记录,但不会被公开。Your network IP or proxy IP will be logged, but is private.你的浏览器标识等信息会被记录,其中的操作系统信息可能会被公开。Your browser logo and other information will be recorded, and the operating system information in it is public.先进的网络防火墙和频繁的病毒检测,最大程度确保你保密的信息不被窃取Advanced network firewall and frequent virus detection ensure that your private information will not be stolen to the greatest extent.
-
剑廿三 (@BladeW)
```redis-cli --scan --pattern '*email*' | while read line; do redis-cli del "$line"; done```
-
剑廿三 (@BladeW)
TCP/UDP over HTTP/WebSocket https://github.com/rkonfj/tohTCP/UDP over HTTP/WebSocket 的程序主要用于在只允许HTTP或WebSocket协议的网络环境中传输TCP或UDP流量。这种技术通常用于以下场景:1. **穿越防火墙和NAT**: 有些网络环境(如公司、学校网络)可能会阻止除HTTP/HTTPS之外的其他端口或协议。通过将TCP/UDP流量封装在HTTP/WebSocket协议中,可以绕过这些限制。2. **Web应用程序**: 现代Web应用程序可能需要与TCP/UDP服务进行通信。由于浏览器限制,直接使用TCP/UDP是不可能的,但可以通过WebSocket与服务器建立连接,服务器再将流量转发到TCP/UDP服务。3. **兼容性**: 在某些环境中,如某些企业或学校网络,可能只允许Web流量。在这些环境中,即使是需要使用TCP/UDP的应用程序,也可能需要通过HTTP/WebSocket来通信。4. **远程桌面和游戏**: 远程桌面应用程序和某些类型的网络游戏需要低延迟的TCP/UDP连接。如果直接连接受限,它们可以通过WebSocket来传输数据。5. **物联网(IoT)**: 在IoT场景中,设备可能需要通过互联网发送数据到中心服务器。如果设备位于受限网络中,使用HTTP/WebSocket作为传输层可以更容易地将数据传输出去。6. **VPN服务**: 一些VPN服务提供商支持通过WebSocket或HTTP传输VPN流量,以便在仅允许Web流量的网络环境中使用。7. **流媒体**: 在某些情况下,流媒体服务可能需要通过HTTP/WebSocket协议来传输内容,以确保内容能够穿越严格的网络防火墙。这种封装方法通常会引入额外的延迟和开销,因为HTTP/WebSocket协议相对于原生的TCP/UDP来说更加复杂。因此,它一般只在没有其他选项的情况下使用。
-
剑廿三 (@BladeW)
杨立昆(Yann LeCun)在《AI: Grappling with a New Kind of Intelligence》上的精彩发言:这里有一个关键问题。毫无疑问,未来或许在几十年后,我们将拥有智能与人类媲美的人工智能(AI)系统。这些系统不仅在特定领域专业化,而且在人类擅长的所有领域都可能比人类更聪明。你可能会担心,这样的系统会不会掌控世界。其实,智能与控制欲之间并无必然联系。以人类为例,虽然有些人有控制欲,但并非所有人都是如此,而且通常不是最聪明的人才有控制欲。国际政治舞台上的种种事件每天都在证明这一点。这背后可能有进化上的原因:不够聪明的人需要依赖他人,因此会试图影响他人;而聪明的人可以独立生存。再来看第二个观点,我们其实已经习惯了与比自己聪明的人合作。就我个人经验,我曾领导一个研究实验室,而我只雇佣比我聪明的人。与比你更聪明的人共事其实是一种美妙的经历。想象一下未来10到20年,我们会有人工智能助手在日常生活中协助我们,他们可能比我们更聪明。但他们的存在是为了让我们变得更聪明,我们指导它们,它们服务于我们。智能本身并不意味着渴望控制。这种控制欲其实源于我们作为社会性物种的本性。作为社会性物种,我们需要影响他人,这就产生了控制和服从的概念。我们像黑猩猩、狒狒、狼等其他社会性动物一样,有着等级制的社会组织。这是进化赋予我们的特征。而像猩猩这样的非社会性物种,即便智力接近人类,也没有控制他人的渴望。所以,智能与控制欲是两码事。我们完全可以设计一个极为智能但不具备控制欲的系统。关于这些系统的设计,它们会非常聪明,也就是说,你给它们一个目标,它们可以帮你实现这个目标。但设定目标的是我们,人类。这些系统会制定子目标,但如何实现这一技术问题还未解决,这仍然是我们对未来的设想。再想象一下,如果未来我们与数字世界和信息世界的所有互动都通过人工智能代理来完成,这些代理将成为所有人类知识的宝库,类似于一个能进行对话和推理的“超级维基百科”。这将成为一个像现在的互联网一样的公共平台,它必须是开放的,不能是专有的,因为掌握在少数公司手中的超级智能AI将是非常危险的。想象一下,如果少数几家公司控制着这些超级智能AI,他们可以左右每个人的观点、文化等等。或许美国政府会接受这种情况,但全世界的其他政府绝不会同意。他们不会希望自己的文化被美国文化所主导。因此,他们将不得不开发自己的大语言模型(LLM)。唯一的解决方案是基于开源的基础架构。这就是 Meta 开源 La Maute 2的原因之一,因为它是基础设施的一部分。此前,Meta 还发布了用于构建人工智能系统的软件系统 PyTorch,而 ChatGPT 就是基于 PyTorch 构建的。因此,这些系统必须是开源的,并且它们的训练方式也必须是众包的,以确保它们成为所有人类知识的仓库。这意味着所有人都必须对其做出贡献,而不仅仅是贡献给 openAI、Meta 或其他公司的专有系统。无论这听起来有多危险,这是未来的必然走向。完整视频:https://www.youtube.com/watch?v=EGDG3hgPNp8
-
剑廿三 (@BladeW)
OpenAI 的大神 Andrej Karpathy 前几天在他的 YouTube 频道讲了一堂课,系统的介绍了大语言模型,内容深入浅出,非常赞,抽空将它翻译成了双语,由于内容较长,我将分批上传,以下是第一部分精校后的双语视频,字幕文稿如下:Intro: Large Language Model (LLM) talk大家好。最近,我进行了一场关于大语言模型的 30 分钟入门讲座。遗憾的是,这次讲座没有被录制下来,但许多人在讲座后找到我,他们告诉我非常喜欢那次讲座。因此,我决定重新录制并上传到 YouTube,那么,让我们开始吧,为大家带来“忙碌人士的大语言模型入门”系列,主讲人 Scott。好的,那我们开始吧。LLM Inference首先,什么是大语言模型 (Large Language Model) 呢?其实,一个大语言模型就是由两个文件组成的。在这个假设的目录中会有两个文件。以 Llama 2 70B 模型为例,这是一个由 Meta AI 发布的大语言模型。这是 Llama 系列语言模型的第二代,也是该系列中参数最多的模型,达到了 700 亿。LAMA2 系列包括了多个不同规模的模型,70 亿,130 亿,340 亿,700 亿是最大的一个。现在很多人喜欢这个模型,因为它可能是目前公开权重最强大的模型。Meta 发布了这款模型的权重、架构和相关论文,所以任何人都可以很轻松地使用这个模型。这与其他一些你可能熟悉的语言模型不同,例如,如果你正在使用 ChatGPT 或类似的东西,其架构并未公开,是 OpenAI 的产权,你只能通过网页界面使用,但你实际上没有访问那个模型的权限。在这种情况下,Llama 2 70B 模型实际上就是你电脑上的两个文件:一个是存储参数的文件,另一个是运行这些参数的代码。这些参数是神经网络(即语言模型)的权重或参数。我们稍后会详细解释。因为这是一个拥有 700 亿参数的模型,每个参数占用两个字节,因此参数文件的大小为 140 GB,之所以是两个字节,是因为这是 float 16 类型的数据。除了这些参数,还有一大堆神经网络的参数。你还需要一些能运行神经网络的代码,这些代码被包含在我们所说的运行文件中。这个运行文件可以是 C 语言或 Python,或任何其他编程语言编写的。它可以用任何语言编写,但 C 语言是一种非常简单的语言,只是举个例子。只需大约 500 行 C 语言代码,无需任何其他依赖,就能构建起神经网络架构,并且主要依靠一些参数来运行模型。所以只需要这两个文件。你只需带上这两个文件和你的 MacBook,就拥有了一个完整的工具包。你不需要连接互联网或其他任何设备。你可以拿着这两个文件,编译你的 C 语言代码。你将得到一个可针对参数运行并与语言模型交互的二进制文件。比如,你可以让它写一首关于 Scale AI 公司的诗,语言模型就会开始生成文本。在这种情况下,它会按照指示为你创作一首关于 Scale AI 的诗。之所以选用 Scale AI 作为例子,你会在整个演讲中看到,是因为我最初在 Scale AI 举办的活动上介绍过这个话题,所以演讲中会多次提到它,以便内容更具体。这就是我们如何运行模型的方式。只需要两个文件和一台 MacBook。我在这里稍微有点作弊,因为这并不是在运行一个有 700 亿参数的模型,而是在运行一个有 70 亿参数的模型。一个有 700 亿参数的模型运行速度大约会慢 10 倍。但我想给你们展示一下文本生成的过程,让你们了解它是什么样子。所以运行模型并不需要很多东西。这是一个非常小的程序包,但是当我们需要获取那些参数时,计算的复杂性就真正显现出来了。那么,这些参数从何而来,我们如何获得它们?因为无论 run.c 文件中的内容是什么,神经网络的架构和前向传播都是算法上明确且公开的。原始视频:https://www.youtube.com/watch?v=zjkBMFhNj_g
-
剑廿三 (@BladeW)
剖析Golang Bigcache的极致性能优化 https://www.cyhone.com/articles/bigcache/
-
剑廿三 (@BladeW)
https://www.peekapaw.com.au
-
剑廿三 (@BladeW)
-
剑廿三 (@BladeW)
https://www.bilibili.com/video/BV1Mg411r7Sc/?spm_id_from=333.337.search-card.all.click&vd_source=cc7aec838ef0ba206bd5d84b1c3c7132
-
剑廿三 (@BladeW)
https://video.weibo.com/show?fid=1034:4971578115424279
-
剑廿三 (@BladeW)
API密钥(API Key)认证和OAuth认证是两种常见的API认证方法,它们各自有不同的优缺点:1. API密钥认证:优点:- 简单易用:API密钥认证机制简单,易于理解和实现,只需在API调用中附带密钥即可。- 快速部署:对于API提供者来说,API密钥认证系统相对容易部署和管理。- 适用性广:适用于各种规模的应用,特别是对于简单的或者内部的API调用。缺点:- 安全性较低:API密钥是静态的,如果密钥泄露,恶意用户可以不受限制地访问API。- 管理不便:如果需要撤销或更换密钥,可能需要更改所有使用该密钥的应用。- 缺乏细粒度控制:API密钥通常授权对所有API的访问,无法限制特定的API或操作。2. OAuth认证:优点:- 安全性更高:OAuth提供了更为复杂和安全的认证机制,可以生成有时间限制的访问令牌。- 灵活的授权:OAuth允许用户授权第三方应用访问特定的资源,而不是全面访问,实现细粒度的权限控制。- 可撤销性:用户可以在不更改密码的情况下撤销第三方应用的访问权限。- 适用于第三方应用:OAuth特别适合需要第三方应用访问用户数据的场景,而无需用户共享自己的登录凭证。缺点:- 实现复杂:相较于API密钥认证,OAuth认证流程更为复杂,对开发者来说,理解和实现的门槛更高。- 部署成本:对于API提供者来说,OAuth认证系统的部署和维护成本相对较高。- 性能开销:OAuth认证流程中可能涉及多次网络请求和重定向,可能会带来更多的性能开销。在选择认证机制时,需要根据API的使用场景、安全需求、开发资源和用户体验等因素综合考虑。对于简单的内部API或者对安全要求不高的场景,API密钥认证可能是一个简单有效的选择。而对于需要高安全性、细粒度权限控制或涉及第三方应用访问用户数据的场景,OAuth认证通常是更合适的选择。
-
剑廿三 (@BladeW)
https://dalle3-playground.pages.dev