2021-07-22
MIDI 协议与应用

码出旋律

阅读此文

2021-02-15
定时器原理

定时器原理

定时器工作原理

Linux Windows STM32

阅读此文

2020-07-28
ColorSpace颜色空间

ColorSpace颜色空间

颜色空间也称彩色模型(又称彩色空间彩色系统),它的用途是在某些标准下用通常可接受的方式对色彩加以说明。

本质上,彩色模型是坐标系统和子空间的阐述。
位于系统的每种颜色都有单个点表示。
采用的大多数颜色模型都是面向硬件或面向应用的。
颜色空间从提出到现在已经有上百种,大部分只是局部的改变或专用于某一领域。

阅读此文

2019-07-18
开源协议整理

一图看懂开源协议

阅读此文

2019-07-01
HTTPS SSL 证书分类

数字证书颁发机构

数字证书认证机构 Certificate Authority,缩写为CA,是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

SSL 证书

SSL 证书是由受信任的数字证书颁发机构 CA,在验证服务器身份后颁发,且具有服务器身份验证和数据传输加密功能。

SSL 证书级别

SSL 证书根据验证级别,分为三种类型:

  • 域名型 SSL 证书,简称 DVSSL Domain Validation SSL Certificate
  • 企业型 SSL 证书,简称 OVSSL Organization Validation SSL Certificate
  • 增强型 SSL 证书,简称 EVSSL Extended Validation SSL Certificate

SSL 证书域名类型

根据保护域名的数量,SSL 证书又分为:

  • 单域名版:只保护一个具体域名
  • 多域名版:可以保护多个具体域名
  • 通配符版:可以保护同一个主域名下同一级的所有子域名,不限个数

OpenSSL

参考

阅读此文

2019-06-05
字体字库

关于 字体 字库 那些事儿

阅读此文

2018-12-13
静态变量的初始化与释放

前情提要:
VLD要记录每次的内存分配,它通过Windows提供的分配钩子allocation hooks来监视调试堆内存的分配。它是一个用户自定义的回调函数,在每次从堆中分配内存之前被调用,在初始化是VLD使用_CrtSetAllocation注册这个钩子函数。 全局变量在程序初始化时就初始化,如果将VLD作为一个全局变量就可以与程序一起启动,但是C/C++并没有约定全局变量初始化的顺序,如果其它全局变量的构造函数中有内存分配则可能无法检测到。
https://blog.csdn.net/fan_hai_ping/article/details/8023433

1
#pragma init_seg({ compiler | lib | user | "section-name" [, func-name]} )

:子模块(动态链接库)中包含 vld.h 并正确配置 vld lib 才能暴露子模块中的内存泄漏问题。

C++ 类模板的惰性会使静态成员被使用时才实例化。
模板单例模式,为保证静态变量实例化,给静态变量类型增加内联空函数,并调用之。(不影响性能,不扩大占用空间。)

https://docs.microsoft.com/en-us/cpp/preprocessor/init-seg?view=vs-2017

http://www.cnblogs.com/hgy413/archive/2011/10/15/3693581.html

阅读此文

2018-11-30
关于引用计数

引用计数

引用计数是计算机编程语言中的一种内存管理技术,是指将资源(可以是对象、内存或磁盘空间等等)的被引用次数保存起来,当被引用次数变为零时就将其释放的过程。
使用引用计数技术可以实现自动资源管理的目的,同时引用计数还可以指使用引用计数技术回收未使用资源的垃圾回收算法。
当创建一个对象的实例并在堆上申请内存时,对象的引用计数就为1,在其他对象中需要持有这个对象时,就需要把该对象的引用计数加1,需要释放一个对象时,就将该对象的引用计数减1,直至对象的引用计数为0,对象的内存会被立刻释放。

阅读此文

2018-11-15
Git实用技巧

Git实用技巧

中文显示问题

git status 列举文件名含有中文时,无法正常显示:(文件名编码格式 与 git diff 不一致)
git config --global core.guotepath false

阅读此文

2018-11-05
几种图片格式介绍

几种图片格式介绍

