自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Fanrncho的博客

知其然知其所以然。

  • 博客(74)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 解决:Linux上SVN 1.12版本以上无法直接存储明文密码

通过“svn auth”对比我前后安装的两个版本可以看出,更早版本(1.10.2)的输出的密码缓存方式为:“Password cache: simple”,最近版本(1.13.0)输出的为:“Password cache: gpg-agent”。虽然如果把版本手动安装回1.12版本以前其实就可以了,但我还是想先以试试把“默认情况下禁用客户端明文密码存储”手动修改为“打开明文密码存储”,毕竟人还是需要往前看,SVN新版本一直在迭代,总不能以后一直用老版本吧。,了解这个后就可进行修改了。

2024-07-18 10:20:34 640

原创 CentOS系统安装gcc版本8.3.1

CentOS系统安装gcc版本8.3.1

2022-11-07 15:19:40 1236

原创 简便的批量修改MySQL表的字符集和排序规则

原由:项目中的MySQL数据库、表、字段大部分的排序规则(collation)使用的都是以"_ci"结尾的,“ci”是“case insensitive”的缩写,即“大小写不敏感”,而项目的后台统计需求涉及的字符串等值查询、分组(GROUP BY)、排序(ORDER BY)等都要求需要区分“大小写”、以及“重音字符”,所以需要把所有的数据库、数据库的表、以及数据库的表的存储字符串的相关字段的排序规则统一修改为以“_bin”结尾,也就是区分大小写以及重音。假定: 一:首先,批量修改所有数据库的字符集和排序规则

2022-07-14 16:14:39 3080

原创 跳表算法总结

概述跳表是一种多层级索引数据的有序单链表加原始数据层有序单链表的结构。跳表最底层为原始数据有序单链表,各级索引层上节点数量从下往上的分布情况呈指数级递减。理论上log2n - 1层、且从上往下每层的节点数都是上一层的2倍的索引层级结构是使跳表查询效率达到最好情况的设计,但考虑到内存空间的过多消耗问题,所以一般会限制索引的层数,以及新插入的原始数据上升到不同索引层级的概率。特点跳表支持O(logn)级别的时间复杂度的查询、插入、删除操作,以及支持O(nlogn)级别的时间复杂度排序数列。它汲取

2020-07-18 15:28:34 995

原创 O(n)时间复杂度排序算法(桶、计数、基数排序)总结

概述桶、计数、基数排序算法中,除了桶排序在桶粒度大于1时要通过比较排序外,其他两种排序都不需要使用比较就能使数列完成排序,这也是为什么时间复杂度可以达到线性O(n)的原因。桶排序桶排序的求解思路为找出数列中最小和最大值,按照同等大小的范围从最小到最大值闭区间的数值范围内垂直切分为一定个数的子区间,然后把数列内的值依次取出放到合适的子区间内,各子区间再分别对各自区间内的数值进行排序,最后拼接所有子区间的数值就完成了排序。假设桶排序内各个子区间内的排序算法使用的是快速排序,快速排序的时间复杂度为

2020-07-15 11:02:25 1533

原创 O(nlogn)时间复杂度排序(归并、快速排序)算法总结

归并和快速排序都是利用分治的思想来把大问题拆分成一个个子问题,子问题都解决了,大问题也就解决了。归并排序归并排序算法的求解过程可以解释为层层递进式的将数列折半,当数列无法折半的时候(也就是数列内仅剩一个元素)终止递进,数列内仅有一个元素,数列就是有序的,然后回退到上一层等待另一半数列也递进终止回退到这一层,接着合并这两个有序数列,然后再回退到上一层重复逻辑,如此层层合并回退,最终完整的数列达到有序。针对这个逻辑,我们可以写出推导公式:f(n) = m(s...p) + m(p + 1...n).

2020-07-10 18:16:39 1019

原创 O(n^2)时间复杂度排序(冒泡、插入、选择)算法总结

