About axiaoxin | 阿小信

独立开发和投资,记录自己所学的知识以及分享一些实践经验和想法。

The RSS's url is : https://blog.axiaoxin.com/index.xml

Please copy to your reader or subscribe it with :

Preview of RSS feed of axiaoxin | 阿小信

什么是网址规范化?详解 rel="canonical" 与 SEO优化最佳实践

2024-09-12 11:36:31

在网站的 SEO 优化中,重复内容问题可能是影响搜索排名的一大障碍。由于技术设置或用户行为,一个页面可能会生成多个不同的 URL 版本。这不仅让搜索引擎难以判断哪个 URL 是主要的,还会分散权重,最终影响页面的排名和流量。通过正确的网址规范化(URL canonicalization),你可以明确告诉搜索引擎哪个 URL 是内容的首选,从而避免 SEO 上的麻烦。本文将详细介绍网址规范化的概念,如何使用rel="canonical"标签以及其他常见的规范化方法,帮助你优化网站的 SEO 表现。

如何在 JavaScript 中实现文本复制到剪贴板

2024-09-12 10:52:15

在现代 Web 开发中,允许用户快速复制文本到剪贴板是非常常见的需求,比如在用户点击按钮后,将文本自动复制到剪贴板。clipboard.js 提供了一个简单、高效的解决方案来实现这一功能。本文将介绍如何使用 clipboard.js 在你的项目中复制文本到剪贴板,避免依赖冗长的步骤或笨重的插件。

Linux 中的 Wget 命令用法详解及示例

2024-09-12 10:06:19

GNU Wget 是一个强大的命令行工具,用于从网络上下载文件。通过 Wget,你可以使用 HTTP、HTTPS 和 FTP 协议进行文件下载。它支持多种功能,例如:下载多个文件、断点续传、限制带宽、递归下载、后台下载,甚至可以镜像整个网站。

本文将通过实际示例和详细解释,向大家展示如何使用 wget 命令及其常用选项。

什么是MVP(最小可行产品)?如何创建一个成功的MVP?

2024-09-11 22:39:58

对于很多独立开发者和小型团队来说,如何在有限的资源下验证产品的市场需求,是一件让人头疼的事。幸运的是,有一个名叫 MVP(最小可行产品)的策略,可以帮助我们解决这个问题。MVP 的核心理念是用最简单的产品原型来验证你的创意是否符合市场需求,从而避免浪费时间和金钱。本文将为介绍什么是 MVP,为什么它如此重要,以及如何一步步创建一个成功的 MVP,让你在初期就能高效地测试和改进产品。

#BuildInPublic是什么?为何它对独立开发者至关重要

2024-09-11 21:13:41

作为独立开发者,你是否曾感到孤军奋战的艰辛?开发一个新产品,往往不仅仅是代码和设计的挑战,还有如何让更多人了解你的产品、获得他们的支持。这里有一个有趣的概念——#BuildInPublic。它鼓励开发者在开发的过程中,通过社交媒体和社区公开分享你的进展、挑战和思考。这不仅能帮助你吸引早期用户,还能在这条路上获得宝贵的反馈和支持。今天,我们就来聊聊 #BuildInPublic 是什么,为什么它对你可能大有裨益,以及如何开始这段公开透明的开发之旅。希望这些内容能为你提供一些实用的启示,帮助你在开发的道路上走得更远。

Google AdSense 美国税务信息填写教程:一步步教你填写 W-8BEN 表单

2024-09-10 21:24:11

在申请和使用 Google Adsense 进行广告变现时,不管你是否在美国,只要有美国地区的收入,都会涉及到美国税务问题。Google 作为扣缴义务人,根据美国税法,需要对相关收入进行预扣税款。因此,我们需要提供正确的税务信息,以避免更高的税款扣除,甚至影响正常的收款。

本文将详细讲解为什么需要提交美国税务信息,以及如何正确填写 W-8BEN 表单,以避免不必要的税款预扣。

谷歌adsense新加坡税务信息是什么?如何填写?附中国税收居民身份证明申请教程

2024-09-10 19:49:26

从 2023 年 10 月起,Google Adsense 开始要求中国大陆、香港等亚太地区的账号用户提交新加坡税务信息。如果不及时填写,可能会影响广告收入的汇款,甚至被征收高额税款。为了帮助大家顺利填写相关信息,本文将分享如何填写 Google Adsense 的新加坡税务信息,并介绍如何申请《中国税收居民身份证明》。

Adsense税务居住地证明申请教程:如何申请中国税收居民身份证明

2024-09-10 15:33:27

在处理 Google Adsense 的收入时,了解税务居住地和相关证明的申请过程对于确保税务合规和最大化税收优惠至关重要。本文将为大家详细介绍 Google Adsense 税务居住地、什么是《中国税收居民身份证明》、其作用以及如何申请。我们特别推荐线上申请方式,以提高效率。

解决 Google AdSense 付款暂停问题的指南

2024-09-10 12:25:48

在使用 Google AdSense 赚取收入的过程中,许多发布者会遇到付款暂停的情况。当你的收入达到付款门槛却迟迟没有收到付款时,通常意味着帐户存在需要解决的问题。这篇文章将详细介绍 Google AdSense 付款暂停的常见原因,以及如何根据不同的情况快速解除付款暂停,确保你能够顺利收到收入。

全职独立开发半年小记

2024-09-09 10:26:06

作为一名自由职业开发者,我在全职独立开发的半年里,经历了收入波动、精力分散和自我反思。本文记录了我在这段时间的成长与困惑,分享了从技术开发到生活管理的感悟与调整。

首先声明,如果你是不喜欢网页有广告的,请直接关闭页面,这篇文章不适合你。一是因为本网站有广告,二是本文内容和网页广告有关。


今天是 2024 年 9 月 9 日,我已经全职做独立开发已经整整半年了,时间真的过得很快,这是我的第一感想。

每次写这种总结性的文章我都很抗拒,因为需要回顾过去,一是很费时间,二是我可能已经记不清了。在纠结要不要写之后,还是遵从自己内心的想法,写!

如何使用MySQL Event Scheduler实现自动化定时任务:MySQL 事件调度器用法详解

2024-09-08 18:08:14

在日常的数据库管理和开发工作中,定时执行任务是一项非常常见的需求。例如,定期清理过期数据、更新统计信息或进行数据库的自动维护。这时,MySQL 的 Event Scheduler(事件调度器) 功能可以为你提供一个简便、高效的解决方案,它允许我们在指定的时间自动执行 SQL 语句,而无需借助外部调度工具。

本篇文章将详细介绍 MySQL Event Scheduler 的使用方法,涵盖如何启用和配置事件调度器、如何创建和管理定时任务,并介绍常见的 MySQL 事件调度器执行状况的查看方法。同时,我们也将讨论一些性能优化的注意事项,帮助你更好地在生产环境中应用这个功能。无论你是初次使用 MySQL 定时任务功能,还是遇到了事件执行相关的问题,本文都将为你提供全方位的指导。

接下来,我们将逐步讲解 MySQL 事件调度器的使用细节。

SEO优化:什么是Spam Score?降低垃圾邮件评分的最佳实践

2024-09-07 19:14:16

在 SEO 优化中,“Spam Score”(垃圾邮件评分)是一个重要的指标,它用于衡量一个网站因参与垃圾邮件行为而被搜索引擎处罚的可能性。垃圾邮件评分的范围从 1%到 100%不等,其中 1%表示被标记为垃圾邮件的可能性最低。

SEO是什么?从零开始了解搜索引擎优化

2024-09-07 17:20:31

你可能常听到 SEO 这个词,看到它与各种网站、广告或视频相关,感觉它和搜索引擎有关,但到底什么是 SEO?它能帮你做什么?别担心!本文会用简单易懂的语言,带你了解 SEO 的基础知识,并教你如何用 SEO 来帮助你的业务。

SEO新手必读:六个步骤教你找到易于排名的高效关键词

2024-09-06 22:49:38

现在人人都在学 SEO,连自媒体博主都卷进来了。那么,竞争日益激烈的今天,如何在搜索引擎中脱颖而出成为了每个站长和自媒体人的首要任务。找到那些易于排名的关键词是提升网站流量和排名的关键一步。然而,面对海量的关键词数据,如何精准地筛选出那些竞争较小但潜力巨大的关键词呢?在这篇文章中,我们将揭示六个简单而有效的步骤,帮助你发现那些易于排名的关键词,让你的内容在搜索结果中脱颖而出。无论你是刚刚开始进行 SEO 优化的新手,还是希望提升现有策略的经验丰富的内容创作者,这里提供的技巧和策略都将为你提供宝贵的帮助。准备好探索如何用低竞争的关键词来优化你的内容,提升搜索排名,并吸引更多自然流量了吗?让我们开始吧!

SEO基础与实战技巧:初学者快速提升网站排名指南

2024-09-06 21:40:04

有人的地方就有江湖,有搜索的地方就有 SEO。不管是自媒体博主还是网站站长,学习 SEO(搜索引擎优化)都是提升流量和曝光率的关键。尽管 SEO 涉及到很多技术细节,对于新手来说,掌握一些基础知识和实用技巧也能带来显著的效果。

这篇 SEO 教程为初学者提供基础知识和实战技巧,涵盖关键词优化、内链外链建设、内容优化等,帮助快速提升网站在搜索引擎中的排名。

免费的爆款站长工具 Google Alerts:帮你精准监控品牌关键词、竞争对手和行业动态!

2024-09-06 19:42:11

如果你还不知道 Google Alerts 这个站长工具,那你可能错过了一个可以大大提升工作效率的免费神器。作为一款由 Google 提供的服务,Google Alerts 能让你监控关键词,实时跟踪网络上的信息,并通过邮件提醒你相关内容。这篇文章将从零开始教你如何设置 Google Alerts,并为你分享一些实用的小技巧,让你把它用到极致。

Jamstack 架构下静态站点生成器的最佳选择:Hugo 与 Eleventy 的全面比较

2024-09-04 17:00:05

现在的 web 开发中,越来越多的网站选择基于 Jamstack 架构的静态站点生成器(SSG)来提升性能、安全性和扩展性。Jamstack 架构通过将请求处理和构建过程分开,让网站的构建和加载速度显著提升。然而,面对市场上众多的静态站点生成器,如

提升网站流量与安全的25款顶级站长工具,赶紧收藏!

2024-09-04 14:16:11

在网站管理和优化的过程中,选择合适的工具是关键。以下是一些超好用的站长工具,它们涵盖了从网站分析、SEO 优化、安全检测到性能监控的各个方面。这些工具不仅能够帮助你全面管理和优化网站,还能显著提升其在搜索引擎中的表现和用户体验。

无论你是需要改进 SEO 策略、增强网站安全、提升性能还是优化用户体验,这些工具都能提供强大的支持。通过选择适合你具体需求的工具组合,你可以让网站管理工作更加高效、安全和有吸引力。此外,这些推荐还涵盖了用户行为分析、内容创作、社交媒体管理和邮件营销等多个方面,帮助你全面提升网站的管理和推广效果。

探索这些顶尖工具,找到最适合你的解决方案,让你的站长工作更加高效和有针对性!

如何查看Linux Ubuntu磁盘使用情况并清理磁盘空间

2024-09-04 13:37:39

对于使用 Ubuntu 的用户来说,磁盘空间的管理是日常维护系统的一个重要部分。随着时间的推移,系统会积累大量不必要的文件,导致磁盘空间不足。那么,如何查看磁盘使用情况以及如何清理磁盘空间呢?这篇文章将为你详细介绍。

域名安全设置中的禁止更新锁是什么?如何有效防止恶意修改行为?

2024-09-04 13:12:09

在现代互联网环境中,域名安全已经成为站长和企业非常关心的问题。对于一个网站而言,域名就像是它的门牌号,如果被恶意篡改,后果将不堪设想。本文将介绍“禁止更新锁”这一重要的域名安全设置,了解它如何保护您的域名不被恶意修改。

如何用小成本开启副业赚钱之路?‘小而赚 $hareZhuan’带你走入副业世界!

2024-09-03 22:39:43

做了一个副业赚钱领域的新网站——“小而赚 $hareZhuan” 上线啦!

如何利用 AI 构建资料并通过营销资料获客

2024-08-31 16:11:08

在当今竞争激烈的市场中,有效的营销资料不仅能提升品牌曝光度,还能显著增加客户获取率。利用 AI 技术来创建和优化这些资料,已经成为提升营销效率和效果的重要手段。本教程将以制作“小而赚”的副业搞钱教程资料为例,深入探讨如何通过 AI 工具构建高效的教程资料,并通过精准的营销策略吸引潜在客户。我们将使用一些简单易用的工具,帮助你快速入门并实现成功。

如何快速提升文章点击率?30种标题策略教你玩转内容创作

2024-08-31 15:21:20

在数字化信息爆炸的今天,如何让你的文章脱颖而出,吸引读者的眼球?答案往往隐藏在一个极为关键的因素中——标题。一个引人入胜的标题不仅能够迅速抓住读者的注意,还能显著提高文章的点击率。本文将为你揭示 30 种高效的标题策略,从直接表达产品价值到巧妙制造紧迫感,帮助你掌握标题创作的艺术。无论你是内容创作者、市场营销人员,还是希望提升个人博客点击率的作者,这些策略都将为你提供实用的指导,助你一臂之力。

吃虾前必读:虾头部内脏结构、如何处理虾线与过敏知识全解析,附白灼虾做法

2024-08-31 14:20:04

虾是中国家庭餐桌上的常见美味,其 Q 弹的虾肉和鲜美的虾头让人垂涎欲滴。为了在享用虾的美味前更加安心,了解虾的身体结构、如何处理虾线、如何安全食用各个部位以及预防过敏,是每位虾爱好者的必修课。本文还提供经典白灼虾的简单做法,并解释为何有些人会对虾过敏及应对方法。

如何构建稳健的API鉴权与计费系统:Golang全流程实战

2024-08-30 14:15:25

在现代 Web 开发中,API 是连接前端与后端、不同服务之间通信的桥梁。特别是对于一些提供 API 服务的在线平台,开放 API 以支持第三方开发者接入成为一种趋势。然而,在实现收费 API 服务时,安全性、性能以及易用性等问题往往让开发者头疼。本篇文章将详细介绍如何使用 Golang 设计和开发一个安全高效的 API 系统,在设计和开发 API 系统的过程中,许多开发者可能会想了解类似于 “Golang 实现 API 鉴权”、“如何防止 API 被破解”、“Golang API 签名验证”、“API 计费系统设计”等问题。因此,本文将着重解决这些问题,带您深入理解如何在 Golang 中实现这些功能,并分享一些实践中的技巧和示例代码。

Golang 格式化输出完全指南:fmt.Printf 格式化动词用法详解,看这一篇就够了!

2024-08-29 22:04:19

在 Go 语言中,fmt包用于实现格式化的输入输出,其功能类似于 C 语言中的printfscanf。格式化动词(format verbs)提供了多种方式来控制数据的输出格式。本文将详细讲解 Go 语言中常用的格式化动词及其用法。

Go语言错误处理完全指南:golang errors 包最详细用法讲解,看这一篇就够了!

2024-08-29 20:25:15

在 Golang 中,错误处理是确保程序健壮性的关键。Go 语言的errors包提供了多种工具来创建、包裹、组合和检查错误。本文将深入探讨 Golang 中的错误处理机制,包括errors包的使用、错误包裹(fmt.Errorf + %w)、错误组合(errors.Join)、错误匹配(errors.Is)和类型断言(errors.As)等内容,并提供最佳实践建议。

Golang 操作 Redis:Stream 操作用法 - go-redis 使用指南

2024-08-28 20:06:04

在上一篇文章中,我们解释了 Redis 中 Cuckoo Filter 操作用法。在这篇文章中,我们将深入了解 Redis 的 Stream 数据类型及其操作方法。Stream 是 Redis 在 5.0 版本引入的一种强大的数据结构,用于实现消息队列、事件日志等实时数据流处理场景。在这篇文章中,我们将学习如何使用 go-redis 操作 Redis Stream,并通过一个完整的生产者和消费者的示例来演示各个方法的具体用法。

Golang 单元测试完全指南:如何编写和运行 Go 语言测试

2024-08-28 17:29:20

在 Go 语言中,单元测试是确保代码质量和稳定性的重要工具。Go 提供了一个强大的 testing 包,使得编写和运行测试变得高效而简便。在这篇文章中,我们将深入探讨 Go 的单元测试功能,包括如何编写测试函数、测试文件的组织方式,以及如何运行测试。我们还将介绍更高级的测试用法,如基准测试(Benchmarks)、示例测试(Examples)、模糊测试(Fuzzing)、跳过测试(Skipping)、子测试(Subtests)及主测试(Main)等。

Golang单元测试进阶指南:“_test”后缀包名策略及其最佳实践

2024-08-28 16:27:33

在 Go 语言的开发过程中,单元测试是确保代码质量的重要环节。Go 语言有一套独特的单元测试规则和方法,使得开发者能够方便地对代码进行测试。本文将介绍 Go 语言单元测试中的包命名策略,特别是在同一目录下使用不同包名的情况,并深入分析这种策略的优势和适用场景。

Golang 操作 Redis:Cuckoo Filter操作用法 - go-redis 使用指南

2024-08-28 13:27:33

在之前的文章中,我们探讨了 Redis 中的 Bloom Filter。在本篇文章中,我们将重点介绍 Redis 中的 Cuckoo Filter 以及如何在 Golang 中使用 go-redis 库进行操作。Cuckoo Filter 是一种基于 Cuckoo Hashing 的概率数据结构,相比于 Bloom Filter,它在某些场景下具有更好的性能。我们将通过介绍 Cuckoo Filter 的基本概念、常见使用场景以及 go-redis 中的操作方法,帮助你更好地理解和使用这一强大的数据结构。

如何安装 Redis Bloom Filter:完整指南

2024-08-28 11:12:38

