自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 客户端websocket(c#)长连接及简易rpc框架设计(二)

0. 背景上一文客户端websocket(C#)长连接及简易RPC框架设计(一)讲述了客户端websocket(C#)的长连接,以及相关钩子函数的介绍。接下来文本介绍简易RPC框架,设计关系,最后通过一个echo服务来阐述整个由Client-->Server-->Client调用流程。

2017-04-24 10:07:40 5789

原创 客户端websocket(C#)长连接及简易RPC框架设计(一)

0. 背景最近有个需求:与Web服务器保持长连接,接收服务端发来的消息,并通过某RPC协议invoke客户端某些回调函数。故有了本文的客户端websocket(C#)长连接及简易RPC框架设计内容,此内容分两次介绍,(一)介绍websocket如何与服务端保持长连接及异步消息处理;(二)介绍简易RPC的框架设计及流程调用。

2017-02-25 11:53:27 26310 3

转载 MySQL索引背后的数据结构及算法原理

本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。文章主要内容分为三个部分。第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础。第二部分结合MySQL数据库中MyISAM和InnoDB数据存储引擎中索引的架构实现讨论聚集索引、非聚集索引及覆盖索引等话题。第三部分根据上面的理论基础,讨论MySQL中高性能使用索引的策略。

2017-02-04 15:59:26 644

转载 C++STL内存配置的设计思想与关键源码分析

本文转载自 http://www.cnblogs.com/mengwang024/p/4461116.html0. 说明我认为要读懂STL中allocator的源码,并汲取它的思想,至少以下几点知识你要了解:operator new和operator delete、handler函数以及一点模板知识。

2017-01-17 12:48:03 560

原创 Unity5.x实现简易语音聊天(三)Client-Server通信

0. 背景文(一)讲述了本文讲述了如何使用既有材料和Unity,构建一个简单的语音聊天客户端,服务端程序。上文(二)讲述了语音录音和播放的几个重要的步骤,同时也给出了步骤的相关API。本文将会讲述如何使用Unity Network相关组件实现Client-Server通信。

2016-12-27 13:08:09 6484 1

原创 Unity5.x实现简易语音聊天(二) 录音与播放

0. 背景上一文(一)使用步骤,以下称(一)讲述如何使用既有材料和Unity5.x,构建一个简单的语音聊天客户端,服务端程序。本文会详细讲述语音聊天的框架流程和客户端录音和播放相关组件的API。

2016-12-09 18:09:13 10033 1

原创 Unity5.x实现简易语音聊天(一) 使用步骤

0. 背景语音聊天是游戏中重要的功能,它能便捷用户的聊天,增强用户的粘性。本文会讲述如何在Unity5.x中,使用素材[github地址]中的Unity5.x工程项目如何实现在windows中的简单语音聊天。1. 聊天服务本节实现的聊天服务非常简单,有服务端和客户端组成,功能要求如下:客户端通过设备麦克风输入,服务端立即广播给其他所有客户端;在网络状况良好的情况下,无论语音输入时间长短,接收端不

2016-11-21 14:46:23 18596 10

原创 Client-ServerRSA加解密通信方案-Client端(C#)(二)

本文中将叙述Client端中RSA加解密,使用符合(一)中图1的中通信协议。

2016-11-14 16:28:56 976

转载 一起读 Gevent 源码

这一篇主要想跟大家分享一下 Gevent 实现的基础逻辑,也是有同学对这个很感兴趣,所以贴出来跟大家一起分享一下。1. Greenlet我们知道 Gevent是基于 Greenlet 实现的,greenlet 有的时候也被叫做微线程或者协程。其实 Greenlet 本身非常简单,其自身实现的功

2016-11-08 17:10:25 488

原创 Client-ServerRSA加解密通信方案-Server端(C++)(一)

0. 背景最近,需要新做一个游戏demo,类似《部落冲突·皇室战争》的推塔玩法。客户端使用Unity,编程语言为C#,服务端使用C++。由于从零开始,需要建立基础部件,其中网络模块是最重要的模块之一。网络模块协议遵从如下图步骤时序图进行通信。

2016-11-02 11:30:58 2805

原创 使用Python的multiprocessing.connections实现远程方法调用(RPC)

0. 背景实现远程方法调用(RPC)的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。 为实现该目标,RPC 框架需提供一种透明调用机制让使用者不必显式的区分本地调用和远程调用。 下面我们将具体细化stub结构的实现。

2016-10-19 13:15:39 4299

转载 TensorFlow深度学习,一篇文章就够了

TensorFlow深度学习框架Google不仅是大数据和云计算的领导者,在机器学习和深度学习上也有很好的实践和积累,在2015年年底开源了内部使用的深度学习框架TensorFlow。

2016-10-12 11:26:14 5708 1

原创 Python的垃圾回收机制(四)之回收流程源码剖析

0. 背景之前介绍了Python垃圾回收的简介,内存模型和回收机制,这里会详细讲述上一文回收机制中回收流程的具体实现。

2016-09-22 12:31:00 1535

原创 Python的垃圾回收机制(三)之回收机制

0. 背景之前介绍了Python垃圾回收的简介和内存模型,这里会对前几篇提到的回收机制进行代码剖析。注意这里用到的术语,如有疑问移步(一)简介查看。1. 标记清除中的GCPython使用引用计数来管理对象的生命周期。但是问题来了,如何解决循环引用的问题?循环引用计数也好办,使用标记清除(Mark-and-Sweep)就可以解决。标记清除方法遵循垃圾检测和垃圾回收两个阶段,其简要工程如下:1). 寻找

2016-09-07 14:59:15 1463

原创 Python的垃圾回收机制(二)之内存模型

0. 背景之前介绍了Python垃圾回收的简介,它简要介绍了三种垃圾回收器:引用计数回收器,标记清除回收器和世代回收器,这里会给出Python中基础类型在C语言中的内存模型,以帮助我们理解下一节三种垃圾回收器结合使用流程。1. Python对象内存模型首先介绍一下Python对象的内存模型,如下图1所示: 图1. PyObject对象内存模型上图可以看到,一个PyObject必须包含ob_re

2016-08-27 12:16:56 4483 1

原创 Python实现Event回调机制

0.背景在游戏的UI中,往往会出现这样的情况:在某个战斗副本中获得了某个道具A,那么当进入主界面的时候,你会看到你的背包UI上有个小红点(意思是有新道具),点击进入背包后,发现新增了道具A,显示个数为1,并且在下个界面中有个使用的按钮由灰色不可使用变成橙色的可使用状态 图1. 事件触发说明图其中这里是由道具获得这个事件,触发了上述的三个行为。如果使用显示调用行为,会使得代码难扩展,易出错,逻辑

2016-08-12 09:57:23 11866 1

转载 select、poll、epoll之间的区别总结

0. 背景本文摘自 http://www.cnblogs.com/Anker/p/3265058.htmlselect,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就

2016-07-30 12:05:28 1788

原创 Python的垃圾回收机制(一)之简介

0. 垃圾回收(GC)极简介本文介绍了在了解垃圾回收过程中遇到的几个名词定义,并且简要介绍了三种垃圾回收器:引用计数回收器,标记清除回收器和世代回收器。这篇给出个框架,有时间再去填(其实已经写过一遍,某种逗逼原因内容没了,有不情愿再复写一遍:( )。

2016-07-18 10:31:07 2158 1

原创 Python中协程(Coroutine)的使用和注意点

0. 协程的优势在Lua中有协程,在Python里也有协程(Coroutine)。那为什么会需要协程,协程的好处有哪些?1. 分片计算(sliced calculating)我们可以把一个原本很复杂的计算分成若干断,每次算一小段,然后每次获得一小部分的结果。这样就会降低卡顿现象的出现概率。2. 手动暂停和恢复这个好处就是,有一些东西我可以做到一半,当需要其他函数支持的时候,可以

2016-07-11 22:36:20 5478

原创 Unity圆环进度条制作

0. 背景最近有个在Unity中制作圆环进度条的需求,并在圆中显示进度数值,类似于图1: 图1. 圆环进度条平时制作直线的进度条比较多,突然要求做个圆环的有些不适应。不过,这个需求google一下其实大量的解答就出来,关键字"unity circle progress bar",于是我采用了 Unity5 Radial Progress Bar Tutorial HD - YouTube 这个

2016-06-28 14:24:01 19988 4

转载 C++ 异常机制分析

C++异常机制概述异常处理是C++的一项语言机制,用于在程序中处理异常事件。异常事件在C++中表示为异常对象。异常事件发生时,程序使用throw关键字抛出异常表达式,抛出点称为异常出现点,由操作系统为程序设置当前异常对象,然后执行程序的当前异常处理代码块,在包含了异常出现点的最内层的try块,依次匹配catch语句中的异常对象(只进行类型匹配,catch参数有时在catch语句中并不会使用到)

2016-06-12 22:05:24 403

原创 自动安装Python第三方库

0. 背景近期策划提出一个关于策划表预处理的需求:将两个excel表通过某个规则进行合并。合并的规则并不是本文讨论的范围,故这里不作详述。但是不管如何,打开excel,获取某个sheet的单元格内容,Python无疑是最方便的语言工具,很快的,我就知道了相关的第三方库:openpyxl,官网:http://openpyxl.readthedocs.org。安装库有好几种方式:a) 使用pip或是ea

2016-06-07 13:14:39 1653 1

原创 Python类属性或实例属性的类型限制

0. 背景在Python的大量类属性或是实例属性中,由于python语法的特性,属性并不带有类型,可以随意赋值,当然了也可以通过@property用来限制某个属性,但是对于需要大量重用代码的情况下,描述符会更有用。使用描述符,与其说是类型限制,不如说是赋值时的类型检查。问题解决的目标是: 针对某个自定义的类,自定义有目标类型(比如Integer, String, Float)的类属性或是实

2016-05-29 22:55:01 7750 1

转载 Python Types and Objects

0. 背景本文参考文章知乎回答,同时也安利大家去看看《Python Types and Objects》.1. 引子object和type的关系很像鸡和蛋的关系,先有object还是先有type没法说,obejct和type是共生的关系,必须同时出现的。在看下去之前,也要请先明白,在Python里面,所有的东西都是对象的概念。

2016-05-15 19:42:00 791

原创 Unity3D/Plugins实现IOS设备二维码扫描功能

0. 背景二维码扫描功能随处可见,基本库网上也有很多资源,但最好用的就是ZBar的库。ZBarSDK-for-iOS适配armv7, amrv7s, arm64的github地址,在XCode上引入安装参考:stackoverflow回答。本文讲述怎样引入ZBarSDK-for-iOS,并且作为Unity3D引擎的Plugins的形式,实现IOS设备二维码的扫描功能。1. 下载ZBarSDK使用do

2016-05-12 13:48:13 6603

原创 简述Python中"_"的使用常识

0. 背景Python里面的下划线“_”使用频率明显比其他主流语言要多的多,而且在Python中,它也有自己独到的用处。本文主要简述:下划线在python中的使用常识。1. 单下划线-将名称封装到类中如果想将类中的“私有”数据封装到类的实例上,但是又需要考虑到Python缺乏对属性的访问控制问题。与其依赖语言特性来封装数据,Python程序员们更期望通过特定的命名规则来表达出对数据和方法的用途。

2016-05-08 12:42:23 2987

原创 Unity使用JsonFx进行JSON (反)序列

Unity作为客户端要与服务端通信,最为简单通信协议就是使用Json格式。本文简单讲述Unity使用JsonFx进行Json(反)序列。

2016-04-26 13:50:21 3056 3

转载 如何发布一个Python命令行工具

本文摘自无与童比简书《如何发布一个Python命令行工具》,以下为转载内容。本文简介上次写的一个终端里面斗鱼TV弹幕Python版本和Ruby版本,并且发布到PIP和RubyGems上面.在发布PIP包的时候,居然Google不到一篇可以非常好的讲解这个流程的文章.于是整理这篇文章,并且方便后来自己检索,并且方便他人找资料.自推荐下依照本文定制的命令行工具danmu.fm的github地址:http

2016-04-20 12:42:40 1626 1

原创 Unity组件的基类单例模式

0. 背景单例模式非常常见,在各种语言上都能见到,用处也十分广泛,前一篇文章有讲到python的两种单例模式。当然Unity中组件的单例模式用途也很广,例如游戏中各种Manager, 使用StartCoroutine, GetComponent等方法的单例,本文简要讲述一下Unity中对于组件的单例模式如何构建。

2016-04-09 13:56:24 1833

原创 Unity中ScrollRect锁定元素详述(二)

1 制作步骤(接上篇)1.3 脚本控制a). 首先在ChoosePanel内新建一个empty object,作为ChoosePanel的子物体,以CenterToCompare命名,此物体的位置是作为每个元素距离显示的Panel的标准点,即选择哪个元素是通过哪个元素与该CenterToCompare距离的远近判定的。b). 在Assets的Script中创建一个C#脚本,命名为SnapCharMg

2016-03-26 17:19:54 4631 3

原创 Unity中ScrollRect锁定元素详述(一)

0. 背景需求是在竖向屏幕上,左右滑动以选择角色。若角色处在图1.a)图的非完整角色位置,则要求找到最近的角色卡片,并且自动滑动定位,如图1.b)所示。 图1.a) scrollRect处于非完整角色位置,b) 自动滑动锁定最近角色1. 制作步骤1.1 Unity版本需求制作使用Unity5的UGUI的新GUI组建(UGUI自Unity4.6版本出现的)。1.2 新建Canvas,Pane