冒泡排序、插入排序和选择排序的算法思想可以通过引入“已排序区”和“未排序区”概念来分解逻辑,这三种排序算法从这两个分区的求解思路可以让人更清晰的辨识它们各自的命名缘由,以及不同点。冒泡排序冒泡排序的算法求解思路是每次从未排序区中以相邻元素按照比较关系两两间可能交换位置,每次遍历下来能够找出该区间最小(求降序)或者最大(求升序)的元素,并放置到已排序区有序列入口端。比如要排序如下数值(假定为升序排序):6,5,8,1第一次冒泡遍历前,所有元素都在未排序区,已排序区目前为空,被放入已排序区的元素

2020-07-09 17:30:41 517

原创 Cocos creator构建游戏时报错:Build Failed: TypeError: Cannot read property ‘configs’ of null

Cocos creator构建游戏时报错:Build Failed: TypeError: Cannot read property ‘configs’ of null...错误原因是我用版本控制管理工具的使用过程中不小心导致了项目的services.json发生了冲突,所以我直接把项目下的services.json文件删除了,这样重新用cocoscreator打开项目,这个文件会从引擎库里重...

2020-03-22 11:51:10 54550

原创 android10系统手机报错:does not meet the requirements to access device identifiers.

今天安卓打包的apk在android10系统的设备上安装后刚点应用就闪退,通过Android studio连接设备查看调试信息发现如下报错:AndroidRuntime: FATAL EXCEPTION: main Process: com.longkoo.djmajiang, PID: 9277 java.lang.SecurityException: getSubscr...

2020-02-26 12:58:11 36673 6

转载 Windows批处理之修改文件名

@ECHO OFFSETLOCAL ENABLEDELAYEDEXPANSIONCOLOR 0ATITLE keith batch rename toolECHO.ECHO =================================ECHO 欢迎使用keith批量命名工具ECHO =================================ECHO.ECH...

2020-01-14 20:13:34 272

原创 Eclipse打包出现错误:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic), "ar" (Arabic).....

老项目今天尝试重新打包,在选中项目右键 -> Android Tools -> Export Signed Application Package...后突然报错如下:这是因为在Android SDK Tool r19版本后, Android SDK Tool 把ANDROID_LINT_COMPLETE_REGIONS 改成了需要检查。解决方法如下:...

2019-11-09 15:42:46 358

原创 如何提高判断微信小游戏用户是否分享的准确率?

分享程序小卡片的流程如下:1. 客户端程序调用微信提供的分享接口,接口参数里指定分享的文案,以及程序小卡片上要使用的图片的url。2. 分享接口的调用会拉起微信。3. 用户在微信里选择要分享的对象。4. 微信通过客户端指定的图片url发起资源的网络请求。5. 相关的资源服务器收到请求后返回相关的图片资源。6. 微信获得图片资源后,在用户选择要分享的对象会话里会展示一个游戏...

2019-10-26 13:25:48 103557

原创 quick cocos3.6.5项目安卓打包问题:xxx/quick/lib/quick-src/lua_extensions/lua_extensions_more.o] Error 1

quick cocos3.6.5项目运行build_native.py脚本文件编译libcocos2dlua.so文件时报错:xxx/quick/lib/quick-src/lua_extensions/lua_extensions_more.o] Error 1xxx是quick源码包的路径。例如我的问题具体报道为:D:\quick\Quick-Cocos2dx-Commun...

2019-08-14 16:25:52 103262

原创 Android Studio打包cocos creator项目在华为机上安装不了问题记录

公司以前的一个老项目(华为应用包)有应用包签名的秘钥等信息,今天用Cocos Creator新建了个项目用Android Studio打包(包的签名信息都用的老项目的),把生成的APK包传送到华为手机上进行安装,谁知安装过程中什么错误也没提示,直接提示:“应用未安装”,我把这个包传送到小米手机却可以安装。后面试了试这个新建的项目在打包时不加签名(即生成个debug包),然后传送到华为手机安装却可以...

