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

    love 0
    归思君
    发表于
    2023-10-16 14:17:36

    Redis 数据类型和对象机制

    一、Redis 简介Redis 是(key-value)的 NoSQL 数据库,所有的 key 都是 String ,它的value可以是String、hash、list、set、zset(有序集合)、Bitmaps(位图)、HyperLogLog、GEO(地理信息定位)等数据类型,这些类型都支持 push/pop、add/remove 及取交集和差集。而且这些操作都是原子性的。Redis 的数据是缓存在内存中,但是 Redis 会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件中。在此基础上实现了master-slave (主从)同步主从复制Redis 提供复制功能,能实现多个相同数据的 Redis 副本,复制功能是分布式 Redis 的基础删除数据命令# 删除指定的 key 数据 del key # 根据 value 选择非阻塞删除,也就是现在是将 keys 从 keyspace 元数据中删除,真正的删除会在后续异步操作 unlink key二、Redis 的数据类型2.1 Stringredis 中最基本的数据结构,所有的 key 都是 String 。String 类型的 Value 可以是 String、数字、jpg图片或者序列化的对象(值不能超过 512MB)常见命令set key value [ex seconds][px milliseconds][nx ...继续阅读 (130)


    love 0
    询盘云-贾定强
    发表于
    2023-10-16 13:31:44

    SEO如何加快页面加载速度,缩减网站响应时间?

    在搜索引擎优化(SEO)中,页面加载速度对用户体验至关重要。那么,如何定义页面的理想加载时间,以及如何加速站点的加载呢?简而言之,为了确保良好的用户体验,页面首部内容加载时间应控制在1.5秒内,最多不超过3秒。了解这个结论是一回事,真正量化并优化则是另一回事。首先,我们要明白浏览器加载页面涉及哪些关键时间指标:DNS 时间:即域名解析时间。SocketTime:即TCP连接建立时间。FirstByte Time(FP):从请求页面到接收服务器第一个字节的时间。First Contentful Paint (FCP):首次向屏幕渲染文本、图像或其他可视元素的时间。Largest Contentful Paint (LCP):页面的主要内容渲染完成的时间。Download Contentful Time(DCL):页面所有资源的下载完成时间。在所有这些指标中,尤其是FCP和LCP,它们对SEO影响巨大,也直接关联用户体验。例如,百度建议首次内容渲染(FCP)时间应控制在1.5秒内,最多不超过3秒。你可以通过浏览器的开发者工具来检查这些时间指标。如果FCP时间过长,可能原因是FirstByte Time,即后端响应速度不足。一般情况下,这个时间应控制在500毫秒内。至于LCP,即页面主要内容渲染完成的时间,理想状态下应控制在3秒内。导致LCP时间过长的主要原因可能是页面资源过多且文件过大 ...继续阅读 (153)


    love 0
    why技术
    发表于
    2023-10-16 12:50:06

    我试图扯掉这条 SQL 的底裤。

    你好呀,我是歪歪。这次带大家盘一个我觉得有点意思的东西,也是之前写《一个烂分页,踩了三个坑!》这篇文章时,遇到的一个神奇的现象,但是当时忙着做文章搞定这个主线任务,就没有去深究这个支线任务。现在我们一起把这个支线任务盘一下。啥支线任务?之前不是写分页嘛,分页肯定就要说到 limit 关键字嘛。然后我啪的一下扔了一个链接出来:https://dev.mysql.com/doc/refman/8.0/en/limit-optimization.html这个链接就是 MySQL 官方文档,这一章节叫做“对 Limit 查询的优化”,针对 limit 和 order by 组合的场景进行了较为详细的说明。链接里面有这样的一个示例。首先,针对一张叫做 ratings 的表给了一个不带 limit 的查询结果:可以看到,一共有 7 条数据,确实按照 category 字段进行了排序。但是当我们带着 limit 的时候,官方文档上给出的查询结果是这样的:为了让你更加直观的看出差异,我把两个结果给你放在一起:没排序之前,前五条对应的 ID 是 1,5,3,4,6。排序之后,前五条对应的 ID 是 1,5,4,3,6。这就是官方的案例,非常直观的体现了 order by 和 limit 一起使用时带来的 nondeterministic。这个单词,我们前一篇文章中才学过,现在又可以温习了一下了:你知 ...继续阅读 (150)


    love 0
    TimLiu
    发表于
    2023-10-16 10:11:15

    Go中的流量限制:有效控制流量

    介绍速率限制是构建可扩展和弹性系统的关键技术。它通过对指定时间范围内允许的请求数量施加限制来帮助控制流量。在Go中实现速率限制可以确保最佳的资源利用,并保护您的应用程序免受过度流量或滥用行为的影响。在这篇博文中,我们将探索Go中的速率限制技术,并提供实用的代码示例来帮助您有效地实现它们。理解速率限制速率限制包括定义一组规则,这些规则决定客户端在给定的时间窗口内可以发出多少请求。确保系统能够处理负载,防止滥用或拒绝服务攻击。限制速率的两种常见方法是:固定窗口速率限制:在这种方法中,速率限制在固定的时间窗口内强制执行。例如,如果速率限制设置为每分钟100个请求,系统将在任何给定的60秒窗口中允许最多100个请求。超过此限制的请求将被拒绝或延迟到下一个时间窗口。令牌桶速率限制:令牌桶速率限制是基于从一个桶中消耗令牌的概念。桶最初由固定数量的令牌填充,每个令牌代表一个请求。当客户端想要发出请求时,它必须从桶中获取令牌。如果桶为空,客户端必须等待,直到令牌可用。在GO中实现速率限制Go提供了一个名为golang.org/x/time/rate的内置包,提供速率限制功能。让我们探讨一下如何同时使用固定窗口和令牌桶方法来实现速率限制。固定窗口func fixedWindowRateLimiting() { limiter := rate.NewLimiter(rate.Limit(100 ...继续阅读 (161)


    love 0
    XboxYan
    发表于
    2023-10-16 10:04:09

    CSS魔法!如何将任意CSS类型转换为数值?

    欢迎关注我的公众号前端侦探本技巧参考自:https://dev.to/janeori/css-type-casting-to-numeric-tanatan2-scalars-582j在 CSS 中有各式各样的类型值,例如1rem、10vw、100cqw等等,这些相对值给与了 CSS 强大的适应能力。但有时候,我们还需要知道这些相对值所对应的真实值,也就是px值,比如在移动端,我们经常会设置这样的根字号::root{ font-size: max(12px, min( 12px + (100vw - 320px) / 55 * 4, 20px )); } p{ font-size: 2rem; }那么,p此时的真实px值应该是多少呢?在以往,我们只能通过JS去获取,但是现在,仅仅凭CSS也能做到,一起了解一下吧一、CSS 三角函数从理论上来讲,将一个长度除以1px就应该得到具体的数值,相当于将这个长度以1px被分成了多少份2rem / 1px但是,大家可能都知道,calc在进行除法运算时,除数是不能带单位的calc(2rem / 1px) /*不合法*/不排除浏览器以后会支持不过现在终于迎来了转机,在Chrome 111中,CSS 新增了一系列三角函数sin()'):正弦cos()'):余弦tan()'):正切asin()'):反正弦acos()'):反余弦atan()') ...继续阅读 (133)


    love 0
    FranzKafka95
    发表于
    2023-10-16 09:44:29

    通过V4L2 API获取Camera数据

    Read Time:3 Minute, 41 Second当我们在Linux或者Android平台开发Camera相关应用时,都需要从Camera驱动中获取到Camera数据,用于后续的Preview、Capture或者Snapshot等,此时我们往往会借助V4L2框架来实现。V4L2的全称为Video For Linux Version Two;是当前Linux或者类Linux平台中广泛使用的多媒体框架,为上层软件提供多种硬件能力,如codec encoder、decoder,camera等。V4L2在软件层次上属于内核框架层,用户态程序在与V4L2框架进行交互时,往往都需要通过ioctl的系统调用来实现。本篇文章将根据实际应用中的流程,介绍如何通过V4L2 API获取Camera数据。步骤一:通过open系统调用获取对应Camera设备的文件句柄在通过v4l2接口获取Camera数据前,我们需要知道Camera设备的设备节点;接着我们就可以通过open函数的系统调用来打开相应的设备节点,Camera的设备节点都位于/dev/video*下。//flag O_RDWR表明可读写 mDeviceFd = open(deviceName, O_RDWR, 0);步骤二:通过ioctl系统调用判定是否是有效的Camera设备及其支持的功能v4l2_capability caps; in ...继续阅读 (130)


    love 0
    Mia Wu
    发表于
    2023-10-16 07:35:34

    .NET 8 中的调试增强功能

    本篇翻译于James Newton-King的Debugging Enhancements in .NET 8 开发人员喜欢 .NET 强大且用户友好的调试体验。您可以在您选择的 IDE 中设置断点,启动已经附加上调试器的程序,逐步执行代码并查看 .NET 应用程序的状态。在 .NET 8 中,我们致力于改善 .NET 应用中常用类型的调试体验。这些包括:HttpContext与其伙伴WebApplicationMVC and Razor PagesgRPC端点元数据日志配置您不需要深入了解这些类型的内部结构就可以找到有关应用程序的信息。我们为常用的 .NET 类型添加了自定义调试属性的功能来显示调试摘要以及提供简化的调试代理。HttpContext与其伙伴HttpContext、HttpRequest和HttpResponse对于使用ASP.NET Core构建Web应用程序的开发人员来说应该是非常熟悉的。如果您想查看 HTTP 请求的状态,就肯定需要调试这些类型。我们审查了 ASP.NET Core 的 HTTP 类型的属性,以便它们更容易与调试器一起使用。查看请求和响应值(例如header、cookie、查询字符串和表单值)变得更加容易,现在HttpRequest和HttpResponse还显示了用户友好的类型摘要,像HTTP请求URL或HTTP响应状态码之类的关键信息即刻可 ...继续阅读 (196)


    love 0
    一线码农
    发表于
    2023-10-16 07:27:00

    记一次 .NET某新能源检测系统 崩溃分析 - 一线码农

    【摘要】一:背景 1. 讲故事 前几天有位朋友微信上找到我,说他的程序会偶发性崩溃,一直找不到原因,让我帮忙看一下怎么回事,对于这种崩溃类的程序,最好的办法就是丢dump过来看一下便知,话不多说,上windbg说话。 二:WinDbg 分析 1. 到底是哪里的崩溃 对于一个崩溃类的dump,寻找崩溃点非常重阅读全文 ...继续阅读 (169)


    love 0
    MaskRay
    发表于
    2023-10-16 06:41:55

    AddressSanitizer: global variable instrumentation

    AddressSanitizer (ASan) is a compiler technology that detectsaddressability-related memory errors with some additional checks. Itconsists of two components: compiler instrumentation and a runtimelibrary. To put it simply,The compiler instruments global variables, stack frames, and heapallocations to monitor shadow memory.The compiler also instruments memory access instructions to verifyshadow memory.In case of an error, the inserted code invokes a callback(implemented in the runtime library) to report the error along with astack trace. Typically, the program will terminate after displaying the ...继续阅读 (143)


    love 0
    Xin LI
    发表于
    2023-10-16 05:47:22

    记录一下当年把 FreeBSD 中 zlib 砍到只剩一份的过程

    软件项目中,实现同一功能的源代码只保留一份是一项十分重要的最佳实践,这种做法可以带来许多显而易见的好处:简化依赖关系管理。 对于 C/C++ 项目来说,如果同一个函数库有不同的版本,意味着必须设法确保其中不包含同一符号的多个变体。减少技术债的积累。 只保留一个版本意味着参与项目的所有开发者都使用最新版本的库,或是从一个接近最新版本的库升级到最新版本,这要比把技术债留给后人去解决要容易许多。尽管升级时需要考虑的问题会更多一些,但这也意味着更好的一致性。只留一份版本意味着在升级时必须通盘考虑全局的影响,配合持续集成测试的使用,这也会带来更好的代码品质,并让整个团队能够更快地进行迭代。节省各类存储占用。改善整体安全性。问题只需在一处进行修正。2009年的时候 kmacy@ 做了一些初步的工作,但后续没有继续推进。 这之后我考虑重新把这个事给做掉,但苦于平时比较忙因此未能如愿。最终, Yoshihiro Ota 完成了大部分的工作。这里记录一下当时所做的事情。FreeBSD 是一个有相当长历史的项目,而 zlib 是一个很常用的库,并且当时在整个系统中有多处不同的副本, 因此我们希望这个迁移的过程尽可能平滑而尽量不要直接导致整个项目无法联编,或是需要长时间禁用某些模块的情况。此前, Peter Wemm 在2013年把net/zlib(这是一份古老的 zlib 1.0.4 打成浆糊的版本) ...继续阅读 (170)


    love 0
    ChenSoul
    发表于
    2023-10-16 04:30:00

    Java设计模式:Chain

    本文主要介绍 Chain 模式,在 Java Design Patterns 网站上有对该模式进行介绍。这里主要是做个笔记,并添加一些扩展,以加深对该设计模式的理解。 目的 通过给多个对象一个处理请求的机会,避免请求的发送者和它的接收者耦合。串联接收对象并在链条中传递请求直到一个对象处理它。 介绍 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它 … ...继续阅读 (137)


    love 0
    怕刺
    发表于
    2023-10-16 03:42:00

    使用CloudFlare Workers 创建自己的AI程序,基于meta llama-2-7b大语言模型

    CloudFlare近期推出了无服务器 GPU 驱动推理,可以使用多个AI模型,包括大语言模型、翻译、图像识别、语音转换等。其中的大语言模型,使用了meta的llama-2-7b-chat-int8模型。本人一直使用OpenAI的ChatGPT,想试一下自己部署,所以按照文档,整理出如下部署教程。提醒:CloudFlare Workers AI 仍然处于测试阶段,每分钟限制50个问题,每天最大提问为100000个;输入限制在768tokens,输出限制在256tokens。由于使用的是7b模型,表现并没有免费的ChatGPT 3.5好。账号准备工作注册一个 CloudFlare 的账号,并启用 workers and pages 功能。如果没有账号,可以在https://dash.cloudflare.com/sign-up/workers-and-pages处注册。配置开发环境CloudFlare 官方提供了一个名为 Wrangler 的开发工具(基于 Node.js),所以我们需要安装 Node.js 和 npm 包管理工具。安装 Node.js 和 npm以 Windows 系统为例,在 Node.js 的官网https://nodejs.org/下载并安装,建议选择 LST 版本。Windows 版本的安装包自带 npm ,所以不需要额外手动安装 npm 包。打开终端/Wi ...继续阅读 (190)


    love 0
    henryhu
    发表于
    2023-10-16 03:34:49

    骨折的后续

    算起来骨折之后已经过了五个月了……目前的情况来说,基本功能差不多都恢复了;平时还是会自然地避免用到右手,虽然其实用起来也没啥问题……活动范围仍旧没有恢复到100%;大概80~90%的样子。往上抬手臂的时候,肩膀会比正常更早开始转动,意味着不动肩膀的活动范围不足。九月份最后一次去见骨科医生,隔了两个月。这个骨科医生嘛反正每次就拍个片看一看,每次说的都没啥区别:没啥问题,恢复正常,继续锻炼。之前每次会定下次啥时候见他,这次他直接说你接着想干嘛就可以干嘛,不用来看了…… 所以至少愈合方面没啥问题看来。毕竟我这个还算比较好的情况,不用手术养着就行,听上去和骨裂也差不多……每周还是要去两次 physical therapy,基本上就是拉伸啦之类的活动。锻炼的项目其实还是挺丰富的,其中不少在家也可以做,比如说把有弹力的橡胶带系在门上,背着门往后拉伸手臂把一个滑轮挂在门上,背着门两手伸直来回拉一根经过滑轮的绳子两手撑地伸直,抬起和放下背部等等……其实慢慢的还是在改善的,就是现在进展非常慢,不像一开始进展明显,每两周基本都有很大变化;最后这个10%已经挺久了,最近感觉没啥变化。反正看来还得继续锻炼……另外关于收费情况:每次大概收费几百,医保报销大部分,个人每次要出60;便宜是不便宜,而且还要平时翘班去,不过也没啥办法,现在不搞好以后大概也没啥机会。 ...继续阅读 (142)


    love 0
    henryhu
    发表于
    2023-10-16 03:34:49

    骨折的后续

    算起来骨折之后已经过了五个月了……目前的情况来说,基本功能差不多都恢复了;平时还是会自然地避免用到右手,虽然其实用起来也没啥问题……活动范围仍旧没有恢复到100%;大概80~90%的样子。往上抬手臂的时候,肩膀会比正常更早开始转动,意味着不动肩膀的活动范围不足。九月份最后一次去见骨科医生,隔了两个月。这个骨科医生嘛反正每次就拍个片看一看,每次说的都没啥区别:没啥问题,恢复正常,继续锻炼。之前每次会定下次啥时候见他,这次他直接说你接着想干嘛就可以干嘛,不用来看了…… 所以至少愈合方面没啥问题看来。毕竟我这个还算比较好的情况,不用手术养着就行,听上去和骨裂也差不多……每周还是要去两次 physical therapy,基本上就是拉伸啦之类的活动。锻炼的项目其实还是挺丰富的,其中不少在家也可以做,比如说把有弹力的橡胶带系在门上,背着门往后拉伸手臂把一个滑轮挂在门上,背着门两手伸直来回拉一根经过滑轮的绳子两手撑地伸直,抬起和放下背部等等……其实慢慢的还是在改善的,就是现在进展非常慢,不像一开始进展明显,每两周基本都有很大变化;最后这个10%已经挺久了,最近感觉没啥变化。反正看来还得继续锻炼……另外关于收费情况:每次大概收费几百,医保报销大部分,个人每次要出60;便宜是不便宜,而且还要平时翘班去,不过也没啥办法,现在不搞好以后大概也没啥机会。 ...继续阅读 (109)


    love 0
    admin
    发表于
    2023-10-16 03:01:12

    【转帖】六大基础安全领域

    CISO的任务是识别和处置风险,对于甲方从业者来说,如何帮助CISO识别公司的风险,是一个绕不过去的话题。不同背景的安全从业者,对安全的理解也不同,故需要找到一个业界的指导框架来指引行动。看到业内创投人谭晓生在2021年的一个分享材料,感觉分类比较科学,便存文分享。六大基础安全领域1. 端点安全关键词:EPP、EDR、HIDS2. 网络安全关键词:IPS、IDS、流量、蜜罐3. 应用安全关键词:WAF、API安全4. 数据安全关键词:数据安全、数据治理、隐私计算5. 身份与访问管理IAM、iDaaS等6. 安全管理SOC、威胁态势感知、SOAR、漏洞管理【转帖】六大基础安全领域最先出现在帅核桃说。 ...继续阅读 (147)


    love 0
    Miobowl 的书房
    发表于
    2023-10-16 00:00:00

    时隔一年重回上海

    自从去年7月从上海搬回南京之后,还是第一次回到上海,但是心态却完全不一样了。在上海的短短两年不到,我一直是以一个半抽离的状态在生活,因为心里知道我有一天肯定会离开这个城市。那两年里,也许和朋友在一起聚会的时候,我会像一个本地人一样推荐各种美食,去各种景点,但是当自己一个人的时候,却总会有种我只是一个过客,因此要像一个旅客一样尽情体会这个城市的情感。然而当离开后,又一次来到这个熟悉的城市,当那些曾经熟悉过的地名、景色又浮上眼帘,理论上我应该更像一个游客。然而眼前的种种却努力地提醒着我,你曾经生活在这里,欢迎回来。曾经的抽离感还在,然而我的心里却不像之前那样害怕失去。也许是因为上一次离别的时候,总是会担心自己再也不会回来,而这次回归却给了内心一种确定感,让我真切地感受到,这里仍然是那个我生活过的地方。此刻坐在朋友推荐的咖啡店里,心平气和地写下这些文字,内心里想的只是期待着下一次的相逢。文艺之余,回顾一下昨天花了整整一个下午的时间,炖的一锅红酒烩牛尾。这一次吸取了上一次红酒烩鸡腿排的教训,每500克牛尾只放了大概一杯葡萄酒的量,因此最后的效果出乎预料得好。红酒并没有像上次一样,喧宾夺主,入口只有单宁的酸涩,相反,红酒带来的酸味和香味为牛尾增加了一份层次。虽然这次忘了把培根加进去,但是和之前炖的红酒烩牛尾相比,也多放了一些口蘑,因此整体的口感上还是挺丰富的。 ...继续阅读 (130)


    love 0
    寒峰路
    发表于
    2023-10-15 21:57:20

    放大30倍的损失

    从充电头到换电池9月中旬,电动车在楼下充电桩充电两次,发现都没有充进去。当时我的判断时要么充电器坏了,要么是充电接口接触不好,可惜当时并没有很快去解决。接下来出发去了舟山海岛游,中秋和国庆假期前回来接着又回了老家。等到从老家回来,推着电动车出来修理检查已经是10.14,这时候时间已经已经过去了一个月。小区边上的绿源顺宏车行师傅拿电表检查了电动车上插充电器的接口,没有电压,判断为车上电池坏了需要换电池。我也说了下我的判断,最早是充电器可能有问题无法充电,后来也一直没有骑过。既然师傅已经判断为要换电池,想到不换电池不修的话以后也没法骑,网上自己买电池也要270元,换电池300元也可以接受,也就开始修理从换电池开始。拆开电池后,师傅又用电表量给我看,说电池已经没电了,确实要换,长期亏电电池已经报废了。重新装好电池,然后再用电表去检查充电头接口,发现还是一样,又把原来充电头接口的排线拆下来剪断另一边的接头换上新的,装上后再用电表测就恢复了正常,也可以充进去电了。所以,无法充电的原因,准确说是插充电器的接头另一端的转接头坏了。一开始发现电动车无法充电,这时还是个小问题,自我的判断也还准确,当时就处理的话只需要10元就可以搞定,根本不需要换掉电池。因为我的拖延,电池因为无法充电长期亏电已经报废,现在除了换充电接头,还需要更换整个电池,费用也从10元变成了310元。执行力在任何时候都太重要了,而 ...继续阅读 (112)


    love 0
    二丫讲梵
    发表于
    2023-10-15 21:56:09

    再叹校运动会

    在中国往往事大于人,乃至大于天,当事情已经进入状态,则连学校最大领导也变得听之任之,唯之诺之。任凭老天下雨,也阻拦不住其行进,这可算一奇观。在“独立之人格,自由之思想”,极度缺乏的大学校园,很多很多不正常,不应该,不可能变得正常,应该,可能,这是悲哀之所在。 ...继续阅读 (112)


    love 0
    二丫讲梵
    发表于
    2023-10-15 21:53:42

    由校运动会想到的

    我在想,领导的意义是什么?因为很多人并不知道领导是干嘛的,他们以为领导就是指挥指导的。甚至连被领导的人也这么认为,但我想这根本不是领导,这是压榨剥削的主子。领导的意义在于提供平台出来,相信手下的能力,然后使之在可保护的范围内自由发挥,而不是对一切都插手,干预。 ...继续阅读 (110)


    love 0
    wireless_com
    发表于
    2023-10-15 20:24:01

    基于大模型(LLM)的Agent 应用开发

    目前,业界一般认为基于大模型的应用集中在两个方向上:RAG 和 Agent,无论哪一种应用,设计、实现和优化能够充分利用大模型(LLM)潜力的应用都需要大量的努力和专业知识。随着开发人员开始创建日益复杂的LLM应用程序,开发流程不可避免地变得更加复杂。这种流程的潜在设计空间可能是巨大而复杂的,《如何构建基于大模型的App》一文给出了一种探索中的大模型应用开发基础框架,基本可以适用于RAG 和Age... ...继续阅读 (151)


    love 0
    bigwhite
    发表于
    2023-10-15 19:18:39

    基于公钥验签实现应用许可机制

    本文永久链接– https://tonybai.com/2023/10/16/implementation-of-app-licensing-based-on-verifying-sign-by-pubkey随着互联网的普及以及应用的快速发展,商业软件的订阅模式变得越来越流行。软件公司开始提供基于订阅的服务,用户每月或每年支付费用以获取软件的使用权。这种模式使用户可以更灵活地选择服务期限,并且软件公司可以持续提供更新和技术支持。随着“软件定义汽车”的到来,这种模式在智能网联汽车领域也逐渐流行开来!一些需要私有化部署在客户现场的toB商业软件的公司也在探索这种订阅许可证模式,但与toC的软件不同,toB软件系统由于部署在客户数据中心中,如何有效地管理软件授权成为一个关键问题。传统的通过注册码或者登录供应商服务器进行软件授权存在诸多不便(甚至不可行),而利用公钥基础设施实现许可证签发和验证可以很好地解决这个问题。本文就来探讨一下如何利用公钥证书验签的方式实现应用许可机制,在这套机制中,软件供应商负责设计许可证格式对许可证进行签名,并将证书分发给客户。客户只需要利用供应商提供的方法将证书导入系统或更新许可证即可,系统可自动识别许可证的有效性与并加载信息的变更。这种方式无需客户每次连接服务器就可以离线验证许可,既方便且安全,同时也可防止许可证被盗用或篡改。1. 方案原理基于公钥 ...继续阅读 (206)


    love 0
    changemyself
    发表于
    2023-10-15 18:43:05

    捡贝壳和看人的气质有何关联?

    一个慈眉善目,和蔼可亲的老奶奶,她的生活环境是相对富裕的,不需要为了买一点菜砍价,斤斤计较的,此外,一个令人感觉到尖酸刻薄的老者,那他所处的家庭环境和社会环境大概率是一个相对底层,也就是说是环境让我们形成了这样的气质,这没有什么好与坏之说,只是让孩子知道感受到的背后的东西是什么,让她们有这个意识穿透思考。我跟她说:你说的这些都对,都是合理的,都是便于理解和讲述的,很多方面也符合这个市场接力的逻辑,但是那几个最核心的点你并不清楚,所以你无法表达,因为你并没有真正感受到。很显然那并不是一种本能下的寻得的答案。 ...继续阅读 (130)


    love 0
    sundesheng125
    发表于
    2023-10-15 16:10:43

    打印编译程序固件的环境信息

    SVN的提交号,当然利用shell命令可以完成很多丰富信息的组合和叠加,拼接完信息后,只需要通过echo到一个指定的文件就可以,在程序启动的地方来引用这个动态生成的编译信息。方法都不难,有一些这样的编译信息,会给我们一个清晰的信息指引,对定位问题和不弄错软件版本都有好处。有些公司还会把编译时的代码提交点给打印出来,比如git的最新一个commit ID,软件运行的时候就会先打印编译日期,再打印时间点,这种比较简单易用;通过定义一个头文件的宏来表示着编译相关的信息集合; ...继续阅读 (169)


    love 0
    crazyant
    发表于
    2023-10-15 15:18:48

    Pip安装包出现subprocess-exited-with-error问题解决方法

    举个例子,要装mysqlclient库,命令是pip install mysqlclient出现错误。 可以试 ...Read morePip安装包出现subprocess-exited-with-error问题解决方法 ...继续阅读 (178)


    love 0
    南城FE
    发表于
    2023-10-15 15:02:23

    CSS小技巧之单标签loader

    本文翻译自How to create a CSS-only loader with one element,作者: Temani Afif, 略有删改。loader组件是网站的重要组成部分。它可以用在许多地方,我们需要显示的内容正在加载中。这样的组件需要尽可能简单,在这篇文章中我们将学习如何使用优化的代码创建不同的CSS加载器。所有的loader它们只需使用一个元素,我们将剖析其中一些元素的代码。经典CSS loader组件我们从第四个和第五个loader开始解析,这两个loader都依赖于clip-path动画。.classic-4 { font-family: monospace; clip-path: inset(0 3ch 0 0); animation: c4 1s steps(4) infinite; } @keyframes c4 { to {clip-path: inset(0 -1ch 0 0)} }主要的技巧是使用等宽字体来确保所有的字符都有相同的宽度,然后我们使用clip-path来显示/隐藏一些字符。对于第四个加载器,我简单地考虑最后的3个点,这里有一个图来说明这个技巧:开始我们使用inset(0 3ch 0 0)隐藏所有的点。这意味着我们在右侧隐藏了一个等于3ch的宽度(只有三个字符)。然后我们将其动画化为inset(0 -1ch 0 0) ...继续阅读 (132)


    love 0
    Carl Notes
    发表于
    2023-10-15 14:37:36

    NetSuite Test Driver Account 如何查看系统邮件发送历史记录

    NetSuite Test Driver Account 在系统中很多时候无法正常发邮件到邮箱的。比如:订单的通知邮件,定时邮件,email API发送的邮件。如何查看测试账户发送出来的邮件呢? ...继续阅读 (115)


    love 0
    Carl Notes
    发表于
    2023-10-15 14:33:25

    Hexo定制之文章排序

    主页文章按更新时间排序针对目前最新的hexo版本hexo: 6.3.0NexT version 8.18.1结合感谢名单中作则的文章,终于,我在node_modules\hexo-generator-index\lib\generator.js文件中找到了似乎是用于排序的代码,该文件是为了添加文章置顶功能的,但当置顶等级设置相同时,按照发布日期进行排序。对JavaScript改完之后该文件中的内容如下所示 ...继续阅读 (174)


    love 0
    Qing
    发表于
    2023-10-15 14:26:45

    JavaScript中的Promise

    为什么需要Promise?JavaScript在执行异步操作时,我们并不知道什么时候完成,但是我们又需要在这个异步任务完成后执行一系列动作,传统的做法就是使用回调函数来实现,下面举个常见的例子。DOCTYPE htmlDocumentfunction loadImage(imgUrl, callback) { const img = document.createElement("img"); img.onload = function () { callback(this); }; img.src = imgUrl; } loadImage( "https://travel.12306.cn/imgs/resources/uploadfiles/images/1716878f-79a2-4db1-af8c-b9c2039f0b3c_product_W572_H370.jpg", (img) => document.body.appendChild(img) );上面这个例子会在图片加载完成后将图片放置在body元素下,随后在页面上也会展示出来。但是如果我们需要在加载完这张图片后再加载其它的图片呢,只能在回调函数里面再次调用loadImageloadImage( " ...继续阅读 (129)


    love 0
    TimLiu
    发表于
    2023-10-15 10:42:06

    Go 中的类型断言与静态转换

    类型断言在 Go 中,类型断言用于提取和测试接口值的动态类型。通过断言,您可以确定接口值是否持有特定的底层具体类型,如果持有,则获取该值。下面是一个如何在 Go 中使用类型断言的示例:package main import "fmt" func main() { var x interface{} x = 42 // x holds an int // Type assertion to check if x holds an int and get its value. if val, ok := x.(int); ok { fmt.Printf("x is an int: %d\n", val) } else { fmt.Println("x is not an int") } // Attempting to access x as a string (which it isn't). if val, ok := x.(string); ok { fmt.Printf("x is a string: %s\n", val) } else { fmt.Println("x is not a string") } }在这段代码中, ...继续阅读 (121)


    love 0
    静かな森
    发表于
    2023-10-15 09:23:30

    Fortnight Issue - 23.10

    该渲染由 Shiro API 生成,可能存在排版问题,最佳体验请前往:https://innei.in/notes/157草草记录下最近发生的事。自从 emo 情绪变少之后,生活日志也变得少了起来,记得去年这时候的日志都是以 emo 文相关。参加婚礼3 号的时候跟着家里人去参加了一场亲戚的婚礼,新娘嫁了个富哥,婚礼那场面还是很壮观的。他们租了两天的别墅,一天都要几万的那种。那地方第一次去还以为是某个旅游景点。接亲的车是小金人,然后又整点什么仪式啥的,一个上午搞到了好多华子和红包。咋也不懂婚礼有这么多套路。反正能蹭饭就行了。中午婚宴只是一部分,晚上才是大头。::: gallery:::晚上,比较大的婚宴,大概有几百号人。还请来了乐队,中间还有抽奖环节,开始都是参加小游戏送家电啥的,都最后还抽奖送 iPad,大电视和金条。富哥真的是会玩。虽然我一个都没抽到。::: gallery:::杭州良渚游假期最后,又去了一次杭州。此次主要向前往良渚玉鸟集。在前一天和杭州的朋友们一起聚餐。https://x.com/RealAkemiHomura/status/1709528125162635420?s=20聚餐这种事情真的是 E 人天堂,I 人地狱。整场结束都没有几句话的说。https://x.com/__oQuery/status/1709573452682969567?s=20第二天,前往良 ...继续阅读 (154)

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