RedisBloom 为 Redis 添加了一套概率数据结构,包括布隆过滤器(Bloom filter)、库克过滤器(Cuckoo filter)、计数最小草图(Count-min sketch)、Top-K 和 t-digest。通过使用这些数据结构,你可以在无需存储所有流元素的情况下查询流数据。每种概率数据结构能够回答特定类型的问题,如下所示:

回答这些问题可能需要大量的内存,但你可以通过设置可控的准确性和内存消耗之间的权衡来显著降低内存需求。概率数据结构通常比准确算法速度更快,占用的内存也更少。

RedisBloom 的使用使得在高效处理数据流时不必存储所有元素,通过精确地设置数据结构的参数,您可以在内存使用和查询性能之间做出最佳平衡。

Golang 操作 Redis:布隆过滤器(Bloom Filter)操作用法 - go-redis 使用指南

2024-08-28 10:59:59

在处理大规模数据时,如何高效地判断元素是否存在于集合中而不浪费大量内存,是许多开发者关心的问题。布隆过滤器(Bloom Filter)是一种在 Redis Stack 中实现的概率性数据结构,提供了一种空间效率极高的方法来检查元素是否存在于集合中。本文将介绍 Redis 布隆过滤器的基本概念、常见使用场景以及在 go-redis 中如何操作布隆过滤器。

Redis 布隆过滤器(Bloom Filter)使用指南:在大规模数据中快速判断元素存在性

2024-08-28 10:48:32

在处理大规模数据集时,如何有效地判断元素是否存在于集合中且不浪费大量内存,这是很多开发者关心的问题。Bloom Filter 是一种在 Redis Stack 中实现的概率性数据结构,它提供了一种空间效率极高的方法来检查元素是否存在于集合中。本文将详细介绍 Bloom Filter 的工作原理、使用场景以及如何在实际项目中使用 Redis Stack 中的 Bloom Filter。

读完 100 本书籍依然过不好这一生

2024-08-27 14:44:32

有大概小半年时间没有每天阅读了,这两天又开始读了起来。就在刚刚,我在微信读书上读完了我的第 100 本书。

我想,读完了 100 本书,我应该又懂了多一点的道理吧?但却发现和网上说的一样,依然过不好这一生。

一键自动获取任意网站Favicon图标:批量优化导航站点与Web项目的必备工具指南

2024-08-27 13:29:53

在现代 Web 开发中,favicon(网站图标)不仅仅是一个美观的小图标,更是提升品牌识别度和用户体验的重要元素。如果您正在构建导航站点、开发浏览器扩展,或只是想提高网站的视觉吸引力,快速获取多个网站的 favicon 图标显得尤为重要。本文将为您介绍一种便捷的方法,使用 Favicon.im 自动获取任意网站的 favicon 图标。

Redis Functions是什么?Redis EVAL 和 Functions 的区别和详细对比

2024-08-26 21:04:21

在 Redis 的生态系统中,脚本编写和执行是实现复杂数据操作的关键手段。Redis 7 引入了 Redis Functions,作为对旧版 EVAL 脚本的增强。这篇文章将详细介绍 Redis EVAL 和 Functions 的区别以及各自的特点,并展示如何创建和使用 Redis Functions。

Golang 操作 Redis:eval/functions 执行 lua script 脚本操作用法 - go-redis 使用指南

2024-08-26 18:12:38

在上一篇文章中,我们探讨了 Redis 的 Pipeline 操作及其在高效处理大量命令时的应用。今天,我们将深入了解 Redis 的脚本功能,包括如何在 Go 语言中使用 go-redis 库执行脚本。我们将介绍 Redis 的脚本功能、eval 和 function 操作的常见场景,并详细讲解 go-redis 中相关的方法及示例代码。

Golang 如何删除字符串中的所有空格

2024-08-26 15:03:58

在日常的开发过程中,我们经常需要处理字符串的格式化问题。其中一个常见的需求就是删除字符串中的所有空格。然而,空格并不仅仅局限于我们常见的标准空格(U+0020),还有全角空格、不间断空格等多种形式。因此,在处理这些不同类型的空白字符时,我们需要更加全面的方法。

在这篇文章中,将带大家了解如何在 Golang 中删除字符串中的所有空格,并提供一些实际的示例代码,帮助你更好地掌握这一技巧。

分享一个令人振奋的好消息:我迎来了独立开发以来第一位VIP用户

2024-08-22 21:57:37

新的里程碑

刚准备去洗澡,看了一下手机发现支付宝提示收款 19.9 元。

我没想到我居然迎来了我的第一位 vip 充值!

暂停独立开发,给自己放个假,出门骑车🚴

2024-08-21 21:47:59

今天给自己放个假,决定不干活,出门起骑车去!

Golang 操作 Redis:PubSub发布订阅用法 - go-redis 使用指南

2024-08-20 20:49:35

在现代应用开发中,实时通信是许多系统的核心需求之一。Redis 的 PubSub(发布/订阅)机制为这种需求提供了强大的支持,允许系统组件之间进行高效的消息传递。上一篇文章中,我们深入探讨了 Redis 的 Pipeline 操作,而本篇文章将带您深入了解 Redis 的 PubSub 机制,特别是如何在 Golang 中利用 go-redis 库实现这一功能。

勇敢体验人生:读《不用手机,134天,我的环游中国记》有感

2024-08-19 23:25:39

今天上午偶然读到一篇文章——《不用手机,134 天,我的环游中国记》,作者杨淏,他用了 134 天(4 个半月),不带手机,走完了全国 24 个省中的 68 个县市,途中还写下了 22 万字散文;在这篇公众号文章里他记录了他的旅途中的一些见闻。勇敢的人先享受世界,我读完后这篇文章后对他勇敢体验人生的勇气十分钦佩,也对现在的人严重依赖手机的程度有了更深刻的认识,内心有那么一点感触和感慨,同时也觉得作者的文字写得很好,于是想写一篇文章记录一下。

One-Day Trip Guide to Guangzhou's Chimelong Safari Park (Tickets + Map Route + Opening Hours + Tips)

2024-08-18 15:06:57

Planning a day trip to Chimelong Safari Park in Guangzhou, China? This practical guide provides all the details you need—from ticket prices and best routes to opening hours and essential tips—to ensure a smooth and enjoyable visit. Last week, I visited Chimelong Safari Park in Guangzhou during a heavy rainstorm. I’ve put together this guide based on that experience to help you plan your visit. If you’re planning a trip to China, be sure to include Guangzhou Changlong Safari Park in your itinerary. Located in Guangzhou, this expansive park offers a thrilling experience

Your Local Travel Guide to Guizhou, China: 6 Days, 5 Nights Itinerary and Top Sights to See

2024-08-18 14:54:21

During the 2024 Dragon Boat Festival holiday, my wife and I embarked on a self-guided tour of Guizhou, China. Our trip spanned six days and five nights, visiting the following destinations: Huangguoshu Waterfall in Anshun, Xiaoqikong Scenic Area in Libo, Xijiang Qianhu Miao Village, Zhenyuan Ancient Town, and Guiyang city. Although we had planned to visit Fanjing Mountain after Zhenyuan Ancient Town, we canceled the plan due to weather conditions and decided to save the hike for a future weekend. Tip: For foreign travelers visiting Guizhou, China, please note that Google Maps is not accessible in China. Instead, we recommend downloading Baidu Maps or Amap (Gaode Maps) for navigating the

如何在Go Gin中获取完整服务器URL路径和QueryString查询参数

2024-08-18 11:03:50

在使用 Gin 框架开发 Go Web 应用时,开发者常常需要获取请求的完整 URL,以便于处理重定向、生成动态链接、记录日志等需求。然而,Gin 本身并没有直接提供获取完整服务器 URL 的方法,这导致不少开发者在寻找解决方案时,往往会搜索类似以下关键词:

本文将详细讲解如何在 Gin 框架中,从任意端点处理程序(Endpoint Handler)获取请求的完整服务器 URL,并通过代码示例演示实现方法。

pip 源设置指南:在 Windows、macOS 和 Linux 上配置腾讯云源

2024-08-17 15:16:04

在 Python 开发中,pip 是我们用来安装和管理包的工具。为了提高安装速度,尤其是在网络条件不佳的情况下,我们可以配置 pip 使用不同的源。本文将介绍如何配置 pip 源,包括使用腾讯云镜像源、临时设置源、以及在不同操作系统上的配置方法。

Python requirements.txt 文件格式详解及使用指南

2024-08-17 14:43:02

在 Python 开发中,requirements.txt 文件是 pip 用于管理和安装项目依赖的核心文件。本文将详细讲解 requirements.txt 文件的格式、生成、使用方法及相关功能,帮助你更好地理解如何利用这一工具进行高效的依赖管理。

pigar vs pipreqs:有什么区别,哪个生成requirements.txt更好?

2024-08-17 13:25:22

在 Python 项目的开发过程中,自动生成 requirements.txt 文件是一个重要的步骤,它能帮助我们记录项目的依赖包及其版本,以便其他开发者能够在相同的环境中运行项目。而 pigarpipreqs 是两个常用的工具,能够自动生成 requirements.txt 文件,但它们在功能和使用场景上有所不同,那么 pigar 和 pipreqs 的具体区别是什么呢?本文将详细介绍这两个生成 Python 依赖文件的工具的对比,让我们一起来看看 pigar 和 pipreqs 各有什么优缺点,哪个工具更适合你生成 requirements.txt。

Pipenv用法详解:如何使用Pipenv管理现代Python项目的虚拟环境和requirements.txt文件

2024-08-17 13:19:17

在 Python 开发过程中,包管理和虚拟环境的管理是非常重要的环节。随着项目复杂度的增加,传统的 pipvirtualenv 工具逐渐暴露出一些问题。为了解决这些问题,Pipenv 应运而生。本文将详细介绍 Pipenv 的用法,并探讨它相较于其他工具的优势。

如何使用 pigar 自动生成 Python 项目的 requirements.txt

2024-08-17 13:08:39

在 Python 项目的开发过程中,管理依赖项是一项非常重要的工作,尤其是在项目逐渐庞大时。requirements.txt 文件作为 Python 项目的依赖列表文件,帮助开发者快速重现项目环境。然而,手动维护这个文件可能会耗费大量时间,并且容易出

go list 命令详解:go list是什么?基本用法与常用选项

2024-08-16 22:44:57

go list 是 Go 语言工具链中的一个非常强大的命令,它用于列出包、模块或其依赖的详细信息。了解 go list 的各种选项和参数,可以帮助你更高效地管理和分析你的 Go 项目。本文将详细介绍 go list 命令的使用方法和主要选项。 go list 的基本用法 go list 命令的最基本

go:embed 用法详解:如何将静态资源文件打包进二进制文件中?

2024-08-16 21:02:11

在 Go 语言中,embed 包为程序提供了访问嵌入文件的功能,该功能是从 Go1.16 版本引进的,embed 包使得在编译时将文件嵌入到程序中变得非常方便。这个功能特别适用于需要将静态文件(如 HTML、CSS、图片等)打包到程序中的场景。本

智齿拔牙记:骨动力钻拔牙全过程、费用以及拔牙后的注意事项

2024-08-15 17:53:18

今天下午,我陪老婆去深圳市人民医院口腔科拔除了她的智齿。拔牙这件事听起来就让人不寒而栗,说实话,之前我一直以为拔牙就是医生打完麻药后拿着钳子直接用力硬拔,光是想想就觉得可怕。但当看了病历上的处理过程后,让我了解到了现代的

Golang如何比较时间?使用Before、After、Equal函数的详细指南

2024-08-14 17:54:14

在 Golang 中,我们可以通过Before()After()Equal()这三个函数来比较时间和日期。此外,还可以使用time.Now()time.Now().Add()函数来生成和操作时间,以进行比较。这些函数非常有用,特别是在需要精确控制时间顺序或执行与时间相关的逻辑时。

HTML preload预加载资源与跨域问题详解及解决方法:如何修复“request credentials mode does not match”错误

2024-08-14 11:31:26

在现代 Web 开发中,优化页面加载速度和提升用户体验至关重要。<link rel="preload"> 标签是一种非常有效的前端性能优化工具,它可以让浏览器资源预加载,在页面开始渲染之前提前加载关键资源。然而,在使用 preload 时,开发者常常会遇到与跨域资源加

全面解析JS URLSearchParams的使用方法:获取、设置、删除查询参数的最佳实践

2024-08-13 16:43:39

在处理 Web 开发中的 URL 时,URLSearchParams 对象是一个极其有用的工具。它用于处理 URL 查询字符串,使得对查询参数的操作变得更加简便。本文将详细介绍 URLSearchParams 对象的使用方法,包括创建对象、操作查询参数、遍历参数等内容。

URL 中自动添加的#gsc.tab=0 是什么?如何修复?

2024-08-13 15:26:15

在你的网页中添加使用 Google 自定义搜索引擎(Custom Search Engine, CSE)时,你可能会注意到一个奇怪的现象:网页的 URL 尾部总是自动添加上 #gsc.tab=0。例如,原本的访问的链接 https://blog.axiaoxin.com/ 会自动变成 https://blog.axiaoxin.com/#gsc.tab=0

那么,#gsc.tab=0 是什么?又该如何修复这个问题呢?本文将为你详细解答。

如何使用JS获取当前页面URL信息?JavaScript URL对象操作全攻略

2024-08-12 13:30:33

在现代 Web 开发中,URL(统一资源定位符)是非常关键的一个概念。通过 JavaScript 的 URL 对象,我们可以方便地操作和解析 URL,从而更高效地管理页面和资源。本文将详细介绍 URL 对象的使用方法,并针对常见的需求如获取当前页面 URL、解析 URL 参数、

为静态博客网站添加评论功能:使用私有服务器+MySQL完成Waline服务端独立部署

2024-08-11 22:21:52

大家好,今天我为我的博客添加了 Waline 评论功能,写下这篇文章既是分享也是记录,欢迎大家留言评论。

在网站中添加评论系统可以增强与用户的互动,评论是个相对低频的操作,自行开发一套评论系统投入的成本相对较高,而且很多静态网站也难以适用。Waline 是一款轻量、快速且功能丰富的评论系统,支持私有部署。由于官方文档对于 MySQL+Self Host 的介绍过于简单且稍显混乱,因此,本文将详细介绍如何在私有服务器上使用 MySQL 数据库独立部署 Waline 服务端。

教你如何在 Ubuntu 上搭建和使用 Docker

2024-08-11 12:58:31

在本教程中,我们将详细介绍如何在 Ubuntu 系统上使用腾讯云 Docker 软件源来安装和配置 Docker。通过以下步骤,你可以快速在 Ubuntu 系统上完成 Docker 的安装并开始使用。

教你如何在Ubuntu上如何安装和升级Nodejs/npm

2024-08-11 12:48:48

在使用 Node.js 进行开发时,npm(Node Package Manager)是不可或缺的工具,它是 JavaScript 世界中最流行的包管理器。本文将详细介绍在 Ubuntu 上如何安装和升级 npm。

教你如何在Ubuntu中修复npm报错:Error: Cannot find module 'semver'

2024-08-11 12:22:27

在使用 npm 安装依赖包时,可能会遇到 Error: Cannot find module 'semver' 的错误。这种错误通常与 Node.js 和 npm 的安装环境有关,可能是由于版本冲突或残留的旧文件所致。

如何查看Ubuntu系统版本号?4种最简单的方法!

2024-08-11 11:01:33

在使用 Ubuntu 操作系统时,了解当前系统的版本号是非常重要的,特别是在进行软件安装、系统更新或排查问题时。本文将介绍几种简单的方法,帮助你快速查看 Ubuntu 系统的版本号。

HTML object 标签用法详解:为你的Shields.io Badge设置链接

2024-08-10 23:02:03

在 Web 开发中,使用 badges 作为展示项目状态、数据统计、或品牌标识的方式非常流行。通常情况下,我们使用<img>标签来显示这些 badges。然而,当需要为 badge 设置点击跳转功能时,简单的<img>标签是不够的。这时,可以使用 HTML 的<object>标签来实现。

本文将详细介绍<object>标签的用法,并说明如何为 Shields.io 生成的 badge 设置正确的跳转链接。

Golang 操作 Redis:Pipeline操作用法 - go-redis 使用指南

2024-08-09 22:26:45

在上一篇文章中,我们探讨了 Redis 中 HyperLogLog 的操作和使用场景,详细介绍了如何通过 go-redis 实现相关功能。如果你还没有读过,可以点击这里查看。本篇文章将聚焦于 Redis Pipeline 的操作,通过 go-redis 库来高效地执行多个 Redis 命令。我们将介绍 Pipeline 的基本概念、常见使用场景,并通过示例代码详细解析各个操作方法的用法。

Golang 操作 Redis:HyperLogLog 操作用法 - go-redis 使用指南

2024-08-08 17:25:16

在上一篇文章中,我们详细介绍了如何在 Golang 中使用 go-redis 操作 Redis 的 GEO 地理空间数据类型。如果你还没有阅读过,可以点击这里进行回顾。本篇文章,我们将深入探讨 Redis 中一个非常实用但相对不太为人所知的数据类型——HyperLogLog,以及如何在 Golang 中使用 go-redis 进行相关操作。

Golang 操作 Redis:GEO地理空间数据类型操作用法 - go-redis 使用指南

2024-08-08 15:38:08

在上一篇文章中,我们详细介绍了如何在 Golang 中使用 go-redis 操作 Redis 的事务处理操作(可参考这里)。在本篇文章中,我们将对如何使用 go-redis 操作 Redis 中的 GEO 地理空间数据结构进行详细讲解和示例代码展示。

掌控核心资源:从V2EX收录移除的经历谈起

2024-08-07 17:18:00

在之前,我的博客 RSS 通过了 V2EX 平台收录,给博客带来了更多更便捷的曝光机会,不用每次单独发帖引流,非常感谢。然而,就在今天,很遗憾,我的博客被管理员移除了收录,原因是认为我的博客文章是由 AI 生成的。确实,在最近发布教程类文章时我