2019-07-25 12:09:56 103594

原创 老项目上传git过程中,在git add步骤有几个文件怎么也执行不成功

今天尝试把一个老项目上传git仓库时,敲入命令git add --all回车,然后再用命令git status查看工作区和暂存区状态,发现有几个文件提示"modified: xxx (modified content)",初步怀疑这几个文件可能被加入了忽略文件列表,于是执行命令git check-ignore xxx,但结果和这个无关,于是尝试git add xxx添加单个文件,但无语的是也...

2019-07-03 09:22:00 103720

原创 NodeJS日志中间件log4js的使用封装

根据框架需求,封装了一个日志中间件(log4js)的使用模块,一是留个档,二是分享给有同样需求的群众。首先通过需要通过npm命令安装log4js中间件到项目的工作目录下。然后新建一个文件(例如FLogger.js),在该文件内进行log4js中间件的使用进行封装。代码如下://// Author: Fanrncho// Date: 2019/06/24// Desc: lo...

2019-06-25 12:04:33 104766 1

转载 MySql面试题及答案大全

原文链接:https://baijiahao.baidu.com/s?id=1626325768515979989&wfr=spider&for=pc事务的基本特征:原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。一致性(cons...

2019-06-03 14:58:31 1557 2

原创 C编程笔录(一)1.4:C++多态的理解

多态即多种形态,一般指父类中定义的属性或者方法被子类继承后,可以具有不同的数据类型或表现出不同行为。从广义上来讲,函数的重载(非继承关系,函数名相同,以返回值数据类型或参数列表的数据类型的不同实现)、重写(在继承关系里子类改写父类的虚函数实现),多态变量(父类指针指向子类对象)和泛型(如“模板类”),都是多态的一种表现形式。重载是在编译时期就确定了调度规则(静态绑定),而重写是在运行时期确...

2019-05-15 15:58:46 102504

原创 JavaScript对象拷贝函数实现

JS语言中并没有内置的对象拷贝方法,如果有这方面的需求的话,需要自己实现下。关于对象拷贝方法的设计,我希望可以达到以下几点要求:1. 对象实例内的函数属性仅进行指针拷贝。2. 对象实例内的Array和非Function并且非null的对象属性进行深度全量拷贝。3. 继承被拷贝对象实例内所有符合深度全量拷贝的引用类型属性(包括被拷贝对象实例本身)的原型对象。4. 不考虑含有包装对...

2019-05-10 16:39:28 103283

原创 解决连接不上远程mysql数据库问题

我是用root用户连接的,后面分析原因是我的mysql root用户的连接权限默认是localhost,所以外网是连接不了的。我的分析和解决步骤:step 1:登入mysql监视器,通过命令: mysql -uroot -pstep 2.:根据提示输入密码step 3: 选择mysql数据库,通过命令:use mysql;step 4: 通过命令:select host,use...

2019-04-29 17:07:01 113739 1

转载 Linux Cent OS安装mysql5.7

该博客转自:https://www.cnblogs.com/pythonal/p/6141516.html0、环境本文操作系统: CentOS 7.2.1511 x86_64MySQL 版本: 5.7.161、卸载系统自带的 mariadb-lib[root@centos-linux ~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2....

2019-03-07 19:28:12 425

原创 棋牌机器人设计总结

还记得第一次写机器人时内心的激动和忐忑,激动是源于对提升技术的渴求,当时觉得要是能写出机器人,自己的技术水平也就能再上一个台阶了,毕竟写机器人相比写玩法逻辑算法要难得多。忐忑是源于对未知事物的敬畏。写的第一种机器人是麻将类的,麻将机器人相比斗地主和跑得快机器人要简单得多,虽然麻将和跑得快的玩家都是各自为营的玩法,但因为麻将的出牌并没有多种牌型的变化选择,用跑得快的牌型来解释的话,就是麻将的出牌...

2019-01-16 11:18:36 109354 6