BMP
Bitmap 是 Windows 操作系统中的标准图像文件格式:DDB 设备相关位图;DIB 设备无关位图。
PNG
Portable Network Graphics 便携式网络图形是一种无损压缩的图形格式。
JPEG
Joint Photographic Expert Group 联合图像专家小组的缩写,是第一个国际图像压缩标准。
GIF
Graphics Interchange Format 图像互换格式,是一种基于 LZW 算法的连续色调的无损压缩格式。
XPM
X PixMap 是一种基于 ASCII 编码的图像格式,在 X Windows 中应用广泛。

阅读此文

2018-04-17
内存池技术

简介

阅读此文

2017-03-05
PortNumberRegistry端口号分配

端口号概述

在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem集线器交换机路由器上用于连接其他网络设备的接口,如RJ-45端口SC端口等等。逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,这就是端口号。

阅读此文

2017-01-08
计算机中的时间

计算机计时原理

GMT时间(Greenwich Mean Time),即格林威治标准时间,正午太阳横穿格林威治子午线的时间。
UTC时间(Universal Time Coordinated),即世界调整时间,由原子钟计时,根据GMT校准后得到的时间。
CST时间(Central Standard Time),即中央标准时间,可视为美国澳大利亚古巴中国的标准时间:

  • 美国中部时间:Central Standard Time (USA) UT-6:00
  • 澳大利亚中部时间:Central Standar Time (Australia) UT+9:30
  • 中国标准时间:Chian Standard Time UT+8:00
  • 古巴标准时间:Cuba Standar Time UT -4:00

自1924年2月5日开始,格林威治天文台每隔一小时会向全世界发放调时信息。

原子钟是一种时钟,以原子共振频率标准来计算及保持时间的准确【电子转变能级时释放的精确微波信号】。原子钟是世界上已知最准确的时间测量和频率标准,也是国际时间和频率转换的标准。

阅读此文

2016-08-25
RTTI理解

RTTI(Run-Time Type Identification 运行时类型识别)允许用指向基类的指针或引用来操纵对象的程序能够获取到这些指针或引用所指对象的实际派生。

阅读此文

2016-05-24
字符编码

字符编码相关常识

字符编码简介

1. ASCII

ASSII(American Standard Code for Information Interchange),是一种单字节编码。单字节可以表示 256 个不同的字符,可以表示所有的英文字符和许多控制符号。ASCII只用到其中的一半(\x80以下),这是MBCS得以实现的基础。

2. MBCS

MBCS(Multi-Byte Character Set)是一种多字节编码。目前大多使用双字节编码,所以也叫DBCS(Double-Byte Character Byte)。MBCS并不是某一种特定的编码,Windows 中根据设定的区域不同,指代不同的编码。而Linux里无法使用MBCS作为编码。Windows中,微软使用ANSI来代表MBCS,在简体中文Windows默认的区域设定里,指代GBK。
如GBxxx、BIGxxx等,都是多字节字符编码,他们的规则是:如果第一个字节是\x80以下,则仍然表示ASCII字符;如果是\x80以上,则跟下一个字节一起(共两个字节)表示一个字符,然后跳过下一个字节,继续往下判断。
IBM发明了一个叫Code Page的概念,将这些编码都收入囊中并分配页码,GBK是第936页,也就是CP936。所以,也可以使用CP936表示GBK。

3. Unicode

UCS(Unicode Character Set)还仅仅是字符对应码位的一张表而已,比如这个字的码位是6C49。字符具体如何传输和储存则是由UTF(UCS Transformation Format)来负责。
Unicode标准UCS-2使用两个字节表示一个字符,UCS-4标准,使用4个字节表示一个字符。
最初,使用UCS的码位来保存,这就是UTF-16,比如,直接使用\x6C\x49保存(UTF-16-BE),或是倒过来使用\x49\x6C保存(UTF-16-LE)。但英文字母只需要一个字节就能保存,变成了两个字节,空间消耗大了一倍,于是UTF-8横空出世。
BOM(Byte Order Mark),文件编码方式。

阅读此文