- 博客(31)
- 收藏
- 关注
原创 技能树reference
file format:Json filejson file serializing and deeserializing with newtonsoft.https://www.newtonsoft.com/jsonxml fileauto xml schema code and definition toolhttps://docs.microsoft.com/en-us/dotnet/standard/serialization/xml-schema-definition-tool-
2021-08-30 16:19:00
158
原创 C#测试框架总结
C#测试框架,首推Nsubsitute框架:能提供interface基类的mock等功能,并能mock基类的接口函数。理解测试框架,才能写出可读性高,又方便测试的实现。1、官方测试帮助文档2、Github Nsubsitute源码3、NSubstitute完全手册索引...
2021-03-24 22:49:39
843
1
原创 7.3 Git 工具 - 贮藏与清理 (补充)
本文是对于git官网的git book第7.3章节的补充原文链接如下:https://git-scm.com/book/zh/v2/Git-工具-贮藏与清理书中对于贮藏都推荐git stash push,本文都只使用该方法。stash命令如下:git stash list [<options>]git stash show [<stash>]git stash drop [-q|--quiet] [<stash>]git stash ( pop | app
2021-02-04 23:31:32
2721
原创 macOS搭建VScode C#编译环境(建设中)
前言因工作需要,开始使用C#语言,结合VS code的IDE,会有比较方便的编码环境。但现在主力机是MAC pro,所以本文介绍在macOS上搭建VS code C#环境。环境搭建launch.json解析task.json解析
2020-12-12 02:13:54
4036
原创 2020年面试整理
2019年12月份,在公司经历了一些事后,下定决心准备跳槽,目标MS。直到2020年11月中旬拿到offer,个中滋味,唯有自知。下面把这一年看的资料,视频链接和经历记录下来。目录:推荐资源刷题时间线面试过程面试建议推荐资源:1、数据结构与算法分析 C语言描述 [美] 马克·艾伦·维斯(Mark,Allen,Weiss) 著,冯舜玺译 译 机械工业出版社 华章图书这本书比较全面讲解了各种基础数据结构,还扩展开了很多复杂数据结构,比如AVL树,伸展树,左式堆,二项队列。每一章看着内容
2020-12-05 00:25:03
8349
17
原创 RFC 7703 MAP-T测试经验
1、介绍:2、测试拓扑:MAP-T CPE是跑Fedora11的linux虚拟机。主机其实也是3台虚拟机,1台是linux Kubuntu 12.04,一台是win7,一台是win xp。IPv6路由器是配置了静态路由的linux机器。NIC.br_IPv4是连接IPv4公网的交换机,NIC.br IPv6是连接IPv6公网的交换机。2.2 配置文件:2.2.1 MAP-T配置要点:IPv6 prefix=2001:db8:6:d600::/56IPv4 prefix=198.51.100
2020-07-22 12:33:34
1066
原创 RFC7599 MAP-T
本文介绍了一种解决无状态的IPv6-IPv4转换的解决方案,提供给共享和非共享的IPv4和IPv6网络互通的连接。1、介绍:最初的IPv6网络服务提供商,如RFC6219的部署所得到的经验,表明可以成功过度到IPv6,并且依然支持对于没有点对点双栈的残留IPv4用户。本文介绍的地址+端口映射转换,缩写为(MAP-T)架构就是一种双重无状态,基于NAT64的解决方案。其建立在现有的[RFC6145]有状态NAT64的技术,还有[RFC7597]定义的有状态地址和传输层端口映射的MAP-E技术。MAP-T
2020-07-09 18:08:36
1868
原创 RFC1191 路径MTU发现
本文介绍了一种动态路径最大MTU发现的机制。介绍了路由器产生一种特殊icmp报文。概述1、主机先尝试发送一个576字节的报文,并把DF置位(dont fragment)。这样如果路由器无法分片,会发送一个目的不可达icmp报文。主机收到后,会减小MTU并继续尝试PMTU发现。2、一旦主机发现PMTU小到不需要分片即可达到对端,PMTU发现过程结束。3、路由器需要对报文太大的icmp中,...
2019-08-22 19:56:48
1461
原创 Pygame display部分
这个模块提供了pygame的显示部分。无论是窗口化或全屏时,都会有一个单独的显示面surface。创建显示后,会被认为是一块surface。修改不会立刻在屏幕显示,必须通过flipping函数来更新显示。通过pygame.display.set_mode()创建新的显示平面,会关闭先前的显示。mode_ok(),list_modes(),info()可以获取display的信息。当显示模式配...
2019-06-08 21:17:37
935
原创 Pygame color
pygame.color是返回颜色变量的api。c Color(name) -> Color Color(r, g, b, a) -> Color Color(rgbvalue) -> Color例子:blue = pygame.Color(0, 0, 255) red = pygame.Color(255,0,0)也可以用The HTML format is ‘#rrg...
2019-06-05 07:35:04
542
原创 RFC6890特定用途IP地址定义
2.2.2 IPv4 特定用途地址addressnamealloc dataterm datasrcdstforwardableGlobalReserved by Protocol0.0.0.0/8This host on this network1981/9N/ATrueFalseFalseFalseTrue10.0.0.0/8Priv...
2019-05-28 19:51:52
2423
原创 《操作系统精髓与设计原理》 第7章 内存管理(学习笔记)
内存被划分为2个部分,一个是操作系统,内核访问的内存,一个是用户程序访问的。页 固定长度的数据块段 变长的数据块,整段可以临时复制到内存的可用区域内,一个段可以分许多页重定位,保护,共享,逻辑组织,物理组织7.1.1重定位:由于进程会被换入和换出内存,所以操作系统和处理器硬件应该有能力将进程访问的虚拟地址做重定位,并依然能映射到实际的物理地址。7.1.2 保护:程序在内存中的位置是不...
2019-05-07 11:44:20
271
转载 MAC搭建Github/Vim看代码环境
Mac 必备工具之 brewbrew 是 Mac 下的一个包管理工具,类似于 centos 下的 yum,可以很方便地进行安装/卸载/更新各种软件包,例如:nodejs, elasticsearch, kibana, mysql, mongodb 等等,可以用来快速搭建各种本地环境,程序员必备工具安装 brew首先要通过如下命令安装 brew/usr/bin/ruby -e “$(curl...
2019-01-21 22:25:42
517
原创 Ebtables/Iptables分析
分析Ebtables/Iptables实现及命令。ebtables和iptables都是linux系统下,netfilter的配置工具,可以在链路层和网络层的几个关键节点配置报文过滤和修改规则。ebtables更侧重vlan,mac和报文流量。iptables侧重ip层信息,4层的端口信息。ebtables命令实例:1、显示tableebtables -t filter -L 显示f...
2018-11-06 15:27:28
7594
原创 《操作系统精髓与设计原理》 第5章 并发性:互斥和同步(学习笔记)
核心问题,进程和线程的管理。5.1并发的原理:支持并发进程的基本要求是加强互斥的能力。一个进程被授予互斥能力时,在其活动期间,具有排斥所以其他进程的能力。支持互斥的硬件机制,操作系统或编译器支持的互斥解决方案,最后,信号量,管程和消息传递。术语介绍:原子操作:指令操作期间不会被别的进程打断。临界区域:一段访问公共区域的代码,一个进程在执行这段代码,别的进程就不能执行。这里指的是代码。...
2018-11-01 15:34:35
1393
原创 神经网络PyTorch实战(一)Windows安装PyTorch
安装Python 3.7https://www.python.org/Anaconda 5.3https://www.anaconda.com/download/用anaconda package manager安装PyTorch扩展库
2018-10-26 15:58:47
792
转载 使用优快云-markdown编辑器
Markdown欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将...
2018-10-25 09:43:02
141
转载 iproute2常用命令
#常用命令ip link show #显示链路ip addr show #显示地址(或ifconfig)ip route show #显示路由(route -n)ip neigh show ...
2018-10-19 13:52:02
2779
原创 《程序员应该知道的97件事》
1. Act with Prudence无论一个计划刚开始看着多合理,你依然无法避免在某些时候承受压力。当你发现你出于选择“做得好”或是“做得快”时,总会认为先选择“做得快”,之后再修复他。当时对自己,对团队,对客户承诺时,你是认真的。但是,通常而言,你会把注意力放在遇到新的问题上。这类推迟的工作被称为技术债务。这类是故意的技术债务,不应和无意的技术债务混淆。 像贷...
2018-05-01 11:39:45
1384
原创 Linux设备驱动程序_第七章_时间、延迟及延缓操作
如何度量时间差,如何比较时间 如果获得当前时间 如何将操作延迟指定的一段时间 如何调度异步函数到指定的时间之后执行度量时间差Linux时钟中断由系统定时硬件产生,这个间隔由内核根据HZ的值设定。定义在<linux/param.h>每次中断发生,内核计数器的值就加1,成为jiffies_64。或者jiffies,这个更快,32位的可以是原子操作。 使用ji...
2017-07-22 12:36:16
403
转载 [转]读《程序员应该知道的97件事》
正文之前 熟知软件开发的人都知道这个行业里充满了一次次悲壮的失败,每一座成功项目的丰碑下都埋葬着无数同类型的失败项目。大多数软件项目都像是一次典型的死亡行军 加班是一种习惯,并会逐渐产生依赖 编程远远超过程序本身的概念 程序员应该知道的97件事谨慎行动 技术债务就像一笔贷款。在短期内,你能从中得到好处,但是,在清偿之前,你要付出利息。代码里的捷径使得新功能更难于加入,也会影...
2017-03-08 11:14:09
478
转载 Linux内核同步机制之(四):spin lock
一、前言在linux kernel的实现中,经常会遇到这样的场景:共享数据被中断上下文和进程上下文访问,该如何保护呢?如果只有进程上下文的访问,那么可以考虑使用semaphore或者mutex的锁机制,但是现在中断上下文也参和进来,那些可以导致睡眠的lock就不能使用了,这时候,可以考虑使用spin lock。本文主要介绍了linux kernel中的spin lock的原理以及代码实现。
2017-01-21 16:00:35
624
转载 VXLAN技术学习笔记
1、概述 (1)VXLAN是建立在物理IP(overlay)网络之上的虚拟以太网 使用UDP封装完整的内层以太帧,封装报文头共五十个字节 (2)VXLAN使用24位VXLAN网络标识符(VLAN为12位) 最大支持16,000,000个逻辑网络 (3)VXLAN可跨越物理三层网络 ...
2016-12-14 15:36:21
8217
转载 TCP校验和的原理和实现
概述 TCP校验和是一个端到端的校验和,由发送端计算,然后由接收端验证。其目的是为了发现TCP首部和数据在发送端到接收端之间发生的任何改动。如果接收方检测到校验和有差错,则TCP段会被直接丢弃。TCP校验和覆盖TCP首部和TCP数据,而IP首部中的校验和只覆盖IP的首部,不覆盖IP数据报中的任何数据。TCP的校验和是必需的,而UDP的校验和是可选的。
2016-12-11 23:59:04
4378
1
转载 Linux多线程同步的几种方式
现在流行的进程线程同步互斥的控制机制,其实是由最原始最基本的4种方法实现的。由这4种方法组合优化就有了.Net和Java下灵活多变的,编程简便的线程进程控制手段。 1临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。 2互斥量:为协调共同对一个共享资源的单独访问而设计的。 3信号量:为控制一个具有有限数量用户资源而设计。
2013-07-02 23:44:26
510
转载 Linux多线程编程
——本文一个例子展开,介绍Linux下面线程的操作、多线程的同步和互斥。前言线程?为什么有了进程还需要线程呢,他们有什么区别?使用线程有什么优势呢?还有多线程编程的一些细节问题,如线程之间怎样同步、互斥,这些东西将在本文中介绍。我在某QQ群里见到这样一道面试题:是否熟悉POSIX多线程编程技术?如熟悉,编写程序完成如下功能:1)有一int型全局变量g_Flag初始值为0;2
2013-07-02 23:05:40
471
转载 线程的基本概念、线程的基本状态及状态之间的关系
一个程序中可以有多条执行线索同时执行,一个线程就是程序中的一条执行线索,每个线程上都关联有要执行的代码,即可以有多段程序代码同时运行,每个程序至少都有一个线程,即main方法执行的那个线程。如果只是一个cpu,它怎么能够同时执行多段程序呢?这是从宏观上来看的,cpu一会执行a线索,一会执行b线索,切换时间很快,给人的感觉是a,b在同时执行,好比大家在同一个办公室上网,只有一条链接到外部网线,其实,
2013-07-02 22:29:38
1608
转载 程序,进程,线程比较
程和程序区别和联系表现在以下方面:1)程序只是一组指令的有序集合,它本身没有任何运行的含义,它只是 一个静态的实体。而进程则不同,它是程序在某个数据集上的执行。进程是一个动态的实体,它有自己的生命周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被 撤消。反映了一个程序在一定的数据集上运行的全部动态过程。2)进程和程序并不是一一对应的,一个程序执行在不同的数据集...
2013-07-02 22:23:41
788
转载 vc6.0+DDK(xp-2600)游戏手柄按键信息获取程序出现的编译错误
最近帮一个师兄做游戏手柄按键信息获取的小程序,用到了winxp_ddk,版本是2600的,在网上找了半天才找到一个安装文件,安装后,在vc中设置include和lib的目录,分别是"D:\WINDDK\2600\inc\wxp"和"D:\WINDDK\2600\lib\wxp\i386"(假如安装在D盘),vc中的程序头文件及符号库代码添加如下:#include #include
2013-04-13 09:59:29
962
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人