乐观锁详解:如何处理高并发下的数据一致性问题

2024-08-07 15:43:32

在现代应用程序中,特别是在高并发场景下,确保数据一致性是一项重要任务。乐观锁(Optimistic Locking)作为一种有效的并发控制机制,允许多个事务并发地读取相同的数据,而不立即加锁。在本文中,我们将详细探讨乐观锁

Python数据验证利器:详解Pydantic的使用方法

2024-08-06 21:07:56

Pydantic 是目前最广泛使用的 Python 数据验证库之一。它不仅快速且可扩展,还能与各种静态分析工具(如 MyPy、Pyright)和 IDE 良好配合。通过纯正的 Python 3.8+语法定义数据模型,并使用 Pydantic 进行验证。 Pydantic 示例 首先,我们来看一个简单的 Pydantic 示例,创

腾讯云软件镜像源的使用与配置

2024-08-06 16:48:29

在开发和运维过程中,使用镜像源可以显著提高软件包下载和更新的速度。腾讯云提供了多个常用软件的镜像源,本文将详细介绍如何配置和使用腾讯云镜像源来加速软件包的下载与更新,包括 pip、Maven、NPM、Docker、Mari

Python email-validator 库:验证电子邮件地址的最佳选择

2024-08-06 16:38:13

电子邮件地址是许多应用程序中识别用户的重要手段,确保这些电子邮件地址的有效性和可交付性至关重要。Python 的email-validator库是一个强大的电子邮件地址验证库,专为 Python 3.8 及以上版本设计。本文将详细介绍如何使用

Python 安全数据管理:itsdangerous 数据签名与序列化使用示例与最佳实践

2024-08-06 13:37:11

itsdangerous 是一个用于安全数据序列化和签名的库,主要用来确保数据在传输过程中不被篡改。它常用于生成安全令牌,以便在 Web 应用程序中实现安全的会话管理和数据交换,注意,它的目标是签名,而不是加密。下面我们将详细介绍 itsdangerous 的使用方法。 安全数据

代码注释规范最佳实践:如何编写高质量注释

2024-08-05 18:33:16

在编程过程中,编写优质的代码注释对提升代码的可读性和维护性至关重要。虽然有很多资源可以帮助程序员编写更好的代码,例如书籍和静态分析工具,但针对如何编写优质注释的资源却比较少。注释的数量容易衡量,而质量则难以评估,两者之间

Golang 操作 Redis:bitmap 数据类型操作用法 - go-redis 使用指南

2024-08-05 14:28:09

在上一篇文章中,我们介绍了如何使用 go-redis 操作 Redis 的 SortedSet 有序集合数据类型。如果你还没有阅读,可以点击这里查看。在本篇文章中,我们将重点介绍 Redis 中的 bitmap 数据结构,以及如何使用 go-redis v9 来进行操作。

什么是进程的 comm 名称?Linux 进程 comm 名称详解

2024-08-05 13:09:22

在 Linux 系统中,comm 名称是用于标识进程的关键元素。理解 comm 名称的含义以及如何利用它进行进程管理,对于系统管理员和开发者来说至关重要。本文将深入探讨 comm 名称的定义、如何查看 comm 名称,以及它在进程管理中的应用。 什么是 comm 名称? 在 Linux 系

避免系统无响应:使用 earlyoom 提前终止 Linux 高内存占用进程

2024-08-05 10:35:07

当我在服务器上运行一个不太重要的进程时,它的内存使用量会随实际情况不断发生变化,当它的内存超过某个阈值时,我想要 kill 掉它并重启该进程。为了满足我这个需求,我了解到了 earlyoom 这个程序。 earlyoom 是一个用于 Linux 的内存不足 (OOM) 守护进程。它在系统内

Golang 操作 Redis:SortedSet有序集合数据类型操作用法 - go-redis 使用指南

2024-08-04 21:52:49

在本系列上一篇文章中,我们详细介绍了如何使用 go-redis 库来操作 Redis 的 List 列表数据类型。如果你错过了,可以点击这里查看。在本篇文章中,我们将聚焦于 Redis 的另一种强大数据结构:SortedSet(有序集合),并介绍如何使用 go-redis 库进行相关操作。

Go语言的 toolchain 是什么?Golang 工具链详解

2024-08-02 21:30:31

在 Go 1.21 的发布中,Go 语言团队引入了一些重要的工具链(toolchain)管理功能。这些新特性不仅提升了语言的向前兼容性,还简化了开发过程中的工具链管理。在这篇文章中,我们将详细介绍 Go 工具链的概念、Go 1.21 版本中的变化,以及

大写规则:哪些词需要大写?

2024-08-02 19:32:22

在书写和编辑文本时,大写字母的使用规则是确保文章规范性和可读性的关键。无论是正式的写作还是非正式的交流,正确使用大写字母不仅能帮助你传达信息,还能让读者更容易理解内容。在本文中,我们将详细探讨英语中常见的大写规则,涵盖从

Go语言 strings.Title() is Deprecated:如何使用 cases.Title() 实现首字母大写

2024-08-02 18:36:06

