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

    love 0
    沈唁
    发表于
    2024-01-09 15:31:37

    PHP 中 trim 函数对多字节字符的使用和限制

    先来判断下这段代码的输出是否一致?more$string = '沈唁 '; var_dump(trim($string)); var_dump(preg_replace('/^[\s\0]+|[\s\0]+$/u', '', $string));如果你觉得是一致的,那么就是大错特错了。在日常工作中,经常需要处理字符串。其中一种常用的情况是,需要删除字符串两端的空白字符,这就是trim()函数原本的作用。但是标准的trim()函数不能处理多字节字符。什么是trim()函数?在PHP中,trim()函数用于删除字符串的开头和结尾的空白字符。默认情况下,这些字符包括:"\0"- NULL"\t"- 制表符"\n"- 换行"\v"- 垂直制表符"\r"- 回车" "- 空格mbstring扩展在很多语言中,每个必要字符都能一对一映射到8 bit的值,但也有一些语言需要非常多的字符来书面通讯,以至于它们的编码范围不能仅仅包含在一个字节里。开发多字节字符编码方案是为了在基于字节的常规编码系统中表达超过 256 个字符。在使用trim、split、splice等等操作多字节编码的字符串的时候,特别需要注意,由于在这种编码方案下,两个或多个连续字节可能只表达了一个字符,所以需要使用专门的函数。 否则,你可能会得到一个以乱码的字符串结尾。而mbstring提供了针对多字节字符串的函数,能够帮开发者处 ...继续阅读 (152)


    love 0
    妙音
    发表于
    2024-01-09 14:47:08

    cmake引用jansson库

    描述 在ubuntun系统上使用clion开发c程序, cmake如何引入jansson库. 下载jansson wget http://digip.org/jansson/releases/jansson-2.13.tar.gz tar -xvf 编译janssoncd jansson-2.13 mkidr build cd build cmake ../ make 查看编译结果 ├── include │ ├── jansson_config.h │ └── jansson.h ├── lib │ └── libjansson.a clion创建C程序File->New->Project->选中"C Executable" CMakeLists.txt引用jansson cmake_minimum_required(VERSION 3.22) project(demo_task C) set(CMAKE_C_STANDARD 11) #自定义库, jansson放在了source目录下 set(LIBHOME "/home/xxx/workspace/source/") # jansson include_directories(${LIBHOME}/jansson-2.13/build/include) link_directories( ...继续阅读 (65)


    love 0
    Flomesh
    发表于
    2024-01-09 13:25:51

    探索服务网格与 OpenTelemetry 的协同之分布式跟踪

    背景分布式跟踪分布式跟踪是监控和诊断微服务请求流程的关键技术,也是可观测性的关键组成部分,提供了对微服务架构中复杂交互和性能问题的深入洞察。它通过提供服务间请求链路的清晰视图来管理复杂性,并帮助识别性能瓶颈、优化资源分配、快速定位和解决故障,提高系统的整体可靠性。服务网格的无侵入式分布式跟踪又是无侵入性!服务网格中的代理自动处理所有入站和出站的网络通信,自动捕获、记录和分析服务间的请求和响应的详细信息,如请求时间、持续时间、状态代码和其他元数据。这种实现方式对应用程序本身透明,并且较 Java Agent 在运行时修改字节码更加彻底。这里有个前提是应用程序能够在请求中传递上下文信息,这样 sidecar 代理生成和发送的跟踪信息最终可以串联在一起,不会发生断链。网格的无侵入式分布式跟踪虽然为我们展示了请求的链路,但是如上图所示每个跨度(span)都是 sidecar 代理的信息。紧跟上篇文章之后,我们今天将探索服务网格 FSM与 OpenTelemetry 的集成,实现应用、网格的全链路分布式跟踪。演示架构环境配置Jaeger、cert-manager 和 Otel operator 的安装,请参考上一篇文章。配置 Instrumentation接下来就是配置探针的安装和配置了,详细的配置说明,可以参考Instrumentation API 文档。根据FSM 分布式跟踪文档的介绍, ...继续阅读 (107)


    love 0
    张善友
    发表于
    2024-01-09 13:22:00

    C# 成为2023年度编程语言之王 - 张善友

    【摘要】原文发表在公众号 腾讯云开发者:https://mp.weixin.qq.com/s/5owE5hmJVkwOLJrKMXfR6Q导读2023 TIOBE 年度编程语言正式揭晓,C# 在陪跑多年后首次斩获这一殊荣。TIOBE表示,C#在 Web 应用后端和游戏等领域变得持续流行,并开始蚕食 Java阅读全文 ...继续阅读 (142)


    love 0
    ysicing (i@ysicing.me)
    发表于
    2024-01-09 12:45:25

    部署轻量私有化服务监控Gatus

    类似Uptime Kuma, 可以视为其相似替代品,目前唯一不足的地方不支持可视化部署。本文主要记录部署和使用。项目地址TwiN/gatus功能高度灵活的运行状况检查条件配置简单丰富的告警方式低耗徽章服务可用性动态存储类型多样化不足这里简单说下我在使用过程中遇到不足的地方不支持可视化编辑endpoints.name或group不支持中文, 这里踩了不少坑😂部署这次我没在k8s上部署,找了台吃灰的小鸡跑着哈哈哈docker部署服务端version: '2' services: gatus: image: twinproduction/gatus:latest container_name: gatus ports: - "8080:8080" volumes: - '/data/gatus/config:/config' - '/data/gatus/data:/data' restart: always拉取镜像docker compose -f gatus.yml pull编写配置文件配置文件/data/gatus/config/config.yamlstorage: type: sqlite path: /data/data.db ui: buttons: - name: "H ...继续阅读 (152)


    love 0
    煎鱼
    发表于
    2024-01-09 12:30:45

    Go1.22 新特性:for 循环不再共享循环变量,且支持整数范围

    大家好,我是煎鱼。又过了好几个月,到了 Go 新版本的日子了。Go 1.22 预计将于 2024 年 2 月发布。我将会给大家带来一系列的新版本特性讲解和分享。今天这篇文章主要是针对 for 循环的特性变更。不再共享循环变量在老版本的 Go 中,for 循环迭代器的变量是一个单一变量,在每个循环迭代中仅是取值不同。这样做在性能上非常高效,但如果使用不当,会导致意想不到的行为,可能会造成共享循环变量的问题。最经典的场景就是在 goroutine 循环时的问题。如下代码:func main() { values := []int{1, 2, 3, 4, 5} for _, val := range values { go func() { fmt.Printf("%d ", val) }() } time.Sleep(time.Second * 3) }输出结果:5 5 5 5 5如果是 Go1.22 以前的版本,在不做任何变更的情况下。我们需要把代码改成如下:func main() { values := []int{1, 2, 3, 4, 5} for _, val := range values { go func(val int) { ...继续阅读 (132)


    love 0
    罗佳(博主)
    发表于
    2024-01-09 11:59:54

    升级到windows11之后游戏帧率暴跌

    从win10升级到win11之后一开始我发现vr帧数超低,然后我发现不只是vr,战舰世界的帧率也超低,但任务管理器里看GPU占用竟然几乎到了90%,然后我就网上找解决方案,有什么显卡设置里关GPU硬件加速的,有关闭窗口化游戏优化的,有关闭ame Bar的,我全试了一遍都没用。直到我偶然点开Afterburner,发现显卡跑在一个很低的频率上,然后我直接把它的频率配置重置了一下,瞬间就恢复正常性能了。怀疑是win11什么节能功能修改了显卡相关设置。 ...继续阅读 (128)


    love 0
    小泽
    发表于
    2024-01-09 10:21:49

    什么是 CNAME 展平?

    有些小伙伴们会经常遇到一个问题,在当前主机记录已经存在 CNAME 类型的记录后再在当前主机记录下添加其他记录类型时会提示某某类型记录和 CNAME 记录可能存在冲突,甚至有些解析服务商会直接不允许添加,比较常见的就是将主域名解析至 CDN 服务商提供的 CNAME 记录,然后再添加 MX(邮箱服务记录)时会碰到这个问题,这是为什么,该如何解决呢?接下来就让我们一起来了解一下吧。为什么会出现这个问题?在 DNS 标准文件 RFC 1034 中,对 CNAME 记录的定义如下:Identifies the canonical name of an alias.译文:标识别名的规范名称。翻译起来很拗口,但简单的来说 CNAME 记录就是把一个域名托管给另一个域名,该域名的所有解析记录都会被托管给另外一个域名,包括 MX、TXT、AAAA、A 等。我们以ddnsip.cn这个域名为例,它的解析记录如下:在图中我们可以看到,ddnsip.cn这个域名通过 CNAME 记录指向了ddnsip.cn.eo.dnse3.com.,这也就意味着ddnsip.cn这个域名的所有解析记录都会被托管给ddnsip.cn.eo.dnse3.com.,无论我向权威服务器查询任何记录类型,都会返回ddnsip.cn.eo.dnse3.com.所对应的的解析结果,比如说我查询ddnsip.cn的 MX 记录:可 ...继续阅读 (145)


    love 0
    Amy Peng
    发表于
    2024-01-09 10:05:49

    F# 中更安全的递归

    本篇翻译于David Schaefer的Safer recursion in F#。这是David Schaefer的客座博客文章。David是一名专注于函数式编程的自由软件开发人员。他是G-Research开源团队的一员。他致力于改进F#开发者工具的生态系统。此外,他还帮助维护各种开源的F#项目。在函数式编程中,用递归的方式去定义算法是很常见的场景。这非常符合我们想要避免突变的心态,而且这通常不会导致性能下降。编译器在优化阶段会尝试将递归定义重写为更高效的循环。然而,编译器并不总是能够将递归转换为循环。从这里开始,就有一定的危险了。堆栈帧与生产环境当我们在函数f内部调用函数g时,这个操作通常会在进程的调用堆栈上创建一个新的堆栈帧。函数g完成后,程序此时就不再需要它的堆栈帧了,从而可以重用它的空间。现在,理解堆栈帧的创建对于递归函数是至关重要的。一般来说,对于每个递归调用,都会创建一个新的堆栈帧。在开发期间,当规模较小时,这通常不会引起问题。但在后期的生产环境中,随着规模的扩大,程序会因堆栈溢出而突然崩溃。在生产环境中,由于递归调用创建了太多堆栈帧,堆栈的所有空间都被用完了,所以runtime决定停止它。为了演示这一场景,请看一下这个递归函数:let rec countDown1 n = if n = 0 then 0 else countD ...继续阅读 (173)


    love 0
    FeiZhao (xuezaigds@gmail.com)
    发表于
    2024-01-09 09:14:47

    跟 OpenAI 学写 ChatGPT API 的 Python SDK 库

    ChatGPT 问世后,OpenAI 就开源了模型调用的 Python 库openai-python。这个库功能十分齐全,封装了 OpenAI 对外公布的 API,使用起来也十分简单。这个库的第一个版本,实现了 ChatGPT 各种 API 的参数封装 Python 抽象类和调用方法,通过 requests 和 aiohttp 库来发送同步或者异步 HTTP 请求。整体来说,对外接口良好,很容易就会使用。并且整体源码实现有很好的逻辑抽象,用了很多 Python 高级特性,代码写的很漂亮,值得学习。但是从本质上讲,这还是 “API boy“ 的工作,更多是重复体力劳动,没有太多技术含量。于是,OpenAI 在 2023 年 11 月,开始引入Stainless,自此不用再手工编写 SDK 代码。每次只用提供 API 协议更新,然后就能自动生成代码,摆脱了重复体力劳动。具体是在Pull 677中引入新的代码,并且作为正式的 V1 版本发布。手动打造的 SDK最开始的 Python SDK 可以称之为手动打造的 SDK,代码全部手工写好,和 API 耦合在一起。整体目录结构如下:这个版本的代码,整体结构还是比较清晰的,我用Pyreverse和graphviz为 openapi-sdk 生成了类图,去掉一些不重要的类之后,整体的类依赖关系如下:其中有个基础的类 OpenAIObject,里 ...继续阅读 (229)


    love 0
    卡颂
    发表于
    2024-01-09 09:09:28

    当别人因为React、Vue吵起来时,我们应该做什么

    大家好,我卡颂。最近尤大的一个推文引起了不小热议,大概经过是:有人在推上夸React文档写的好,把可能的坑点都列出来尤看到后批评道:框架应该自己处理这些坑点,而不是把他们暴露给用户尤大在推上的发言一直比较耿直,这次又涉及到React这个老对手,关注度自然不低。再加上国内前端自媒体的一波引导发酵,比如知乎下这个话题相关的问题中的措辞是怒喷,懂得都懂。在这样氛围与二手信源的影响下,会给人一种大佬都亲手下场撕了的感觉,自然会引来React、Vue各自拥趸的一番激烈讨论。年年都是一样的套路,毫无新意......免费领取卡颂原创React教程(原价359)、加入人类高质量前端群面对这样的争吵,我们应该做什么呢?首先,回到源头本身,尤大diss的有道理么?有。React的心智负担重么?确实重。比如useEffec这个API,你能想象文档中一个章节居然有6篇文章是教你如何正确使用useEffec的么?造成这一现象的原因有很多,比如:Hooks的实现原理使得必须显式声明依赖显式声明依赖无法覆盖useEffect所有场景,为此专门提出一个叫Effect Event的概念,以及一个对应的新hook——useEffectEventuseEffect承载了太多功能,比如未来Offscreen的显隐回调(类似Vue中的Keep-Alive)也是通过useEffect实现当我们继续往前回溯,Hooks必须显式 ...继续阅读 (125)


    love 0
    羊先生
    发表于
    2024-01-09 08:31:00

    基于Egg.js二次封装框架,一键安装,干货上场

    highlight: agatetheme: fancy安装npm i egg-bag-framework内置多种模块,中间件以及工具源码地址,演示地址中间件校验sing签名是否合法,防止随意发起请求'use strict'; module.exports = (option, app) => { return async function sing(ctx, next) { const sing = ctx.request.header.sing; const { domain, expireTime, cache } = ctx.app.config.website; const default_cache = 'redis'; if (sing) { let getSing = null; if (cache === default_cache) { getSing = await app.redis.get(sing); } else { getSing = await app.lru.get(sing); } if (g ...继续阅读 (139)


    love 0
    Qianyugang
    发表于
    2024-01-09 08:16:35

    第三十二年冬至

    这篇文章应该是归属于到2023年的,奈何每年这篇文章都拖延了,也就不自欺欺人了,索性放到2024年类别好了,不过农历新年还没到嘛,也还能算做是2023年。今年应该是自2018年以来文章写的最少的一年了,真正原创的更少了,基本上工作上的比重一高起来,我就感觉有点懒惰,再加上带娃,这个 Blog 的优先级就算是拉到最低了,祈祷一下明年开始更新多点文章吧(其实在知乎发的更多一些)。今年我的高中同桌同学也结婚了,去广州参加了他的婚礼,就这样定居广州了,也算在广东省城也有个驻点了,这样算来我的两个伴郎现在也都结婚了,全都是人生新阶段了。在广州和老孟也又一次深夜言欢,高中班上的同学也在工作十年之后考上华科研究生,肥肠之佩服以及羡慕。码字今年在知乎上发的文章也多了一些,也被知乎拉到他们的创作者群里去了,作为知乎第3万多个用户,白嫖了快十三年了吧,现在也可以在知乎写写东西涨一涨粉丝,不过我还是业余时间搞一搞,有时间了发一发,好多人全职写这个,看他们晒的收入也还算是不错的。话说知乎的变现还是比较少的,比起抖音、尤其是小红书这种同为图文的平台不算是多,但是也在增长中吧,毕竟在知乎上确实是长了不少知识。中秋还收到了知乎的礼盒呢。看这篇文章->知乎2023中秋月饼礼盒开箱!🥮。人工智能确切的说是GPT,LLM大模型,从去年年底开始,这个GPT就席卷了各行各业,大有当年互联网更新迭代所有行业的趋势,目前我在 ...继续阅读 (234)


    love 0
    sinyu890807
    发表于
    2024-01-09 08:00:00

    我以为发现了Android 14系统中的一个bug,然而...

    想想这是不是我们所熟知的三大组件原有的默认行为,长期以来一直都是如此,只是这个问题套了个Android 14的壳子,让我一度迷失在了Android各系统版本行为变更的细节里面,以至于没能快速找出问题的本质。魏老师跟我开玩笑说,自己做Android的时候觉得Android实在是太难了,各个系统版本的变化新特性什么的绕来绕去,根本记不住,所以才去做了AI,说AI比较简单。唯一的问题就是,我所使用的上述示例,在没有明确指定当前App包名的情况会崩溃,而我的同事guting却反馈说是没有任何错误日志可以观察到。 ...继续阅读 (129)


    love 0
    人间历险记
    发表于
    2024-01-09 07:30:42

    小微企业工商年报怎么填?

    小微企业工商年报怎么填?​背景​这是注册的余杭地区的国内公司。如果你寻找的是英国公司年报申报,请移步:英国公司报税维护指南。最近收到了一条市场监督管理局的短信:各单位企业负责人:2023年度主体年报于2024年1月1日开始可以填报,请各单位尽快完成2023年度年报,登入全国企业信用信息公示系统https://www.gsxt.gov.cn/index.html尽早报送2023年年度报告。,填写提交成功即可完成。请各单位如实填报(不能全零申报,否则将不予通过年检)。未按期年报的企业,将列入经营异常名录,造成个人征信不良影响,并处于一万元以下罚款。于是使用电子营业执照登录短信内提示的网址,完成填写第一份年报。小微企业最重要的就是又要合规又要控成本。由于账上流水不多,做到其实并不难。流程如下,供参考。 由于我是首次填写年报,登录后提示有两项报告需要填写企业即时信息2023市场主体年报企业即时信息是指股权变更、行政处罚、实缴数据变更等情况发生后需要公示的信息。如果是首次填年报,这里还是空的,也可以顺便填写下。下面内容重点是市场主体年报。老规矩,文章的内容一旦遇到新情况和反馈会持续更新。我的情况是:零收入,有部分流水、工资、社保支出,使用自记账的服务,数据在后台基本都能查到。工商年报大师自助提交如果你购买了自记账,可以使用他们的工商 ...继续阅读 (205)


    love 0
    Teacher Du
    发表于
    2024-01-09 03:23:17

    今天我们聊一聊脂肪肝

    去年「2023 年」年底,公司组织了一次全身的体检。为了配合此次体检,杜老师提前几天就调整饮食、注意休息,争取把体能调整好,得到一个比较好的报告,结果报告说中度脂肪肝?先聊一下体检其实杜老师对体检嗤之以鼻。杜老师选择的这家体检机构还是比较大的,在帝都有数十家的连锁,选择距离最近一家完成预约,马上就会收到成功通知,并附上体检前注意事项。无非就是要求调整饮食、注意休息之类,对此杜老师就非常好奇:我生活的如此健康,还要你们做啥?就应该每天都胡吃海喝,天天熬夜奋战,体检前再去喝酒蹦个迪。这时你们告诉我这是我红线,越过即嗝屁就行了~之后我们就会注意到哪些操作减少 HP,哪些减少 HP 上限值。最好再给一些建议,如何提升 HP 的上限,就完美了!最后还是要夸一下,杜老师选择的这家体验机构,体检还是很不错的,所有项目完成后还提供 KFC 的早餐~什么是脂肪肝脂肪肝这个听起来有点可爱却并不轻盈的疾病,其实就像一个安静房客,默默地住在你的肝脏里,有时候你甚至都不知道它的存在。那么,这个神秘的房客是怎么悄悄搬进我们肝脏的呢?首先,让我们来聊聊脂肪肝的搬家原因。简单地说,当我们的肝脏里聚集太多的脂肪,就可能会发展成脂肪肝。这听起来像是肝脏在进行一场脂肪的聚会,不过这场派对对肝脏来说并不是什么好事。常见的邀请函包括过量饮酒、肥胖、糖尿病及高血脂等,甚至是一些药物副作用。就像一个不懂拒绝的好客东道主,肝脏在 ...继续阅读 (134)


    love 0
    血衫非弧の一存
    发表于
    2024-01-09 00:00:00

    使用 osascript 命令将 Mac 应用切换到前台

    osascriptosascript是macOS上的一个命令行工具,用于执行AppleScript脚本或者JavaScript脚本。它的名称来源于”Open Scripting Architecture”(OSA),这是macOS中的脚本系统。执行AppleScript脚本:osascript-e'tell application "Finder" to display dialog "Hello, World!"'这个命令告诉Finder应用程序弹出一个对话框,显示”Hello, World!”。osascript对于与macOS交互、控制应用程序等场景非常有用,可以通过命令行方便地执行脚本。在你的情况下,使用osascript来激活应用程序并将其切换到前台。例子例如,将Xcode切换到前台的命令是:osascript-e'tell application "Xcode" to activate'请确保应用程序名称与实际应用程序的名称匹配,大小写敏感。将Safari切换到前台命令是:osascript-e'tell application "Safari" to activate'请确保你输入的应用程序名称与实际应用程序的名称匹配,大小写敏感。这个命令会使用AppleScript告诉应用程序激活(activate)。请注意,有些应用程序可能需要一些时间来响应激活的命令,特别是在启 ...继续阅读 (233)


    love 0
    ike‘s blog
    发表于
    2024-01-09 00:00:00

    clickhouse的一些优化建议和工具

    起因自从用cloki+clickhouse来替代日志系统后真是一波三折,问题不断Orz。 只能感叹不亏是小众的开源工具,还是一堆坑,下面记一下踩到的一些坑和对clickhouse的优化。Q:主查询最后的查询会进行全表查询,但是left join的time_series_dist表巨大,有几百G,几十亿条数据,导致每次查询都得全部读取到内存里,一次查询占用80G内存,查询5分钟还查不出结果!# 查询语句 WITH sel_a AS ( SELECT samples.string AS string, samples.fingerprint AS fingerprint, samples.timestamp_ns AS timestamp_ns FROM cloki.samples_v3_dist AS samples WHERE ((samples.timestamp_ns >= 1704440225031000000) AND (samples.timestamp_ns <= 1704440525031000000)) AND (samples.fingerprint IN ( SELECT sel_1.fingerprint ...继续阅读 (41)


    love 0
    白宦成
    发表于
    2024-01-08 17:38:00

    你是「小土豆」么?

    最近这几天,大量的南方游客涌入哈尔滨,在哈尔滨吃喝玩乐。在这个过程中,当地人对于南方游客的爱称引起了我的注意 —— 「小土豆」。当然,我并不打算指责当地人或游客,各自有各自的想法和诉求。当地人希望用爱称来虚拟化所有的游客,以拉近距离。而游客则希望找到自己的认同感,从而快速定位自己和他人的区别。我更关注的是 —— 昵称爱称这件事本身。假设两个人毫无关系,完全平等,我们一般都是直接喊名字,甚至是直接「美女你好」、「帅哥你好」。但当其中一方对另一方有明显的诉求时,昵称就会开始弱化自己,抬高他人。就像技术圈喊「大神」一方面是认可大神的能力,另一方面则是希望大神给自己提供一定的帮助。当我们被某些昵称 / 称呼感受到不满 / 舒服时,我们需要想想,这个称呼/这个描述的背后,是他对于我们什么样的预期?你是「小土豆」么?最先出现在白宦成。 ...继续阅读 (170)


    love 0
    David Gao
    发表于
    2024-01-08 16:00:00

    个人的2023年回顾以及2024的计划

    *2023年在不知不觉中过去了,来到了2024年,参与某个项目已经有5年之久了。自己和小伙伴们也一起搞东西搞了3年了,但是终究是同志尚需努力。More… ...继续阅读 (140)


    love 0
    David Gao
    发表于
    2024-01-08 16:00:00

    作为一个开源项目的创始人

    无意中看到尤雨溪说React挖坑不填坑,只靠文档来让用户来避开这些坑,其中言辞不乏用了夸张的手法来特意强调了这些坑的严重性。甚至用了 PUA 这样的词来刻意强调自己的观点。本来无意去写文章来说什么,但是接到了一些外国友人的消息后,进一步看了尤雨溪的后续X(前twitter)上的消息后,还是写了这篇文章说说自己的看法More… ...继续阅读 (136)


    love 0
    crossoverJie
    发表于
    2024-01-08 15:26:12

    请注意,你的 Pulsar 集群可能有删除数据的风险

    在上一篇Pulsar3.0新功能介绍中提到,在升级到 3.0 的过程中碰到一个致命的问题,就是升级之后 topic 被删除了。正好最近社区也补充了相关细节,本次也接着这个机会再次复盘一下,毕竟这是一个非常致命的 Bug。现象先来回顾下当时的情况:升级当晚没有出现啥问题,各个流量指标、生产者、消费者数量都是在正常范围内波动。事后才知道,因为只是删除了很少一部分的 topic,所以从监控中反应不出来。早上上班后陆续有部分业务反馈应用连不上 topic,提示topic nof found.1org.springframework.beans.factory.BeanCreationException: Error creating bean with name'Producer': Invocation of init method failed; nested exception is org.apache.pulsar.client.api.PulsarClientException$TopicDoesNotExistException: Topic Not Found.因为只是部分应用在反馈,所以起初怀疑是 broker 升级之后导致老版本的 pulsar-client 存在兼容性问题。所以我就拿了平时测试用的 topic 再配合多个老版本的 sdk 进行测试, ...继续阅读 (206)


    love 0
    YY.K
    发表于
    2024-01-08 14:36:00

    批量下载github打包文件

    wget $(curl -s https://api.github.com/repos/ehang-io/nps/releases/latest | grep -oP '"browser_download_url": "\Khttps://[^"]+')把ehang-io/nps换成你要的github ID和项目地址. ...继续阅读 (194)


    love 0
    YY.K
    发表于
    2024-01-08 14:36:00

    批量下载github打包文件

    wget $(curl -s https://api.github.com/repos/ehang-io/nps/releases/latest | grep -oP '"browser_download_url": "\Khttps://[^"]+')把ehang-io/nps换成你要的github ID和项目地址. ...继续阅读 (175)


    love 0
    bigwhite
    发表于
    2024-01-08 13:42:41

    依赖Kafka的Go单元测试例解

    本文永久链接– https://tonybai.com/2024/01/08/go-unit-testing-deps-on-kafkaKafka是Apache基金会开源的一个分布式事件流处理平台,是Java阵营(最初为Scala)中的一款杀手级应用,其提供的高可靠性、高吞吐量和低延迟的数据传输能力,让其到目前为止依旧是现代企业级应用系统以及云原生应用系统中使用的重要中间件。在日常开发Go程序时,我们经常会遇到一些依赖Kafka的代码,如何对这些代码进行测试,尤其是单测是摆在Go开发者前面的一个现实问题!有人说用mock,是个路子。但看过我的《单测时尽量用fake object》一文的童鞋估计已经走在了寻找kafka fake object的路上了!Kafka虽好,但身形硕大,不那么灵巧。找到一个合适的fake object不容易。在这篇文章中,我们就来聊聊如何测试那些依赖kafka的代码,再往本质一点说,就是和大家以找找那些合适的kafka fake object。1. 寻找fake object的策略在《单测时尽量用fake object》一文中,我们提到过,如果测试的依赖提供了tiny版本或某些简化版,我们可以直接使用这些版本作为fake object的候选,就像etcd提供了用于测试的自身简化版的实现(embed)那样。但Kafka并没有提供tiny版本,我们也 ...继续阅读 (190)


    love 0
    why技术
    发表于
    2024-01-08 12:47:38

    盘一盘这个没资格出现在面试环节的场景题。

    你好呀,我是歪歪。前两天在一个技术群里看到有人抛出一张图片,提出了这样的一个问题:请教一下,线程池可以做到根据任务的类型,来指定特定线程执行吗?了解了一下背景,是批量任务触发,从订单表中查询出“处理中”状态的订单,订单可能属于不同的通道,所以需要调用不同通道的接口。现在的方案是把订单查出来之后,往线程池里面扔,在异步任务里面判断当前订单是属于哪个通道,就调用哪个通道的查询接口:这是常规做法,看起来没有毛病。但是现在提问的这个哥们遇到了一个问题:有一个通道的查询接口特别慢,会占着线程池里面的线程资源,影响了其他两个通道的订单查询。举个极端的例子,比如你的线程池核心线程数就三个。假设一共有 5 笔数据,前 3 笔是通道 A 的,后面两笔分别是通道 B 和通道 C 的。结果现在通道 A 出问题了:直接把你的核心线程都占满了,剩下的两笔对应 B 和 C 通道的数据就在队列里面排着队,等着。你说这个合不合理?非常不合理,对不对?但是这个问题确实也是很常规,常规到它甚至没有资格作为一个场景面试题出现在面试环节中。问题在于不同的通道在共用同一个线程池,从而导致的相互影响。所以解决思路主要就是怎么把资源隔离开来。一般来说,大家能想到的第一个解决方案就是用 MQ 嘛:利用不同的队列,天然就把不同通道的订单给区分开了,在监听侧各自处理各自通道的数据,这样就达到了资源隔离的效果。这个方案应该是很常规了, ...继续阅读 (139)


    love 0
    caimouse
    发表于
    2024-01-08 11:00:38

    鸿蒙OS应用开发之索引列表选择

    前面学习了文本选择列表组件,这个组件可以根据需要把有限的几个字符串进行列表显示,并供用户进行挑选。比如我们来设计中国所有省份里的城市进行选择时,就会发现所有城市全部写到一个列表里,让用户使用起来就会比较麻烦。这时候就需要采用新的设计方法来实现用户的选择了,不能采用前面的文本列表方式来实现。比如先把省份列出来当作一个索引,当用户把省份选择之后,再把这个省份的城市列表出来。这样就可以快速到找到对应的城市。返回值:索引对应的字符串数组,此字符串数组在弹窗中竖排显示,字符串列表最多显示5个,超出部分可以滑动显示。 ...继续阅读 (155)


    love 0
    chinahuyong
    发表于
    2024-01-08 10:55:02

    恭喜:创造历史,C#正式荣登TIOBE 2023年年度编程语言奖

    2024年1月份,TIOBE指数公布了C#获得了年度编程语言的奖项。祝贺!20 多年来,C# 一直是前 10 名的玩家,现在它正在赶上 4 大语言,它赢得了当之无愧的奖项,成为一年内涨幅(+1.43%)最大的语言,赢得年度编程语言的魁宝当之无愧。C#正式登上这一殊荣,标志着C#在全球开发者社区中的显著影响力和广泛应用,为其成为当年最受欢迎的编程语言之一提供了坚实的证据。 ...继续阅读 (209)


    love 0
    诺多
    发表于
    2024-01-08 10:21:05

    WeChatMsg:你的数据你做主,又一款威信聊天记录回忆装置

    WeChatMsg是一款超纳斯的开源微信工具,支持将微信聊天记录导出为数据库、HTML、Word、CSV等文档格式,并能够对导出的记录进行分析生成年度聊天报告。目前这款工具还在高频迭代中,已支持 Windows端,Mac 端看开发者心情吧,未来也许会支持~~1️⃣ 软件特性如前所述,这款工具的核心特性如下:解🔒Windows本地微信数据库还原微信聊天界面,包括文本、图片、表情包和拍一拍等系统消息导出聊天记录,支持sqlite数据库、HTML(文本、图片、视频、表情包、语音、文件、系统消息)、CSV文档、TXT文档和Word文档分析聊天数据,做成可视化年报除了以上列出的特性,开发者还“画了些饼”,敬请期待自主选择年度报告年份一键导出全部表情包、文件、图片、视频、语音合并多个备份数据批量导出数据个人年度报告群组年度报告按日期、关键词索引支持企业微信好友2️⃣ 软件效果1、聊天记录类似微信的聊天界面,包括工具、聊天、好友、我的等功能。从顶部的导航栏,可以点击获取教程,相关信息,导出全部信息的csv文件。点击左侧导航栏——>聊天 ,会随机跳转到某一个好友的界面,滚轮滚动,可以向上翻看更早的聊天记录。目前聊天记录中文字、图片基本可以正常显示~点击左侧导航栏——>好友,会跳转到好友的界面,同样可以选择好友,右上方导航栏中有(1)统计信息(2)情感分析(3)年度报告(4)退出(5)导出聊天记录: ...继续阅读 (131)


    love 0
    chokcoco
    发表于
    2024-01-08 10:07:12

    现代 CSS 解决方案:文字颜色自动适配背景色!

    在 23 年的 CSS 新特性中,有一个非常重要的功能更新 --相对颜色。简单而言,相对颜色的功能,让我们在 CSS 中,对颜色有了更为强大的掌控能力。其核心功能就是,让我们能够基于一个现有颜色 A,通过一定的转换规则,快速生成我们想要的颜色 B。其功能能够涵盖:精简调暗饱和度降低饱和度色度增强调整不透明度反转补充转换对比度调色板完整的教程,你可以看这里 --Chrome for Developers- CSS 相对颜色语法当然,今天我们不会一个一个去过这些功能,更多的时候,我们只需要知道我们能够实现这些功能。本文,我们将从实际实用角度出发,基于实际的案例,看看 CSS 相对颜色,能够如何解决我们的一些实际问题。快速语法入门首先,我们通过一张图,一个案例,快速入门 CSS 相对颜色语法:相对颜色语法的目标是允许从另一种颜色派生颜色。上图显示了将原始颜色 green 转换为新颜色的颜色空间后,该颜色会转换为以 r、g、b 和 alpha 变量表示的各个数字,这些数字随后会直接用作新的 rgb() 颜色的值。举个例子:CSS Relative Colorp { color: rgb(255, 0, 0); }实现一个 color 为红色(rgb 值为rgb(255, 0, 0))的字体:基于上面的相对颜色语法,我如何通过一个红色生成绿色文字呢?示意如下:p { --co ...继续阅读 (166)

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