- 博客(37)
- 资源 (3)
- 收藏
- 关注
原创 浅尝python
借网上的一幅图: 如何调用Linux命令下面代码演示了调用一个shell命令, 其中,命令的输出会存储到result变量中, 而命令的返回值,则存储到exitcode中,由此可见,调用shell命令还是很方便的:import commandsexitcode,result = commands.getstatusoutput('dir')print "exitcode: %
2013-03-26 11:40:31
3506
原创 Objective-C 学习笔记(2/2): 内存管理、Selector和属性
接上一篇:http://blog.csdn.net/kwiner/archive/2011/03/20/6263503.aspx内存管理在Objective-C中,NSObject 定义了release和dealloc函数,一般来说,如果你的类中包含有对象,需要重载dealloc函数,在dealloc中释放类成员变量所占用的内存,下面的代码演示了,当给一个对象发送release消息,或者这个对象被自动释放池回收时,dealloc会得到调用,这种行为使用dealloc有点像C++中的析构函数。
2011-03-23 22:45:00
2095
转载 [转帖]iPhone/Mac Objective-C内存管理教程和原理剖析
<br />版权声明<br />此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有。欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必须包含此版权声明的完整内容。<br />版本 1.1 发表于2010-03-08<br />前言<br />初学objectice-C的朋友都有一个困惑,总觉得对objective-C的内存管理机制琢磨不透,程序经常内存泄漏或莫名其妙的崩溃。我在这里总结了自己对
2011-03-23 21:19:00
881
原创 Objective-C 学习笔记之基本语法(1/2): 类的定义、继承、多态与接口等
最近在研究 iOS/Mac 平台下的软件开发,说实话,刚开始看Objective-C的代码实在是跟看外星文差不多,哈哈,不过熟悉之后就适应啦,蛮简洁的,下面是我自已写的一些例子,尽量简短,希望能更好地查询Objective-C语法。
2011-03-20 21:24:00
2137
原创 Android NDK开发环境搭建(Windows7平台)
步骤一:下载并安装NDK 首先,前往从网站http://developer.android.com/sdk/ndk/index.html获取Windows 平台的最新的Android NDK 套件,下载完成会得到一个安装文件,下载页面如下图所示,请下载红色方框框出的文件: 将该压缩包解压到 C:/ 盘的根目录下,得到文件夹android-ndk-r5b,NDK是不需要安装的,直接可以使用了。 步骤二:下载并安装cygwin 我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是
2011-03-15 10:22:00
9857
6
原创 Plarform Builder 6.0到期后的解决办法
<br />解决方法是使C:/Program Files/Microsoft Platform Builder/6.00目录下文件EtkRemov.inf的创建日期修改成当前的日期,但正常的删除后重新创建是不行的,我发现一个简单的解决办法,就是进入LINUX系统下,删除EtkRemov.inf,再touch EtkRemov.inf重建一个即可。
2011-01-18 16:51:00
996
转载 谁动了我的奶酪
<br /> 故事主要讲的是一个有关变化的原理,故事中有4位主人公:2只小老鼠(嗅嗅&匆匆)+2个小矮人(唧唧&哼哼),其实4个主人公的名字都有d意思,嗅嗅:主要是要有触觉,事先闻到d风吹草动,类似危机感意识; 匆匆:做事要快,立即采取行动;唧唧:有小小自嘲的意味,就是说如果发现了错误,只要你肯改正,还来得及,类似亡羊补牢,为时未晚;哼哼:从发音可知,有些高傲自大的感觉,用来形容一些不知悔改的顽固分子就最适合不过了,其实这个也正正反映了4位主人公的性格特点。 <br /><br />
2010-07-28 09:30:00
961
转载 UE,UI,UCD,UED 的概念
UE (User Experience) :用户体验 UI (User Interface) : 用户界面UCD (User-Centered Design) : 以用户为中心的设计UED (User-Experience Design) : 用户体验设计UI(User Interface)即用户界面,也称人机界面。是指用户和某些系统进行交互方法的集合,这些系统
2010-05-13 13:50:00
970
原创 敏捷开发学习总结(4):极限编程(XP)学习笔记
极限编程(XP)有哪些实践方法?1) 短期的迭代目标:传统的开发方法,整个软件开发完成后才发布,周期长所以收到客户反馈的时机晚。XP的做法是按照需求的优先级,持续制定短期的开发目标(或小版本),完成一个小周期就发布一次,尽早取得客户的反馈。2) 简单设计:关于设计,传统的开发方法中常犯的错误有:a) 进行过多的预先
2010-05-09 19:34:00
1426
3
原创 Qt4多线程编程示例
本示例演示在窗口中启动一个线程,然后在线程中通过事件的方式与窗口进行通信,这是窗口与工作线程配合的普遍,而且比较安全的方法,推荐大家在窗口程序中使用多线程时使用这种方法,不要使用全局变量、文件等方式来处理窗口与线程间的通讯。 示例的头文件:class TMyThread; /* 窗口代码*/class TMyWidget : public QWidget
2010-04-29 09:37:00
3959
原创 敏捷开发学习总结(3): 思考开发文档的利与弊
文档是个好东西,这是不可否认的,但是太依赖文档也有弊端,下面我从不同的度来分析一下文档的利与弊,然后思考在敏捷开发时,文档又是如何进行的。从公司的角度来看,编写文档有如下好处:a1) 公司使用的是瀑布生命周期(或序列式开发,传统开发),所以必然的,在某一个阶段,需要编写大量的文档作为进入下一阶段的输入。a2)过程改进的需要,认
2010-04-04 16:10:00
1310
原创 敏捷开发学习总结(2):敏捷和迭代开发的问与答
从传统开发模式的思维,转换到敏捷和迭代开发肯定会有很多的疑问,这些疑问通常是公司管理层对敏捷和迭代开发抱怀疑态度,或者没有信心的主要原因,因此,在本文中,我以问答的方式,试图去整理一下自已对敏捷和迭代开发的理解,有不对的地方,请大家帮忙指出啊。问: 需求没有在项目初期全部细化好,如何保证系统的设计可以满足所有功能?答: 实践中应用如下方法来进行系统的设计:
2010-04-03 15:26:00
2564
原创 敏捷开发学习总结(1):传统序列式软件开发方法的缺点,以及迭代开发方法的选择
大部分公司仍使用传统瀑布模型(或序列式开发方法)进行开发我所工作过的公司,以及我身边的朋友工作所在的公司,再加上招聘时从求职者那里所了解到的其他一些公司的开发过程,基本上都是使用传统的软件开发模式,类拟或者就是瀑布开发模式,这种模式有如下特点:1) 将项目的生命周期明确地划分为几个阶段,完成一个阶段才进入下一个阶段。2)
2010-04-03 14:28:00
4847
1
原创 Qt4中利用Meta Object实现类拟.NET和Java的反射(Reflection)功能
写QT程序时,对一个类进行单元测试,有时不太方便直接获得待测类的私有数据,虽然可以用友元,但是如果待测类的私有数据都放在cpp文件中就比较麻烦了,能不能让待测类在判断到自已是被测试类创建时,在不Include测试类头文件的情况下,直接调用测试类的方法来将数据赋给测试类呢?答案是肯定的,下面是一个尝试,通过元数据来达到此目的,虽然这种做法好像不是太好,但是有时可以解决燃眉之急吧,这种做法是不
2009-12-22 14:58:00
1102
原创 是什么决定你的写作水平?
是什么决定你的写作水平呢? 我觉得有如下几点:1) 看你读过多少好书2) 看你读过多少好的文章和资料3) 是否经常与人交谈,特别是与年长的人交谈4) 其它知识来源,例如经常看营养丰富的电视节目,讲座等5) 多思考,多总结,多写作是什么导致我的写作水平很难提高?1) 平时读书的范围窄,读的书大部分都是技术书籍2) 平时很少看杂志,看也是看技术杂志,例如>
2009-12-14 16:39:00
681
转载 [转载]面试趣谈
原文出处: http://blog.csdn.net/goodxp/archive/2009/03/01/3946466.aspx前几天和几个软件业的同行聊起“面试”的话题,大家讨论的很热烈。有些观点很有趣,在此与朋友们分享一下。某测试主管:关注“品味”作为测试人员,“品味”很重要。没品的人认为已经不错的东西,有品的人可能觉得是垃圾。比如iPhone让你摸了就想再摸
2009-12-14 16:38:00
597
原创 .NET技术初探2 - 中间语言的引入与新语言C#的诞生
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty
2009-10-20 19:29:00
779
原创 .NET技术初探 - 为什么要学习.NET?
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Fon
2009-10-14 21:58:00
1218
原创 程序员还应该掌握哪些技能
最近公司在讨论如何通过培训来提高开发人员技能,我觉得除了编程工具的熟悉运用,以及对算法和系统的掌握外,下列的一些技能也是现代开发人员应该要提升的技能: 1. 设计模式 --- 熟悉常用的设计模式,并了解你所用的软件包中提供了哪些设计模式。2. 面向对象的程序设计 --- 熟悉面向对象的程序设计思想,掌握面向对象的各种设计原则,例如单一职责原则、开放-封闭原则等等。
2009-09-19 09:07:00
800
原创 《个体的崛起》读书笔记
不记得在程序员杂志的哪一期哪一篇文章了,看到文章作者推荐这本书,另外还有一本<<大象与跳蚤>>,这两本书一直收藏在我的当当网帐户上,我自已有用PDA阅读电子书的习惯,上一次回老家,下了<<个体的崛起>>的电子版塞进我的PDA,准备在长途车上阅读以打发时间,在还没有阅读之前,从书名来看,我一直以为应该是讲个人自我发展的指导书,但看了开头的序言,才知道是一本写给企业管理者的,是讲管理的书,闷,
2009-06-18 22:44:00
1205
转载 [转载]UML类图关系全面剖析
很想写一篇用C++代码来辅助说明UML中类图关系的文章,使小组里面大家的设计文档能够规范化一些,但发现已经有人写了这样的文章,所以这里就简单转载一下吧:===========================================================本文随便转载,请保留出处:http://blog.csdn.net/dylgsy/UML的类图关系分为:
2009-04-26 09:35:00
883
原创 在程序中打印调用堆栈
一直以来都没有花太多精力放在学习调试方面,主要还是平时调试的机会相对较少,一般情况下,用strace、gdb、以及通过打印log基本上就能解决问题了,还有就是,与其花精力去提高调试技能,还不如在设计、防御式编程和单元测试等能力去提高,以及提高自已编码的质量,减少BUG的出现或者缩少BUG的范围。 但是,有时使用调试工具并不是为了查找BUG,在阅读和分析源代码时也非常有用,下面的代码
2009-04-12 12:43:00
9067
2
原创 个人整理的Linux Shell语法速查表(用C语言语法来作对比)
虽然学过Linux Shell编程,但由于编写Shell脚本的机会实在是比较少(通常在项目初期搭建开发环境时编写得比较多一些),所以一些语法久而久之就会忘了,一个简单的语法去翻书效率实在是慢,所以就个人整理了一个表格,由于我用的编程语言是C/C++,所以在编程的时候往往脑海里面首先浮现的是用C语言怎么去编写它,所以我干脆拿C语言的语法来和Shell编程的语法作个对比表,这样查起来就方便了,哈:
2009-04-05 11:06:00
20597
12
原创 Getting Things Done
一个月一晃眼又过去了,发现书架上的新书又准备要生尘了,确实需要好好的管理一个自已的时间,前阵子从同事共享的RSS中接触到GTD的概念,受益颇深,因此在这里分享一些相关的文章:GTD是“Getting Things Done”(完成每一件事) 的缩写,是一个被广泛采用的赋予实际行动的时间管理系统,更多文章可以访问:http://www.mifengtd.cn/。GTD综述和介绍:什么是”
2009-04-05 10:54:00
1591
原创 为什么在当前环境下也招不到人
简历地毯式的轰过来,频繁的约见,但就是没招到合适的人,为什么呢? 一般都认为,经济危机的时候,大部分的企业裁员和倒闭,企业要招聘到合适的人应该要比以往更加容易才对,但情况并不是这样…… 前阵子看了篇国外的文章,文章中说道,企业无论是裁员或者减薪,对员工的士气都会产生很大的影响,从而影响工作效率,工作效率的降低在经济低潮的情景下对企业简直是雪上加霜,如果企业只是单纯的减薪或
2009-03-21 09:05:00
1226
原创 一段LINUX下常用的多线程程序代码
好久没有更新BLOG了,最近在做语音识别和语音合成方面的工作,粘一段自已写的用得比较多的LINUX多线程代码,做个记录,方面以后查阅吧。代码的作用是,主线程负责将要处理的数据放入队列,另外一个新线程负责处理队列中的数据,如果没有数据新线程将睡眠等待,有新数据到来时主线程会唤醒新线程,就这么简单。。。随手写的程序,存在问题希望能告诉我:)#include #include #in
2008-10-22 14:22:00
993
原创 整理把文档写好的一些guide line
整理把文档写好的一些guide line,这些都是我工作过程中一些笔记,希望对大家有用。。。---------------------------------------------------------------------------------------写文档之前把目录结构定下来在写文档之前,通常已知道文档应该需要包含哪些内容,所以应先把目录结构写好,并给到Review人员
2008-04-13 20:31:00
910
原创 [原]Qt/Qtopia源代码分析之应用程序窗口的显示层次
本次分析是通过源代码来搞清楚以下的Qt窗口特性,以下特性是通过测试得到的:1) 新弹出的全屏窗口(指使用了QWidget::showFullScreen方法显示的窗口)能覆盖已经存在的全屏窗口,以及所有其它窗口(包括带WStyle_StaysOnTop属性的窗口)2)当一个全屏窗口正在显示,而这时如果有其它的窗口被激活(调用QWidget::setActiveWindow)时,这个全屏窗口会被隐藏
2008-01-05 10:29:00
3476
2
原创 搞定Fixed Column Table
Fixed Column Table是指可以固定列的电子表格,目前大部分的电子表格如Excel都有这样的功能,就是可以固定前面的几列不动,拖动滚动条时只滚动后面的列。 Qt虽然有提供QTable电子表格,但是很遗憾没有固定列的功能(我们用的是Qt2.2.0),由于项目有这样的需求,所以只能自已来实现一个,前阵子已经用Qt实现了一个自已的列表框控件,所以在此基础上加上了固定列的功能,发个图
2007-08-26 10:30:00
2227
原创 享受 UNIX操作系统设计 一书
一口气把>一书读完了,这一口气大概是从06年6月开始呼入,于07年4月才呼出,哈哈。 看完这本书非常受益,首先,解答一些朋友和同事的疑问,看这本书并不是为了研究LINUX内核才看的,当然,为了更好地理解UNIX和 LINUX系统,以及更好地理解操作系统是一个原因之一。更重要的是,通常阅读此类书藉,可以学习到超级大师们的软件设计方法,以及他们面对各种编程技术 难题时命使用的对策,软件开
2007-04-28 11:55:00
3106
1
原创 开始学习ffmpeg
昨晚研究ffmpeg, 啃了一大堆文档, 把源代码和SDK都拉下来了, 并把相关的编译工具也拉下来了, 但还没有编译, 用别人编译好的SDK先做一下测试, 我手头上视频不多, 转换相机里面的MOV格式成wmv, 能成功转换, 用暴风影音播放一点问题都没有, 但用window media播放有点问题, window media程序出错, 原因未明, 官方描述支持wmv7和wmv8, wmv9需要
2006-11-16 09:58:00
1595
1
原创 自定义调试信息的输出
调试信息的输出方法有很多种, 例如直接用printf, 或者出错时使用perror, fprintf等将信息直接打印到终端上, 在Qt上面一般使用qDebug,而守护进程则一般是使用syslog将调试信息输出到日志文件中等等... 使用标准的方法打印调试信息有时候不是很方便, 例如Qt编程, 在调试已有的代码时, 我想在打印调试信息的地方, 把代码位置也打印出来以方便定位错误, 或
2006-11-07 10:28:00
3290
原创 今天遇到一个由于内存访问越界而引起的bug
今天对前几天的程序进行了一些修改, 运行时程序出现段错误, 用gdb调试一下, 通过查看调用堆栈,得知段错误是由于调用了一个队列的成员函数 isQueueEmpty 引起的, isQueueEmpty函数的作用是用来判断队列是否为空的, 看了一下isQueueEmpty 的定义,发现isQueueEmpty 函数体只有一条语句: template bool TQueue::isQue
2006-10-25 09:43:00
1839
原创 用QSocket来操作Linux命名管道
今天使用QSocket来操作命名管道时出现了一些小插曲,调试花了一些时间,写下来作一个笔记: 这里所说的命名管道是指FIFO,当打开一个FIFO的时候,通常会出现以下情况: a. 不使用O_NONBLOCK标志时,只读open要阻塞到某个其它进程为写而打开它为止 b. 不使用O_NONBLOCK标志时,只写open要阻塞到某个其它进程为读而打开它为止 c. 如果在open的时候指定
2006-10-22 10:45:00
2775
原创 一个可以验证两个内存块绝不重叠的断言
验证两个内存块绝不重叠的断言, 用在像memcpy函数这样的场合最适合不过了, 因为在两个重叠的内存块之间拷贝数据, 结果是没有意义的, void memcpy(void* pvTo, void* pvFrom, size_t size){ assert(pbTo>=pbFrom+size || pbFrom>=pbTo+size); ...}上面的断言很巧妙,只用了一条语句,
2006-10-22 10:39:00
980
原创 关于检查scanf的返回值
很多人在使用scanf的时候都不会去检查它的返回值, 包括我在这之前也没有去注意它, 如果你方便去翻翻c语言的教科书, 估计也很难找到有检查scanf的例子或代码段, 至少我还没有见过, 当然, 书上的代码毕竟只是一个练习, 和真正用于产品级别的代码有很大的差别。 一个偶然的机会, 让我注意到检查scanf返回值的重要性, 写下来和大家分享一下:) 下面是一个最简单不过的scanf
2006-10-08 16:58:00
2839
2
原创 一些不必要使用多线程的场合
在开发的过程经常需要处理这样一个情况: 进行一个比较耗时的操作, 例如从网络上下载一个大文件, 或者从数据库中读上万条记录, 如果不采取一些优化措施直接进行操作的话, 在执行操作的过程中, 窗口消息循环就会被阻塞掉, 这时, 用户在窗口上进行点击、或者移动窗口等操作均会无效,用户甚至会误以为程序死掉了。为了解决这种情况,即在耗时的操作正在执行的过程中,让用户仍旧可以流畅地操作窗口,
2006-09-14 16:37:00
2023
Mini6410 Qt4和Qtopia编程开发指南
2011-01-05
微软研发:制胜策略
2008-02-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人