摘要: 本文着重介绍如何在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)
编辑
摘要: 在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)
编辑