XOR
TypeScript 学习笔记 — 类型兼容 (十)
TS 是结构类型系统(structural type system),基于结构/形状检查类型,而非类型的名字。 TS 中的兼容性,主要看**结构是否兼容**。(核心是考虑安全性),结构化的类型系统(又称鸭子类型检查),如两个类型名字不一样但是无法区分 类型兼容性是基于结构子类型的。 结构类型是一种只 ......
Linux Bash Shell 中变量的 5 个易错点
Linux 中的 Bash 脚本支持对变量的操作,下面咸鱼将介绍 Linux Bash Shell 中关于变量的 5 个易错点 因为编程习惯,这类现象往往发生在大多数使用过其他流行编程语言的程序员身上 变量赋值 对于许多编程语言(例如 Python),变量赋值的时候在等号两边添加空格是一个好的习惯 ......
详解uniapp和vue在路由方面的不同和联系
Uniapp 和 Vue 在路由方面有相似之处,因为 Uniapp 是基于 Vue 的。Uniapp 的路由系统是通过 Vue Router 实现的,因此两者有许多相同的概念和 API。 相同点: 都支持基于 URL 的路由; 都可以使用嵌套路由来管理多个页面之间的关系; 都支持路由参数和查询参数的 ......
uniapp中easycom用法详解
Uniapp中的easycom是一种组件自动注册机制,可以让开发者更加方便地使用和管理组件。本文详细的介绍了关于easycom使用方法。 ......
Redis - 基础数据类型
学会使用 Redis 的一个重要内容就是 Redis 的数据类型,对于开发人员而言,学会 Redis 基础数据类型的使用即可应用到程序开发当中。 ......
Dash 2.9.0版本重磅新功能一览
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/dash-master 大家好我是费老师,就在昨晚,Dash框架发布了其2.9.0版本更新,在一众更新内容中,有两条新特性在我看来尤为重要,可以大幅度提升我们开发Dash应用的效率,下面我就将带大家一起 ......
(数据科学学习手札150)基于dask对geopandas进行并行加速
本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,geopandas作为我们非常熟悉的Python GIS利器,兼顾着高性能和易用性,特别是在其0.12.0版本开始使用全新的sha ......
深入理解事务
事务将应用程序的多个读、写操作捆绑在一起成为一个逻辑执行单元。即事务中的所有读写是一个执行的整体,整
个事务要么成功(提交)、要么失败(中止 或者 回滚)。如果失败,应用程序可以安全地重试。 ......
ARP协议:网络世界的临门一脚
大家好,我是风筝。 各位同学肯定见过关于网络的面试题,什么TCP协议和UDP的区别啦,IP协议工作在哪层啊等等,这都是网络中定义的各种协议。这些标准化的协议就是网络分层模型标准化的核心部分。要想搞懂网络,必须搞明白其中的几种主要的网络协议。 今天我们就开始介绍网络世界的协议。介绍的顺序大致是从网络模 ......
20张图说清楚 IP 协议
大家好,我是风筝 轻解网络系列又来了,今天咱们说说 IP 协议,这可是网络协议中最最核心的一个协议了,还记得我们刚刚知道什么是IP地址、怎么给电脑修改 IP 的时候吗?今天我们就来探究一下 IP 协议。 IP协议是TCP\IP协议簇中最核心的协议,大部分的上层(传输层、应用层)应用都直接或间接的使用 ......
基于DPDK抓包的Suricata安装部署
一、背景 Suricata支持网卡在线抓包和离线读取PCAP包两种形式的抓包: 离线抓包天然具有速度慢、非实时的特点 在线捕获数据包又包括常规网卡抓包、PF_RING和DPDK的方式 由于项目分光的流量较大, 软件自带的抓包方式并不能满足需求,因此采用了基于DPDK的Suricata在线捕获网卡数据 ......
从源码彻底理解 Prometheus/VictoriaMetrics 中的 relabel_configs/metric_relabel_configs 配置
背景 最近接手维护了公司的指标监控系统,之后踩到坑就没站起来过。。 本次问题的起因是我们配置了一些指标的删除策略没有生效: - action: drop_metrics regex: "^envoy_.*|^url\_\_\_\_.*|istio_request_bytes_sum" 与这两个容易引 ......
JUC源码学习笔记8——ConcurrentHashMap源码分析1 如何实现低粒度锁的插入,如何实现统计元素个数,如何实现并发扩容迁移
源码基于jdk1.8 这一片主要讲述ConcurrentHashMap如何实现低粒度锁的插入,如何实现统计元素个数,如何实现并发扩容迁移 系列文章目录和关于我 一丶ConcurrentHashMap概述 支持高并发读写的哈希表,ConcurrentHashMap中每一个方法都是线程安全的,并且读数据 ......
《操作系统导论》读书笔记1——CPU虚拟化,进程
系列文章目录和关于我 一丶CPU的虚拟化 一个桃子,我们称之为物理(physical)桃子。但有很多想吃这个桃子的 人,我们希望向每个想吃的人提供一个属于他的桃子,这样才能皆大欢喜。我们把给每个 人的桃子称为虚拟(virtual)桃子。我们通过某种方式,从这个物理桃子创造出许多虚拟桃子。重要的是,在 ......
AES 简介 以及 C# 和 js 实现【加密知多少系列】
〇、AES 简介 AES 的全称是 Advanced Encryption Standard,意思是高级加密标准。它的出现主要是为了取代 DES(Data Encryption StandardData Encryption Standard)加密算法的,因为我们都知道 DES 算法的密钥长度是 5 ......
DES & 3DES 简介 以及 C# 和 js 实现【加密知多少系列】
〇、简介 1、DES 简介 DES 全称为 Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977 年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。 在很长时间内,许多人心目 ......
RSA 简介及 C# 和 js 实现【加密知多少系列】
〇、简介 谈及 RSA 加密算法,我们就需要先了解下这两个专业名词,对称加密和非对称加密。 对称加密:在同一密钥的加持下,发送方将未加密的原文,通过算法加密成密文;相对的接收方通过算法将密文解密出来原文的过程,就是对称加密算法。 非对称加密:发送发和接收方通过不同的密钥加解密的过程就是非对称加密。发 ......
Asp-Net-Core开发笔记:使用RateLimit中间件实现接口限流
前言 最近一直在忙(2月份沉迷steam,3月开始工作各种忙),好久没更新博客了,不过也积累了一些,忙里偷闲记录一下。 这个需求是这样的,我之前做了个工单系统,现在要对登录、注册、发起工单这些功能做限流,不能让用户请求太频繁。 从 .Net7 开始,已经有内置的限流功能了,但目前我们的项目还在使用 ......
【开源】最近写了一个简单的网址导航网站
前言 随着团队的成长,要管理的项目或使用的内部系统越来越多,很多内部系统都没有域名,使用IP+端口,很难记。 为了解决这个痛点,我抽空写了个导航网站~ 目前用下来效果还不错,可以基本完美的解决这个问题。 项目名称是 SiteDirectory ,代码在 Github 开源了: https://git ......
获得New Bing资格后,在Ubuntu环境下使用New Bing
本文主要介绍的是在Ubuntu环境下安装Microsoft-Edge-dev浏览器,并且安装相关浏览器扩展用于修改请求头,最后成功在Skype中使用New Bing对话的案例。New Bing和ChatGPT相比,不仅仅融合了最新的GPT-4模型,还利用了浏览器自身的信息检索功能,使其不仅仅具备了相... ......
BootstrapBlazor + FreeSql ORM 实战 Table 表格组件维护多表数据 - OneToOne
OneToOne 垂直扩展表字段是很常见的方法, 主表存商品资料, 分表存每个客户对应商品的备注和个性化的价格等等, 本文使用Blazor一步步实现这个简单的需求. ......
鸿蒙元服务上架全攻略 | 四轮驱动,助力元服务澎湃动力
黎明前的暗夜下,巍巍昆仑侧广袤草原上,一道激光无声闪过,一辆黑马披星戴月疾驰向北。天边泛起朦朦金光,远处黑马的合金轮毂激射出金色炫光。 鸿蒙元服务(简称元服务)是华为提供的一种面向未来的服务形态,具有独立入口和免安装等特性,支持运行在1+8+N设备上。在万物互联时代,元服务酷似一匹黑马提供了更丰富的 ......
不存在百分百的安全,该给你的系统上个保险了
故障,是每个技术人都不愿遇到,但却总会遇到的事件。程序Bug、安全漏洞、黑客攻击、服务器宕机、网络中断等诸多因素都有可能引发系统故障,使我们的业务面临瘫痪的窘境。这样的例子,国内外都在不断的发生,比如: 2020年,由于严重的全澳性IT故障,Coles的收银机全部不能联网,down机瘫痪。收银员扫不 ......
一次.net code中的placeholder导致的高cpu诊断
背景 最近一位朋友找到我,让我帮看他们的一个aspnet core service无端cpu高的问题。从描述上看,这个service之前没有出现过cpu高的情况,最近也没有改过实际的什么code。很奇怪了,会有什么变化导致cpu上去了呢? 分析 由于比较容易复现 (据说一启动service,cpu就 ......
Three.js 进阶之旅:物理效果-3D乒乓球小游戏 🏓
本文将使用技术栈 React Three Fiber 和 Cannon.js 来实现一个具有物理特性的乒乓球小游戏,通过本文的阅读,你将学习到的知识点包括:了解什么是 React Three Fiber 及它的相关生态、使用 React Three Fiber 搭建基础三维场景、如何使用新技术栈给场... ......
自己动手从零写桌面操作系统GrapeOS系列教程——19.硬盘读写理论知识
学习操作系统原理最好的方法是自己写一个简单的操作系统。 一、硬盘控制器 我们前面已经讲过硬盘控制器是一种I/O接口,CPU通过它就能间接的读写硬盘。硬盘控制器主要有IDE和SATA两种,我们这里只考虑IDE控制器。 电脑里硬盘控制器有2个,一个叫主控制器,另一个叫从控制器。而每个硬盘控制器能连接两个 ......
自己动手从零写桌面操作系统GrapeOS系列教程——20.汇编语言读硬盘实战
学习操作系统原理最好的方法是自己写一个简单的操作系统。 本讲我们设计一个简单的读硬盘实验。通过一定的方法使硬盘第二个扇区的前3个字节依次为1、2、3,最后3个字节依次为3、2、1,中间的506个字节全为0。然后通过读硬盘程序将硬盘第二个扇区的数据读取到内存0x7e00-0x7fff的地方,也就是内存 ......
自己动手从零写桌面操作系统GrapeOS系列教程——21.汇编语言写硬盘实战
学习操作系统原理最好的方法是自己写一个简单的操作系统。 在上一讲中我们学习了用汇编语言读硬盘,本讲我们来学习用汇编语言写硬盘。同样也是设计一个简单的实验,实验内容为: 在内存中准备一段有特征的512字节数据,地址为0x7e00~0x7fff,其特征是前3个字节依次为4、5、6,最后3个字节依次为6、 ......
同步协程的必备工具: WaitGroup
1. 简介 本文将介绍 Go 语言中的 WaitGroup 并发原语,包括 WaitGroup 的基本使用方法、实现原理、使用注意事项以及常见的使用方式。能够更好地理解和应用 WaitGroup 来协调多个 Goroutine 的执行,提高 Go 并发编程的效率和稳定性。 2. 基本使用 2.1 定 ......
深入理解Go语言中的sync.Cond
1. 简介 本文将介绍 Go 语言中的 sync.Cond 并发原语,包括 sync.Cond的基本使用方法、实现原理、使用注意事项以及常见的使用使用场景。能够更好地理解和应用 Cond 来实现 goroutine 之间的同步。 2. 基本使用 2.1 定义 sync.Cond是Go语言标准库中的一 ......