IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    love 0
    Yinan
    发表于
    2024-03-26 15:10:55

    Avatars

    我的 GitHub 和博客头像是这个,朋友都说跟我有点神似 :)这其实是这个网站生成的 Notion 风格头像。另外分享一个在刷推发现的Ugly Avatar,我生成了这个用它作为我的 v2ex 账号头像。 ...继续阅读 (112)


    love 0
    Yiwei Zhang
    发表于
    2024-03-26 15:10:30

    重参数化技巧 - 连续分布采样

    重参数化(Reparameterization)技巧是一种在机器学习和统计学中常用的技术,主要用于将一个随机变量转换成另一个随机变量,同时保证它们的概率分布保持不变,在生成模型中有着重要应用。 ...继续阅读 (136)


    love 0
    白宦成
    发表于
    2024-03-26 14:52:00

    使用 CapRover WebHook 获得类 Vercel 部署体验

    我在开发前端应用的时候,基本上使用的都是 Vercel ,究其原因,主要是以下几个点:Vercel 可以方便的与 Github 整合,提供简单易用的部署方式:写完代码,测试完成后推送到 Github ,就会自动部署到线上。对于小型项目来说,可以简化部署的流程。Vercel 提供了自定义域名和自动配置的 SSL,提供了简单的配置方式:在现在 SSL 成为标配的模式下,在 Vercel 你只需要把域名解析到 Vercel ,并在你的 Project 当中绑定域名,就会自动完成域名绑定和 SSL 申请和续期。Vercel 提供了 FaaS 环境:写应用的时候,很多时候不只有前端的需求,这个时候, Vercel 自身的提供的 FaaS 环境可以帮助你完成基本逻辑的编写。但 Vercel 毕竟是以前端为主,且函数运行时长也有限制,对于一些比较重的场景下,Vercel 还是不太够用。刚好最近我把服务部署从传统的 LAMP 换成了 Docker Based PaaS,我使用的 CapRover 提供了类似的体验。使用 Cap Rover 你能获得的体验:上传代码后,自动部署到 Production绑定域名后,自动配置 SSL 证书,且可以配置其他域名转发到主域名具体操作步骤见下:安装 CapRoverCapRover 的安装我就不再赘述,跟随官方的说明安装即可。绑定根域名当你登录 CapRove ...继续阅读 (196)


    love 0
    broadview2006
    发表于
    2024-03-26 14:21:16

    野心、梦想与科幻——浅谈外星殖民与软件工程

    这本书完美融合价值和创新的软件架构选择,旨在让业务决策者和技术团队成员学会通过协作来清晰地理解自身在战略层面面临的问题,并确定理想的架构制定方法,无论该方法是分布式微服务、模块化良好的单体,还是介于两者之间的粗粒度服务。软件架构专家Vaughn Vernon和Tomasz Jaskuła展示了如何基于需求和目标做出平衡的架构决策,而非盲目跟风,从而聚焦于价值和创新,交付更具可演进性的系统,并避免代价高昂的错误。考虑到新的交付机制和收入模式,现有的产品可能是创新的催化剂,能够带来比昨天更大的价值。 ...继续阅读 (178)


    love 0
    Fish
    发表于
    2024-03-26 12:46:43

    Vercel 提示 Unable to find any supported Python versions 的解决办法

    今天在 Vercel 部署 Python 项目时提示 Unable to find any supported Python versions,同样的配置文件,以前都正常。Unable to find any supported Python versions去看了 Vercel 的 changelog,发现今天增加了 Node.js v20 的支持,并且成为了新项目部署时的默认值。 再看之前成功部署的项目,在 Node.js Version 中是 “18.x”。Node.js 版本设置所以将部署时的 Node.js Version 改成 18.x,部署成功,问题解决。 修改入口在你的项目 – Settings – General 中。 ...继续阅读 (170)


    love 0
    俞凡
    发表于
    2024-03-26 12:43:40

    Go代码优化实用指南

    Go非常适合构建高性能应用,本文通过对整型切片求和代码的优化,介绍了常用的Go代码优化方案,从而让代码获得更好的性能。原文:Optimizing Go Code: A Practical Guide代码优化是软件开发流程中的关键步骤,从而确保程序高效运行、性能良好,本文将结合实例探讨优化 Go 代码的一些策略。导言Go(或者称为 Golang)是一种静态类型的编译语言,强调简单、高效的开发体验。尽管 Go 以性能著称,但仍有机会对代码进行微调,以获得更好的效果。示例:整型切片求和我们来看一个简单示例,计算切片中整数的和。我们将从基本实现开始,逐步引入优化。初步实现package main import "fmt" func sum(nums []int) int { total := 0 for _, num := range nums { total += num } return total } func main() { numbers := []int{1, 2, 3, 4, 5} result := sum(numbers) fmt.Println("Sum:", result) }在最初的实现中,我们通过一个简单循环来计算总和。优化 1:使用切片范围func sum(nums []int) int ...继续阅读 (123)


    love 0
    Innei
    发表于
    2024-03-26 11:17:40

    站点的实时人数是如何实现的?

    该渲染由 Shiro API 生成,可能存在排版问题,最佳体验请前往:https://innei.in/posts/dev-story/how-is-the-real-time-headcount-at-the-site-achieved经常光顾我站的读者应该都看到过我站底部有显示当前在线的人数。在不久之前我还为其增加了显示当前正在阅读具体哪篇文章的人数排行,并且在具体的某篇文章左侧增加时间线,用于展示当前所有正在阅读此文章的读者阅读进度。如果你看过我站的开源项目的话大概知道此站是由 Mix Space 驱动的,既然已经需要有服务器驱动,那么我基本没有其他平台提供的服务了,能自己去实现的基本都是自己去实现。比如这个功能,如果你用 SasS 服务,则可以选择Liveblocks。当然这里不做讨论,因为此文章的目的是如何自己去实现这样一个功能,服务端以及前端。设计与实现实时人数的统计,需要长连接。这里可以使用 WebSocket,当然如果你不需要特别实时的情况也可以使用轮询的方式。这里我们还是以 Socket.IO 实现,Socket.IO 是 WebSocket 的上层封装。下面对上面的功能进行拆解分析。站点的实时人数所有的实时人数是比较好统计的。我们可以考虑用所有的 WebSocket 连接去统计当前的在线人数。如果使用这个方法,那么没有连接到 WebSocket 的读者,不计入在 ...继续阅读 (175)


    love 0
    王旭阳个人博客
    发表于
    2024-03-26 08:58:00

    Maven报错failed with MalformedInputException: Input length = 1 -> [Help 1]

    Maven报错failed with MalformedInputException: Input length = 1 -> [Help 1] 问题 最近电脑重装系统了,开发环境都重装了,打包项目时发现一直打包失败 电脑环境如下 Microsoft Windows [版本 10.0.19045.4 ...继续阅读 (155)


    love 0
    est
    发表于
    2024-03-26 08:49:00

    梦见未来人类

    昨天半夜做了一个奇怪的梦,梦见一个毛毛虫在墙角制作自己的关节,一根棍子,中间一个关节,可以对折,看似还是金属或者塑料材质,完工了把关节拧一下,就给自己装上了。。。太过于惊悚于是就醒了。起床开始琢磨,可能是睡前刷B站,看到一个人才UP主知名相声演员BBBBB大王刷了她不少视频。她南京人东北上大学,父母来自四川,被催婚和生娃问题搞得很崩,在英国和韩国奔波,视频风格别具一格。关于韩国那种不婚、人口负增长、内卷的视频特别多,比较有趣,看了不少。总体意思说,韩国的女性有自己的经济地位后,就不结婚生娃了。不用看男人成见就自在活着多好。我感觉BB说得相当有道理。但是人口没了之后,未来的人类怎么办呢?这可能是潜意识留下的一个疑问然后就睡着了。越想越觉得,这个奇怪的梦说不定就是潜意识的答案。未来人类说不定很有可能走虫族路线。首先按照现在的剧本,人类对自己身体和外表越来越不满意,对美的追求,个性的改造越来越多。自然界谁的改造最彻底呢?虫蛹的蜕变。谁不想从一只毛毛虫变成有翅膀到处飞的蝴蝶呀。说不定未来能制造出合成材料,给每人安装一对翅膀?但是成人动刀子改造背部结构,后加翅膀问题太多,说不定臂力不足大多数人人飞不起来,飞行也需要巨大的呼吸器官改造成本否则供能太弱,飞不太久。最好的办法就是从胚胎开始重新设计肢体结构。BB的有一部说自己XS的身材居然淘宝买S都觉得小了。明明她自己都只剩下bone了。说起来,成 ...继续阅读 (200)


    love 0
    磊磊落落
    发表于
    2024-03-26 08:00:00

    如何使用 Spring Data MongoDB 访问 MongoDB 数据库?

    Spring Data MongoDB 是 Spring 框架提供的一个访问 MongoDB 数据库的模块,该模块延续了 Spring Data 系列统一的数据库访问风格(通过定义 Repository 接口的方式),借助于该模块可以使 MongoDB 的访问变得简单又高效。 ...继续阅读 (146)


    love 0
    Amy Peng
    发表于
    2024-03-26 07:31:09

    从 Azure 部署生成本地 .NET 密钥

    本文翻译于Frank Boucher的Generate Local .NET Secrets from Azure Deployments .通常,示例项目以一些“魔术字符串”开始,这些变量包含与部署或外部资源相关的URL和关键信息,我们必须更改这些信息才能使用示例。例如在.NET中,它可能如下所示:string openAIEndpoint = "https://"; string openAIDeploymentName = "my-ai-model"; string openAiKey = "123456abcd789EFGH"; // ...本文展示了如何从Azure部署自动生成.NET密钥以及您的.NET应用程序如何读取这些密钥。用户想要尝试使用您的示例时,将不必再编辑任何内容!他们只需使用azd up进行部署,然后使用dotnet run来执行应用程序。听起来很有趣?下面就来实现一下。整个项目的代码可以在GitHub上的fboucher/hikerai中找到。准备工作Bicep是一种为要部署的Azure资源创建基础结构定义的语言。由于这些资源将包含端点或模型名称等信息,因此我们需要一种导出这些信息的方法,在Bicep中我们使用输出语法:// some bicep deployment... output AZURE_OPENAI_ENDPOINT string = a ...继续阅读 (195)


    love 0
    路过秋天
    发表于
    2024-03-26 06:37:00

    .NET Emit 入门教程:第五部分:动态生成方法(MethodBuilder 与 DynamicMethod) - 路过秋天

    【摘要】在本文的第五部分中,我们深入探讨了 .NET Emit 中动态生成方法的两种方式:MethodBuilder 和 DynamicMethod。通过 MethodBuilder,我们可以在运行时动态创建和定义方法,为其添加参数、自定义属性等元数据信息。而 DynamicMethod 则提供了一种更灵活的动态方法生成方式,特别适合于需要高性能的动态代码生成场景。阅读全文 ...继续阅读 (165)


    love 0
    John Doe
    发表于
    2024-03-26 06:13:57

    Canal部署

    拉取镜像docker pull canal/canal-server:v1.1.7启动容器并复制配置文件,然后删除容器docker run --name canal-server canal/canal-server:v1.1.7docker cp canal-server:/home/admin/canal-server/conf /opt/canaldocker cp canal-server:/home/admin/canal-server/logs /opt/canaldocker stop canal-server & docker rm canal-serverdocker-compose.yml12345678910111213141516171819202122version:'3.5'services:canal-server:image:canal/canal-server:v1.1.7container_name:canal-serverrestart:alwaysports:-11111:11111privileged:trueenvironment:-canal.auto.scan=true-canal.destinations=xc-canal# canal实例名称,根据自己喜好命名-canal.instance.mysql.slav ...继续阅读 (120)


    love 0
    John Doe
    发表于
    2024-03-26 06:13:57

    Canal部署

    基础操作网络配置防火墙1234567891011121314151617# 查看已开启的端口firewall-cmd --list-ports#查看防火墙状态firewall-cmd --state#开启防火墙systemctl start firewalld#开启端口firewall-cmd --zone=public --add-port=6379/tcp --permanent#重启防火墙firewall-cmd --reload ...继续阅读 (106)


    love 0
    阮一峰
    发表于
    2024-03-26 00:26:18

    2024最流行的网站架构----边缘平台架构:概念与产品

    互联网开发的核心是什么?答案可能就是网站架构。你要选择一个合适的架构,用来组织代码,然后在服务器跑起来。今天,我想给大家介绍,眼下最流行的一种网站架构。它非常合理,效果极佳,而且借助云服务商提供的工具,架设非常容易。它就是本文的主题----边缘平台架构(edge platform)。大家可能经常听到"edge"(边缘)这个词,但是未必了解它的意思。我尽量用通俗的语言,解释什么是边缘,什么是边缘平台架构,它的优势在哪里,以及怎样利用边缘平台,架设自己的网站。一、从"服务器-客户端"谈起为了理解边缘平台,需要从最基本、最传统的"服务器-客户端"(server-client)架构讲起。在"服务器-客户端"的架构下,存在一个中心服务器,所有客户端都向它发出请求。这种架构的优点是简单易行,缺点是中心服务器是一个单点依赖。一旦访问量大,可能会有性能问题,还可能中断服务。而且,中心服务器的物理位置是固定不变的,导致用户的访问速度与地理距离有关。同样条件下,离服务器越近,访问速度越快;离服务器越远,访问速度越慢。二、CDN 的出现为了减轻中心服务器的负担,更是为了拉近与用户的地理距离,CDN 架构就出现了。CDN 的想法很简单,就是在各地的机房中设置大量的节点服务器,把每次访问都不变的静态资源文件,复制到这些服务器上面。用户访问时,涉及静态文件的请求就不会发到中心服务器,而是通过 DNS 系统,发 ...继续阅读 (194)


    love 0
    wanshuo
    发表于
    2024-03-26 00:00:00

    suno-ai 人工智能可以唱歌了

    AI 竟然都可以唱歌了,而且唱的还很不错!输入「歌词」和「歌曲风格」,suno ai 就可以帮我们创作一首歌曲:歌词:世事短如春梦,人情薄似秋云。不须计较苦劳心。万事原来有命。 幸遇三杯酒好,况逢一朵花新。片时欢笑且相亲。明日阴晴未定。promptschinese traditional folk,slow, melancholy, fate ,zheng, Uncertainty生成的歌曲:西江月-1西江月-2歌词:日暮苍山远,天寒白屋贫。 柴门闻犬吠,风雪夜归人。promptschinese traditional folk, slow, Dusk, Solitude, Poverty, Isolation, Winter生成的歌曲:逢雪宿芙蓉山主人-1逢雪宿芙蓉山主人-2suno-ai 连歌曲的封面都给我们生成了,一条龙服务:可以让 chatGPT 用几个英文单词描述一下歌曲的风格,AI 工具闭环了属于是。 ...继续阅读 (173)


    love 0
    1900
    发表于
    2024-03-25 22:53:01

    新主题11ty-book

    没事的时候真的不要瞎逛Github,不然发现好玩东西就会按耐不住躁动得而心脏,从而浪费很多时间...。 我就正好遇到这种情况了,前些天在Github上刷到 hugo-book 这个主题,简单、强大、优雅十分符合我现在的胃口。 而且如果没有其他太过特殊的需求,你甚至可以直接用这个主题做你的数字花园,而且使用起来十分顺手,虽然这个主题的主要功能是做文档、知识库的,不过作者依旧还是适配了一点点博客的功能,所以,你甚至可以把博客和知识库整合在一起...。 Emmmm...听起来很酷,主题所有的特性列表如下 Features * Clean simple design * Light and Mobile-Friendly * Multi-language support * Customisable * Zero initial configuration * Handy shortcodes * Comments support * Simple blog and taxonomy * Primary features work without JavaSc ...继续阅读 (249)


    love 0
    edony
    发表于
    2024-03-25 20:30:03

    iCloud 同步 Obsidian Git Vault 导致 iOS App 无限重启问题

    我一直在使用Obsidian Git 自动备份的方法来管理我的 Vault,出于稳妥考虑还额外使用了 iCloud 备份作为保险手段。iCloud 会同步一个 Git 仓库、同时 Obsidian 还用了一个 Javascript 实现的 git 功能、Obsidian 还是一个 local first 的软件,这一切想想都觉得复杂度爆炸。后来再回顾这次折腾的时候,我的感受是用 iCloud 同步 Git 仓库引发的问题本来简单的花钱就可以迎刃而解,其实大可不必这么复杂,不得不说穷是一切「罪恶」的源头🤪。一些技术原理说明iCloud 同步原理先了解一下 iCloud 文件同步的原理,以下内容均源自:iCloud详解——文档存储|Java North1.新文件上传2.旧文件变更上传3.新文件下载4.旧文件变更下载Obsidian 启动原理相信使用 iCloud 存储 Obsidian Vault 的人都看到过如下图所示的启动画面。这个明显拖慢 App 启动速度的举动到底是什么原因呢?根据 Obsidian 团队成员joethei 的解释,Obsidian 会确保将所有配置文件都下载到本地之后才进行启动,不会进行类似 Lazy Load。这背后的逻辑还是 Obsidian 团队一直遵循的他们 CEO Steph Ango(kepano) 的产品理念 「File Over App: ac ...继续阅读 (128)


    love 0
    Denis | 邓鸿华
    发表于
    2024-03-25 14:34:23

    WordPress 6.5 通过新的翻译格式文件显著提高了站点的加载速度

    在过去的一年里,WordPress 开发者仔细分析了WordPress 现有的 i18n 系统的性能,并最终创建了一个新的名为「Performance Translations」(高效翻译)的功能插件:该插件提供了一个全面改进的性能更好的语言包加载系统,在经过成千上万用户的测试之后,WordPress 6.5 核心代码中已经内置了该插件的功能。这个新功能在加载语言包文件时更快,并且使用的内存更少,并且还支持同时加载多个语言环境,这使得语言环境切换也变得更快。除此之外,它还支持包含在 PHP 格式的翻译文件,这样既可利用 OPCache 对其进行加速。新的.l10n.php翻译文件格式现在从 WordPress.org 下载的语言包里面,除了原来就有的.mo和.po文件之外,可能还会多出一个.l10n.php新文件 ,如果有该格式的文件,WordPress 6.5 就优先通过它来加载语言包,该文件使得翻译加载更快,并用到的内存更少。这是一个渐进式的增强,意思是如果只有.mo文件而没有.l10n.php文件,WordPress 依旧通过加载.mo文件来加载语言包,反之亦然,因此理论上现在语言包里面可以只有.l10n.php文件,但是目前 WordPress 还是需要有对应的.mo和.po文件,主要用于语言包的更新检查,不过这个限制将来会得到解决。如何生成新的.l10n.php文件如果要 ...继续阅读 (167)


    love 0
    ysicing (i@ysicing.me)
    发表于
    2024-03-25 13:39:04

    腾讯云轻量上安装Rust编译realm

    因为某些特殊的场景,需要手动编译低版本内核下的realm安装官方方式curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh由于某些特殊的原因,在腾讯云上基本没法使用官方的脚本安装RustUSTC源安装wget https://mirrors.ustc.edu.cn/misc/rustup-install.sh chmod +x rustup-install.sh export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup bash rustup-install.sh编译Realm腾讯云OS选择CentOS7就行啦git clone https://github.com/zhboner/realm && cd realm cargo build --release稍等一会儿就构建ok了, 产物路径如下:target/release/realm ...继续阅读 (187)


    love 0
    ysicing (i@ysicing.me)
    发表于
    2024-03-25 13:16:41

    添加移除iTerm2终端设置代理

    最近调整一下家里的网络架构,默认将macOS也挂到旁路由下添加比较简单,常用的工具都可以自动添加。也可以手动添加export http_proxy=http://127.0.0.1:7890 export https_proxy=$http_proxy移除检查是否有相关变量echo $http_proxy手动关闭unset https_proxy,unset http_proxy通常在~/.zshrc文件里,比较特殊的在~/.zprofile(我的就是在这里😂) ...继续阅读 (219)


    love 0
    why技术
    发表于
    2024-03-25 12:41:15

    舒服了,学习了,踩到一个 Lombok 的坑!

    你好呀,我是歪歪。踩坑了啊,最近踩了一个 lombok 的坑,有点意思,给你分享一波。我之前写过一个公共的服务接口,这个接口已经有好几个系统对接并稳定运行了很长一段时间了,长到这个接口都已经交接给别的同事一年多了。因为是基础服务嘛,相对稳定,所以交出去之后他也一直没有动过这部分代码。但是有一天有新服务要对接这个接口,同事反馈说遇到一个诡异的问题,这个新服务调用的时候,接口里面报了一个空指针异常。根据日志来看,那一行代码大概是这样的://为了脱敏我用field1、2、3来代替了 if(reqDto.getField1() && reqDto.getField2()!=null && reqDto.getField3()!=null){ //满足条件则执行对应业务逻辑 }reqDto 是接口入参对象,有好多字段。具体到 field1、2、3 大概是这样的:@Data @Builder @NoArgsConstructor @AllArgsConstructor public class ReqDto { private Boolean field1 = true; private String field2; private String field3; }所以看到这一行抛出了空指针异常,我直接就给出了一个结论:首先排 ...继续阅读 (128)


    love 0
    XboxYan
    发表于
    2024-03-25 10:00:00

    快速了解CSS表单尺寸属性field-sizing

    最近Chrome 123又推出了一个新的 CSS 属性:field-sizing。有了它,可以轻松实现输入框尺寸自动跟随输入内容的效果,花一分钟了解一下吧~一、快速了解field-sizingfield-sizing表示“场地”尺寸,在这里指的是表单输入框的尺寸,语法很简单,可以取两个值,如下field-sizing: fixed | content其中,fixed表示固定大小,也就是目前浏览器的默认行为,输入框必须要给定一个具体的尺寸而content表示输入框的尺寸完全由输入内容决定。举个例子,下面是一个文本域默认表现是这样的可以看到,按回车时,出现了滚动条,这个大家应该再熟悉不过了这时,如果添加以下属性textarea{ field-sizing: content; }结果...变成了这样因为这时没有内容,所以也就没有了尺寸,所以一般还需要手动加个尺寸textarea{ field-sizing: content; width: 200px; }现在宽度固定了,高度仍然有内容决定这样就实现了一个回车自动增加高度的输入框了,是不是很方便?还可以设置最小尺寸,这样就更符实际规需求了textarea{ field-sizing: content; width: 200px; min-height: 40px; }效果如下二、其他输入元素除了前面的文本域text ...继续阅读 (153)


    love 0
    一线码农
    发表于
    2024-03-25 08:28:00

    记一次 .NET某半导体CIM系统 崩溃分析 - 一线码农

    【摘要】一:背景 1. 讲故事 前些天有一位朋友在公众号上找到我,说他们的WinForm程序部署在20多台机器上,只有两台机器上的程序会出现崩溃的情况,自己找了好久也没分析出来,让我帮忙看下怎么回事,就喜欢这些有点调试基础的,dump也不需要我指导怎么去抓,接下来我们就上windbg开始分析吧。 二:Win阅读全文 ...继续阅读 (154)


    love 0
    Fish
    发表于
    2024-03-25 08:22:49

    Strava 提示没有路线信息的解决方法

    之前从 Strava 从苹果健康中导入骑行数据都没有问题,不知道是不是苹果最近更新版本的问题还是误操作了什么,突然提示导入的骑行记录没有路线数据。Strava 提示无路线数据去“健康”应用看了下,发现是没给 Strava “体能训练路线”权限。在“健康” App 中点击自己头像,进入 隐私 – App 和服务,找到 Strava,在“允许 Strava 读取”中找到“体能训练路线”,打开即可。打开体能训练路线权限 ...继续阅读 (159)


    love 0
    路过秋天
    发表于
    2024-03-25 06:27:00

    .NET Emit 入门教程:第四部分:构建类型(Type) - 路过秋天

    【摘要】构建类型是动态代码生成过程中的关键一环,通过灵活运用 TypeBuilder 和相关工具,我们可以实现各种复杂类型的动态生成,为程序的灵活性和可扩展性提供有力支持。总的来说,本章节通过演示如何使用 Emit 来动态创建类型,包括定义字段、方法、属性和事件等, 帮助读者理解如何在运行时生成和操作类型信息。阅读全文 ...继续阅读 (178)


    love 0
    自行 (zzxworld@163.com)
    发表于
    2024-03-24 22:58:38

    骑行钱塘江,偶遇钱江潮

    本来这个周末我准备去爬山,天气预报说会有雨,于是我放弃了爬山的计划。周六早上起来,天上乌云密布,看起来的确是一副要落雨的模样。就在我以为这雨要下定了,没想到云彩越来越薄,逐渐有了消散的势头,看来这雨要泡汤。 ...继续阅读 (155)


    love 0
    youngxhui
    发表于
    2024-03-24 22:45:30

    分布式理论

    CAP 理论在分布式系统中最重要的一条理论为 CAP 理论。这个理论是由加州大学伯克利分校的计算机科学家Eric Allen Brewer在 2000 年提出的一个猜想,由 2002 年,麻省理工两位科学家发表了该猜想的证明,使得该猜想变成了一个定理。CAP 定理中对分布式系统提出了三点,分别为:一致性(Consistency):多个副本的数据之间能够保持一致;可用性(Availability):每次请求都可以获取到正常的、非错误的响应,但是无法保证数据是最新的;分区容错性(Partition tolerance):系统的某个节点发生故障,仍然还可以对外提供一致性和可用性的服务。例如当前系统有两个 DB 分别为 DB0 和 DB1。一致性 C一致性是指在数据发生变化的时候(也就是写操作发生后),无论是谁获取到的数据(也就是读操作)也是一样的。当用户1 通过写操作对 DB0 的数据进行修改后,那么无论用户1 还是 用户2 ,无论从 DB0 还是 DB1 读取,读取后的数据都应该是完全一样的,这就是所谓的一致性。也就是 DB0 的数据发生了修改,应该由相关的机制告诉 DB1 也将相关的数据发生修改,保证该数据在不同的 DB 中是一样的。可用性 A当用户发出相关请求,无论 DB0 还是 DB1 都会返回相关的数据,但是这里不需要关心数据是否一致。分区容错性 PDB0 和 DB1 例如出现 ...继续阅读 (89)


    love 0
    白宦成
    发表于
    2024-03-24 22:00:00

    在你的 Github Actions 中添加一个 PostgreSQL 用于测试

    在开发应用的时候,我们会选择使用 PostgreSQL 作为数据库进行开发,但在 Github Actions 环境下,默认是没有 PostgreSQL 作为数据库后端的,这个时候如果你想要测试一些和数据库相关的逻辑,就不得不面临两个选择:使用一个和生产环境无关的数据库,比如 SQLite。在 Github Actions 当中添加一个 PostgreSQL。前者是大多数常规的做法,大概率也不会出现什么问题(毕竟作为 CURD 仔,我们用的大部分时候都是一些 ORM,很少裸写 SQL),不过依然存在一些概率是你写了一些 PostgreSQL Only 的 Query 无法覆盖到测试。另外就是本文的核心了:在你的 Github Actions 当中添加一个 PostgreSQL。Github Actions Service想要实现这个效果,我们依赖了Github Actions Service Containers这个能力。服务容器是 Docker 容器,以简便、可携带的方式托管您可能需要在工作流程中测试或操作应用程序的服务。 例如,您的工作流程可能必须运行需要访问数据库和内存缓存的集成测试。您可以为工作流程中的每个作业配置服务容器。 GitHub 为工作流中配置的每个服务创建一个新的 Docker 容器,并在作业完成后销毁该服务容器。 作业中的步骤可与属于同一作业的所有服务容器通信 ...继续阅读 (219)


    love 0
    wireless_com
    发表于
    2024-03-24 20:24:20

    大模型应用的10种架构模式

    在塑造新领域的过程中,我们往往依赖于一些经过实践验证的策略、方法和模式。这种观念对于软件工程领域的专业人士来说,已经司空见惯,设计模式已成为程序员们的重要技能。然而,当我们转向大模型应用和人工智能领域,情况可能会有所不同。面对新兴技术,例如生成式AI,我们尚缺乏成熟的设计模式来支撑这些解决方案。作为一位老码农,我在这里整理总结了一些针对大模型应用的设计方法和架构模式,试图应对和解决大模型应用实现中... ...继续阅读 (199)

上一页 366/4404 下一页
沪ICP备19023445号-2号
友情链接