原创 设计代码的经验总结

设计模式虽然好,但也并非任何场景都适合,我觉得在设计代码时只要时刻牢记高内聚、低耦合这两个原则,并在编码中实践,写出来的代码必定不会差。衡量代码优异的标准:拓展性,复用性,维护性;23种设计模式;亦或者面向对象的封装、继承、多态在我看来无非是对高内聚低耦合原则的不同维度的阐述。下面分别阐述个人的一些理解。高内聚低耦合这两个原则都是围绕相互间的关联来定义的,内聚指的是将相互间关系密切的代...

2019-01-15 12:34:43 103023

原创 Skynet搭建的棋牌服务器实现部分Lua业务热更新

热更新最大的难点是状态同步,所以无状态的热更新是最容易实现的,本篇幅的热更新方案的约束条件就是不涉及状态同步的模块。挑选出业务内善变的模块做热更新方案,从而提高开发效率,本篇幅是总结一下我工作当中的棋牌服务器是如何实现部分Lua业务进行平滑热更新的。棋牌服务器是采用云风的开源服务器框架Skynet搭建的,具体的业务用Lua脚本开发。目前项目实现了agent(客户端代理)和roomkee...

2018-12-27 11:51:16 105381 1

原创 分布式系统CAP理论的理解

CAP关注的是多节点互联场景下进行数据的读写操作,相互连接并且共享数据的多节点集合构成的分布式系统是CAP理论的前提。C指的是Consistency(一致性),A指的是Availability(可用性),P指的是Partition Tolerance(分区容错性)。分区容错性是指当发生网络分区,系统可以继续履行职责。分区现象可能是丢包、拥塞、亦或者是连接中断,当系统的部分节点出现这些情况时...

2018-12-25 18:03:25 102650 2

原创 代码复用性的理解

最近的开发工作主要是把某C++业务代码翻译成Lua版本,这个过程相当枯燥,期间吐槽不少这块业务代码的整洁性,在测试Lua版本的业务代码时,因翻译时求快心理,有些复杂算法的翻译出现纰漏,且类似的算法在业务的多处有不同的实现,导致纠正这类算法的时候要多处同步,改完还得多处反复检查有没犯低级语法错误(比如有些变量名是否缺或者多个字符),毕竟编辑Lua脚本的编辑器目前还没有比较完善的语法排错功能。总之...

2018-12-25 12:14:24 107175

原创 服务器限制一条连接的消息包单位时间内的发送频率

服务器的处理能力有限,如果单位时间内一条客户端连接发送的消息包过于频繁,那么消息的发送机制本身设计得就不合理。首先这种情况会造成的服务器压力:假设同时连接服务器的连接数共有10000条,每条连接以间隔1秒钟向服务器轮询发送心跳包,这种场景下每一条连接都感觉网络包收发流畅。但如果每条连接以间隔0.1秒钟向服务器轮询发送心跳包,也就是相当于之前1秒钟只发送1个心跳包改成了发送10个心跳包,那么...

2018-12-18 18:24:15 102541

原创 解决cocos creator微信小游戏本地缓存文件超过限制问题

cocos creator微信小游戏开发,如果游戏包内资源超过包体大小限制,那么可以通过远程加载的方式加载资源(代码脚本文件除外)。小游戏在迭代过程中因为缓存资源的积累,在加载资源的时候会出现超过缓存限制大小的错误,这个问题在cocos creator官网的文档里其实提到了,如下:注意:如果缓存资源超过微信环境限制,用户需要手动清除资源,可以在微信小游戏平台下使用 wx.downloade...

2018-12-03 20:13:23 5928 4

原创 棋牌架构DB服务(Mysql+Redis)数据存储演进笔记

