随笔分类 -  编程笔记

1
开发技术、编码笔记
摘要:4月14日做了《开源:不断创新的动力》告别演讲,总结了我的十年感悟,“但行好事,莫问前程”。https://speakerdeck.com/rhcad/opensource-touchvg-0414 阅读全文
posted @ 2014-04-16 09:53 张云贵 阅读(695) 评论(0) 推荐(0)
摘要:今天 Steve Sprang 已合并了#100提交请求,Inkpad即将在AppStore上发布简体中文版了!20天前因一个偶然原因启动翻译的:当晚(周六)我想对iPad上的矢量绘图软件进行交互界面功能分析,就上AppStore上找了一遍,无意间发现一个软件和Inkpad雷同,但只字不提Inkpad。这是严重的盗版行为,违反了开源许可证和作者版权声明,当然要抵制的。于是联系了官方,32Beat和rejon顺带查出一堆雷同软件,邀请我进行翻译。我欣然接受,这么好的参与机会可不能错过!即使是文字翻译,也要有版本管理,那种干几天别人都看不到结果万万不行。于是第二天上午上GoogleStable.c 阅读全文
posted @ 2014-04-04 23:45 张云贵 阅读(740) 评论(0) 推荐(0)
摘要:本文新版本已转移到开源中国,欢迎前往指导。Inkpad是一款非常优秀的iPad矢量绘图软件,保管你一看见就忘不了。我的感觉是“一览众山小”、“相见甚晚”,以至于我写的TouchVG就是“小巫见大巫”。必须好好学习这款软件的代码,破解其高性能绘图奥秘。另外,在写这篇日志前本想使用Markdown语言写干净的博客,在 http://rhcad.github.io/ 基于Jekyll配置了日志项目,在本地配置了发布平台,无奈要做的事和要学的知识太多,半途停下来了,看来我不是当极客的料。如果你阅读本文觉得哪里写得糟糕,可以提出来交流,如果本文能帮助你一点点就OK了,我也是在学习,本意不是想写漂亮的文章 阅读全文
posted @ 2014-01-06 13:45 张云贵 阅读(1343) 评论(0) 推荐(0)
摘要:https://github.com/nskboy/glpainthttps://github.com/schacon/ShowOffPadhttps://github.com/RayHightower/Moleculeshttps://github.com/bobmccune/Core-Animation-Demoshttps://github.com/jblough/Android-Pdf-Viewer-Libraryhttps://github.com/rafkhan/Drawhttps://github.com/pents90/svg-androidhttps://github.com 阅读全文
posted @ 2013-10-04 22:42 张云贵 阅读(1131) 评论(0) 推荐(0)
摘要:前言由于项目引入了敏捷开发,需要每天build出一个ipa供QA测试。此前是使用Xcode先achive出一个文件,再在 organizer->achives里发布ipa,一直感觉也没啥不方便的。直到某天,装了InstaSign,突然发现无法用之前的方法 codesign自己的ipa(真是自作孽啊T ^ T..),网上有人说是修改了系统自带的codesign和codesign_allocate,重装xcode也没用。不过还好能build出自己项目 的app,利用iTune,再创建一个ipa文件。但是这种不得已的办法,对于需要每天都打ipa包的俺来说,实在是太繁琐了。于是就有了利用shel 阅读全文
posted @ 2013-06-26 16:42 张云贵 阅读(8030) 评论(1) 推荐(0)
摘要:http://www.swig.org/Doc2.0/Android.html (原文好像被墙,特转) 18 SWIG and Android Overview Android examples Examples introduction Simple C example C++ class example Other examples C++ STL This chapter describes SWIG's support of Android. 18.1 Overview The Android chapter is fairly short as support for And 阅读全文
posted @ 2013-04-04 23:27 张云贵 阅读(1803) 评论(0) 推荐(0)
摘要:这是在Python学习小组上介绍的内容,现学现卖、多练习是好的学习方式。 第一步:最简单的函数,准备附加额外功能 # -*- coding:gbk -*-'''示例1: 最简单的函数,表示调用了两次'''def myfunc(): print("myfunc() called.")myfunc()myfunc()第二步:使用装饰函数在函数执行前和执行后分别附加额外功能# -*- c... 阅读全文
posted @ 2011-12-21 10:30 张云贵 阅读(140050) 评论(15) 推荐(47)
摘要:总结:1、在iTouch4上运行检测到的触摸点数最大是5,即只允许5个手指在屏幕上滑动2、视图支持多点触摸:isMultipleTouchEnabled返回YES,或者设置 multipleTouchEnabled属性为YES3、要将多个CGPoint点添加到NSMutableArray,使用 NSStringFromCGPoint 函数,使用 CGPointFromString 从数组中取出坐标TouchesView.h#import <UIKit/UIKit.h>@interface TouchesView : UIView { NSMutableArray* _points; 阅读全文
posted @ 2011-10-22 20:22 张云贵 阅读(856) 评论(2) 推荐(0)
摘要:总结:1、单点触摸时,获取坐标:[[touches anyObject] locationInView:self];2、需要更新图形显示内容时,调用 [self setNeedsDisplay];3、在绘图事件函数中使用 UIGraphicsGetCurrentContext() 得到画布4、画线使用 StrokePath5、绘图前清除旧的显示内容可使用背景色填充视图范围(本例中可以不要)6、绘图程序一般要支持屏幕自动旋转,在视图控制器的shouldAutorotateToInterfaceOrientation函数中返回YESTouchesView.h:#import <UIKit/U 阅读全文
posted @ 2011-10-22 19:21 张云贵 阅读(938) 评论(0) 推荐(0)
摘要:这两周开始学习ObjC和Xcode4下的iPhone开发,感觉很激动人心,理解了一些基础原理和方法,下午在兴趣爱好组中给大家分享。“多分享是最好的学习方式”,这样能促使自己学得更多。 阅读全文
posted @ 2011-09-02 10:21 张云贵 阅读(685) 评论(2) 推荐(0)
摘要:上周末布置的算法试题:给定一行只包含数字的字符串(1到1000个数字),求使用字符串中的某些字符,构造一个能被15整除的最大整数,要求字符串中的每个字符最多只能使用一次。该试题需要考虑什么数能被3整除和被5整除,涉及排序,当不能被3整除时需要考虑如何舍去某些数字。我今天用C++编程实现了,估计应该能对。一、首先编写测试用例,每对值中给出待测试的数字串和预期的结果:bool AssertPair(const char* instr, const char* check); bool Test(){ return AssertPair("0", "") &a 阅读全文
posted @ 2011-03-12 22:31 张云贵 阅读(1902) 评论(0) 推荐(0)
摘要:在C++中经常使用匈牙利命名法,这在早期是可理解的,那时开发环境(IDE)没有语法亮显和自动显示变量定义的功能,所以使用匈牙利命名法就能一眼看出变量是什么类型的。说起匈牙利命名法,必须区分匈牙利应用命名法和匈牙利系统命名法,后者在前者基础上发展而来并盖过前者。原始的匈牙利命名法,现在被称为匈牙利应用命名法,由1972年至1981年在施乐帕洛阿尔托研究中心工作的程序员查尔斯·西蒙尼发明。西蒙尼建议的大多数前缀都是自然语义的,其前缀是为了说明变量的应用属性或业务属性,例如“String dogName, manName;”;而匈牙利系统命名法的前缀是为了说明变量的系统属性,比如类型,例如 阅读全文
posted @ 2011-03-08 09:42 张云贵 阅读(5879) 评论(3) 推荐(0)
摘要:用VC++2008开发ATL COM控件,由于功能简单,为了能让控件不依赖于VC++运行库,做了下列设置:1、设置“Use of ATL”为“Static Link to ATL”,这样就不需要ATL90运行库2、第一步完成后编译,发现还依赖于MSVCR90(d).DLL,可先设置“Use of MFC”为“Use MFC in a Static Library”,然后编译,不用理会编译警告,然后再改回“Use Standard Windows Libraries”,再编译,就不依赖于MSVCR90.DLL了。查看VC++工程,发现其原因是编译选项RuntimeLibrary默认是3(MFC 阅读全文
posted @ 2010-05-25 14:26 张云贵 阅读(1517) 评论(0) 推荐(0)
摘要:今天把很久以前使用的字符串简单加解密代码仔细检查了一遍,发现个别问题,现在已经整理好了,该算法的特点如下:1、采用逐个字符移位变换、相邻三个字符按位错位的对称加密算法2、支持对汉字和不可见字符等各种字符的加密,可以说是对任意字符组成的串都可加密3、支持源字符串中包含多个’\0’零字符,这样就可以把简单字符串的加密扩展到XML内容、文件内容的加解密上。4、密文采用Base64编码,由大写字母、小写字符、数字、下划线、小数点组成,共64个不同的可见字符由于算法内部是针对字节进行加密的,所以将函数参数定为char*,对于UNICODE字符串可先转换为ANSI串再调用。当然,如果程序是老式的ANSI串 阅读全文
posted @ 2010-05-10 17:19 张云贵 阅读(4899) 评论(0) 推荐(0)
摘要:安装SourceMonitor:\\dampub\Tools\CodeCheck\SourceMonitor 1、在SourceMonitor中新建工程,选择Java或C++类型,按下一步2、指定源代码目录,如果有些目录不希望统计,可选择第2项排除个别目录3、指定工程名称、统计工程文件的保存位置,最后出来统计分析结果代码分析指标说明Files:代码文件数Lines:代码行数,包含注释和空行Statements:纯代码行数%Comment:注释量选择“Display Method Metrics”菜单后出现函数分析表Complexity:复杂度,超过10或20的就可能代码逻辑过于复杂(条件分支、 阅读全文
posted @ 2010-01-18 18:22 张云贵 阅读(6110) 评论(2) 推荐(0)
摘要:代码重构可阅读经典著作《重构—改善既有代码的设计》,针对智汇产品目前的情况,代码重构最重要的要点列举如下:1、 每次仅重构一小步,针对一个问题有目的重构,修改完后测试、签入并打标签 在修改过程中及时看到旁边代码可优化也不要顺便重构,否则波及面越来越大,最终失败或引入BUG2、 每次一小步,如果修改通不过或测试出问题,一时找不到原因,必须放弃该步所作的任何修改(不行就放弃) 不允许修改一半就提交,以后你会发现能更快的复原这些步骤完成重构。 如果对代码结构进行优化重构,结果发现新的结果还是不好,请放弃所做的修改。(不太成熟就放弃)3、 不要为了美化而优化,要针对问题优化,把宝贵时间花在值得的地方 阅读全文
posted @ 2010-01-18 18:13 张云贵 阅读(1447) 评论(0) 推荐(0)
摘要:1、将.\Cab\YourName\目录的YourName改名为自己觉得好识别的名称。 2、修改SignCab.bat和SignCab.inf,换成要发布的DLL和OCX文件名。 修改SignCab.bat最后一行,自动拷贝到发布路径下。 3、运行SignCab.bat,出现输入密码的提示对话框时,所有输入框都输入eip。SignCab.bat:attrib -R -A *.ocx attrib -R -A *.dll copy ..\..\Bin\MyCtrl.ocx /y copy ..\..\Bin\MyCtrl.dll /y attrib +R *.ocx attrib +R *.dl 阅读全文
posted @ 2009-11-18 15:47 张云贵 阅读(1966) 评论(0) 推荐(0)
摘要:在VC++中创建静态LIB库工程,其他工程要使用该LIB时只需要H文件和LIB文件,没有DLL。 如果该LIB内部使用了其他LIB文件,则需要将这些LIB文件一同提供给外界使用编译。 有时LIB文件太多,对于其他工程而言,这些LIB文件没有直接使用到,增加了工程配置复杂性。 下面介绍在VC++IDE环境中将内部所需的各个LIB文件集成到一个LIB的方法。 选择“Project | Settings”菜单进入到LIB项目设置界面,切换到“Library”选项卡, 在该页下方的“Project Options”编辑框中,我们可以看到类似如下的文字: /nologo /out:"..\.. 阅读全文
posted @ 2009-11-18 09:33 张云贵 阅读(1997) 评论(0) 推荐(0)
摘要:用Doxygen进行可自动文档化的代码注释,可从代码中提取注释生成帮助文档。 在使用Doxygen时将需要安装下列软件: 1、安装Doxygen1.4.7,建议安装在“D:\Program Files\doxygen” 2、安装Graphviz-2.13,用于Doxygen生成类图、关系图等图形,建议安装在D:\Program Files\ATT。 3、安装HtmlHelp1.3,用于生成CHM帮助文件,如果已安装了HtmlHelp其他版本则跳过。 下面对三种常见形式举例。 A. 文件头注释,\file, \brief B. 类/结构体等的定义注释,先写名称,再写概要说明 C. 函数定义说明, 阅读全文
posted @ 2009-11-18 09:02 张云贵 阅读(5005) 评论(3) 推荐(0)
摘要:为了避免权限低的人员直接复制或删除VSS共享文件夹下的数据文件,或者破解超级管理员密码,可以在VSS服务器上作以下配置。 1、 确保VSS目录所在分区为NTFS格式 2、 取消“\\vsssvr\项目组名”的共享,假定对应于服务器上的“X:\项目组名”目录 3、 建立两个子目录,例如: X:\项目组名\Vss X:\项目组名\VssData 4、 将 srcsafe.ini 移到“X:\项目组名\Vss”下 将 data、temp、users三个目录和users.txt都移到“X:\项目组名\VssData”下 5、 将“X:\项目组名\Vss”共享为“项目组名”,可以为只读共享 6、 将“X 阅读全文
posted @ 2009-11-17 12:37 张云贵 阅读(2080) 评论(0) 推荐(0)

1