- 博客(118)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 docker swarm 服务 v1.12
服务由多个任务实例组成,每个任务会启动一个容器。目前docker仅支持容器任务,不支持其它非容器类型的任务。服务工作原理:https://docs.docker.com/engine/swarm/how-swarm-mode-works/services/负载均衡:假设集群有10个节点,创建的服务只在其中一个节点启动,连接另外9个节点同样会被路由过来;若10个节点都启动服务,所有客户端只连接其中一个节点,同样会被均衡的路由到10个节点。1. 创建服务[root@jhdocker ~]# docker
2022-05-04 12:08:38
1289
原创 Erlang OTP
ApplicationSupervisorworker(gen_server, gen_event, gen_fsm)陷阱:http://erlang.org/doc/efficiency_guide/commoncaveats.html迁移到Erlang学习步骤:语法的学习,容易阅读开源项目代码,进阶掌握调试、性能调优工具,进阶理解Erlang虚拟机工作原理(熟悉操作系统原理)通用服务器(gen_server)服务器框架 + 回调模块回调模块(业务逻辑)是纯粹的顺序代码,没有并发、
2022-05-04 12:05:20
1605
原创 自我提升要怎么做?注意避开“能力陷阱”
写在之前曾经在樊登读书听过这本书,觉得不错,一直想看看原本,看完之后离散的知识点被整合了起来,又有很多收获,庆幸自己读了一下原书,建议每个人都读读原书,听别人讲书、或看别人的笔记获取到的是别人过滤之后的知识,原书中的内容远不止这些。想想这几个问题,看看你有没有被困陷进之中:1.人最重要的是首先要知道自己想成为什么样的人?你觉得是这样的吗?你在想这个问题的时候,你就被此刻的状态局限了2.你的工作内容是什么?怎么定义你的工作?你在思考这个问题时,如果只局限于你的专业技能、或你正在做的...
2021-02-23 13:58:35
540
原创 Docker技术原理之Linux UnionFS(容器镜像)
0.前言前面我们讨论了Docker容器实现隔离和资源限制用到的技术Linux namespace 、Linux CGroups,本篇我们来讨论Docker容器镜像用到的技术UnionFS。1.关于UnionFS1)什么是UnionFS联合文件系统(Union File System):2004年由纽约州立大学石溪分校开发,它可以把多个目录(也叫分支)内容联合挂载到同一个目录下,而目录的物理...
2018-09-20 15:19:03
12854
3
原创 Docker技术原理之Linux Cgroups(资源限制)
0.前言首先要知道一个运行的容器,其实就是一个受到隔离和资源限制的Linux进程——对,它就是一个进程。前面我们讨论了Docker容器实现隔离用到的技术Linux namespace,本篇我们来讨论容器实现资源限制的技术 Linux CGroups。1.关于Linux CGroupsLinux Cgroups的全称是Linux Control Groups。它最主要的作用,就是限制一个进程组...
2018-09-17 21:04:31
1144
原创 Docker技术原理之Linux Namespace(容器隔离)
0.前言首先要知道一个运行的容器,其实就是一个受到隔离和资源限制的Linux进程——对,它就是一个进程。而本文主要来探讨Docker容器实现隔离用到的技术Linux Namespace。1.关于 Linux NamespaceLinux提供如下Namespace:Namespace Constant IsolatesCgroup CLONE_NEWCGRO...
2018-09-17 21:02:53
9181
1
原创 cocos2d-x3.7 cclabel文字破碎,异常,变乱
效果图如下: 无论是按钮(control button),还是普通的label都有小概率出现这种情况。 该问题发现于cocos2d-x3.7原因:在3.x中使用ttfconfig创建的label,为了性能是创建了缓存的,字体纹理缓存的大小默认是512*512(不同版本大小可能不一样)//CCFontAtlas.cppconst int FontAtlas::CacheTextureWidt
2016-01-05 11:18:45
1934
原创 Android远程推送笔记
Android远程推送笔记Android推送有很多种实现方案,但都没办法和苹果的APNS比拟,这里主要来讲述一下我遇到的问题,和作出的抉择。 首先,为了快速接入,所以就没有自己搭建推送服务器,而是使用了第三方sdk。目前第三方推送已经有很多了,如果要自己搭建推送服务,而不使用第三方sdk,可以参考一下这篇博文 http://www.cnblogs.com/hanyonglu/archive/201
2015-12-15 13:56:42
758
原创 iOS应用App Store发布流程
iOS应用App Store发布流程要发布iOS应用到App Store首先得有一个开发者账号,且不能是企业版(企业版只能部署inhouse,不能部署到App Store)。 应用发布到App Store的流程主要分以下三个步骤。1.创建appid和证书前往 https://developer.apple.com 进入Member Center -> Certificates, Identifie
2015-12-15 13:54:49
905
原创 crash:EXC_ARM_DA_ALIGN(关于内存对齐,memcpy)
crash:EXC_ARM_DA_ALIGN(关于内存对齐,memcpy)问题描述在iOS game开发时做内存拷贝时出现了 crash:EXC_ARM_DA_ALIGN,debug版本不会出现,release版本只在部分机器上出现(ipad 1(iOS7),ipod touch 5(iOS7,iOS8), iphone5c(iOS9)). 所以初步猜想是release编译优化导致的,从crash
2015-11-24 10:38:14
1095
原创 阅读笔记《JavaScript语言精粹》
阅读笔记《JavaScript语言精粹》对象1.检索属性使用[]和.2.引用传递JavaScript的简单数据类型包括数字、字符串、布尔值、null值和undefined值。其它所有的值都是对象。数组是对象,函数是对象,正则表达式是对象。对象通过引用传递,它们永远不会被复制。3.原型当我们对某个对象做出改变时,不会触及该对象的原型,只有在检索值的时候才会被用到。原型连接在更新时是不起作用的。dele
2015-11-10 20:59:40
547
原创 笔记:ndk-stack和addr2line
笔记:关于ndk开发调试时,获取崩溃堆栈方法1. 使用ndk-stack直接获取c/c++崩溃代码的文件名和行号adb shell logcat | ndk-stack -sym $PROJECT_PATH/obj/local/armeabi2. 使用addr2line在程序崩溃时,知道奔溃地址,使用ndk下面的工具addr2line获取c/c++崩溃代码的文件名和行号arm-linux-andro
2015-10-24 14:35:13
1143
原创 关于iOS开发的各种证书
关于iOS开发的各种证书最近在接推送服务的时候,被各种证书弄得不亦晕乎,这里记录一下一些基本的证书作用:1. App IDsappID分明确的和通配的两种,如果要使用推送功能,只能用明确的。2. Devices使用xcode真机调试时,需要在后台将真机的UDID加入测试设备列表3. Certificates证书是为了解决信任问题,保证数据未被篡改。比如应用发布证书、推送证书等,在mac上通过Ke
2015-10-24 14:16:55
426
原创 Android&iOS安装包更新笔记
关于iOS和Android的安装包更新问题1. Android更新apk1)使用DownloadManager下载 2)使用HttpClient下载 apk的下载不能使用ssl,即不能使用https,因为DownloadManager不支持https 参考:http://stackoverflow.com/questions/8106155/android-downloadmanager-
2015-10-24 14:12:37
600
原创 阅读笔记《JavaScript高级程序设计》
0. 严格模式“user strict” (1整个脚本顶部,2函数体顶部)1. 数据类型undefined – 未定义 boolean string number object – 对象 或 null function0) typeof操作符(不是函数)alert(val) //error typeof val //返回”undefined”val定义局部变量(函数体内),全局变
2015-10-24 13:58:06
404
原创 cocos2dx - ActionManager内存泄露
ActionManager memory leakcocos2d-x3.7都3.7了还有这样的bug,真是好难过,不过还是好开源的,谁都可以贡献一下问题描述:当创建一个node,并让它run一个action的时,如果这个node没有添加到任何其它节点(即没有父节点),那么改node和action将一直不会被释放。原因:在node调用runAction时,会将动画交给ActionManager来管理,
2015-10-16 16:32:38
569
原创 Android&iOS崩溃堆栈上报
Android&iOS崩溃堆栈上报通过崩溃捕获和收集,可以收集到已发布应用(游戏)的异常,以便开发人员发现和修改bug,对于提高软件质量有着极大的帮助。在这里总结一下这几天做崩溃捕获的收获。我们项目使用的是cocos2dx-js,那么要捕获的信息就有以下三点: 1. js脚本语法错误、js调用为定义的native对象(程序不会崩溃) 2. iOS(obj-c)/Android(java)端的未捕
2015-10-16 15:39:10
1611
原创 关于字符编码
美国人首先对其英文字符进行了编码,也就是最早的ascii码,用一个字节的低7位来表示英文的128个字符,高1位统一为0; 后来欧洲人发现尼玛你这128位哪够用,比如我高贵的法国人字母上面的还有注音符,这个怎么区分,得,把高1位编进来吧,这样欧洲普遍使用一个全字节进行编码,最多可表示256位。欧美人就是喜欢直来直去,字符少,编码用得位数少; 但是即使位数少,不同国家地区用不同的字符编码,虽然0–1
2015-10-09 14:31:29
2352
原创 cocosbuilder中使用字体描边时,字符重叠,间距过小问题
cocosbuilder中使用字体描边时,字符重叠,间距过小问题cocos2d-x 3.7v3.7解析cocosbuilder中描边字体的代码如下:void LabelTTFLoader::parseProperties( cocos2d::Node * pNode, cocos2d::Node * pParent, CCBReader * ccbReader ){ _enableOutl
2015-09-24 14:09:21
769
原创 2dx关于js响应layer触摸消息的bug
cocos2dx关于js响应layer触摸消息的bugcocos2d-x 3.7问题描述:目前这个版本中(3.7),c++层的layer触摸消息只能通过消息的方式发送给js,不能像lua一样直接回调js注册的触摸回调接口,为了方便,我们更改一下layer类的onTouchBegan/onTouchMove...等接口,使其支持在layer的触摸响应中直接回调js接口。 具体实现见:http://w
2015-09-24 14:08:17
9018
原创 关于js-binding中Layer触摸事件的优化
关于js-binding中Layer触摸事件的优化cocos2d-x 3.71. 目前js中监听触摸事件带来的不便(特别是cocosbuilder)在目前的js-binding中,如果要监听layer的触摸事件,需要自己监听touch事件,如:var touchLayer = cc.Layer.creat();cc.eventManager.addListener({ event:
2015-09-24 14:06:13
1671
原创 2dx解析cocosbuilder中使用layer时的缺陷
2dx解析cocosbuilder中使用layer时的缺陷cocos2d-x 3.7cocosbuilder中的layer通常会用到触摸属性: 但是在2dx解析布局文件的时候,却很多属性都没解析:#define PROPERTY_TOUCH_ENABLED "isTouchEnabled"#define PROPERTY_ACCELEROMETER_ENABLED "isAcceleromete
2015-09-24 14:04:27
649
原创 关于 2dx v3.7 UIScale9Sprite的bug
关于 2dx v3.7 UIScale9Sprite的bug 刚把引擎从js binding v3.0升级到v3.7,发现了一些bug,这里先说说关于scale9sprite的1. 关于capInsetshttps://github.com/cocos2d/cocos2d-x/issues/13560 问题描述:使用cocosbuilder创建的九宫格图片,如果capInserts没有设置(即
2015-08-28 13:25:53
685
原创 c++11 Chrono时间库
c++11 Chrono时间库http://en.cppreference.com/mwiki/index.php?title=Special%3ASearch&search=chrono1. 持续时间 durationtemplate<class Rep, class Period = ratio<1>>class duration;class Rep: 滴答数 class Period: 滴
2015-06-14 17:23:24
644
原创 cocos2d-x lua table数据存储
cocos2d-x lua table数据存储version: cocos2d-x 3.61. 将table转为jsonhttp://blog.csdn.net/songcf_faith/article/details/46389157 http://www.cnblogs.com/songcf/p/4556773.html1) 引入json库require("src/cocos/cocos2d/
2015-06-13 12:30:26
1129
原创 cocos2d-x lua 使用ListView
cocos2d-x lua 使用ListViewversion: cocos2d-x 3.6本文主要讲述:使用Cocos Studio创建ListView,和列表项的模板,代码中通过模板创建列表的每一项,并替换其中的图片文字等。1. 加载Cocos Studio编辑好的资源-- //cocos studio 中资源的名字M.srcLayer = { ["listView"] = "list
2015-06-06 17:06:06
7929
原创 cocos2d-x lua与c++简单交互
cocos2d-x lua与c++简单交互version: cocos2d-x 3.6本文讲述lua与c++的一些简单交互: 1. lua通过消息方式调用c++无参接口 2. c++调用lua带参接口1.通过消息方式调用无参接口接收方监听消息命令,发送方发送消息请求。1) c++层监听消息//在appdelegate启动时监听void communication_cpp_lua::regist
2015-06-06 16:29:54
1047
原创 cocos2d-x lua 使用http(下载图片, POST JSON)
cocos2d-x lua 使用http(下载图片, POST JSON)version: cocos2d-x 3.61.使用http post json与服务器交互require("src/cocos/cocos2d/json")require("src/cocos/network/NetworkConstants")-- post jsonlocal xhr = cc.XMLHttpRequ
2015-06-06 15:57:37
4363
原创 cocos2d-x lua table与json的转换
cocos2d-x lua table与json的转换version: cocos2d-x 3.61.引入json库require("src/cocos/cocos2d/json")2.使用jsonfunction testJson() local beginTime = os.time() local testTable = {}-- [--
2015-06-06 15:54:10
1557
原创 cocos2d-x lua 调用onEnter和onExit
cocos2d-x lua 调用onEnter和onExitversion: cocos2d-x 3.6onEnter和onExit在lua中不会因节点别add和remove而直接被调用,当子节点被父节点add和remove时,会发送enter和exit的消息,所以需要再初始化节点的时候,监听消息,并在收到消息后调用onEnter或onExit。 local function onNodeEv
2015-06-06 15:33:21
1530
原创 cocos2d-x lua 触摸事件
cocos2d-x lua 触摸事件version: cocos2d-x 3.61.监听function GameLayer:onEnter() local eventDispatcher = self:getEventDispatcher() local function onTouchBegan(touch, event) local locationInNode
2015-06-03 17:50:15
1649
原创 cocos2d-x lua 使用自定义消息EventCustom
cocos2d-x lua 使用自定义消息EventCustomversion: cocos2d-x 3.61.发送消息-- post message-- event将会被传递给消息接收函数,所以所有需要传递的数据都可放到event中local event = cc.EventCustom:new("MSG_TEST")event._usedata = {["state"]=self.curS
2015-06-03 17:45:53
5419
原创 cocos2d-x lua 实现状态机
cocos2d-x lua 实现状态机version: cocos2d-x 3.60.状态机状态机主要分为2大类:第一类,若输出只和状态有关而与输入无关,则称为Moore状态机;第二类,输出不仅和状态有关而且和输入有关系,则称为Mealy状态机。
2015-06-03 17:44:43
1433
原创 使用cocos2d-x制作 Texture unpacker
使用cocos2d-x制作 Texture unpacker没错,就是unpacker。 在大多数游戏包里面,可以找到很多纹理图集,他们基本上是用texture packer制作的,有plist文件和png图片组成。 如果原来的小图比较少,倒是可以自己在plist里面找名字,如果小图有几百张,那真的会找疯掉。所以今天就用cocos2d-x引擎制作了一个将纹理大图解包成一张张小图的工具。
2015-05-25 17:07:25
1671
原创 使用markdown
0.什么是markdown首先,Markdown 可将你输入的任何文本转为 HTML,你可以用它来编写博客、文档和网页。你还可以直接在 Markdown 文档中书写 HTML,如果某些功能 Markdown 不具备的或者你忘记了语法,你可以直接用 HTML 来编写,因为 Markdown 能理解两种格式。你不一定需要在你的网站上安装Markdown就可以使用它,它是一个非常方便的写作语言,如果你不想
2015-05-22 13:55:42
355
原创 使用Github
0.为什么使用github牛人多,code多(你在其他地方能找到的开源库,上面基本上都有),使用方便简介1. 注册账号首先在github(https://github.com/)上注册自己的账号,注册之后你就可以创建自己的远程仓库了。2. 安装本地git工具然后本地安装git环境。Windows用户可以从这里现在https://windows.github.com/,安装后有可视化图形界面和命令行窗
2015-05-22 13:37:39
605
原创 cocos2d-x中使用Http
一、如何使用//发送接口void CmdHelper::postRequest(const char* cmdTag, const char* url, const char* postData, size_t postDataLengt){ CCHttpRequest* request = new CCHttpRequest(); request->se
2015-05-08 18:20:13
471
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