自新项目开展以来,需要接触与数据存储打交道那一块业务,以前的项目开发过程中因为写的都是棋牌玩法相关的业务逻辑,虽然也私下看过DB服务代码,但是当时对数据库与缓存的理解还是停留在语法使用层面,所以对DB服务设计的利弊完全没有概念。现在写的一些业务,比如排行榜、邮件、签到和商城等等与DB服务接口的交互频繁,加之微信小游戏的流量增长速度相比棋牌app要大得多,面对冷热数据的处理,就不得不多做性能方面...

2018-11-24 17:22:35 102734

原创 游戏服务器简单的邮箱设计

服务器的邮件功能目前其实已经可以满足时下需求,redis做缓存,mysql做持久化数据库,邮件数据在mysql和redis中都是用一个字段表示,以Json编码后字符串为值,取值做更改操作时需先进行Json解码。因为具体的邮件业务简单,所以这样实现也能满足时下需求,但是,个人觉得这样的设计虽然易实现,但是程序的易读性较差。其实,最主要的原因是,邮件数据持久化采用的是mysql关系型数据库,然...

2018-11-06 13:14:11 114822 4

原创 cocos creator JavaScript微信小游戏开发问题笔记:游戏在浏览器和微信开发工具的模拟器上运行都没有问题,但手机上运行却会特别卡。

最近项目组在开发一款运行在微信小游戏环境的斗地主游戏,项目的第一个版本收尾阶段突然出现了一个奇怪的bug,因为之前开发阶段的测试都是在浏览器以及微信开发工具上的模拟器进行的测试,所以直到临近项目上线才发现这个问题,具体表现如下:游戏运行在手机上会特别卡,并且卡一段时间、或者卡一下就断线,即使断线恢复后也依然很不稳定。初步猜想:卡顿问题属于客户端程序问题,断线情况可以排除心跳包问题,可能是客户端...

2018-11-01 20:48:47 102801

原创 linux下获取mysqld服务的默认配置文件路径方法

1.首先通过which mysqld查找到该mysqld路径,然后cd到该目录。2.键入 mysqld --verbose --help |grep -A 1 'Default options'命令来查看mysql使用的配置文件默认路径

2018-10-21 18:44:58 5239

转载 linuxcentos7下解决yum install mysql-server没有可用包

第一步:安装从网上下载文件的wget命令[root@master ~]# yum -y install wget第二步:下载mysql的repo源[root@master ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 第三步:安装mysql-community-release-el...

2018-10-21 18:23:35 238

原创 C编程笔录(一)1.3: 为什么C不支持函数重载,而C++支持?

问题: 为什么C不支持函数重载,而C++支持?因为C和C++的函数在源文件生成可执行程序文件的“编译”阶段函数签名的方式不一样。举个例子:如在.c和.cpp文件里分别定义个一模一样的函数int minus(int a, int b){return a - b;},在执行“编译”阶段函数签名后.c文件的该函数名为minus,.cpp文件的该函数名为_Z3minusii,如果.c和.cpp文件再定义一...

2018-02-10 14:27:05 102934

原创 C编程笔录(一)1.2: C编程的源文件到可执行程序文件的编译过程

C编程的源文件到可执行程序文件的编译过程可分解为四个步骤:预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)、链接(Linking)。下面以示例解释这四个步骤,在Linux操作系统下以gcc命令编译main.c源文件到生成main.out可执行文件:Linux系统版本:Linux version 3.10.0-514.6.2.el7.x86_64 gcc...

2018-02-09 18:04:32 102754

原创 C编程笔录(一)1.1:使用#include包含头文件,用尖括号和双引号括起有什么区别?

问题:使用#include包含头文件,用尖括号<>和双引号""括起有什么区别?测试:项目环境:Microsoft Visual Studio Professional 2017创建个“空项目”,通过项目“配置属性”弹窗->链接器->系统->子系统->选择"控制台(/SUBSYSTEM:CONSOLE)"设置为控制台应用程序,项目创建完成后添加一个含有main入口...

2018-02-08 14:34:51 103241

原创 C编程笔录(一)1.0: 在C编程中,函数的声明为什么都习惯的写在头文件中,然后在需要调用的地方使用#include来包含?