2016-03-26 12:08:48 10028

原创 简体中文转繁体的python简单实现

0. 背景代理的游戏是一个简体中文的版本,为了能使游戏成为一个拥有繁体中文的港澳台版本。其中的定制的简体中文(占绝大多数)是找台湾当地人翻译的,但是其中有一个语音识别的功能,由于是并非定制的内容,所以找了两个简体中文转繁体的简单实现。1. opencc-python如果目录上的链接被屏蔽了,请手动复制 https://pypi.python.org/pypi/opencc-python/ 首先介绍

2016-03-08 13:33:28 18872 4

转载 粗谈Python内置库itertools-chain与combinations

官方对 itertools 的定义是Functions creating iterators for efficient looping,定义了一系列的方法,能帮助我们创建能够进行高效遍历迭代的迭代器,里面包含不少有意思并且有用的方法,比如像chain, izip/izip_longest, combinations, ifilter等等。在这里简单拿几个方法为例,简单分析一下文档里面给出的等效的实

2016-03-04 15:23:59 1179

原创 单机游戏魔塔学院的安卓版本打包经验小结(二)

目录0. 背景1. 打包总览2. 打包前设置3. 其他SDK加入4. UniPack使用5. 包体脚本操作6. 流程自动化7. 渠道提审反馈的问题8. 未来计划9. 附录-与渠道Ci相关修改操作其中第一部分为0-4节,而第二部分(本文)为5-9节。5. 包体脚本操作打包成candidate app之后,根据项目中的需求对包体进行:反编译解包,文件替换,文件内容修改,重新编译打包