在 Go 语言的开发过程中,我们经常需要对字符串进行各种操作,例如将字符串的首字母大写。过去,我们可能会使用strings.Title()函数来完成这个任务。然而,在 Go 1.18 版本中,strings.Title()被标记为已废弃(D

Go 语言中处理多语言支持:如何实现语言与地区匹配

2024-08-02 18:04:55

在多语言(i18n)支持的应用程序中,如何根据用户的语言偏好选择合适的语言进行展示是一个重要的任务。这通常涉及到将用户首选语言与应用程序支持的语言之间进行最佳匹配。在这篇文章中,我们将探讨语言标签的复杂性以及 Go 语言如何帮

如何在Golang中将语言代码字符串转换为IETF标准的language.Tag

2024-08-02 17:47:46

在 Go 语言开发中,处理语言标识时常需要将输入的语言标识转换为符合 IETF 标准的格式。比如,我们可能会收到类似 en_US 的语言标识,但我们需要将其转换为符合 IETF 语言标记规范的 en-US。在 Go 语言中,我们可以使用 golang.org/x/text/language 包来处理这种转换。 基本转换方

Golang 操作 Redis:List列表数据类型操作用法 - go-redis 使用指南

2024-08-01 21:21:32

在本系列上一篇文章《Golang 操作 Redis:为 Hash 中的字段设置过期时间 - go-redis 使用指南》中,我们介绍了如何设置 Redis Hash 哈希数据类型的单个字段设置过期时间。本篇文章我们将深入探讨 Redis 的 List 数据结构,并介绍如何使用 go-redis 库对其进行操作。

个人博客流量与收入记录(2023.8.1-2024.8.1)

2024-08-01 13:53:26

前言 最早写博客是在大学时期,那时候写过 QQ 空间、百度空间、51CTO、CSDN 等等,再到后自己学习 Django 开发,做了自己的博客系统,搭建在学校实验室的服务器上使用 IP 访问,再到后来使用 Sina SAE 部署博客终于有了可以使用域名(ashin.

抽筋是什么原因引起的?如何预防和自救?

2024-08-01 12:38:42

抽筋是一种常见的肌肉痉挛现象,很多人都经历过。在日常生活中,了解抽筋的原因、如何预防以及发生抽筋时的自救方法,可以帮助我们更好地应对这种情况。本文将为大家详细介绍有关抽筋的科普知识。 抽筋的实质是什么? 抽筋,医学上称为肌肉

自媒体SEO指南:如何摆脱平台推荐算法依赖获取长期稳定的自然流量

2024-07-31 19:54:11

随着互联网的发展,自媒体已经成为了一种重要的传播形式。从微信公众号到短视频平台,各类自媒体为个人和企业提供了展示才华和推广产品的机会。然而,在众多自媒体平台中脱颖而出并获取稳定的自然流量仍然是一项挑战。自媒体 SEO(搜索

发芽的土豆为什么不能吃?

2024-07-30 17:58:53

土豆又称马铃薯,是我们日常生活中常见的一种食材,富含丰富的营养成分。然而,有些人可能注意到,土豆在存放一段时间后会长出小芽。那么,发芽的土豆有毒吗?这些发芽的土豆是否还能食用呢?今天,我们就来科普一下土豆发芽还能吃吗以及

最新最全的网站 SEO 免费在线分析工具合集(持续更新)

2024-07-30 10:53:21

在互联网时代,SEO(搜索引擎优化)对于网站的成功至关重要,SEO 已经成为网站运营者和数字营销人员必备的一项技能。无论你是新手站长还是经验丰富的 SEO 专家,拥有一套强大的 SEO 工具可以帮助你提升网站的搜索引擎排名,增加流量。为了

SEM 是什么意思?

2024-07-30 10:14:12

什么是 SEM? SEM(Search Engine Marketing,搜索引擎营销)是一种通过付费广告和优化策略在搜索引擎结果页面(SERP)中推广网站、产品或服务的网络营销方法。SEM 的核心是通过购买关键词广告,让目标用户在搜索相关

SEO 搜素引擎优化:什么是长尾关键词?

2024-07-30 08:40:38

很多 SEO 初学者还不知道经常听到的“长尾关键词”是什么意思,本文专门介绍 SEO 中的长尾关键词,希望对你有所帮助。 什么是长尾关键词? 长尾关键词(Long Tail Keywords)是指由多个词语组成的、更为具体和精确的关键词短语,通常包含

SEO 是什么意思?搜索引擎优化初学者必读

2024-07-29 23:59:24

什么是 SEO? SEO(Search Engine Optimization,搜索引擎优化)是一种通过优化网站内容和结构来提升网站在搜索引擎结果页面(SERP)中的排名的方法。目的是增加网站的可见性,吸引更多的自然流量。简单来说,SEO

广州长隆野生动物园一日游实用攻略(门票+路线+开放时间+注意事项)

2024-07-29 22:56:24

计划一次广州长隆野生动物园一日游?这篇实用攻略将为您提供详细的信息,从门票价格到最佳游玩路线、开放时间及注意事项,确保您的旅程轻松愉快。 长隆旗下有珠海长隆和广州长隆,上周从深圳前往广州玩了两天,一天是在暴雨中去了广州长隆

SEO写作:如何从SEO的角度写一篇旅游攻略文章?

2024-07-29 20:55:00

写一篇旅行游记,不只是为了自己记录回忆,也可以通过这种方式帮助别人出行提供旅行攻略参考,让更多查找旅行景点攻略的人更容易发现自己的文章。因此,写一篇成功的旅游攻略文章不仅需要内容丰富、信息全面,还需要考虑搜索引擎优化(S

坐地铁去广州东站赶时间怎么办?教你5分钟内快速进站!

2024-07-29 12:30:22

如果你是在乘广州地铁 1 号线去广州东站时,因为特殊原因导致快要赶不上高铁了在想怎么办时而搜索到这篇保姆式快速进站攻略的,那么,恭喜你,来对地方了。提前看明白本攻略全程 5 分钟内可进站,这里说的 5 分钟内是需要跑的,走得快的话大

剪映运动跟踪特效教程:如何让贴纸、文字、马赛克等元素跟随人物同步移动

2024-07-29 09:55:24

在这篇教程中,我们将通过图文的方式详细介绍如何在剪映中使用运动跟踪特效,让贴纸、文字、马赛克等元素跟随人物同步移动,保姆级教程,包你学会。无论你使用的是手机上的移动版剪映 APP 还是电脑上的剪映专业版,本文都将为你提供详尽的视

Golang 操作 Redis:为 Hash 中的字段设置过期时间 - go-redis 使用指南

2024-07-24 21:20:33

在上一篇 《Golang 操作 Redis:Set 集合数据类型操作用法 - go-redis 使用指南》 文章中,我们介绍了 Redis 的 Set 集合数据类型,并展示如何在 Golang 中使用 go-redis 进行相关操作。本文将介绍如何设置 Redis Hash 哈希数据类型的单个字段设置过期时间。

Golang 操作 Redis:Set 集合数据类型操作用法 - go-redis 使用指南

2024-07-24 19:55:06

在上一篇《Golang 操作 Redis:Hash 哈希数据类型操作用法 - go-redis 使用指南》文章中,我们介绍了如何使用 go-redis 操作 Redis 的 Hash 类型。这一篇文章将带领大家了解 Redis 的 Set 集合数据类型,并展示如何在 Golang 中使用 go-redis 进行相关操作。

Golang 操作 Redis:Hash 哈希数据类型操作用法 - go-redis 使用指南

2024-07-24 18:48:35

在上一篇 《Golang 操作 Redis:如何设置 key 的过期时间 - go-redis 使用指南》 文章中,我们介绍了如何在 Redis 中,设置 key 的过期时间。在本篇文章中,我们将聚焦于 Redis 的 Hash 数据类型,详细讲解其使用场景、相关原始命令及其在 go-redis 中的具体实现与用法。

Golang 操作 Redis:如何设置 key 的过期时间 - go-redis 使用指南

2024-07-24 17:00:35

在上一篇 《Golang 操作 Redis:基础的字符串键值操作 - go-redis 使用指南》 文章中,我们介绍了如何使用 go-redis 库中的各种字符串命令来操作 Redis 中的键值对。在 Redis 中,设置 key 的过期时间是管理数据生命周期的重要手段。过期时间控制了数据何时被自动删除,这对于缓存数据、会话信息以及临时数据存储非常有用。本篇文章将详细讲解 Redis 中与过期时间相关的命令,并展示如何在 Golang 中使用 go-redis 实现这些操作。

Golang 操作 Redis:基础的字符串键值操作 - go-redis 使用指南

2024-07-24 13:52:35

在上一篇 《Golang 操作 Redis:连接设置与参数详解 - go-redis 使用指南》 文章中,我们介绍了如何设置 Redis 连接和相关参数的含义与使用方法。在本文中,我们将探讨如何使用 go-redis 进行基本的键值操作。这是 Redis 最基础的功能之一,但在实际应用中非常强大。我们将介绍如何使用 go-redis 库中的各种字符串命令来操作 Redis 中的键值对。

Golang 操作 Redis:连接设置与参数详解 - go-redis 使用指南

2024-07-24 11:31:09

在上一篇 《Golang 操作 Redis:快速上手 - go-redis 使用指南》 文章中,我们介绍了如何初始化 go-redis 客户端并进行了基本的 Redis 操作。本文将深入探讨 go-redis 的连接设置与参数配置,帮助你在实际项目中更好地使用 go-redis。

Golang操作Redis:快速上手 - go-redis 使用指南

2024-07-24 08:10:18

每隔一段时间不是使用 go-redis 就会忘记用法,不得不去看文档,但官方文档做的不太好,得益于其 API 设计的足够好用可以看代码了解使用方法,为了避免每次都要阅读代码回忆使用方法,特别花时间写了这个系列的教程文章作为笔记,希望对你也有所帮助。

在现代的分布式系统中,Redis 作为一个高性能的内存数据库被广泛应用。Redis 支持丰富的数据结构,提供了多种多样的功能。而 go-redis 则是一个 Redis 客户端库,可以方便地在 Go 语言中操作 Redis。本文将介绍 go-redis 的基本用法,帮助你快速上手。

Redis Streams 实践指南:在 Golang 中使用 Redis 作为消息队列

2024-07-23 19:18:48

在现代分布式系统中,消息队列是一种非常重要的组件。它们帮助我们解耦服务、平滑流量尖峰并确保数据的可靠传递。消息队列在电子商务、金融交易、实时分析和物联网等多个领域都有广泛的应用。Redis Streams 是 Redis 5.0 版本引入的新数据类型,非

从自动翻译到全站内容国际化:使用 Golang 和 GNU Gettext 打造多语言 i18n 网站——出海必看

2024-07-23 14:18:18

在现代网站开发中,国际化(i18n)是一个重要的功能,旨在使网站能够支持多语言,满足全球用户的需求。本文将介绍如何使用 Golang 的模板引擎和 GNU Gettext 实现网站的国际化,以及常见的 i18n 方案和其优缺点。 什么是 i18n 国际化(i18n)是指在软件开

使用urlsubmitter提高SEO效率

2024-07-23 00:31:16

SEO(搜索引擎优化)对于网站的流量和曝光至关重要。如果搜索引擎已经抓取了你的网页,但你的网页内容在此之后又发生了变化,为了让搜索引擎更快地抓取和索引我们的网站,我们需要一种高效的工具来提交 URL。 本文向大家介绍一个 Go 语

SEO|让 Bing 更快抓取你的网页:Golang 与 Bing IndexNow 的应用

2024-07-22 23:56:18

在当今竞争激烈的数字世界中,网站的 SEO 性能至关重要。Bing 推出的 IndexNow 工具可以帮助网站管理员实现实时索引,从而提升网站的可见性和性能。本文将详细介绍如何使用 IndexNow。 什么是 IndexNow? IndexNow 是一种实时索引协议,允许

SEO|如何通过 Golang 快速通知 Google 抓取更新网页

2024-07-22 16:27:55

今天,我们来做点需要进行代码编程开发的 SEO——使用 Golang 调用 Google Indexing API 让 google 更及时知道你的网页发生变化更快地抓取你更新的网页,提升网页抓取速度。 借助 Google Indexing API,任何网站所有者都可在添加或移除网页时直接告知 Google。这样一来,

Golang 版本差异引发的生产环境问题:如何解决 JavaScript 模板字面量中的 Go 模板变量报错

2024-07-19 12:31:11

在本地开发中,我们经常会遇到一些在本地环境中运行正常,但在生产环境中却出现问题的情况。最近,我在使用 Golang 1.22 进行网页开发时,就遇到了这样一个问题。 问题描述 在我的项目中,我使用了 Golang 的 html/template 包来生成网页。在网页的 JavaScript 部分,我使用了模板

居家办公必备——西昊M57C人体工学椅推荐

2024-07-18 13:53:12

拼多多上下单的椅子今天到了,自己组装挺简单的,一共只需要装 6 颗螺丝。装完后体验还不错,目前办公桌还没到没法搭配桌子一起体验。 我之所以选择这把人体工学椅,是我经过多家西昊的线下体验店体验和线上对比,以及黑白调线下体验店的体

如何使用 MySQL 全文检索

2024-07-17 19:45:04

本文介绍 MySQL 中的一个强大功能——全文检索(Full-Text Search)。对于处理大量文本数据的应用来说,全文检索能大大提高查询效率和精确度。下面,将详细介绍如何在 MySQL 中使用全文检索。 什么是全文检索 全文检索是一种专门为处理

搬家记:在追求性价比中的纠结与反思

2024-07-15 17:51:57

凌晨一两点,我还没睡,我在给自己挑选办公桌。一张桌子,我已经看了好几天了,我这几天每天都在看,白天看晚上看,一有空就看,先选尺寸,尺寸选好了就在网上各种搜,跳动在各个网站平台对比价格。今天最夸张,一直纠结到这会儿,就是因

如何做肥牛饭?肥牛饭做法,简易步骤,轻松上手

2024-06-26 09:59:05

独立开发的日子,做饭成了我的日常。为了不在做饭上浪费太多时间,实践下来肥牛饭无疑是一个不错的选择。 我认为适合独立开发者的菜谱必须是方便快捷且味道过得去的,不是每个人都是厨房熟手,所以还要不易翻车,自己做比叫外卖或出去吃健

培养这4个具有「复利效应」的关键能力,普通人也能逆袭!

2024-06-25 21:28:26

四个能产生复利效应的关键能力领域 在人与人之间,智商的差距其实非常小,真正拉开差距的是选择。每一个选择都会影响到你的下一次选择,而越早做出正确选择,复利效应就越明显。在个人发展中,我认为有四个关键能力领域可以影响我们的成功

面试远程工作必问的关键问题及注意事项

2024-06-25 15:31:03

今早有老哥通过 GitHub 顺着网线找到我的微信添加好友,希望我加入他们的团队,做远程后端开发,聊完后由于工作时间需要全职 8 小时且比较紧急,因此我觉得不太适合当前我的个人情况所以拒绝了。 目前我对于远程工作还没有任何经验,我也想在把我

Mac电脑5000端口被ControlCe commplex-main进程占用解决方案

2024-06-19 12:46:44

在 Mac 电脑中,有时我们会发现 5000 端口被一个名为ControlCe commplex-main的进程占用。 > lsof -i :5000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ControlCe 550 axiaoxin 11u IPv4 0x1439df049c9aecdb 0t0 TCP *:commplex-main (LISTEN) ControlCe 550 axiaoxin 12u IPv6 0x1439defb064d1c8b 0t0 TCP *:commplex-main (LISTEN) 这个进程是什么呢?它其实是隔空播放接收器(AirPlay

Flask处理Cookies|Flask如何读取和设置写入Cookies

2024-06-19 10:15:48

Flask Cookies 的读写方法 在 Web 开发中,Cookies 是一种在客户端保持状态的简单方式。Flask 作为一个轻量级的 Python web 框架,处理 Cookies 是一项基本的任务,它提供了操作 Cookies 的便捷方法,可以让我们在用户的浏览器和服务器之间保持状态信息。本文将介绍

Flask中current_app应用上下文和g对象的用法

2024-06-19 09:47:30

在 Flask 框架中,应用上下文(Application Context) 是一个非常重要的概念,它对于理解 Flask 的工作原理至关重要。 什么是应用上下文? 简单来说,应用上下文是一个封装了 Flask 应用及其配置信息的对象。它允许开发者在不同的线程中隔

贵州怎么玩?6天5晚自由行最佳路线与著名景点攻略!

2024-06-11 09:12:21

2024 端午节假期之际,和老婆一起贵州自由行,行程一共六天五晚,景点包括:安顺市黄果树瀑布景区、荔波小七孔景区、西江千户苗寨、镇远古城和贵阳市区。我们原计划的行程是在镇远古城玩了之后去梵净山,但是由于天气不是很好的原因我们在最

医保关系异地转移办理流程记录

2024-06-01 13:58:57

最近看到一篇鉴别是否进入“中年”的文章,有一条是:入世——开始关心社保。 3 月底我就开始准备办理社保、医保等关系的异地转移,从上海转到深圳。历时 2 个多月,走了不少弯路,终于在 2024-06-01 02:22:34 办结了医保关系异地转移。 在此之前,我已经办理

如何使用Shell命令完成文件的切分与合并

2024-05-24 16:08:46

在 Unix-like 系统中处理大型文件或进行数据管理时,我们经常需要对文件进行切分和合并。Shell 命令是处理文件的强大工具提供了多种命令来执行这些操作。 本文将介绍 Shell 中用于切分和合并文件的命令:split、csplit 和 cat 的参数及其使用

僵尸进程:Linux系统中的隐秘威胁|如何查看并清理僵尸进程

2024-05-24 11:13:20

在 Linux 系统中,僵尸进程(Zombie Process)是一种特殊的进程状态,虽然已经完成执行,但仍然保留在进程表中。本文将介绍僵尸进程的定义、危害、产生原因以及如何处理它们。 什么是僵尸进程? 僵尸进程是指已经完成执行(通过ex

金币充值方案设计

2024-05-21 19:31:34

设计一个吸引用户充值的金币方案需要考虑多个因素,包括用户的消费心理、市场竞争状况以及成本和利润。 以下是一个大致的充值方案示例: 小额快速充值: 充值 30 元 获得 300 金币。 充值 50 元 获得 520 金币(额外赠送 20 金币)。 中额优惠充值: 充值 100 元

在需要登录的网页上配置Google AdSense抓取工具访问权限

2024-05-21 09:51:32

广告收入对于网站所有者来说是一项重要的收入来源。Google AdSense 提供了一种简便的方式来在您的网站上投放广告并赚取收入。 但是,如果你的网站包含需要用户登录后才能查看的内容,那么 AdSense 的抓取工具可能无法正确地抓取这些内容,它可能会

JavaScript 箭头函数用法

2024-05-20 20:05:15

在 JavaScript 中,箭头函数(Arrow Functions)是一项强大的特性,它可以让我们以更简洁的方式编写函数。 什么是箭头函数? 箭头函数是 ES6(ECMAScript 2015)引入的新特性。它允许我们使用更紧凑的语法来定义函数。与

JavaScript 中的函数绑定

2024-05-20 19:11:53

在 JavaScript 中,函数绑定是一个至关重要的概念。它不仅关系到函数的调用方式,还直接影响到this关键字的指向。 什么是函数绑定? 简单来说,函数绑定就是确保函数在执行时this指向正确的对象。在 JavaScript 中,this的值通常取决于函数的调用方

JS 装饰器模式以及 call/apply 用法

2024-05-16 19:33:22

在 JavaScript 中,装饰器模式是一种非常有用的设计模式,它允许我们在不改变对象自身的基础上,为对象添加新的功能。这种模式在很多场景下都非常实用,比如当我们需要给函数添加日志记录、性能监控、事务处理等额外功能时。 装饰器模式简介 装饰器模

JavaScript 中的定时器:setTimeout 和 setInterval

2024-05-16 18:50:55

在 JavaScript 编程中,我们经常需要在特定的时间后执行代码,或者以固定的时间间隔重复执行代码。这就是定时器的用武之地。本文记录setTimeout和setInterval这两个强大的定时器函数的学习笔记。 setTimeout:延迟执

JS 中的 new Function 语法

2024-05-16 18:28:26

在 JavaScript 编程中,我们通常会遇到各种函数声明方式。本文记录一个不太常见但在某些情况下非常有用的方法——new Function 语法。 什么是 new Function? new Function 是一种创建函数的方法,它允许我们从字符串中动态生成函数。这种方法的语法如下: let func

使用 acme.sh 自动签发更新免费 https 泛域名证书

2024-05-15 15:03:55

本文介绍如何使用 acme.sh 工具来自动更新 HTTPS 泛域名证书。acme.sh 是一个用 Shell 编写的 ACME 协议客户端,它简化了证书的申请和更新过程。 我的 web 服务器使用的是腾讯云服务器,之前 https 证书也是使用腾讯云的免费证书,是采用的手动更新,一年一次也还

URL链接中省略协议头的作用

2024-05-15 14:51:51

在构建网页和设计网络应用时,我们经常会遇到 URL 链接的使用。一个完整的 URL 通常包括协议头(如http或https),但有时我们也会看到省略协议头的情况。这种做法不仅可以简化链接,还有其他一些潜在的好处。今天,我们就来深入探讨一

Shell 中单引号和双引号的区别

2024-05-15 14:34:11

在 Shell 脚本编程中,正确地使用单引号(')和双引号(")是非常重要的。它们虽然看起来相似,但在处理字符串时有着本质的区别。这篇文章主要介绍 shell 中单引号和双引号的区别。 在编写 Shell 脚本时,我们经常需要处理字符串和变量。在这

深圳公积金追缴投诉攻略看这一篇就够了!

2024-05-10 15:41:15

失业后在家自由职业做独立开发已经快两个月了,之前发布过相关的文章讲述了自己的现状,想了解的小伙伴可以翻看之前的相关文章。 据了解大部分公司为了节约成本,未给员工缴纳甚至仅以深圳市最低工资标准缴纳五险一金。自己不妨打开支付宝

HTML mailto 链接属性完全指南

2024-05-09 19:31:03

很多人都用过 HTML mailto 链接做过交互。当我们点击 mailto 链接时,这个链接会激活用户计算机上的默认电子邮件客户端来发送电子邮件,我们可以通过在链接中添加参数实现默认填写电子邮件的标题和内容。 HTML 中的 mailto 链接是什么? mailto 链接用于将用户重定向到电

Git 如何使用不同 Github 账号 push 代码

2024-05-08 10:17:37

本文记录当有多个 Github 账号,在 push 代码时,如何把本地内容推送到不同的 Github 账号下的三种方式。 方式一:ssh 方式使用 git config 如果仓库使用的是 ssh,且对应 Github 账号都配置了密钥,那么可以使用如下命令,对不同的仓库设置不同的用户名和邮箱地址 git

Linux 去除重复行而不改变顺序

2024-05-03 18:13:12

在处理文本文件时,我们经常会遇到需要合并多个文件并去除重复行的情况。在 Linux 环境中,awk 命令提供了一种高效的方式来实现这一需求,同时保留了数据的原始顺序。下面,我们将详细介绍如何使用 awk 命令合并文件,并对比另一种可能改变原始

如何批量删除 Github Actions Workflows 的执行记录

2024-04-30 16:13:06

目前 Github Actions 中的 workflows 执行记录在页面上没有提供批量删除的功能,只能单个点击鼠标操作删除。 如果有很多的记录需要清理,目前只能通过调用 github 的 api 进行删除,具体方法如下: 准备工作 我这里直接在命令行中使用 shell 脚本进行处理,用到的工具有 jq 和 gh

macOS系统升级Homebrew报错“unknown or unsupported macOS version: :dunno (MacOSVersionError) ”解决方法

2024-04-30 15:49:08

今天把我多年没升级过系统的苹果笔记本(macOs Big Sur)进行了系统升级,升级完之后(macOs Sonoma 14.4.1)在使用 homebrew 安装软件时出现报错: “Error: unknown or unsupported macOS version: :dunno” Homebrew 是一款包管理工具,主要用于在 macOS 和 Linux 系统上

如何使用 pipreqs 生成 Python 项目的 requirements.txt 文件

2024-04-29 15:32:33

pipreqs 是什么? 在 Python 项目中,我们经常需要维护一个 requirements.txt 文件,以记录项目所依赖的第三方库。这个文件可以帮助我们在不同环境中重现相同的依赖关系,从而确保项目的可移植性和一致性。通常默认我们可以使用 pip 来生成 requirements.tx

如何通过分析基本面重要指标选股:分享我的股票、基金挑选策略、方法和技巧

2024-04-24 13:24:14

4 月底了,各公司的年报一季报也陆续发布,又到了我们分析年报解读年报的韭菜养成时刻了。 我之前为了快速分析年报数据写过一个开源工具叫做“investool”,在 README 介绍中我大致写了我的选股策略,今天我把它整理为博客文章。 郑重声

我有写出世上最烂的垃圾的自由

2024-04-20 10:37:04

上周五下午和朋友去深圳湾散步,途中他说看到我分享到朋友圈的墨问便签文章,觉得我文章写的挺好的。 这让我感觉有点羞涩又惭愧,我自认为不过是在记录流水账,一篇文章中基本是想到什么写什么,也不会什么写作技巧与修辞手法。我写笔记更

简化版退休金在线估算器,算算你退休时可以领多少养老金

2024-04-18 09:45:04

现在不管是上班族还是灵活就业人员,不管是情不情愿,都在自己缴纳社保。 但对于缴纳这么多这么久的养老保险,以后到底能领多少退休养老金,其实很多人都完全不清楚。 于是我根据深圳市的养老金计算公式,将各种假设和不确定因素,都以固定

失业人员怎么给自己缴纳社保?个人灵活就业社保缴纳教程

2024-04-16 21:43:55

前言 本文主要内容包括:为什么我选择继续缴纳社保,在深圳如何自己交社保,深圳社保个人缴费如何在线办理,以及在深圳自己缴社保每月要缴多少钱? 失业后纠结了很久还要不要继续交养老保险,今天做了继续缴纳的决定,于是在线办理了灵活就

失业一个月,我的自由职业独立开发之路

2024-04-09 15:14:53

失业一个月 到今天为止,正式失业已经一个月整了,我也成为自由职业独立开发者满满一个月了。 一个月的时间很快也很慢,我想在这个时间节点写点什么,但不知从何写起。自从宣布成为自由职业者之后,很多人加了我好友,收到不少关于自由职业

被裁员失业了,千万别轻易领取失业保险金?深圳如何领取失业待遇,失业保险金领取条件

2024-04-08 15:46:34

我由于劳动合同到期,公司不续签,当前处于失业中。之前跟我谈赔偿的 HR 小姐姐前两天给我发微信说她也被裁员了,她在办理申请失业金时遇到问题跑来问我是怎么搞的,于是我觉得有必要整理一下我的办理步骤,希望对有需要的人有所帮助。 领取

社保失业保险关系异地转移接续办理流程(上海转入深圳)

2024-04-08 09:53:23

本文记录社保中的失业保险关系异地转移接续(从上海转到深圳)的办理流程记录,希望对你有所帮助。 登录国家社会保险公共服务平台:https://si.12333.gov.cn/index.jhtml 没有账号可以自己注册,会自动

深圳失业保险金可以领多少个月?深圳失业保险金领取时长期限计算器

2024-03-29 00:23:55

深圳失业保险金可以领多少个月? 根据《广东省失业保险条例》第十七条规定,失业保险金可以领多少个月是根据失业人员的失业保险缴费时间进行核定的,规则如下: 缴费年限一至四年的,每满一年,领取期限增加一个月; 缴费年限四年以上的,超

社保养老保险异地转移办理记录(上海转深圳)

2024-03-28 11:24:34

前言 由于失业的原因,我打算申请失业保险金,在粤省事(深圳政务小程序)里面查询自己的社保参保状态只能查询到 2016 年开始在深圳交的社保记录,五险的所有参保累计月数都只有 89 个月,才想起来我 2016 年 9 月份以前是在上海工作缴纳的社保,离开

JavaScript 数组方法备忘录

2024-03-27 20:31:53

JS 添加/移除数组元素 在 JavaScript 中,数组提供了多种方法来添加或移除元素。这些方法包括 push、pop、shift 和 unshift,它们可以用来操作数组的尾端和首端的元素。 添加元素 arr.push(...items): 在数组的尾端添加一个或多个元素。 arr.unshift(...items): 在数组的首端添

防御性编程和进攻性编程

2024-03-25 11:11:52

在软件开发中,防御性编程和进攻性编程是确保代码质量和安全性的两种重要策略。本文将探讨这两种编程方法,并通过对应的代码示例来演示它们的应用。 参考文章: 防御性编程 【真】防御式编程指南 防御性编程(Defensive Progra

忍者代码指南:“防御性编程技巧”保卫你的职业生涯

2024-03-25 09:06:51

忍者代码 在编程界,有一种神秘的艺术,那就是“Ninja Code”。这不是一种编程语言,而是一种编程风格,它的核心原则是让代码尽可能难以理解,从而确保你的岗位安全。毕竟,如果没有人能够读懂你的代码,那么也就没有人能够替代你

现代JavaScript教程学习笔记——JavaScript 编程语言

2024-03-22 19:56:19

前言 最近在学习小程序的开发,看到教程里面的写的 JavaScript 有箭头函数,还有 Promise、async/await 这些内容完全是陌生的,因此搜索了一下,发现了现代 JavaScript 教程,网址:https://zh.javascript.info/,

在Mac/Linux上配置生成SSH密钥免密码登录服务器

2024-03-19 17:17:06

SSH(安全外壳协议)是一种网络协议,用于安全地访问远程计算机。SSH 密钥是一种身份验证方式,允许用户在没有密码的情况下安全地连接到服务器。本文将指导您如何在 Mac 和 Linux 系统上生成新的 SSH 密钥,配置 GitHub 密钥,以及设置 SSH 免密码登录服

成为硬地骇客的第一周

2024-03-15 20:13:22

本周是我成为自由职业独立开发的第一周,记录一下这一周的感受和工作内容。 关于我选择成为硬地骇客(indie hacker)的相关阅读: 程序员中年失业,被迫开启 PlanB——成为自由职业/独立开发者的第 0 天 谈谈我对自由职业独立

Charles抓包教程:如何在苹果macOS和iPhone手机上进行HTTP/HTTPS抓包

2024-03-12 10:43:42

Charles 是常用的抓包工具,由于很长一段时间没有在我的 Mac 上抓过包了,相关证书都已过期。每次配置证书都忘记相关步骤需要去网上到处找教程,索性自己记录一下,希望对其他人也有所帮助。 Charles 的下载安装什么的就不在这里写了,这里只记录使用 Charles 在

谈谈我对自由职业独立开发的理解

2024-03-10 20:59:05

失业那一刻,我并没有手足无措,因为我有自己的 PlanB,我的 PlanB 就是做一个自由职业独立开发者。 只工作,不上班 劳动合同到期公司不续签,加上如今的大环境工作也不好找,于是我选择了不再继续上班,做个自由职业者。 彻底摆脱职场中的精

程序员中年失业,被迫开启PlanB——成为自由职业/独立开发者的第0天

2024-03-08 23:55:31

lastday, 失业啦 公司年前通知我合同到期不续签,今天是我的 lastday,我也失业啦~ 在这期间,经过深思熟虑,我决定开启自己的 PlanB,尝试做所谓的自由职业、独立开发者。今天下午办理完离职相关手续后,回到家开始计划起了我后续规划

SEO技术中noindex和nofollow标签的用法介绍

2024-03-06 12:18:21

SEO(搜索引擎优化)是一种通过改善网站的结构、内容和外部链接等因素,提高网站在搜索引擎中的排名和流量的技术。在 SEO 过程中,我们可能会遇到一些不希望被搜索引擎收录或者传递权重的页面和链接,这时候就需要用到 noindex 和 nofollow 两个标签。那

用ChatGPT创作爆款短视频文案

2024-03-04 15:29:23

让 ChatGPT 教我如何写创作短视频文案的 Prompt 我:我想写一个让 chatgpt 创作爆款视频文案的 prompt,我应该如何写这个 prompt,请给出具体方法和示例 ChatGPT:你想让 ChatGPT 创作爆款视频文案的 prompt,这是一个有趣的需求。我可以帮你提

Linux journalctl 的基本使用

2024-02-26 10:04:04

什么是 journalctl journalctl 是一个命令行工具,它可以用来查看和管理 systemd 日志。systemd 是 Linux 系统的一个初始化系统,它负责启动和管理各种服务和进程。systemd 会记录系统和应用程序的各种事件,比如启动、停止、故障、警告等,这些事件被称为日

我,33岁,失业了。

2024-02-23 16:34:06

当前状态:待下岗 如题,我,33 岁,失业了。 在 2024 年 1 月的最后一天,公司算好了我的剩余假期,如果从 2 月 1 日开始休,休完刚好是我合同到期的时间,我就被上级叫去谈话,大意就是:你的合同即将到期,公司不打算续签,未休的假期有 24 天,

利用ChatGPT对文章进行二创重写

2024-01-07 11:39:01

利用 ChatGPT 对文章进行二次创作,获取重写文章提示词。 步骤 1:使用 ChatGPT 先对一段文字进行改写。 假设你是一个专业的自媒体作家。我希望你能对下方的文字进行二次创作,确保其具有较高的原创性。为了帮助你进行这项任务,请参考以下原创性加强建议

我的 2023 年度总结

2023-12-29 17:18:18

又到一年末,纠结了一番要不要写这个年度总结,本来是决定不写的,主要是懒,记不起这一年都干了什么,不想花时间去整理,而且也没什么好写的,毕竟临终也就一句话,年终更没什么可说的,但是看了看别人的总结,最后还是决定记录一下。 没

Python 打开文件 open 函数中模式 a、a+、w、w+ 和 r+ 之间的区别?

2023-12-29 11:38:10

Python的内置函数open()可以用来打开文件,进行读写操作。但是,你知道open()的参数mode有哪些选项吗?它们分别代表什么含义吗?本文将为你解答这些问题,让你更好地理解和使用Python的文件操作。 mode参

2024 想做自媒体,微信公众号到底还值不值得做?

2023-12-26 08:07:27

在网上经常可以看到很多人看不起做公众号的那点收入,因为自己做就只有那几块钱,觉得浪费了自己的时间和精力,觉得根本没有人能通过公众号赚钱。 类似地,也在网上看到过很多个人博客尝试接入谷歌广告,一段时间下来就吐槽不仅没几个收入

如何使用背景图片的懒加载来提高加载时间性能

2023-12-16 10:54:40

图片的懒加载意味着浏览器只在需要的时候才加载图片。在有很多图片的网页上,有效地使用懒加载可以显著地减少初始加载时间。但是背景图片呢?它们不是像标准的图片标签那样被加载的,所以我们经常会看到有大背景图片的网页在性能上有损失

自媒体爆款标题案例参考

2023-12-10 01:22:32

9 种爆款标题形式与案例 1、直接引语+犀利观点 三观不正的华语剧:就算评分再高,我也必须差评 “入职 12 年,辞退一瞬间”:最笨的努力,就是没有成果的瞎忙 “房子比男人靠谱”:有钱女人的快乐,你根本想象不到 “你为什么不结婚”:因为低

自媒体文章爆款标题怎么写?

2023-12-10 01:02:40

自媒体文章标题是为了吸引读者点击,提高打开率的,而不是概述文章内容,或展现文采。写文章的目的,就是获得高转发,从而带来阅读及新关注粉丝。 新媒体阅读环境下,读者是浅阅读,看文章利用的是碎片化时间,比如地铁、公交、上厕所、等

网站域名后缀鄙视链的真相:.cn域名对SEO的影响

2023-12-02 17:02:30

你是否曾经听说过网站域名后缀鄙视链?这是一种根据网站域名的后缀来判断其质量、价值、地位等的心理现象。这种现象并没有客观的依据,而是受到个人的偏见、习惯、认知等因素的影响。 例如,有些人认为.com 后缀的域名是最优越的,因为

常用的建站SEO工具

2023-10-15 02:04:13

WEB 分析工具 https://www.similarweb.com/ https://app.ahrefs.com/site-explorer https://zh.semrush.com/analytics/overview/?searchType=domain https://moz.com/domain-analysis https://seo.chinaz.com/ https://sentry.io 数据统计 https://clarity.microsoft.com/ https://umami.is/ https://tongji.baidu.com https://51.la https://analytics.google.com https://matomo.org/ 网站收录 https://search.google.com/search-console https://www.bing.com/webmasters https://ziyuan.baidu.com https://zhanzhang.toutiao.com/ https://zhanzhang.so.com/ https://zhanzhang.sm.cn/ https://zhanzhang.sogou.com/ (要审核) 趋势指数 https://index.baidu.com https://data.weibo.com/index https://trends.google.com 微信指数 https://trends.so.com 域名选取工具 https://instantdomainsearch.com/ 浏览器插件 https://www.seoquake.com/index.html

免费图床之微博外链图片解决方案

2023-10-14 18:59:07

图片发到微博上用微博做图床主打的是一个省存储费用和带宽费用,缺点就是不可控,微博一直都在做防盗链升级,直接访问图片链接返回 403,本文记录最新可用的微博图床解决方案。 PS. 如果有一天实在无法使用微博做图床,微信公众号也是一种

趣站分享——渣男:说话的艺术&舔狗日记

2023-07-02 16:16:10

分享两个语言类艺术网站给大家。 渣男:说话的艺术 网址链接:https://lovelive.tools/ 每点击再来一条,就会出来一句渣男语录,左上角一键喝茶可以切换到绿茶语录。 海王投票榜 我从来没有绿过谁 我只是忘了说分手 情不

新网站1周年抽奖活动复盘

2023-06-30 16:33:42

本文主要内容是讲述我是如何策划新网站的第一次微信公众号和网站联动线上运营活动的思路。 关于新网站 这个新网站是我去年 6 月(2022.6.14)开始利用业余时间写的网站。 在 4 月份就开始计划开发这个网站,但是一直拖着没开工,直到

新网站微信公众号周年活动抽奖代码公示

2023-06-27 11:40:45

# 新网站一周年活动抽奖代码 import hashlib # TODO: 2023年6月30日上证指数收盘价格 sse_index = "3202.06" lucky_number = int(sse_index.split(".")[1]) print(f"630上证指数收盘价:{sse_index} 中奖参考数:{lucky_number}(昵称Hash转整数最后2位越

Golang 实现 RSA 加密签名

2023-06-15 17:57:52

这篇文章将描述 RSA 算法的作用,以及我们如何在 Go 中实现它。 RSA (Rivest–Shamir–Adleman) 加密是使用最广泛的安全数据加密算法之一。 它是一种非对称加密算法,也就是说“单向”。在这种情况下,任何人都可以轻松加密一

Golang 中的类型断言与类型转换

2023-06-15 17:26:47

在Go语言中,类型断言(Type assertions)和类型转换(Type conversions)似乎是一个令人困惑的主题,因为它们看起来都做同样的事情。 在这篇文章中,我们将看到断言和转换实际上是很不同的,还会深入了解在

Go 中的功能选项:在 Golang 中实现 Options 模式

2023-06-15 15:31:37

本文介绍了Go中的功能选项以及如何使用Options模式实现它们。 功能选项采用函数额外参数的形式,扩展或修改其行为。以下是一个使用功能选项创建新的House结构体的示例: h := NewHouse( WithConcrete(), WithoutFireplace(), ) 在这里,NewHouse 是一个构造函数

在 Golang 中实现基于 JWT 的身份验证

2023-06-15 14:26:55

在这篇文章中,我们将了解基于 JWT(JSON Web Token)的身份验证是如何工作的,以及如何在 Go 中构建服务器应用程序以使用 golang-jwt/jwt 库来实现它。 JSON 网络令牌 (JWT) 允许您以无状态方式对用户进行身份验证,而无需在系统本身上实际存储有关他们的

Golang 中的 Session Cookie 身份验证

2023-06-15 10:35:49

本文介绍如何在 Golang 服务器应用程序中使用 session cookie 对用户进行身份验证。 当用户登录到我们的应用程序时,我们需要知道他们在所有HTTP方法和路由中的身份。 一种方法是存储用户的“会话”(session)。一旦用户登录成功,会话开始,并在

常用ChatGPT Prompt提示词

2023-05-25 11:00:09

本文记录我个人常用的 ChatGPT Prompt 提示词,希望对你有所帮助。 文案写手 我希望你充当文案专员、文本润色员、拼写纠正员和改进员,我会发送中文文本给你,你帮我更正和改进版本。我希望你用更优美优雅的高级中文描述。保持相同的意思,但使它们更文

分享几个 Logo 生成工具网站

2023-05-25 10:28:08

分享几个我常用的 Logo 在线生成工具: DesignEvo DesignEvo 是一款免费的在线徽标制作工具,拥有 10,000 多个模板,任何人都可以使用这些模板在几分钟内制作出引人注目的独特徽标。 DesignEvo 的用法比较传统,通过关键词查找对应的 Logo 模板,然后可以在此基础上自己进行修改调

Golang Make 函数——初始化切片、映射和通道

2023-05-05 16:42:03

Go 有一个特殊的 make 函数,可用于初始化通道、切片和映射。 使用 make,我们可以指定正在创建的数据类型的内存和容量限制,为我们提供使用常规构造函数无法实现的低级别控制。 基本用法 make 是 Go 中的一个特殊函数,它可以接受不同数量的类型和

在 Golang 中使用 Iota——使用 Iota 声明增量常量值

2023-04-28 14:31:56

Go 的 iota 怎么用?在这篇文章中,我们将了解 Go 中的“iota”标识符、它的使用方式以及何时不使用它。 “iota”标识符用于表示 Go 中基于整数的常量,是声明常量序列的便捷方式,同时保持代码可读性。 使用 Iota 进行常量声明 通常,常量可以通

新域名两周内在谷歌上排名第一:以下是我寻找易于排名的关键词的过程

2023-04-27 09:56:39

最近读到了一篇内容非常有价值的关于 SEO 的干货文章,原文:New domain ranked #1 on Google within two weeks: Here’s my process for finding easy-to-rank keywords。 本文是对这篇文章的翻译,留作笔记以便后续实操,有不准确的地方欢迎指正。 新域名两周内在谷歌上排名第一:以下是我寻找易

行为设计模式——访问者模式

2023-04-26 17:03:33

访问者(Visitor)模式是一种行为型设计模式。通过访客模式可以为类添加方法而不需要对其做任何调整。 通俗的讲就是在原类上再添加一个方法专门用来接收来访的访问者对象,这个接收访问者的方法中通过调用这个访问者对象的入口方法

行为设计模式——模板方法模式

2023-04-26 15:40:47

模板方法(Template Method)模式是一种行为设计模式,它在超类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。 以直播场景中创建直播为例,我们有两种类型的创建方式:即时型直播和预约型直播。

行为设计模式——策略模式

2023-04-26 11:58:21

策略(Strategy)模式是一种行为设计模式,它会将策略实现方案抽取到一组被称为策略的类中,调用方还是调用同一个对象,不需要关注实现细节,只需要在参数中指定所需的策略即可。 什么时候使用策略模式: 当一个对象需要提供不同的

行为设计模式——状态模式

2023-04-25 16:37:29

状态(State)模式是一种行为设计模式,是一种基于有限状态机制的设计模式。在这种设计模式中,行为是由相应的状态来决定的。 如果一个对象的实现方法会根据自身的状态而改变,就可以使用状态模式。 比如主播创建了一个直播计划,直播

行为设计模式——观察者模式

2023-04-25 15:54:02

观察者(Observer)模式也叫事件订阅者模式,是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个 “观察” 该对象的其他对象。 假如你有两种类型的对象: 顾客和商店。顾客对某个特定品牌的产品非常感兴趣(例

行为设计模式——备忘录模式

2023-04-25 10:21:22

备忘录(Memento)模式是一种行为设计模式, 允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。 在文字编辑器的示例中,我们可以增加一个可以保存历史快照的字段。编辑器每次执行操作前,存储在 history 中的备忘录栈都会生长。

行为设计模式——中介者模式

2023-04-24 17:58:25

中介者(Mediator)模式是一种行为型设计模式。在中介者模式中创建了一个中介对象来负责不同类间的通信。因为这些类不需要直接交互,所以也就能避免它们之间的直接依赖,实现解耦的效果。 中介者模式的一个典型案例是老式小火车站

行为设计模式——迭代器模式

2023-04-24 17:01:40

迭代器(Iterator)模式是一种行为型模式。在这种模式中,集合结构会提供一个迭代器。通过这个迭代器可以顺序遍历集合中的每个元素而不需要暴露其具体的实现。 示例代码: package main import ( "fmt" ) // Iterator 接口: 这个接口会定义一些基础的操作函数

行为设计模式——命令模式

2023-04-24 15:28:42

命令(Command)模式是一种行为型模式。它建议将请求封装为一个独立的对象。在这个对象里包含请求相关的全部信息,因此可以将其独立执行。 命令模式试图做到这样的结果:让命令和对应功能解耦,并能根据不同的请求将方法参数化、延

行为设计模式——责任链模式

2023-04-23 18:59:13

责任链(Chain of Responsibility)模式是一种行为设计模式,允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。 以医院为例。在一个医院中会有如下职责成员

结构型设计模式——代理模式

2023-04-23 18:27:00

代理(Proxy)模式是一种结构型设计模式。如果你需要在访问一个对象时,有一个像“代理”一样的角色,她可以在访问对象之前为你进行缓存检查、权限判断等访问控制,在访问对象之后为你进行结果缓存、日志记录等结果处理,那么就可以

结构型设计模式——享元模式

2023-04-23 17:19:47

享元(Flyweight)模式是一种结构型设计模式, 它摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相同状态, 让你能在有限的内存容量中载入更多对象。 当对象有一些可以共享的内部属性或当需要创建大量对象以至于

结构型设计模式——外观模式

2023-04-23 16:31:02

外观(Facade)模式是一种结构型设计模式。这种模式的作用是隐藏系统底层的复杂逻辑,只提供一个简单易用的接口给调用者。通过外观模式,将系统底层所需要的各种接口整理为一个通用的接口以便于调用方使用。换句话说,就是外观模式

结构型设计模式——装饰模式

2023-04-23 15:15:43

装饰器(Decorator)模式是一种结构型设计模式。通过装饰器模式可以为一个对象添加额外的功能而不需对其作出调整。 有时候我们需要在一个类的基础上扩展另一个类,例如,一个披萨类,你可以在披萨类的基础上增加番茄披萨类和芝士

结构型设计模式——组合模式

2023-04-23 14:50:35

组合(Composite)模式也被叫做对象树(Object Tree)模式,是一种结构型设计模式, 你可以使用它将对象组合成树状结构, 并且能像使用独立对象一样使用它们。 当我们想把一组对象当做一个整体来处理时就可以考虑使用组合

结构型设计模式——桥接模式

2023-04-23 12:06:43

桥接(Bridge)模式是一种结构型设计模式, 可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用。 桥接模式的理念就是:“将抽象与实现解耦,将不同类别的继承关系改为关联关系。 ” 桥接模

结构型设计模式——适配器模式

2023-04-23 10:14:56

适配器(Adapter)模式是一种结构型设计模式。我们用常用的两种笔记本电脑来说明一下这种设计模式。 我们常用的笔记本无非是这两大类: Macbook Pro Windows Laptop 当前这两类笔记本常见的一个区别大概是USB接口的类型了: Macbook Pro的USB接口现在

MySQL 为每个 Group 分组选择最新的一条记录进行排序

2023-04-18 12:54:07

我们在表格中有一些数据(查看下表)。表中有 id 为主键, user_id 是用户 id,balance 是用户账户余额。 这张表是所有用户的账户余额流水表,记录了每个用户账户余额变化的历史记录。 我们的需求是找到每个用户的最新的账户余额,并对其进行

创建型设计模式——单例模式

2023-04-07 19:04:12

单例模式(Singleton)是一种创建型设计模式,让你能够保证一个类只有一个实例,并提供一个访问该实例的全局节点。 ##问题 存储着重要对象的全局变量,往往意味着“不安全”,因为你无法保证这个全局变量的值不会在项目的某个引

创建型设计模式——原型模式

2023-04-07 18:44:03

原型模式(Prototype)也称为克隆模式,是一种创建型设计模式,使你能够复制已有对象,而又无需使代码依赖它们所属的类。 问题 如果你希望生成一个对象,其与另一个对象完全相同,该如何实现呢? 如果遍历对象的所有成员,将其依次

创建型设计模式——建造者模式

2023-04-07 16:37:21

建造者模式(Builder)是一种创建型设计模式, 使你能够分步骤创建复杂对象。 该模式允许你使用相同的创建代码生成不同类型和形式的对象。 适合应用场景: 建造者模式通常适用于有多个构造器参数或者需要较多构建步骤的场景。使用建造

创建型设计模式——抽象工厂模式

2023-04-07 12:09:26

抽象工厂模式(Abstract Factory)基于工厂方法模式。两者的区别在于:工厂方法模式是创建出一种产品,而抽象工厂模式是创建出一类产品。这二种都属于工厂模式,在设计上是相似的。 抽象工厂模式和工厂方法不太一样,它要解

创建型设计模式——工厂方法模式

2023-04-07 11:33:24

工厂方法模式(Factory Method)是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型。 工厂方法模式适合应用场景: 当你在编写代码的过程中,如果无法预知对象确切类别及其依赖关系时,可

Golang-实现设计模式中的命令模式

2023-04-07 10:17:59

本文将解释设计模式中的命令模式,在哪里使用它,以及如何在 Go 中实现它。 顾名思义,命令模式用于创建和执行“命令”。不同的命令有自己的实现,但是执行的步骤是一样的。 命令接口 实现命令模式的基本单元是Command接口: type Command interface { execute()

设计模式六大原则

2023-04-06 17:31:53

设计模式是软件设计中常见问题的典型解决方案。它们就像能根据需求进行调整的预制蓝图,可用于解决代码中反复出现的设计问题。 模式的概念是由克里斯托佛·亚历山大在其著作《建筑模式语言》中首次提出的。本书介绍了城市设计的 “语言”,

Golang 中的函数与方法

2023-04-06 16:27:02

这篇文章将描述 Go 中函数和方法之间的主要区别,以及何时使用它们最好。 函数和方法都在 Go 中被广泛使用,以提供抽象并使我们的程序更易于阅读和理解。从表面上看,函数和方法看起来很相似,但存在一些重要的语义差异,这些差异会对代码的可

Golang 中的多态

2023-04-06 15:54:32

在 Go 中实现多态可以使用接口,当然,如果你不喜欢使用接口,也有其他方式,这篇文章旨在向你展示实现多态的两种方式,如果您需要实现多态性,接口是第一选择。 首先,让我们看看我们想要做什么: var dog, duck *Animal dog = NewDog("fido") duck = NewDuck("donald") fmt.Println(dog.makeNoise()) // fido says woof! fmt.Println(duck.makeNoise()) // donald says quack!

Javascript中的闭包

2023-04-06 14:41:35

闭包是 javascript 中最重要但经常被误解的概念之一。理解闭包可以解锁其他情况下难以使用的编程模式。在这篇文章中,我们将了解什么是闭包,并通过几个例子来巩固我们对它们的理解。 函数的生命周期 首先我们来看一个简单的函数: function getValue(){ var a = 1 var b =

ChatGPT 人工智障问答

2023-04-05 00:48:01

在日常生活中,我们经常会遇到一些愚蠢而又滑稽的问题,让我们不禁感叹人类思维的奇妙之处。有时,我们会选择用幽默的语言回答这些问题,展现我们的机智和幽默感。近期,我们邀请了最新型号的 AI 聊天机器人 ChatGPT,展开了一场精彩

Golang 中的数据竞争以及如何解决它们

2023-04-04 18:09:29

Go以其易于构建并发程序而闻名。但是,所有这些并发性带来了可怕的数据竞争的可能性——如果您不幸在代码中遇到它,这将是最难调试的bug之一。 在这篇文章中,我们将介绍一个导致数据竞争的示例程序,并使用竞争检测器工具检测竞争条

在 Golang 中使用 Context 示例

2023-04-04 14:09:02

在这篇文章中,我们将了解 Go 的 context 包简单使用方法。 取消上下文 为什么我们需要取消? HTTP 服务器调用数据库并将查询的数据返回给客户端是一个常见业务场景,但如果客户端在中途取消请求会怎样?例如,如果客户端在请求中途关闭浏览器。此时,我

修改 Git 提交者的用户名和邮箱

2023-04-03 17:36:19

git 使用了错误的账号配置进行了提交,想要修改提交记录中的作者用户名称和邮箱,可以执行以下这个脚本一键批量修改。 使用方法:修改以下脚本中的 OLD_EMAIL, CORRECT_NAME 和 CORRECT_EMAIL 为你的实际值后,执行脚本即可: #!/bin/sh # update git committer info git filter-branch --env-filter ' OLD_EMAIL="

Golang 如何实现密码认证和存储

2023-03-31 10:21:21

本文将解释如何在 Go 中使用基于密码的身份验证来注册和登录用户。 任何存储密码的应用程序都必须确保密码被安全地存储。您不能只将密码存储为纯文本,理想情况下,即使您可以访问用户的数据,你也不可能猜到您的用户的密码。 在这篇文章中,

Golang JSON 完整指南

2023-03-29 18:35:59

这篇文章记录在日常的 Golang 开发中,经常会使用到的 JSON 处理技巧。 JSON(JavaScript Object Notation)是一种简单的数据交换格式。从语法上讲,它类似于 JavaScript 的对象和列表。它最常用于 Web 后端和在浏览器中运行的 JavaScript 程序之间的通信,

使用 Golang 构建 Web 应用程序

2023-03-28 09:40:17

Go 作为构建 Web 应用程序的首选语言越来越受欢迎。 这在很大程度上归功于它的速度和应用程序性能,以及它的可移植性。互联网上有很多资源可以教你如何用 Go 构建端到端的 Web 应用程序,但大多数情况下,它们要么以孤立的博客文章的形式散落各处,

为什么是 Go:Golang 的好处

2023-03-27 17:06:59

这是一个更高层次的概述,是什么让 Go 适合于: Web开发 云和网络服务 DevOps 和站点可靠性 命令行界面 二进制可执行文件 二进制可执行文件可能是 Go 最不受重视的方面之一。能够编译为单个可执行二进制文件意味着: 不需要运行时解释器,因此二进制文

Golang 中的 Channel 简介

2023-03-27 10:23:00

这篇文章重点介绍了通道(Channel)在 Go 中的工作方式,以及如何在代码中使用它们。 在 Go 中,Channel 是一种编程结构,它允许我们在代码的不同部分之间传输数据,通常来自不同的 goroutine。 创建通道 我们可以通过使用

我让ChatGPT 4做了16道犯罪心理学测试题,结果让人惊讶!

2023-03-26 15:42:50

AI 与 犯罪心理学 AI 发展如此迅速,我们不禁好奇:它们在面对一些复杂的犯罪心理学问题时会做出怎样的回答?我决定让 ChatGPT-4 挑战 16 道极具挑战性的犯罪心理学测试题。接下来,我将与您分享这段有趣的探索过程。 在科技发展的推动下,人工智能已经渗

在 Javascript 中使用枚举

2023-03-24 18:05:15

这篇文章将解释如何在 Javascript 中实现和使用枚举(或枚举类型)。 枚举是包含有限数量固定值的类型,这与 Number 或 String 等可以包含广泛值的类型相反。 这在许多情况下都很有用:例如,在描述温带气候的季节时,您需要将选项限制为某些可能的值:Summe

从命令行共享文件或目录到 IOS 和 Android 设备

2023-03-16 18:27:30

本文向大家分享一个可以在电脑端和移动端共享文件的工具——sharing。 sharing 是一个命令行工具,无需额外的客户端应用程序即可将目录和文件从 CLI 共享到 iOS 和 Android 设备。 为什么会有这种需求呢? 一个真实的场景:我们使用 Ubuntu 系统办公,由于是办

趣站分享——This Sneaker Does Not Exist

2023-02-27 14:48:16

This Sneaker Does Not Exist 这个网站上所有的运动鞋图片都是由机器学习模型生成的,实际上并不存在。 网站链接:https://thissneakerdoesnotexist.com/ 该网站通过使用 NVIDIA 的 Stylegan2-ada 架构,从网上商店和运动鞋市场上抓取了大约

不登录如何复制CSDN代码

2023-02-20 19:32:36

方法:将 HTML 代码中代码块所在位置的 pre 标签和 code 标签上的 css 样式中的 user-select: none; 全部去掉即可复制。 打开开发者工具的查看器,找到要复制的代码的 pre 和 code 标签,鼠标选中后,查看其css样式,将两个标签的 *user-select: none 全部都取消勾选即可复制。 或者更加简单粗

趣站分享——gazer

2023-02-20 16:46:06

gazer - GitHub analysis and discovery gazer 旨在分析 GitHub 仓库的 Follower,根据仓库的 Follower 来推荐其他相关的项目仓库。它使用 Star 数来计算两个项目之间的相似度指数。 网站链接:https://www.yasiv.com/github/#/ 这个网站有一个很实用

AIGC 画画工具

2023-02-19 22:06:14

AI 绘画工具 DALL·E 2 Collage - Artbreeder ELBO Art 达摩院通义文生图大模型 ERNIE-ViLG AI 作画大模型 Stable Diffusion Playground Freehand意绘 皮卡智能 文心一格 NightCafe Creator PicSo NovelAI Midjourney DreamStudio 6pen Art Deep Dream Generator starryai

趣站分享——Slap Kirk

2023-02-15 17:48:19

Slap Kirk Slap Kirk 该网站同样是一个没用且沙雕的网站,打开网站你会看到《星际迷航》中的 Kirk 舰长,点击 Play 按钮,你可以通过鼠标左右移动来让 Kirk 扇自己耳光。 也可以进入 Spock 模式,该模式下你可以通过鼠标的移动来让 Kirk 扇 Spock 的耳光。 使用时一定要打开声音,

趣站分享——Pointer Pointer

2023-02-14 18:18:15

Pointer Pointer 这是一个好像没什么用处但是创意和沙雕气息十足的网站。 打开网页(建议电脑浏览器)后,网页上会出现一张图片,这个图片上的人的手指会指向你的鼠标所在的位置。 移动鼠标,等待图片加载,又会有新的人物出现用手指指着你的鼠标😂 网址

如何将 Sentry 上的 Issues 全部设置为已解决状态

2023-02-14 17:03:11

Sentry 是什么 Sentry 是开发人员优先的错误跟踪和性能监控平台,可帮助开发人员了解真正重要的事情、更快地解决问题并不断了解他们的应用程序。 官网:https://sentry.io Github: https://github.com/getsentry/sentry 将 Sentry 的 Issues 标记为已解决 Sentry 的 Issues 的中文翻译是“问题”,当程

趣站分享——AutoRegex

2023-02-14 09:26:03

AutoRegex AutoRegex:用自然语言处理(NLP)将普通英语转换为正则表达式。 通过 AutoRegex 我们不必手动编写正则表达式, AutoRegEx 使用 OpenAI 的 GPT-3 从纯英语生成正则表达式,可以将英语和正则表达式来回转换,只需输入对正则表达式的英文描述即可自动生成对

身体脂肪率在线计算器

2023-02-13 11:22:04

构成身体的成分之中最多的是水分,约占体重50%- 60%,其次是脂肪。其他则是包含於肌肉中的蛋白质、糖、以及包含在骨头中的无机物。 身体脂肪率是指人体内的脂肪量在体重中所占的比率。 男生体脂率约17-23%; 女生体脂率约20-

基础代谢率(BMR)计算器

2023-02-13 10:34:04

基础代谢率是指人体维持心跳、呼吸等基本生理活动所消耗的热量。 基础代谢率(Basal Metabolic Rate,BMR)是指在自然温度(18 ~ 25℃)环境中,清醒、静卧、空腹、思想放松状态下,维持生命(心跳、呼吸、腺体分泌、肾脏过滤排泄、

Facebook 无法登录提示没有访问公共主页的权限解决办法

2023-02-11 11:50:16

登录时 Facebook 提示:“拒绝访问,你目前没有访问公共主页的权限。” 猜测是由于 IP 变了才被限制登录的,尝试了修改 VPN 节点重新登录也不行。 各种尝试后,最后是通过点击忘记密码,接收手机验证码重新设置密码,然后用手机号再登录就成功了。

趣站分享——千亿像素看中国

2023-02-10 14:15:09

千亿像素看中国 千亿像素看中国是一个独特的网站,它能够在线观看中国各大城市美景的千亿像素超高清全景实景图片。 世界上还不存在可以拍摄千亿像素照片的相机,网站通过在高楼楼顶和无人机上使用单反相机拍摄了几千张照片,并控制照片间距

MBTI 十六型人格恋爱配对

2023-02-08 11:06:43

MBTI 是什么? MBTI 是性格测验分类指标,是由 Isabel Briggs Myers 与其母亲 Katharine Cook Briggs,基于瑞士心理学家 Carl Jung 著作《Psychological Types》(心理类型),经历长久研究后于 1942 年所提出的性格评估测试。 透过测验的问答倾向,大致组合成 16

趣站分享——亲戚关系计算器

2023-02-06 09:14:52

亲戚关系计算器 中国亲戚关系计算器是一款最为全面准确的亲戚称呼计算器及亲戚关系在线查询工具,快速简单的查询家庭亲戚称呼,让你轻松得知各个亲戚的具体称呼,是逢年过节走亲访友必备神器,亦可作为家庭启蒙教育应用。 网址链接:htt

趣站分享——今日诗词

2023-02-03 10:43:55

今日诗词 今日诗词可以根据访问者所在的不同地点、时间、节日、季节、天气、景观、城市、事件进行智能推荐一句古诗词名句,并且提供了 API 和 SDK 给开发者使用。 网址链接:https://www.jinrishici.com/ 今日诗词网站

EXCEL 函数公式备忘录

2023-02-02 16:11:10

EXCEL AND 函数用法 场景:判定所有条件的真假,当所有条件都为真,返回True,有一个为假,返回FALSE 语法:=AND(条件1,条件2····) 案例: =AND(1=1, 2=2, 3=3) ' TRUE =AND(1=1, 2=2, 3=0) ' FALSE EXCEL OR 函数用法 场景:判定所有条件的真假,当有一个条件为真,返

趣站分享——设计师和艺术家的调色板 Color Hunt

2023-02-02 12:03:03

设计师和艺术家的调色板 Color Hunt Color Hunt 是由 Gal Shir 创建的美丽调色板的开放集合。 Color Hunt 最初是一个个人小项目,旨在与一群设计师朋友分享流行的色彩组合。该系列不断扩大,现在每天都被全世界成千上万的人用作方便的资源。 Color Hunt 的创建旨在颂扬色彩之美

趣站分享——赛可心理测试:免费心理测试

2023-02-02 10:54:09

赛可心理测试:免费心理测试 赛可心理测试提供免费的心理测试,通过心理、性格、爱情、婚姻、职场、财富、人际等测试带你进行有趣的心灵之旅,帮助你解读情感密码轻松了解自己,让你快速正确的读懂周围的人和事。希望能成为你事业的好指导

获取无水印京东图片

2023-02-01 18:31:08

比如说我有一张京东图片,如下: 图片网址:https://img14.360buyimg.com/n0/jfs/t1/131052/18/4038/120743/5f06eb3aE341e7c84/6732b6b86cbc

Golang lint 修复方法记录

2023-02-01 17:01:51

lint 错误提示: httpNoBody: http.NoBody should be preferred to the nil request body (gocritic) 错误代码: req, err := http.NewRequest(http.MethodGet, url, nil) 错误原因:Golang 调用 http.NewRequest(method, url string, body io.Reader) 方法,没有请求体时,对 body 参数传了 nil。 修复方法:将 NewRequest 第三个参数 nil 改为 http.NoBody , NoBody 是一个实现了 io.Reader 接口的对象。 req, err := http.NewRequest(http.MethodGet, url, http.NoBody) lint 错误提示: ioutilDeprecated:

如何在 Python 中将字符串转换为 datetime 或 time 对象

2023-02-01 10:24:59

Python datetime 模块包括 datetime.strptime() 类方法,用于将字符串转换为 datetime 对象。 Python time 模块包含一个类似的函数 time.strptime(),用于将字符串转换为 struct_time() 对象。 本文将介绍如何使用 strptime() 将字符串转换为 datetime 和 time 对象。 使用 datetime.strptime() 将字符串转换为 datetime 对象 datetime.strptime 方法的语法是:

计算两个日期之间的间隔天数

2023-02-01 09:45:05

使用 Python 计算两个日期之间的天数 在 Python 中,两个 datetime 对象直接相减得到的 timedelta 对象的属性中就有天数差(两个日期之间相差的天数),如下所示: >>> from datetime import datetime >>> delta = datetime(2024, 1, 1) - datetime(2023, 2, 1) >>> delta datetime.timedelta(days=334) >>> delta.days 334 >>> delta.total_seconds() 28857600.0 >>> 以上代码就是计算 2024 年 1 月 1 日 和 2023 年 2 月 1 日之间相

国内访问 Github 慢的解决方法

2023-01-31 17:12:58

国内用户访问 GitHub 慢怎么办 GitHub 这个网站相信大家都比较熟悉,但是在国内访问完全是看缘分,对 GitHub 说"爱"太难了:访问慢、图片加载不出来,甚至根本无法访问。 那么怎么办呢,当然最好的方式是你可以自行搭建代理服务器,这

JavaScript 字符串比较——如何在 JS 中比较字符串

2023-01-17 18:39:04

您可能想比较两个字符串以了解按字母顺序哪个更高或更低,或者查看它们是否相等。 您可以通过多种方式做到这一点。本文将向您展示其中的两个。 1、如何使用 localeCompare 比较字符串 您可以使用 localeCompare 方法比较当前语言环境中的两个字符串。语法如下: string1.localeCompare(string2) localeCompare 返

什么是 DNS 服务器? DNS 服务器解释

2023-01-17 18:31:13

如果没有 DNS 服务器,Web 将根本无法运行。他们负责将域名转换为 IP 地址。然后计算机使用这些 IP 地址定位并连接到 Web 服务器,并将用户引导至正确的网站。 许多人第一次了解 DNS 系统是在 2021 年 10 月,当时由于灾难性的 DNS 配置错误,Facebook

如何成为前端开发人员 – 前端 Web 开发技能

2023-01-17 17:55:43

世界上一些收入最高的专业人士是前端开发人员。他们利用自己的知识和才能设计出吸引人且用户友好的网站。 前端开发人员不需要学位或学校证书即可工作。然而,他们必须了解前端开发、编程语言和前端开发框架的基础知识。 在本指南中,您将首

C++ 中的 Getline – Cin Getline() 函数示例

2023-01-17 17:36:49

在本文中,我们将讨论 C++ 中的 getline() 函数。这是一个接受单个和多个字符输入的内置函数。 在 C++ 中处理用户输入时,cin 对象允许我们从用户那里获取输入信息。但是当我们尝试打印输出具有多个值的用户输入时,它只返回第一个单词。 发生这种情况是

JavaScript Key in Object——如何在JS中判断一个对象是否有 Key

2023-01-17 17:10:01

JavaScript 中的对象是非原始数据类型,它包含了无序的键值对集合。 正如您在上图中看到的那样,key 就是属性,每个对象值都必须有一个 key。 与对象交互时,可能会出现需要您检查特定 key 是否存在的情况。重要的是要注意,如果您知道一个 key 存在,

Python find()——如何在字符串中搜索子字符串

2023-01-17 16:20:58

在编写 Python 代码时,可能需要在一个字符串中搜索和定位另一个特定字符串。 这就是 Python 内置字符串方法派上用场的地方。 在本文中,您将学习如何使用 Python 内置的 find() 字符串方法来帮助您搜索字符串中的子字符串。 find() 方法 - 语法概述 find() 字符串方法内置于 Python 的

C 语言 if 语句 如何使用 C 语言 if — else 语句

2023-01-17 14:48:10

在 C 语言中,您可以控制程序的执行流程。 程序能够决定下一步应该做什么是基于您设置的某些预定义条件的状态。 程序会根据条件是否满足来决定下一步应该做什么。 满足特定条件时做一件事,不满足特定条件时做另一件事,这种行为叫做控制流。

Python 属性——类和实例属性示例

2023-01-17 14:29:10

在 Python 中创建类时,通常会创建可以在类的每个对象之间共享的属性,或者创建对类的每个对象都是唯一的属性。 在本文中,我们将通过示例了解 Python 中的类属性和实例属性之间的区别。 在此之前,让我们看看如何在 Python 中创建一个类。 如何在 Python 中创建一个

strftime — Python datetime 对象转字符串

2023-01-17 14:12:03

datetime 对象允许我们在 Python 中处理日期和时间。但是当我们使用这个对象时返回的值是 datatime 数据类型,而不是字符串。 下面是一个将当前年、月、日和时间打印到控制台的示例: from datetime import datetime current_day = datetime.now() print(current_day) # 2023-01-17 21:50:24.524022 print(type(current_day)) # <class 'datetime.datetime'> 在上面的代码中,我们首先导入了 datetime 对象。 datetime.now() 为

Python 列表排序——如何在 Python 中对列表进行排序

2023-01-17 10:27:42

您可能出于多种原因希望在 Python 应用程序中对列表进行排序。 在本文中,将向您展示如何根据您需要执行的操作以升序和降序对列表进行排序。 Python 中的列表是什么? 列表是 Python 中的一种数据类型,您可以在其中存储不同数据类型(包括嵌套列表)的多个值

React 面试题——面试准备、答案与示例

2023-01-13 11:15:32

React 是一个用于创建用户界面的 JavaScript 库。超过 30,000 个网站使用了它,并拥有超过 70,000 个 GitHub Star。 根据 2021 年 Stack Overflow 开发者调查,React 已经超越 jQuery 成为最受欢迎的 Web 框架,占据约 40.14% 的市场份额。 React 也是最受欢迎的,每四个开发人员中就有一个在使用它。 国

如何在 Excel 中使用 VLOOKUP

2023-01-13 10:16:08

当您在 Excel 中工作时,VLOOKUP 函数可以减少查找信息所花费的时间。当您使用多个 Excel 工作表时尤其如此。 在本文中,您将了解 VLOOKUP 函数的功能,并了解其背后的语法。您还将学习如何使用 VLOOKUP Excel 函数在简单示例的帮助下搜索某个值。 让我们开始吧!

如何在 JavaScript 中循环遍历数组

2023-01-12 15:40:39

数组是一个单独的变量,用于存储不同数据类型的元素,这样就可以通过一个单独的变量访问它们。 它是一个有序的值列表,每个值都被称为一个元素,可以通过索引访问。 知道了这种单个变量包含了一个元素列表后,您可能希望创建一个这些元素的

在 JavaScript 中循环访问对象——如何在 JS 中遍历对象

2023-01-12 14:20:07

在 JavaScript 中,当您听到“循环”这个词时,您可能会想到使用各种循环方法,例如 for 循环、forEach()、map() 等。 不幸的是,对于对象,这些方法不起作用,因为对象是不可迭代的。 这并不意味着我们不能循环遍历一个对象,但这意味着我

Java 中的 charAt()–如何使用 Java charAt() 方法

2023-01-12 12:04:31

Java 中的 charAt() 方法返回字符串中给定或指定索引处字符的 char 值。 在本文中,我们将从 charAt() 方法的语法开始,然后通过几个示例来了解如何使用它。 如何使用 Java 的 charAt() 方法 下面是 charAt() 方法的语法: public char charAt(int index) 请注意,使用 charAt() 方法从字符串返回的字符具有 char 数据类型。

如何使用 CSS 使 Div 居中

2023-01-12 11:15:07

在 Web 开发中,您将面临的一个常见问题是如何将元素放置在页面、容器的中心。这是一个无处不在的“我如何居中一个 div?”问题。 在本文中,我们将了解如何使用各种 CSS 属性使元素居中。我们将在每个小节中看到代码示例,以及所有示例中元素

双斜杠“//”在 Python 中是什么意思?Python 中的运算符

2023-01-12 10:18:47

在 Python 中,您使用双斜杠 // 运算符来执行地板除法(floor division)。此 // 运算符将第一个数字除以第二个数字,并将结果向下取整。 在本文中,我将向您展示如何使用 // 运算符,并将其与常规除法进行比较,以便您了解它的工作原理。

在 Python 中加载 JSON 文件——如何读取和解析 JSON

2023-01-11 16:41:55

在本文中,您将学习如何在 Python 中读取和解析 JSON。 什么是 JSON? JSON 是 JavaScript Object Notation 的缩写。这是一种将数据存储在“名称-值”对中的简单语法。只要值有效,它们可以是不同的数据类型。 JSON不可接受的类型包括函数、日期和 undefined 。 JSON 文件是以

2022 微信读书年度榜单

2022-12-23 14:59:08

我们相信,无论何时,只要不将书丢掉,一切皆不会丢掉。 愿新的一年,书籍仍能带给你爱,自由和浪漫。 —— 二零二二微信读书年度榜单 / WEREAD YEARBOOK OF 2022 以下为微信读书统计的 2022 年度书单,全部已附上对应的购买地址,收藏也好,送朋友也好,有需要的

在 Ubuntu 上安装 .NET SDK 或 .NET Runtime

2022-12-22 16:37:26

如果要开发 .NET 应用,请安装 SDK(包括 Runtime )。或者,如果只需要运行应用,请安装 Runtime 。如果要安装 Runtime ,建议安装 ASP.NET 核心 Runtime ,因为它包括 .NET 和 ASP.NET 核心 Runtime 。 下表列出了当前支持的 .NET 版本及其支持的 Ubuntu 版本: Ubuntu .NET 22.10 7, 6 22.04 (LTS) 7, 6 20.04 (LTS) 7, 6, 3.1 18.04 (LTS) 7, 6, 3.1 16.04 (LTS)

Github 2022 年度报告

2022-12-13 21:18:11

又要到年底了,各大 APP 2022 的年度报告还没出炉,今天就先来看一下 Github 的 2022 年度报告。 2012 年我注册了 Github 账号,当年 12 月 19 日,Github 发布了第一份年度报告,那时候我还是个学生,一转眼就是十年岁月。 以下是我看完 Github 2022 年报告的总结内容,该报

布洛芬 VS 对乙酰氨基酚

2022-12-12 15:11:49

正确认识发热 在这个感冒发热频发的时间,本文记录了通过网络了解到的常用退热药品的功效与起效原理。对于药品的了解当然应该是从专业人士和专业报告中了解,但限于当前的资源与能力边界问题,以下内容都来源于网络,涉及的医学内容仅供参

Golang 使用 Redis ZSET 实现排行榜

2022-11-26 22:04:06

本文介绍如何使用 Golang 采用 Redis 的有序集合 zset 实现一个用户排行榜。 用户排行榜按用户的某一种排序值进行排序,比如充值金额,当该排序值相同时,则需按达成该值的时间先后顺序进行排序,比如两个用户充值金额都是 100 元,则先充满 100 元的用户排名在

Markdown 代码块语言声明列表

2022-11-22 10:08:58

语言名称 Markdown 语言声明 常见文件名 1C Enterprise 1c-enterprise *.bsl 4D 4d *.4dm ABAP abap *.abap ABNF abnf *.abnf AGS Script ags-script, ags *.asc AMPL ampl *.ampl ANTLR antlr *.g4 API Blueprint api-blueprint *.apib APL apl *.apl ASN.1 asn.1 *.asn ASP asp, aspx, aspx-vb *.asp ATS ats, ats2 *.dats ActionScript actionscript, actionscript3, as3 *.as Ada ada, ada95, ada2005 *.adb Adobe Font Metrics adobe-font-metrics, acfm, amfm *.afm Agda agda *.agda Alloy alloy *.als Alpine Abuild alpine-abuild, abuild, apkbuild APKBUILD Altium Designer altium-designer, altium *.OutJob AngelScript angelscript *.as Ant Build System ant-build-system ant.xml ApacheConf apacheconf, aconf, apache *.apacheconf, .htaccess Apex apex *.cls Apollo Guidance

网站接入广告实现副业赚钱

2022-07-30 11:24:49

网站要通过谷歌广告审核还是需要一定优质内容和流量的并且网站链接在审核期间不能使用重定向,百度联盟的接入审核十分苛刻,具体不通过的原因也不给你说清楚。 总之,谷歌广告审核能过,百度广告大概率你过不了。除了谷歌 Adsense 和百度联盟以外

Gin 使用 GNU gettext 方式实现 i18n 国际化多语言

2022-06-23 10:50:19

i18n 国际化多语言本质上就是先写好一堆映射,在根据想要的语言取对应的文字。 Golang 的 i18n 多语言方案网上查了一下,文章都讲的不太细致,而且代码看起来也不太好理解。 之前写 Python 代码时有使用过 pybabel 做多语言集成,通过命令生成 pot、po、mo 等文

记一次由 MySQL UPDATE 语句导致锁等待后引发的服务炸裂

2022-05-07 20:35:35

场景描述 接收到 P99 超时告警,定位到某接口导致,接口是由同事实现的,逻辑较简单,是一个 MySQL 的 INSERT OR UPDATE 逻辑, 一个请求过来,判断某个非主键字段是否存在,不存在则 INSERT 插入,存在则按该字段 UPDATE 更新其他字段。 超时告警在触发与恢复之间反复触发,

我的 2021 年度总结

2021-12-31 14:00:53

好几年没有记录过年终总结了,今年发生了太多改变,觉得有必要记录一下。 年度关键词:转折。 今年最重大变动是换了工作,目前来看不好说是一个非常好的选择,但至少是一个不算差的选择。不管是工作心态、愉悦度、工作内容和接触的技术以及

Golang JSON 序列化时 HTML 特殊字符转义问题分析

2021-11-21 20:19:45

场景复现 在 API 实现中返回一个 JSON 结果,其中有一个字段为 URL 链接,客户端拿到该链接后做请求,URL 链接中存在多个使用 & 连接的 querystring 参数。 服务端实现时,通过构造结构体后返回对应的 JSON 序列化结果。 但是请求接口时发现 URL 链接中的 & 符号被自动转

Golang 运行时除数为 0 返回 Inf

2021-11-21 18:23:31

在 Golang 中,除数为 0 时,常规情况下是无法编译通过的,但是如果除数是由运行时决定的,那么为除数为 0 时则不会 panic,而是实现为 IEEE 754 标准,返回 Inf。 The result of a floating-point or complex division by zero is not specified beyond the IEEE-754 standard; whether a run-time panic occurs is implementation-specific. IEEE 754 specifies five arithmetic exceptions that are to be recorded in the status

Traefik 简介以及中间件插件开发

2021-10-11 17:22:19

Traefix 简介 Traefik 是整个系统的网关大门,负责拦截并路由每个传入的请求,它不需要像Nginx这类反向代理一样需要一个配置文件来配置所有可能路由,而是实时的通过服务发现来自动更新路由规则,由服务自己告诉它该服务负责处理哪些请求。 Traefik 的架

《投资最重要的事》读书笔记

2021-08-27 17:07:28

关于作者 霍华德·马克斯 (英语:Howard Stanley Marks, 1946年4月23日-)是一位美国投资者,企业家和作家。橡树资本管理创办人。 1946年,霍华德·马克斯出生于美国纽约的一个犹太裔家庭,在皇后区长大。尽管他是犹太家族,但却以基

Elasticsearch 性能优化实践纪要

2021-08-05 16:27:00

ES 性能优化实践:节点负载不均衡 现象: 每个索引使用默认的 1 个分片,1 个副本,在 3 节点集群出现负载不均衡现象,两个节点 cpu 负载很高,另外一个节点 cpu 负载更低。 原因: 分片+副本一共 2 个,只能被分散到两个节点上,查询请求只能命中这两

使用 Github Actions 自动部署 Golang 应用到 VPS 服务器

2021-06-19 16:12:08

环境说明 使用 GitHub Actions 可以在你提交代码后自动将最新代码编译发布部署到你的 VPS 服务器,这里记录一下配置步骤。 服务没有使用 Docker 部署,直接通过 supervisord 启动二进制文件,期望每次提交代码后自动完成编译部署发布上线,通过 Github Actions 实现自动化部署。 自动部署

实现自定义的 Gin Logger 中间件

2021-05-13 15:49:52

gin 的中间件原理解析 在 gin 中,中间件是一系列 gin.HandlerFunc 链,它的函数签名类型和我们业务中写的URL对应的 handler 是一样的,都是gin.HandlerFunc。 gin 创建实例时返回一个 Engine,该 Engine 包含一个 RouterGroup,而 RouterGroup 是一个 IRoutes

php-fpm 超时原因分析

2021-05-13 15:25:22

背景 线上PHP服务,同一台机器上部有AB两个服务,A接收外部请求后再通过本地nginx请求部署在本地的B服务获取数据,同时也有大量的请求直接请求B服务获取数据,偶发会在一段时间内Nginx大量返回504请求超时和少量50

Golang 并发 append slice 时的并发安全问题分析与总结

2021-05-13 08:00:00

背景 导出数据库中的数据,由于数据量巨大且查询复杂,完成导出的时间很长,因此通过将并发查询然后将结果合并到一起。 在导出的数据量只有30多万时,导出的记录数和sql count出的数量一致; 但当导出超过数据量超过百万时,导出的

Nginx+Lua+Redis 实现基础的令牌桶算法限流

2020-06-16 15:17:02

关于令牌桶( token bucket ) 令牌桶限流的原理是系统以一个恒定的速度往固定容量的桶里放入令牌,当有请求进来时,需要先从桶里获取并消耗一个令牌,当桶里没有令牌可取时,则拒绝服务或让请求等待。 如图: 每隔 1/r 秒向 bucket 中填充一个 token ; bucket 最多只能存

Go 单元测试 gostub 打桩使用方法

2020-06-02 15:10:33

golang 单元测试中常用以下 4 个库方便测试代码的编写: gostub 主要用来给变量、函数、过程打桩 但是给函数打桩时,需要做侵入式修改 convey 主要用途是用来组织测试用例的,提供了很多断言,兼容go test,有 web ui ,保存代码可自动跑测试 gomock 主要用来给接

在 Zap 中集成 Sentry 自动上报 Error 事件

2020-03-15 10:03:10

在项目中发生了错误时我们都会打印 Error 级别的日志,但是即使有日志采集,在对发生 Error 时的告警通知和信息采集都不一定能快速且完善,目前对日志的告警也只是限于一些指标上的阈值告警,对于一些偶发或者非必现的 Error 其实我们还是很难及时发现。

英国一路向北10日游

2020-02-05 10:02:41

2019 年国庆和 5 位小伙伴一起去了英国旅游,行程结束后自己懒得整理游记,于是转载好友蕾酱拌饭笔下的游记并适当添加修改~ Day 1(9 月 26 日):HK 机场出发 因为 PK 要参加婚礼,英国行是大半年前约定好的行程,3 月份买好的机票,因为航司破产

Zap 源码阅读笔记

2020-01-16 18:56:42

zap.Logger 日志Logger结构体,以此调用打印日志内容,定义如下: type Logger struct { core zapcore.Core development bool name string errorOutput zapcore.WriteSyncer addCaller bool addStack zapcore.LevelEnabler callerSkip int } zapcore.Entry 日志主体内容结构体,表示一条具体日志,定义如下: type Entry struct { Level Level Time time.Time LoggerName string Message string Caller EntryCaller Stack string } zapcore.CheckedEntry 经过检查之后的日志内容结构体,core

Golang 技术分享|我和 Dave Cheney 有个约会

2019-04-29 17:50:57

Start 今天上午参加了 Go 语言项目开发成员 Dave Cheney 的分享。 分享的主题是《High Performance Go: Two tools, three types of profiling in 45 minutes》 分享的内容来自 https://dave.cheney.net/high-performance-go-workshop/gopherchina-2019.html 非常有干货的分享! 两个工具分别是 pprof 和 trace,三种类型的分析例子 cpu 性能分析,内存性能分析,trac

Go 中通过组织结构体以节省内存

2018-12-11 17:35:07

先执行一段示例代码,有一个类似如下的结构体 myStruct: package main import ( "fmt" "reflect" "unsafe" ) type myStruct struct { myBool bool myFloat float64 myInt int32 } func main() { a := myStruct{} fmt.Println(unsafe.Sizeof(a.myBool)) // 1 fmt.Println(unsafe.Sizeof(a.myFloat)) // 8 fmt.Println(unsafe.Sizeof(a.myInt)) // 4 fmt.Println(unsafe.Sizeof(a)) // 24 fmt.Println(reflect.TypeOf(a.myBool).Align()) // 1 fmt.Println(reflect.TypeOf(a.myFloat).Align()) // 8 fmt.Println(reflect.TypeOf(a.myInt).Align()) // 4 fmt.Println(reflect.TypeOf(a).Align()) // 8 fmt.Println(unsafe.Offsetof(a.myBool)) // 0 fmt.Println(unsafe.Offsetof(a.myFloat)) // 8 fmt.Println(unsafe.Offsetof(a.myInt)) // 16 } 通过 Sizeof 输出的大小发现,虽然结构体各字段 bool 占

自定义 Golang Time 类型字段的 JSON 序列化格式

2018-11-05 19:18:32

Golang 中自定义 time.Time 类型的 JSON 序列化格式 Golang 中时间格式定义: const ( ANSIC = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:05 MST 2006" RubyDate = "Mon Jan 02 15:04:05 -0700 2006" RFC822 = "02 Jan 06 15:04 MST" RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone RFC850 = "Monday, 02-Jan-06 15:04:05 MST" RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST" RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone RFC3339 = "2006-01-02T15:04:05Z07:00" RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00" Kitchen = "3:04PM" // Handy time stamps. Stamp =

Golang WEB 框架选型

2018-10-17 17:22:52

Go 本身默认就已经具备了 WEB 开发的特性,net/http 包 + httprouter 开发一个 apiserver 已经足够了, 写好包含 http.ResponseWriter 和 *http.Request 参数的业务处理函数,通过 http.HandleFunc 注册路由就可以了。 近期做项目需要选一个 Go 的 WEB 框架来业务统一使用,所以记录一下选择理由。 当前流行的框架

使用 Go 定义一个可以调用任意函数的函数

2018-10-15 17:07:44

原始需求是这样的:我需要监听一个json文件是否发生变化,一旦发生变化就重新调用函数读取文件中新的json来更新一个变量。 现在的需求是想把这种监听到某个事件自动就调用一个函数来处理的通用写法,实现一个能调用通用的回调函数

搭建 Filebeat Elasticsearch Kibana V6.3.0 日志监控

2018-07-05 16:48:56

Filebeat+Elasticsearch+Kibana 环境搭建 上次搭建 ELK 还是两年前,现在使用当时的方法发现不行了,不得不说 ELK 的版本更新速度真的很快。 本文记录使用 ELK Stack 最新的 6.3.0 版本,使用 filebeat 进行日志收集,统一存储到 elasticsearch 并用 kibana 展示的搭建过程。 filebeat \ filebeat - elasticsearch - kibana - browser filebeat / 在统一日志存放的机

模拟网络设备和 netflow

2018-03-18 16:36:54

使用 snmpsim 模拟网络设备 登录到对应的模拟服务器上新建 Python 虚拟环境安装 snmpsim virtualenv snmp . snmp/bin/activate pip install snmpsim 在虚拟环境目录下的 snmpsim/data/ 文件夹里配置新的 community(如果需要自定义 -c 参数的话),可以先按照 public 复制一份新配置的 community 命名的数据 cp public jq-netmanager -r cp public.snmprec jq-netmanager.snmprec 启动 snmpsimd

创建支持 SSH 登录和模拟网络设备的 Docker 镜像

2018-03-02 16:24:39

CentOS 主机安装 Docker 安装docker yum install docker docker version # 1.12.6 移动docker的数据目录到较大磁盘下 mv /var/lib/docker/ /data/docker ln -sb /data/docker /var/lib/docker 设置docker OPTIONS:/etc/sysconfig/docker # 添加如下配置 (存在就更新),docker.oa.c

Celery 4.1.0 版本定时任务执行时间 BUG

2017-12-27 15:44:10

为什么使用celery代替crontab? 关于Celery,他是一个分布式的任务队列。https://docs.celeryproject.org/en/latest/index.html 项目中有较多的定时任务,开始是用

使用 Nginx Lua 修改 Influxdb API 的返回结构

2017-12-13 15:29:55

有一个API平台服务,所有接口都通过API平台转发到实际的服务上,然后再把实际服务的结果返回给客户端,API平台的规范是所有实际服务的接口返回都要统一结构为 { "code": 0, "msg": "", "data": {} } 否则无法处理,现在使用influxdb提供的ap

记一次系统性能问题排查

2017-11-23 15:21:03

在客户的环境中,我们的代码表现为twisted封装的http接口处理web请求忽快忽慢。 客户反馈一个页面上有获取绘图数据的请求,一页在一个屏幕上大概显示九个图,每次打开页面总有几个图一直在加载,刷新页面后之前没加载出来的

Flask 中日志按照日志级别分开保存到不同文件

2017-07-21 15:15:53

目标是想让代码中的日志按照不同的级别保存到不同的文件,即不管是框架本身的debug日志还是我们自己写的debug日志都保存到debug.log,info日志都保存在info.log,以此类推。 如果是为不同级别设置不同的l

去贵阳看五月天

2017-07-18 14:56:43

07-14: 购买车上要吃的午饭和晚饭。 07-15: HOME(08:00) -> 深圳北 -> (09:50-10:26) -> 广州南 -> (11:49-17:29) -> 贵阳北 -> 奥体中心五月天演唱会(19:00入场) -> 世纪城W组团1号楼1层4号 尚客青年酒店 COMMENT: 高铁会路过阳朔,风景不错。 贵阳北站站都不知道从哪里出去坐公交,整个城市的用

五一桂林行

2017-05-02 14:56:43

五一节计划的桂林4日游行程+完事后的COMMENT。说走就走真的不容易。 line1->line5->深圳北 27d 07:30前必须出门 深圳北->桂林北->龙脊梯田 27d 09:04从深圳北出发到广州南换乘,1

Sentry 插件编写总结

2017-03-03 11:03:07

sentry 插件需要特定的结构才能正常工作,最简单的结构即为本插件的文件结构。 sentry-rtx * │ .gitignore │ README.md │ setup.cfg │ setup.py * │ └─ sentry_rtx * plugin.py * tof_api.py __init__.py 主要编写其中的 setup.py 和 plugin.py 在 sentry_rtx/plugin.py 中实现自己的通知插件类,通知类型的插件 is_configured 和 notify_users 是需要自己实现的。 在 sentry-rtx/setup.py 中,插件通过 entry_points 来自动注

Flask 通过 Nginx 代理后拿不到正确的 url_scheme

2016-04-14 12:06:49

问题:Nginx 配置了 https 请求后,Flask 中的 request 中 wsgi.url_scheme 收到的仍然是 http,而不是 https。 当用户发起 https 请求时首先和 Nginx 建立连接,完成 SSL 握手,而后 Nginx 作为代理是以 http 协议将请求转给 gunicorn 处理的, Nginx 再把 gunicorn 的输出通过 SSL 加密发回给用户,

通过浏览器实时分享终端内容

2015-09-11 11:03:07

比如,在开会时你需要分享自己的终端内容给别人看到,当没有投影仪,或者有投影仪但是对有像我这种近视又不戴眼睛的同学来说是很不方便的,所以急需一个能通过浏览器实时分享终端内容的工具。 tty 相关的工具很多,类似 tty.js、got

上海迪士尼一日游记

2015-07-18 11:03:07

本打算在2016年7月16号7点起床坐11号线8点到迪士尼的,结果睡过了,到迪士尼差不多9点过,过安检、检票完了差不多10点半左右,人太多了,要想少等至少7点就得去准备排队。 安检不能带酒,可以带没拆的食物进去,检票可以刷

关于 Python 中的 None 和 is

2015-07-01 11:46:27

Python 中的 None x is None 比 x == None 更快。 is 是用 C 实现的, 简单的比较两个对象的 ID,不需要调用任何方法函数, is 是比较 id,== 是比较值。 创建一个 None 实例: Python 2.7.6 (default, Sep 9 2014, 15:04:36) [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> x = type(None)() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError:

看了一场舞台剧《仙剑奇侠传》

2015-06-06 11:03:07

一直以为舞台剧就是跟话剧差不多嘛,没想到这场把我足实震撼到了,真的,太震撼了!舞台美不说,好好的话剧被演成了一场 4 小时的 3D 电影,真的太赞了。 一开始是在微博上看到这个,虽然并不是仙剑粉,但是游戏还是玩过的,而且看了剧照感觉

分享几个 Python 实现的实用命令行工具

2015-05-29 08:00:00

pyenv pyenv 是一个使用简单的 Python 版本管理工具,可以让你简单的切换 Python 版本。Python2.x 在5年后将不在更新维护,所以是时候熟悉 Python3 了! 那么如何方便的即用 Python2 又可以在方便的切换到 Python3 呢? 上 pyenv 。当然,还有一个叫做 p 的工具也可以,不过比较之

Python 有序更新 yaml 文件

2015-05-17 11:03:07

在 Python 中使用 PyYAML 操作 yml 文件,yaml 默认 load 进来是个字典,所以无法保持原本的顺序,要想不改变原本的 yaml 结构,更新 yaml 文件内容需要用到以下方法 from collections import OrderedDict import yaml def ordered_yaml_load(yaml_path, Loader=yaml.Loader, object_pairs_hook=OrderedDict): class OrderedLoader(Loader): pass def construct_mapping(loader, node): loader.flatten_mapping(node) return object_pairs_hook(loader.construct_pairs(node)) OrderedLoader.add_constructor( yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG, construct_mapping) with open(yaml_path) as stream: return yaml.load(stream, OrderedLoader) def ordered_yaml_dump(data, stream=None, Dumper=yaml.SafeDumper, **kwds): class OrderedDumper(Dumper): pass def _dict_representer(dumper, data): return dumper.represent_mapping( yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG, data.items()) OrderedDumper.add_representer(OrderedDict,

上海动物园一日游

2015-05-17 11:03:07

有次出去办手机卡,路过上海动物园门口就想去玩的,只是当时时间不允许,既然植物园去过了,动物园当然也要去,还想去野生动物园玩。 出门坐的是双层的公交车,很拉风的那种,本来想坐上层的,无奈太阳太大还是选的坐下面,动物园里面大多

使用 Python 实现一个灰度策略函数

2015-05-15 08:00:00

使用 Python 实现一个灰度发布策略,传入最新的 app 发布时间和当前请求用户的设备 id,如果该用户命中灰度策略就返回 True def gray_publish_check(app_lastest_pub_time, device_id): '''灰度发布策略: 将device_id进行hash后转为十进制数,若想要10%的用户

使用 Python 进行版本号比较

2015-05-06 08:00:00

使用 StrictVersion 比较版本号: StrictVersion 是由.将一串带有预发布标签的数字分隔为两个或三个部分的格式,预发布标签的字母只能是 a 或者 b 加数字版本号,而且只能在最末尾。 预发布 a 版本低于 b 版本,并且预发布版本永远小于正式发布版本。 合法格式: 0.4 0.4.0 (相

记录在上海的另一个周六

2015-04-18 11:03:07

中午出门吃饭,刚关上门就发现自己忘了带钥匙。 房东奶奶出去打麻将了,一狠心决定出去浪,选了个不远的植物园。 感觉去晚了,并没有那么春天了,3 月份去应该会更美,里面花很多,没有买套票,套票也不贵,只要 40 元。 在园里对一个妹子印象

记录在上海的一个周六

2015-04-11 11:03:07

周六,本来是早起去帮我朋友的父母咨询社保问题的,所以一大早就去了静安社保局,结果并没有咨询出个什么结果,也不想太早回家,打算浪浪再回家。 走在万航渡路上,一切都很熟悉的感觉,刚到上海的时候就是在这边的开开广场这一带活动。本

Vimscript 学习笔记

2014-11-06 08:00:00

在 VIM 中输入:help <CMD> 可以查看该命令详细的帮助信息,比如:help echo、:help python。 VIM 脚本中的注释是以"进行注释的。 VIM 打印信息 打印信息即可以使用:echo "hi, axiaoxin.",也可以

记录几个新学会的 VIM 命令

2014-03-27 08:00:00

VIM 浏览目录::E ,移动光标到对应文件上,按 x 可执行该文件。 VIM 查看缓冲区::ls,切换到指定编号的缓冲区::buffer 数字编号 VIM 向下分屏::He,向上分屏::He!;向左分屏::Ve,向右分屏::Ve! VIM 分屏同步滚动::

英语四六级CET46免考号查分软件(无需准考证号)

2012-08-23 23:39:33

四六级准考证号说明~: 准考证号 前6位是地区号~ 然后是121 (表示12年的第1次,即12年6月份的)~ 然后是1或2 (1代表四级,2代表6级)~ 然后的三位是考场号~ 最后两位是座位号~ 背景~: 今天七夕,其实不知道,听别人说的~

《程序开发心理学:The Psychology of Computer Programming》无私编程十条诫律

2012-08-01 23:35:43

1、理解和接受自己会犯错误。 关键是要尽早发现,在错误进入到最终产品前发现它们。幸运的是,除了我们少数几个在喷气推进实验所开发火箭导航系统的人外,在软件行业中犯错误通常不会导致灾难性事故。我们可以,也应该从错误中吸取教训,

毕业后第一次回一中

2012-07-06 23:23:28

今天睡到11点起床,折腾了大半下午收拾东西回乐山了。 回来路上感觉路上的一切亲切又陌生。突然之间觉得自己在乐山这几年的青春都被狗吃了,对乐山竟然这么的陌生。 到了站,Chance来接我的。生意做得还是挺好的。吃完饭去一中逛了

JQuery 基础教程练习笔记

2012-05-01 17:25:50

jQuery 基础用法示例 用 $() 函数选择元素,$ 是对标识符 jQuery 的一种简写 $('div') $('#some-id') $('.some-class') $(document).ready() 其中代码会在 dom 加载后立即运行 示例1: $(document).ready(function(){ $('#selected-plays > li').addClass('horizontal'); // 查找id为#selected-plays元素的子元素(>)中所有的li,添加horizontal类 $("#selected-plays li:not(.horizontal)").addClass('sub-level'); //

JQuery 选择器用法示例

2012-03-15 17:25:50

jQuery 基本选择器用法示例 // 选择 id为 one 的元素 $('#btn1').click(function(){ $('#one').css("background","#bfa"); }); // 选择 class 为 mini 的所有元素 $('#btn2').click(function(){ $('.mini').css("background","#bfa"); }); // 选择元素名是 div 的所有元素 $('#btn3').click(function(){ $('div').css("background","#bfa"); }); // 选择所有的元素 $('#btn4').click(function(){ $('*').css("background","#bfa"); }); // 选择所有的span元素和id为two的div元素 $('#btn5').click(function(){ $('span,#two').css("background","#bfa"); }); jQuery 层次选择器用法示例 // 选择 body 内的所有

Linux 终端默认编辑方法快捷键

2011-03-08 17:25:50

C-a :移到行首(Home) C-e :移到行尾(End) C-b :往左移动一个字符 C-f :往右移动一个字符 M-b :往左移动一个单词 M-f :往右移动一个单词 C-l :清屏 C-h :删除左边字符 C-d :删除光标所在处字符 M-d :光标所在处向后删除单词 C-w :光标所在处向前删除

Bash 学习笔记

2011-01-18 17:25:50

Bash 的工作控制 %% 或 %+ 可调用 jobs 里面现在的工作,%- 调用前一个工作 %n 将工作编号为 n 的进程置于前台来执行 == fg %n %?s1 调用程序名称中含有s1的工作,? 表示搜寻 %./s1 找出进程名开头是 ./s1 的工作 C-z 暂停进程,然后 bg 丢到后台 == 指令 & disown %n:移除工作

0001-01-01 08:00:00

/go-redis-bitmap/— title: “Golang 操作 Redis:事务处理操作用法 - go-redis 使用指南” author: “axiaoxin” date: 2024-08-05T21:44:29+08:00 subtitle: "" description: "" image: "" tags: [“go-redis使用指南”, “redis”, “golang”, “编程”] slug: ""

上一篇文章中,我们介绍了如何使用 go-redis 操作 Redis 的 bitmap 数据类型。如果你还没有阅读,可以点击这里查看。在使用 Redis 时,事务是一个非常重要的功能。它允许我们将多个命令作为一个单独的操作来执行,保证了操作的原子性。无论是在 web 应用、数据分析还是缓存策略中,事务都能够帮助我们更好地管理数据一致性和并发控制。本文将详细介绍 Redis 事务的基本概念、操作方法,以及如何在 Golang 中使用 go-redis 包来实现 Redis 事务处理。

订阅

0001-01-01 08:00:00

本站 RSS 地址:https://blog.axiaoxin.com/index.xml 如果您对我的博客内容感兴趣,可以通过 RSS 订阅,或关注我的社交媒体,会同步博客动态。 本站将会持续记录博客日志并公开访问统计数据,欢迎持续关注本

关于

0001-01-01 08:00:00

关于网站 欢迎访问人言兑,本网站是阿小信的个人博客。博客起名“人言兑”,含义为“信说”两个字的拆解与合并。 《人言兑》 信,一人一言; 说,一言一兑。 人言成信,言兑才说; 信者慎言,说者善言; 有诺必兑,有言莫失。 本博客主要用于记录

归档

0001-01-01 08:00:00

留言

0001-01-01 08:00:00

统计

0001-01-01 08:00:00

本站将会持续记录博客日志并公开访问统计数据,欢迎持续关注本博客的发展。 51.la - 阿小信的博客 umami - 阿小信的博客