问题:在C编程中,函数的声明为什么都习惯的写在头文件中,然后在需要调用的地方使用#include来包含?带着这个问题,我创建了三个.c文件,分别命名a.c、b.c和c.c,并进行如下编程:a.c文件:int add(int a, int b){ return a + b;}b.c文件:#include int add(int a, int b);void

2018-02-07 17:15:52 103026

原创 笔记:sublime text 3运行lua代码报错:[WinError 2] 系统找不到指定的文件。

今天把sublime text 2卸载了,从官网下载了sublime text 3并且安装,结果在调试lua代码时报如下错误:网上查了半天该错误的解决方法,都没有查到相关lua程序调试报这类错误的问题及解决方案,只好自己建个新编译系统文件,如下:选择New Build System...项:然后在弹出的文件内将内容替换为如下代码:{"cmd": ["这里填写你的lua解

2018-02-06 15:59:34 6229 3

原创 笔记: C#文件操作方法学习

学习笔记:文件目录创建、文件拷贝、文件删除、文件移动、文件夹移动、文件夹删除、获取文件信息获取app所在资源根路径: public static string get_app_path()        {            string app_name = Process.GetCurrentProcess().MainModule.FileName;         

2018-02-01 15:16:02 101745

原创 笔记:云风pbc的protobuf.lua文件下register方法用法

今天重装quick-cocos, 因为项目要运用protobuf协议,所以将云风的pbc源码下载下来编译进player内,以前集成protobuf到quick-cocos操作过不少,但一直有个关于pbc下的protobuf.lua文件的register()参数问题没有细究,今天借以闲暇终于探了个究竟:protobuf.lua文件的register()方法(lua):function r

2018-01-30 16:32:07 2846

lua5.3解释器

lua5.3源码编译生成的解释器,需要的朋友可以下载。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-02-06

skynet-crypty_windows(lua5.1)

针对windows环境下quick-cocos项目(lua5.1)嵌入skynet-crypt的使用,自己在云风skynet源码的lua-crypt.c文件的基础上做了一些修改,以适应项目环境。

2017-10-11

cocos2d-x飞机大战项目

cocos2d-x飞机大战项目,弹幕类型。子弹种类繁多,打击感强。

2016-03-21

cocos2d-x项目ios-android版接入微信分享功能

公司需要,历经一周,终于把cocos2d-x项目接入微信分享功能搞定了,含android版及ios版接入。 功能实现:1.截屏并分享截屏图片到微信;2.网页链接分享到微信. 局限:cocos2d-x项目. 方便:截屏分享和链接分享就只需包含一个头文件,然后调用两个函数就ok. 具体怎么接入,及接入需要的代码文件,本人已经整理封装好了,并且具体的操作流程也附上了步骤流程图解,有需要的同僚直接下载解压,仍有疑问欢迎来询~ 联系方式:QQ:248158473

2016-03-21

cur、ico格式图片的生成与转换软件

运用该软件可导入各种格式图片,如png、jpg、bmp等等格式的图片进行编辑和ico、cur格式转换,除此之外还能自己新建图片进行编辑,并最终保存为ico、cur格式图片。

2015-12-22

C++贪吃蛇源代码

C++贪吃蛇源代码,游戏共设两关,按食物累计计算是否通关,有兴趣的朋友可以下载参考。

2015-12-14

GDI、GDI+像素分割图片

经本人面试经验,曾遇到过一次图片分割题,今特献此文,给需要的朋友借作参考。 引用GDI+技术加载bmp、jpg、png等格式图片,通过获取图片像素值进行像素分割运算,并保存分割后的图片。 资源下载并解压后自己新建个vs工程,并将解压后的cpp文件拷到工程的根目录下,再同样添加一张图片到根目录下,接着打开cpp文件将加载图片函数里的图片路径名参数修改为你添加的图片名即可。

2015-12-14

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

TA关注的人

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