2016-02-05 13:02:16 2070 1

原创 单机游戏魔塔学院的安卓版本打包经验小结(一)

目录0. 背景1. 打包总览2. 打包前设置3. 其他SDK加入4. UniPack使用5. 包体脚本操作6. 流程自动化7. 渠道提审反馈的问题8. 未来计划9. 附录-与渠道Ci相关修改操作其中第一部分(本文)为0-4节,而第二部分为5-9节。0. 背景本文以Unity3D引擎的单机游戏魔塔学院(一款益智类的单机休闲手游)为例,以运营商(移动,联通,电信)短信代理收费为盈利

2016-02-04 23:36:25 1147

转载 git 本地分支与远程分支

最近看到了廖雪峰博客的git教程,内容详实生动,安利一下。正好也看到了分支的git操作《git 查看远程分支、本地分支、创建分支、把分支推到远程repository、删除本地分支》,分享同时修改了一些排版和备注说明。

2016-01-28 23:09:40 818

原创 python的单例模式与讨论

每种语言都有各自的单例模式,比如JAVA经典的懒汉,饿汉模式,或是double-check线程安全的单例模式等等。这里讲述两个比较好用的单例的python写法。

2016-01-24 01:58:13 1121

翻译 深入思考python的super()

本文翻译自文章 《Python’s super() considered super!》,这篇文章是博主在王晓斌博客中,看到的博客Python面向对象_super()函数。

2016-01-12 18:58:26 3776 1

转载 【C++11】新特性——auto的使用

C++11中引入的auto主要有两种用途:自动类型推断和返回值占位

2015-12-29 22:07:35 440

原创 浅谈urllib2中内部调用流程

文章简要的描述了一下urllib2库中,由urllib2.open(url)发起后的内部调用流程。

2015-12-26 12:09:52 519

distribute_setup.zip

安装opencc-python出错时:解压缩distribute_setup.zip后,把distribute_setup.py放到C:\Python\Lib

2016-03-08

空空如也

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

TA关注的人

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