posts - 293,  comments - 6448,  trackbacks - 107
摘要: 本文着重介绍如何在XCODE中,通过C++开发在IOS环境下运行的缓存功能。算法基于LRU(最近最少使用)。有关lru详见: http://en.wikipedia.org/wiki/Page_replacement_algorithm#Least_recently_used阅读全文
posted @ 2012-11-13 15:27 代震军 阅读(1747) 评论(2) 编辑
摘要: 在Object-c中,字符串处理通常使用NSString,NSMutableString这两个类,前者用于定长字符串,后者用于可变长度字符串的操作。尽量其提供的方法很丰富,但一用起来后就让人感到很难受,比如其超长的方法名称(如stringByReplacingPercentEscapesUsingEncoding),再加上嵌套“[]”式的调用方式,让人很快就会产生"[]"匹配综合症。 即使xcode提供了自动配对“[]”号的功能,但一阅读起源代码后依旧让人心生厌恶。给人一种“强迫打字综合症”的感觉。所以我在NSMutableString基础上用C++进行了封装,特别是对于一些常用方法的使用,在使用时会非常方便,与C#没太大差别。阅读全文
posted @ 2012-11-06 17:12 代震军 阅读(2211) 评论(0) 编辑
摘要: 大约是一年多前开始接触OBJECT-C并进行IOS开发,一上来就被OBJECT里那种近似于“丑陋”的方法命名及其[]调用方式给“强暴”了一把,所以在后来的开发过程中,开始思考如何能使用C++方式来混编开发。经过了近半年多的代码积累和开发调试,开始有了这个系列的内容。本系列BLOG的主要方向是引导IOS开发者特别是之前用C#和C++的朋友,可以一步步搭建属于拥有.net风格的基本类库,并快速进行IOS应用的开发。不过前提是读者和开发者有一定的C++开发经验,以免遇到一些诡异问题时,能够快速找出解决方案。阅读全文
posted @ 2012-11-06 10:50 代震军 阅读(2090) 评论(3) 编辑
摘要: 鉴于之前有朋友反映将ImageFilterForC直接用于XCODE开发会报出错误的原因。最近正好入手一部MAC PRO,所以将顺便将 ImageFilterForC做了部分改动并迁移到了IOS上,同时做了一个测试应用。大家可以从这个地址: https://github.com/daizhenjun/ImageFilterForIOS阅读全文
posted @ 2012-07-17 14:13 代震军 阅读(2036) 评论(3) 编辑
摘要: 在原有50多套滤镜(v0.2)基础上,又新增实现22种图片效果。目前三个平台的源码已同步并测试完毕。下面是图片效果:阅读全文
posted @ 2012-05-31 15:08 代震军 阅读(3440) 评论(9) 编辑
摘要: 经过近三天的开发,在原有40套滤镜(v0.1)基本上,又新增实现了7类滤镜(v0.2),通过组合使用,可直接做出12种图片效果。相信总有几款适合您,哈哈。下面是图片效果及源码下载地址:阅读全文
posted @ 2012-05-21 13:41 代震军 阅读(3650) 评论(6) 编辑
摘要: 历经三个多月开发,终于完成了这三个库的编码工作。用到的开发语言主要有使用了C++(含部分Object-c),JAVA,C#。经过检测,目前已正式投入到生产环境中。为了实现三种语言一种命名方式,我采用了相同的类名,接口,namespace(package)。可以说只要熟悉了其中一个平台的代码,就可以很顺利的写出另外两个平台的滤镜代码(当然我后续还会加入更多的滤镜效果)。该库基于LGPL协议,也就是说大家可以将其免费用于自己公司的项目及产品中(包括商业项目)。当然如果大家用后觉得还可以的话,可以私下洽谈合作事宜(包括商业方面的),呵呵! 下面是使用这三个滤镜类库所实现的滤镜效果。阅读全文
posted @ 2012-05-15 13:54 代震军 阅读(7748) 评论(34) 编辑
摘要: 在开发LLServer的同时,我一直在跟进测试企业版的相应LLServer客户端,目前这部分代码已测试完毕并提交的Discuz!NT产品中,会跟随最新的源码包一并发布。本文主要是介绍一下产品中引入LLServer的架构思路。在Discuz!NT的企业版产品中,使用了Memcached,Redis这两个软件来提供分布式缓存服务(两者任选其一)。现有又有了LLServer,它不仅提供了KEY/VALUE缓存,还包括持久化存储部分。这样,用户可以有更多大的选择余地。下面是Discuz!NT的企业版分布式缓存中一个架构图:阅读全文
posted @ 2011-08-26 11:13 代震军 阅读(4866) 评论(17) 编辑
摘要: LLServer是本人基于libevent和leveldb这两个开源软件,开发的轻量级数据存储服务器软件,借助libevent高效网络接口实现对leveldb的访问封装。项目网址:http://code.google.com/p/llserver/. 使用环境:Linux. 作者:代震军. 目前发布版本:1.0阅读全文
posted @ 2011-08-23 13:20 代震军 阅读(5087) 评论(17) 编辑
摘要: 很久没写口水文了,因为一直没有像样的话题。另外作为一个技术从业者,写那类东东实在没什么意思。但昨天与公司销售一起去一家客户那做技术交流的过程中发现了技术之外的话题,我想很多公司可能也正在上演以这类话题所引发的冲突,所以就一并以流水帐的方式呈现出来了。因为这次是客户那边的CTO 对我们产品有疑问,所以之前我们早早准备了一些资料和相关测试说明文档,希望能全方位的介绍一下我们产品特别是企业版的细节和应用场景。这里要说明的是因为这家公司在过去不到一年的时间里因为技术和商务那边内耗过重,经历了两轮大的人事变动,基本上技术部门人员流失怠尽,而早期与我们接触的技术人员已全部离任。阅读全文
posted @ 2011-06-17 11:27 代震军 阅读(11158) 评论(104) 编辑
摘要: 在之前的一篇文章中,介绍了mongos的启动流程,在那篇文章的结尾,介绍了mongos使用balancer来进行均衡,今天就继续讲其实现方式。首先我们看一下Balancer及相关实现策略的类图:阅读全文
posted @ 2011-05-23 10:53 代震军 阅读(3815) 评论(8) 编辑
摘要: 考虑到mongodb使用了boost库源码,参考mongodb官方文档后,下载编译boost版本是1.42(时间为2010-2-2)或更新版本: boost版本1.42: http://sourceforge.net/projects/boost/files/boost/1.42.0/boost_1_42_0.zip/download阅读全文
posted @ 2011-03-07 13:25 代震军 阅读(7643) 评论(16) 编辑
摘要: 在之前的Discuz!NT缓存的架构方案中,曾说过Discuz!NT采用了两级缓存方式,即本地缓存+memcached方式。在近半年多的实际运行环境下,该方案经受住了检验。现在为了提供多样式的解决方案,我在企业版里引入了Redis这个目前炙手可热的缓存架构产品,即将memcached 与Redis作为可选插件方式来提供了最终用户,尽管目前测试的结果两者的差异不是很大(毫秒级),但我想多一种选择对用户来说也是好的。阅读全文
posted @ 2011-02-21 10:51 代震军 阅读(10633) 评论(20) 编辑
摘要: http://tonybai.com/2013/04/10/100-bugs-in-c-cpp-opensource-projects/俄罗斯OOO Program Verification Systems公司用自己的静态源码分析产品PVS-Studio对一些知名的C/C++开源项目,诸如Apache Http Server、Chromium、Clang、CMake、MySQL等的源码进行了分析,找出了100个典型的Bugs。 个人觉得这份列表对C/C++ 程序员有一定参考意义。与其说事后用静态工具分析,倒不如在编码时就提高自知自觉,避免这份列表上的错误发生在你的代码中,因此这里将部分摘录一些阅读全文
posted @ 2013-04-19 15:21 代震军 阅读(206) 评论(0)  编辑
摘要: http://www.infoq.com/cn/articles/anti-ddos-cdn-1前言本议题是我们在OWASP杭州区2013年岁末年初安全沙龙中进行分享的内容,在此我们对这个议题的整体内容进行了重新归纳梳理,形成了文字版。在本文中,DDoS的案例与应对经验均来自于某市场占有率很高的客服系统所遇到的实际场景,分别从成本、效率和具体架构设计(选型、配置、优化等)角度来分析通过自建CDN来应对不同类型的DDoS攻击。背景介绍客服系统的主要业务是提供基于网页的实时动态的文字聊天,主要应用在各类网络商品销售、网站在线客服等领域,总用户数58万,同时在线活跃的用户约12万/天。这些应用领域通阅读全文
posted @ 2013-02-21 15:52 代震军 阅读(313) 评论(0)  编辑
摘要: 本文着重介绍如何在XCODE中,通过C++开发在IOS环境下运行的缓存功能。算法基于LRU(最近最少使用)。有关lru详见: http://en.wikipedia.org/wiki/Page_replacement_algorithm#Least_recently_used阅读全文
posted @ 2012-11-13 15:27 代震军 阅读(1747) 评论(2) 编辑
摘要: 在Object-c中,字典(KEY/VALUE)使用NSDictionary 和NSMutableDictionary(可变长)。使用语法如下: NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key1",nil];阅读全文
posted @ 2012-11-09 15:42 代震军 阅读(1221) 评论(0) 编辑
摘要: 在Object-c中,数组使用NSArray和NSMutableArray(可变长数组)。使用语法如下: NSArray *array = [[NSArray alloc] initWithObjects:@"One",@"Two",@"Three",@"Four",nil];阅读全文
posted @ 2012-11-07 14:56 代震军 阅读(1449) 评论(12) 编辑
摘要: 在Object-c中,字符串处理通常使用NSString,NSMutableString这两个类,前者用于定长字符串,后者用于可变长度字符串的操作。尽量其提供的方法很丰富,但一用起来后就让人感到很难受,比如其超长的方法名称(如stringByReplacingPercentEscapesUsingEncoding),再加上嵌套“[]”式的调用方式,让人很快就会产生"[]"匹配综合症。 即使xcode提供了自动配对“[]”号的功能,但一阅读起源代码后依旧让人心生厌恶。给人一种“强迫打字综合症”的感觉。所以我在NSMutableString基础上用C++进行了封装,特别是对于一些常用方法的使用,在使用时会非常方便,与C#没太大差别。阅读全文
posted @ 2012-11-06 17:12 代震军 阅读(2211) 评论(0) 编辑
摘要: 大约是一年多前开始接触OBJECT-C并进行IOS开发,一上来就被OBJECT里那种近似于“丑陋”的方法命名及其[]调用方式给“强暴”了一把,所以在后来的开发过程中,开始思考如何能使用C++方式来混编开发。经过了近半年多的代码积累和开发调试,开始有了这个系列的内容。本系列BLOG的主要方向是引导IOS开发者特别是之前用C#和C++的朋友,可以一步步搭建属于拥有.net风格的基本类库,并快速进行IOS应用的开发。不过前提是读者和开发者有一定的C++开发经验,以免遇到一些诡异问题时,能够快速找出解决方案。阅读全文
posted @ 2012-11-06 10:50 代震军 阅读(2090) 评论(3) 编辑
摘要: 鉴于之前有朋友反映将ImageFilterForC直接用于XCODE开发会报出错误的原因。最近正好入手一部MAC PRO,所以将顺便将 ImageFilterForC做了部分改动并迁移到了IOS上,同时做了一个测试应用。大家可以从这个地址: https://github.com/daizhenjun/ImageFilterForIOS阅读全文
posted @ 2012-07-17 14:13 代震军 阅读(2036) 评论(3) 编辑
摘要: 在原有70多种滤镜(v0.3)基础上,又新增实现26种图片效果。目前三个平台的源码已同步并测试完毕。 有朋友反映在ios平台上使用时出现编译错误,这里需要说明的是,因为本人手上没有mac的本本,只是使用VC进行开发,并参照相应的object-c代码写了相应的转型程序,所以并不保证在xcode上100%的编译成功。但可以先尝试将invertfilter.h文件(源码中)改写成.mm文件(xcode会将其视为C++代码进行编译),这样就可以一步步将其余滤镜代码也写到object-c项目中了。阅读全文
posted @ 2012-06-21 12:39 代震军 阅读(3259) 评论(9) 编辑
摘要: 在原有50多套滤镜(v0.2)基础上,又新增实现22种图片效果。目前三个平台的源码已同步并测试完毕。下面是图片效果:阅读全文
posted @ 2012-05-31 15:08 代震军 阅读(3440) 评论(9) 编辑
摘要: 经过近三天的开发,在原有40套滤镜(v0.1)基本上,又新增实现了7类滤镜(v0.2),通过组合使用,可直接做出12种图片效果。相信总有几款适合您,哈哈。下面是图片效果及源码下载地址:阅读全文
posted @ 2012-05-21 13:41 代震军 阅读(3650) 评论(6) 编辑
摘要: 历经三个多月开发,终于完成了这三个库的编码工作。用到的开发语言主要有使用了C++(含部分Object-c),JAVA,C#。经过检测,目前已正式投入到生产环境中。为了实现三种语言一种命名方式,我采用了相同的类名,接口,namespace(package)。可以说只要熟悉了其中一个平台的代码,就可以很顺利的写出另外两个平台的滤镜代码(当然我后续还会加入更多的滤镜效果)。该库基于LGPL协议,也就是说大家可以将其免费用于自己公司的项目及产品中(包括商业项目)。当然如果大家用后觉得还可以的话,可以私下洽谈合作事宜(包括商业方面的),呵呵! 下面是使用这三个滤镜类库所实现的滤镜效果。阅读全文
posted @ 2012-05-15 13:54 代震军 阅读(7748) 评论(34) 编辑
摘要: 今天在分析leveldb(google的bigtable的核心组件之一)代码时看到了如下的一段代码:leveldb\util\coding.cc char*EncodeVarint32(char*dst,uint32_tv){//Operateoncharactersasunsignedsunsignedchar*ptr=reinterpret_cast<unsignedchar*>(dst);staticconstintB=128;if(v<(1<<7)){*(ptr++)=v;}elseif(v<(1<<14)){*(ptr++)=v|B;*阅读全文
posted @ 2012-04-28 14:57 代震军 阅读(743) 评论(0)  编辑
摘要: 在开发LLServer的同时,我一直在跟进测试企业版的相应LLServer客户端,目前这部分代码已测试完毕并提交的Discuz!NT产品中,会跟随最新的源码包一并发布。本文主要是介绍一下产品中引入LLServer的架构思路。在Discuz!NT的企业版产品中,使用了Memcached,Redis这两个软件来提供分布式缓存服务(两者任选其一)。现有又有了LLServer,它不仅提供了KEY/VALUE缓存,还包括持久化存储部分。这样,用户可以有更多大的选择余地。下面是Discuz!NT的企业版分布式缓存中一个架构图:阅读全文
posted @ 2011-08-26 11:13 代震军 阅读(4866) 评论(17) 编辑
摘要: LLServer是本人基于libevent和leveldb这两个开源软件,开发的轻量级数据存储服务器软件,借助libevent高效网络接口实现对leveldb的访问封装。项目网址:http://code.google.com/p/llserver/. 使用环境:Linux. 作者:代震军. 目前发布版本:1.0阅读全文
posted @ 2011-08-23 13:20 代震军 阅读(5087) 评论(17) 编辑
摘要: qq:25112522 www.yasn.com.cn这是公司网站 www.yasn.net这是展会网站 公司位置在建德门这边,离地铁很近。 网站架构师(1名) 岗位职责 Ø 参与网站架构策划设计和数据库设计、核心代码开发,数据库优化,提升后台数据支撑能力,提升页面响应速度等后端相关工作; Ø 参与网站功能设计,技术解决方案,及技术规范制定,对技术团队提供技术支持等工作; Ø 参与产品的质量和开发进度管理; Ø 参与网站SEO优化。 任职资格 Ø 计算机相关专业本科以上学历,5年以上软件开发经验,2年以上的.NET架构设计经验; Ø 阅读全文
posted @ 2011-07-15 17:37 代震军 阅读(1221) 评论(0)  编辑
摘要: 在之前的文章中,介绍了关于master-slave模式下的主从端代码的执行流程,因为当时篇幅所限,未对oplog的数据结构以及mongodb的 local数据库作过多阐述,而这可能会让不知道其内容的朋友看代码时云里雾里找不到头绪,今天我专门用一篇文章来大致解释一下(这些内容可能会在后面章节中有所涉及)。首先了解一个local数据库: 在mongod中,出于特殊目的(复制机制),保留性使用了local数据库。当使用认证机制时,对local数据库等同于认证admin数据库。阅读全文
posted @ 2011-06-27 11:50 代震军 阅读(4216) 评论(3) 编辑
摘要: 在上文中介绍了主从(master-slave)模式下的一些基本概念及master的执行流程。今天接着介绍一下从(slave)结点是如何发起请求,并通过请求获取的oplog信息来构造本地数据的。 不过开始今天的正文前,需要介绍一下mongodb在slave结点上进行数据同步时的一个大致流程:阅读全文
posted @ 2011-06-20 08:32 代震军 阅读(2575) 评论(5) 编辑
摘要: 很久没写口水文了,因为一直没有像样的话题。另外作为一个技术从业者,写那类东东实在没什么意思。但昨天与公司销售一起去一家客户那做技术交流的过程中发现了技术之外的话题,我想很多公司可能也正在上演以这类话题所引发的冲突,所以就一并以流水帐的方式呈现出来了。因为这次是客户那边的CTO 对我们产品有疑问,所以之前我们早早准备了一些资料和相关测试说明文档,希望能全方位的介绍一下我们产品特别是企业版的细节和应用场景。这里要说明的是因为这家公司在过去不到一年的时间里因为技术和商务那边内耗过重,经历了两轮大的人事变动,基本上技术部门人员流失怠尽,而早期与我们接触的技术人员已全部离任。阅读全文
posted @ 2011-06-17 11:27 代震军 阅读(11158) 评论(104) 编辑
摘要: mongodb中提供了复制(Replication)机制,通过该机制可以帮助我们很容易实现读写分离方案,并支持灾难恢复(服务器断电)等意外情况下的数据安全。在老版本(1.6)中,Mongo提供了两种方式的复制:master-slave及replica pair模式(注:mongodb最新支持的replset复制集方式可看成是pair的升级版,它解决pair只能在两个结点间同步的限制,支持多个结点同步且支持主从宕机时的自动切换)。阅读全文
posted @ 2011-06-13 12:47 代震军 阅读(3848) 评论(7) 编辑
仅列出标题  下一页