自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jiange_zh的博客

持之以恒,不乱节奏

  • 博客(291)
  • 资源 (1)
  • 收藏
  • 关注

原创 竟事而后言——谨记微言,聊以自省

接触不同的人,听不同角度的观点,总会有一些收获。“听了那么多大道理,却还是过不好这一生。”所以我想,还是踏踏实实从小处做起。在与人接触的过程中,汲取到的点滴智慧,让我念念不忘,在此记录下来,聊以自省,希望接下来能够踏踏实实地去践行。竟事而后言——这是我自己的浓缩,原话大概是:至少要先把事情做成了,再去跟别人说。这是一年半之前跟一位师姐聊天的时候汲取到的。学了那么久,依旧没能做好这一点。职业素养—

2016-01-06 11:15:44 2384 3

原创 【后台开发拾遗】通信协议演进与JCE协议详解

一、通信协议概述通信协议是两个节点之间为了协同工作、实现信息交换,而协商的规则和约定,例如规定字节序,各个字段类型,使用什么压缩算法或加密算法等。1、原始数据假设A和B通信,获取或设置用户基本资料,一般开发人员第一步就是定义一个协议结构:struct userbase{unsigned short cmd; //1-get, 2-setunsigned char gender; //...

2019-01-20 15:01:38 9193 2

原创 hashmap C++实现分析

一、简介Map 是 Key-Value 对映射的抽象接口,该映射不包括重复的键,即一个键对应一个值。在HashMap中,其会根据hash算法来计算key-value的存储位置并进行快速存取。本文介绍的C++ hashmap,是一个缓存用的hash_map,实现模仿自Java的HashMap,做了一些改造和精简。特点:无读锁, 低写锁, 不删除只添加/更新, 桶不扩容, 按经验值初始...

2018-08-12 17:24:50 18475

原创 语法糖:萃取lambda表达式

背景现在手头主负责的服务代码,基本上都用C++11来开发了,异步编程使用的是TAF的future/promise。future的then函数,接受的是一个Callback对象,该对象通过promise::bind来生成。Callback和bind是参考chromium的base::Callback,base::Bind实现的,该版本并不支持C++11,所以bind() 不接受 lamb...

2018-06-22 11:39:39 3631

原创 C++11常用新特性快速一览

最近工作中,遇到一些问题,使用C++11实现起来会更加方便,而线上的生产环境还不支持C++11,于是决定新年开工后,在组内把C++11推广开来,整理以下文档,方便自己查阅,也方便同事快速上手。(对于异步编程十分实用的Future/Promise以及智能指针等,将不做整理介绍,组内使用的框架已经支持并广泛使用了,用的是自己公司参考boost实现的版本)1. nullptrnullptr ...

2018-02-23 19:28:13 123342 38

原创 找出ID字段中,存在A表,但是不存在B表的数据

A、B两表,找出ID字段中,存在A表,但是不存在B表的数据。方法一   使用 not in ,容易理解,效率低select distinct A.ID from A where A.ID not in (select ID from B)方法二   使用 left join…on… , “B.ID isnull” 表示左连接之后在B.ID 字段为 null的记录sel...

2018-02-10 20:14:17 4508 2

原创 游戏后台状态同步与帧同步

最近开始学习一下游戏后台的一些知识,一直很好奇多个玩家之间的数据是如何同步的,查了一下,目前使用的比较多的是状态同步和帧同步。状态同步同步的是游戏中的各种状态。一般的流程是客户端上传操作到服务器,服务器收到后计算游戏行为的结果,即技能逻辑,战斗计算都由服务器运算,然后以广播的方式下发游戏中各种状态,客户端收到状态后,更新自己本地的动作状态、Buff状态,位置等就可以了,但是为了给玩家好的体验,减少同

2017-11-11 23:19:12 8862 1

原创 【Tars】腾讯微服务框架Tars介绍

Tars是【基于名字服务】【使用Tars协议】的高性能【RPC】开发框架,同时配套一体化的【服务治理平台】,帮助个人或者企业快速的以微服务的方式构建自己稳定可靠的分布式应用。Tars在腾讯内部名为TAF,内部从08年开始使用,到现在将近10个年头了,今年终于开源

2017-11-11 21:38:52 46541 5

原创 【后台开发拾遗】C/S架构中接入层的安全体系

前阵子,同事对某App与后台交互的数据进行了抓包分析,由于该App未对数据进行安全加密,因此通过抓包分析可直接获取其后台请求的接口,通过构造Http请求,爬取其App内的数据。平日的工作里,接触的比较多的都是业务逻辑,很少关注接入层这一块,经过上面这件事,激起了我对接入层的一些兴趣,要是哪一天自己做一个App,如何能做到安全接入呢?基础知识1. 重放攻击重放攻击(Replay Attacks)又称重

2017-10-22 21:34:06 3202

原创 Mysql问题一则:Commands out of sync

最近在使用C++访问mysql(使用mysql提供的C API)时,偶尔会出现一个错误:Commands out of sync; you can’t run this command nowMysql文档中说明错误:Commands out of sync If you get “Commands out of sync; you can’t run this command now” in y

2017-10-22 15:35:43 29427

原创 C++使用sort排序导致的coredump(Strict Weak Ordering)

当我们需要自定义排序规则时,需要实现一个比较函数,该函数类似如下:bool cmp(int a,int b){ return a>b;}当cmp返回true时,a将会排在b前面,因此上面的函数将从大到小排序。 换句话说,cmp函数重新定义了“小”的概念(当a>b时,a“小于”b),整个序列将按照这个“小”的规则从“小”到“大”排序。前几天同事遇到一个问题:对一组数据从小到大排序,对于值相等的

2017-10-15 14:57:40 4208 2

原创 【后台开发拾遗】异步代码同步化

在当今的编程世界中,异步编程已经成为了一种习惯。传统的同步阻塞编程,虽然处理流程非常清晰,但是程序常常处于阻塞等待状态,CPU资源利用率低。而早期的异步编程,通过callback的方式进行回调处理,当回调嵌套开始多起来的时候,程序代码可读性变得非常差。 对于C++,协程和Future/Promise的出现,使得我们既可以实现异步编程,又可以将代码写得十分优美,看起来跟同步代码一般清晰。本文再次回顾

2017-10-05 19:35:17 1673

原创 Linux常用文本处理工具总结备忘(grep,awk,sed,cut...)

1. grepgrep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。日常用法:$ grep [-acinv] [--color=auto] '搜寻字符串' filename选项与参数:-a :将 binary

2017-10-04 10:23:03 5016

原创 shell脚本进行数据库查询(分库分表)

背景: 前阵子遇到一个问题,需要从Mysql数据库中查询一些数据,这些数据分布在多个数据库和表中,也就是分库分表。按照某种规则,我们把数据存储在100个表中(10个数据库,每个数据库10个表)。 库名为:db_app_info_$i,其中$i取值为整数0~9; 表名为:t_app_info_$j,其中$j取值为整数0~9。为了完成多表多库查询,我们需要通过shell脚本,遍历每个表进行查询,然

2017-10-03 11:25:37 2828

原创 C++中两个类中互相引用

有时候,我们会有两个类需要互相引用的场景,由于两个类的定义是有顺序的,因此两个类相互引用,不管哪个类在前面,都会出现有一个类未定义的情况。这时可以通过类的前置声明来提前告诉编译器,所要引用的是个类,但由于此时后面的那个类还没有定义,因此无法给对象分配确定的内存空间,故只能使用类指针而不能是类实体。// A.h#include "B.h"class A{public: A(B* pB)

2017-10-02 15:18:51 2562

原创 非root用户安装python第三方模块

非root用户在安装python模块时,会报“Permission denied”的错误,这是因为python模块默认的安装路径是/usr/local/lib/python2.x/dist-packages/,这是系统路径,需要root权限。(其中2.x表示你的python版本,比如2.6)用户可以设置自己的site-packages目录,该路径是~/.local/lib/python2.x/sit

2017-09-17 21:36:06 2647

原创 【后台开发拾遗】数据访问、缓存与更新

一个App或者网站,其数据内容是需要不断地更新的,为方便日常运营,我们建立了一个内部使用的运营管理系统。通过运营管理系统,可以配置一系列的运营数据,并写入到DB中。而后台服务器则读取这些数据,做一系列处理之后传输给客户端做展示。由于后台服务端对数据的读取是十分频繁的,因此每次都从数据库读取是不切实际的,因此需要将数据缓存在本地,并定时更新缓存。本文将介绍一种数据缓存、更新的方案,以供学习、参考。1.

2017-09-13 22:54:07 3052

原创 【后台开发拾遗】总帖

正式工作已经2个多月了,工作日忙于写代码,晚上/周末回到家不是打王者“上分”就是追剧。王者荣耀上了王者了,90多集的剧也看完了,接下来还是要干一干正事,好好梳理一下后台开发的一些基础性的知识。后台开发涉及到的知识十分广泛,还需要慢慢地去学习,由浅入深地去了解。为方便读者(包括我自己)查阅,以及敦促自己坚持学习总结,此处开一总帖,存放日后总结的所有相关文章链接。需要总结的内容比较多,我将尝试从最简单,

2017-09-12 23:21:53 824 2

原创 入职一个月——告别学生时代

一个月前,又回来原来的岗位开始工作了。 虽然之前在这里实习了大半年,但是现在的身份已经不同。不能再是那个只抱着学习的心态去做事情的实习生了。一个月来,还得慢慢去适应作为一个正式员工。近来有些困惑,刚好导师找我聊了一会,大部分困惑解开,但是还是需要自己去调节,去适应。希望自己接下来能够多注意下面几点:结果导向:跟在学校不一样,学校学习的时候更多的注重过程,因为那只是十分纯粹的学习。而在公司内,作为

2017-08-12 21:22:30 1539 3

原创 Mysql联表查询、查询近期某段时间内的数据等

最近使用mysql时用到的一些功能,此处做记录方便日后查阅。联表查询1. 引用两个表SELECT Persons.LastName, Persons.FirstName, Orders.OrderNoFROM Persons, OrdersWHERE Persons.Id_P = Orders.Id_P 2. JOINJOIN(INNER JOIN): 两表都满足的组合 LEFT JOIN:

2017-08-12 11:31:37 2234

原创 makefile 入门知识备忘

前言在windows下,编译、链接工作就是一个按钮的事情,IDE帮你把大部分工作都做了。这当然非常方便,但是如果你对背后的工作原理不了解,就经常会出现一些自己无法解决的、莫名其妙的编译、链接错误。在linux下,离开了IDE,要编译一个大型工程,就需要借助makefile了。makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更

2017-05-14 11:29:34 1316

原创 【C++后台开发面试】C++语言相关

推荐书籍:《C++primer》相关读书笔记专栏:重学C++之读书笔记1. 虚函数实现多态所必须, 当有虚函数时,类会有一个虚表,对于一个实例,会有一个虚指针(只有一个)指向虚表,执行前查表。有子类时,析构函数必须是虚函数。构造函数不能是虚函数(指针未构造)。构造析构调用虚函数不起作用:未初始化 or 已被销毁。另一个优点:实现封装。2. 智能指针智

2017-05-12 12:17:13 2809 1

原创 【C++后台开发面试】网络相关

推荐书籍:《TCP/IP详解》相关读书笔记专栏:http://blog.csdn.net/column/details/tcp-ip1.html1. TCP vs UDPTCP 是一种面向连接的、可靠的、字节流服务, UDP 无连接、不可靠的数据报服务。1. 连接方面: TCP 面向连接,交换数据之前必须通过三次握手先建立一个 TCP 连接。在一个 TCP 中仅

2017-05-12 12:05:10 4437 1

原创 【C++后台开发面试】STL相关

此部分较为精简,只供面试前联想记忆使用,需要先熟读相关的内容知识才能发挥其作用。推荐书籍《STL源码剖析》(侯捷)。六大组件及其关系 空间配置器、容器、迭代器、算法、仿函数、适配器 内存管理:内存配置和对象构造/析构分开。 使用双层级配置器:第一级直接 malloc,free;第二级内存池(维护 16 个自由链表) 迭代器:一种智能指针 Vector: 动态分配的数组,连续线性空间;

2017-05-12 11:34:39 5277

原创 【C++后台开发面试】Linux系统相关

以下复习资料仅供参考,并非面试真题。用过的 linux 指令 netstat : 显示网络状态 (-a 所有选项,-t 仅显示 tcp,-u 仅显示 udp,-r 路由表) tcpdump : 截获当前所有通过本机网卡的数据包。 -i 指定网卡 tcpdump tcp port 23 and host XXX 获取从主机 XXX 接收或发出的 telnet 包 top:任务管理器、

2017-05-12 11:23:14 7041

原创 【C++后台开发面试】复习内容整理汇总

前言自从结束实习回到学校之后,一直在忙着毕业设计,旅游,放松,完完全全把技术成长搁下了,多久没有看书,写代码,写博客了。最近等待答辩,毕业旅游安排在答辩结束之后,所以剩下的10多天,总得找些事情做,所以还是老老实实拿起技术这把利器吧。最近听到很多师弟师妹拿到腾讯,阿里,网易游戏等互联网名企的实习offer,其中不乏看过我的博客,跟我探讨过面试准备工作的,我心里甚是欣慰。之前我写过简历,面试方面的技巧

2017-05-12 11:20:39 5510

转载 【Heydrones】飞手百科第二篇:最实用的无人机操控要点

飞手百科——知识是最好的保险。本文目录1,首次飞行必看重点2,炸机原因TOP8分析3,安全返航4,飞行模式详解--------(一)首次飞行必看重点这不是我乱说,很多人都是在前三次飞行中炸机的。能怪谁呢?谁叫新手首飞通常都记不住以下几个重点呢~?来,跟我一起复习一遍~

2017-04-03 13:27:01 6426

转载 【Heydrones】飞手百科第一篇:一定要看的无人机原理总结

飞手百科——知识是最好的保险。本文目录1,无人机的飞行原理2,无人机的几大系统3,无人机的外观介绍4,无人机的专业术语--------(一)无人机的飞行原理旋翼和轮子一样,是一项神奇的发明。四旋翼无人机更是化作了航拍机,满足了许多普通人关于天空的想象。旋翼

2017-04-03 13:24:28 11958

原创 第一个Node.js应用

安装直接从 github clone nvm 到本地, 这里假设大家都使用 ~/git 目录存放 git 项目:$ cd ~/git$ git clone https://github.com/creationix/nvm.git配置终端启动时自动执行 source ~/git/nvm/nvm.sh, 在 ~/.bashrc, ~/.bash_profile, ~/.profile, 或者 ~/

2017-02-01 11:20:05 737

原创 Node.js入门知识

最近要开始准备毕业设计了,但是还没有很明确的实践方案,所以还是先读一读别人的项目代码。这里选择了项目亿书的代码来阅读,该项目有一本书介绍,所以可以试着读一下(http://bitcoin-on-nodejs.ebookchain.org)。由于项目是node.js写的,所以需要先了解下其语法知识。最基本的语法:https://segmentfault.com/a/1190000002553902进阶

2017-02-01 11:03:44 589

原创 迷笛:追寻自由,做一个理想家

转眼2017年终归来了。跨年夜,与一群陌生的热爱音乐的人一起度过。并非一个乐迷,参加迷笛音乐节仅仅是想着跟不同的人接触,在一个圈子里待久了,思想容易麻木,忘却了思考。之前觉得听歌听哭的人太过于多愁善感,这几天自己在现场,却也竟然受到感染,好几次热泪盈眶。看着台上卖力、享受地表演着,台下欢乐、疯狂地摇摆着,一群素不相识的人,因为共同的音乐爱好,演绎了一场释放与狂欢。跟他们在一起,一把吉他就够了,席地而

2017-01-02 17:35:48 763 1

转载 扛住100亿次请求——如何做一个“有把握”的春晚红包系统?

最近接手一个电视节目晚会的活动需求,跟以往做的有很大区别,因为活动时间短,请求峰值高,而且现场活动的风险非常大。对我来说也算是一次很好的锻炼机会吧,虽然风险也很大。刚好看到微信团队推送的这篇文章,看了还是挺有收获的,这里转载一下,以后再回过头来细细品味,也分享给有需要的伙伴看一看学习一下。—————————————————————————————————————

2016-12-05 23:12:20 2941

原创 2016.11.29 有阻

前言最近一个月真真切切感觉到忙碌起来的时候,仍然坚持去做一些事情是何等困难,比如已经很久没有去梳理知识,写写博客了,怕是自己也渐渐地失去思考的能力。正如一位同学跑步打卡所说: 风雨有阻,节假日有阻,心情不好有阻,心情太好有阻,不在学校有阻,空气质量差于等于轻度污染有阻……想想也真是如此,万事有阻。何阻最近一个月晚上常常要忙到比较晚,开始感受到工作的忙碌。一忙起来,也就开始不愿意去学习。晚上下班之后

2016-11-29 23:38:20 839

转载 Merkle Tree学习

区块链相关知识,原文转自 http://www.cnblogs.com/fengzhiwu/p/5524324.html/*最近在看Ethereum,其中一个重要的概念是Merkle Tree,以前从来没有听说过,所以查了些资料,学习了Merkle Tree的知识,因为接触时间不长,对Merkle Tree的理解也不是很深入,如果有不对的地方,希望各位大神指正*/Mer

2016-11-28 23:22:30 5300

原创 【利器】使用rsync进行主机间数据同步

前言首先,还是先提一下我使用数据同步的一个背景:公司的电脑是windows 7系统,一般程序开发在本地机器进行,代码开发完之后,需要同步到远程linux编译机上编译。之前使用eclipse时的同步方案:通过samba将linux主机的项目目录映射到windows主机的一个系统盘J上,然后通过一个eclipse的数据同步插件将本地项目目录同步到系统盘J上。后面通过Babun(《在Wi

2016-11-06 11:20:17 3830

原创 【利器】在Windows上使用Babun进行linux开发工作

前言我是一名linux后台开发工程师,按理来说,在linux下进行开发工作再正常不过了。然而,公司的电脑都是统一windows系统,因此十分尴尬。不少同事都是使用windows下的编辑器进行开发,开发完之后将代码同步到linux编译机上编译。在刚来的时候,我也听从同事的建议,使用eclipse进行开发。然而我还是喜欢vim,虽然在eclipse上装了vim的插件,但是用起来总是不方便,兼容性很差,于

2016-11-05 14:51:33 4587

原创 2016.10.17 杂思

杂思

2016-10-17 23:49:33 890

原创 vim常用按键整理

前面一篇文章中我们说明了插件的安装和基本的使用:http://blog.csdn.net/jiange_zh/article/details/52572406内容比较杂,本篇将针对我个人的使用做一些整理,方便查阅。一、移动1.按屏幕移动Ctrl + f // 向下移动一屏,F代表ForwardCtrl + b // 向上移动一屏,B代表Bef

2016-09-25 11:32:33 710

原创 【Linux内核设计与实现】进程调度

调度程序负责决定将哪个进程投入运行,何时运行以及运行多长时间。在一组处于可运行状态的进程中选择一个来执行,是调度程序所需完成的基本工作。1.多任务多任务系统分为两类:非抢占式多任务(cooperative multitasking)和抢占式多任务(preemptive multitasking)。Linux提供了抢占式的多任务模式。抢占式的意思是,调度器可以强制挂起一个进程。而在非抢占式模式下,除非

2016-09-23 13:17:16 1245

原创 【Linux内核设计与实现】进程管理

1.进程进程是处于执行期的程序(目标码存放在,某种存储介质上)。进程除了包含一段可执行程序代码,还包含其他资源,比如打开的文件,挂起的信号,内核内部数据,处理器状态,一个或多个具有内存映射的内存地址空间及一个或多个执行线程,以及用来存放全局变量的数据段等。进程提供两种虚拟机制:虚拟处理器和虚拟内存。这两种虚拟给进程造成一个假象——只有自己独享处理器以及独享真个内存资源。有趣的是,同一进程中的线程可以

2016-09-22 14:18:10 1006

数学建模MATLAB算法大全

算法大全第01章__线性规划.pdf 算法大全第02章 整数规划.pdf 算法大全第03章_非线性规划.pdf 算法大全第04章__动态规划.pdf 算法大全第05章__图与网络.pdf 算法大全第06章_排队论.pdf 算法大全第07章_对策论.pdf 算法大全第08章__层次分析法.pdf 算法大全第09章_插值与拟合.pdf 算法大全第10章_数据的统计描述和分析.pdf 算法大全第11章_方差分析.pdf 算法大全第12章_回归分析.pdf 算法大全第13章_微分方程建模.pdf 算法大全第14章_稳定状态模型.pdf 算法大全第15章_常微分方程的解法.pdf 算法大全第16章_差分方程模型.pdf 算法大全第17章_马氏链模型.pdf 算法大全第18章_变分法模型.pdf 算法大全第19章_神经网络模型.pdf 算法大全第20章_偏微分方程的数值解.pdf 算法大全第21章_目标规划.pdf 算法大全第22章__模糊数学模型.pdf 算法大全第23章__现代优化算法.pdf 算法大全第24章_时间序列模型.pdf 算法大全第25章__存贮论.pdf 算法大全第26章__经济与金融中的优化问题.pdf 算法大全第27章__生产与服务运作管理中的优化问 算法大全第28章__灰色系统理论及其应用.pdf 算法大全第29章_多元分析.pdf 算法大全第30章__偏最小二乘回归.pdf 算法大全附录一__Matlab入门.pdf 算法大全附录二__Matlab在线性代数中的应用.pdf 算法大全参考文献.pdf

2015-09-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除