`
文章列表
在全球经济不太景气的今天,N多公司的报表都让人堪忧。可是苹果公司今天却交出了一份让人“意外”的财务报表。 (以下灰色文字转载于www.macx.cn) 苹果2010 年第一财季总营业额为156.8 亿美元(2008 年同期为118.8 亿,成长3 ...
在工作中,我们使用Javascript基本上是在浏览器这个环境里面。可是无论是Firefox + Firebug,还是Safari的Javascript调试环境,对于学习Javascript和练习Javascript都不甚方便。其实,我们完全可以像Python或者Ruby那样学习Javascript。   首先,安装Javascript的解析器。自从Google推出V8 Javascript引擎之后,Javascript引擎便成为浏览器厂家比拼的重要战场。但世界上,Mozilla的Javascript解析器(C版本和Java版本的)很早就公布在其网站上面,只是我们很少使用罢了。我们这里选用V ...
在Amazon上搜索Objective-C,出来的结果前两名是:<Programming in Objective-C 2nd>和<Learn Objective-C on the Mac>。 第一本是四星半,第二本是四星。如果你有C/C++/Java任何一个的基础,请用第二本书。因为我觉得第二本写的比第一本好。看完第二本,然后补充一下第一本书的: [1] Scope Revised -- 里面讲解了@private @protected @public 和@package [2] Exception Handling Using @try -- 学习一下异常机 ...
  我差不多接触写程序有8年之久了,到现在为止,我熟练掌握的语言有:C++, Java, Objective-C。基本掌握的语言有Python, Ruby, Javascript。学习过但是没有掌握的语言有:Erlang,用过但是忘了的语言有:Delphi。坦白说,我没有系统学习过C,而且没有用过纯C写过东西。     我最喜欢的语言有两个,C++和Ruby。之所以喜欢C++,主要是因为两点: [1] C++是我见过最强大的语言 [2] C++是我第一门学习的语言(HTML不算一门程序语言) 我喜欢Ruby是因为: [1] Ruby是我见过的最纯粹的面向对象的语言,语法简介。 [2 ...
我学习使用C++,已经有差不多7,8年了。从当年在学校写小程序,到后来在公司写程序做设计。从VC++(虽然它不是标准C++),到后来嵌入式的C++,到现在在项目中,标准的C++。坦白说,C++确实很复杂,和Java, Objective-C,Python,Ruby这些语言比,它确实很复杂。这种复杂来自于几个方面:[1] 编程的模式太多。面向过程,基于对象,面向对象,泛型。而且在面向对象的时候,它可以多继承(真正的多继承,不是那种多个接口一个父类的),虚继承,私有继承。[2] 标准库的想法很完美,可是坦白说,库的级别太底层。举个例子std::string,没有提供一个函数可以将所有substr替换 ...
Lua真的是严格按照ASCI C来写的,号称只要有C编译器的地方,Lua就可以使用。不过因为从源代码安装Lua,Lua并没有提供config的功能,所以可能我们要修改一下Makefile。   如果我们在Solaris使用gcc,gnu那一套东西,估计不需要修改什么。只需要使用 make install ISNTALL_TOP=安装目录 就可以了。   不过问题是,很多Solaris上面没有gcc,没有gnu install 这个工具。所以才需要修改Makefile。   首先修改一下 src/Makefile   [1] Cr= gcc --> Cr=cc [2] ...
C++ Plug-in 技术的一些深度思考(1)   我们可以使用动态连接库的技术实现上诉的功能。大方向说,将CalcAdd和CalcMul编译连接成动态连接库,CalcFactory.cpp动态的加载它们。这样的话,可以实现两个功能: [1] 如果更新libCalcAdd.so或者增加一个libCalcMin.so,不需要重新编译,链接,发布主程序calc,只需要重新发布你更新或者增加的so文件 [2] 如果我们可以横向的定义出主程序的测试规范,我们甚至不需要回归测试主程序calc。 我们重新设计了文件目录的组织结构,如下图所示:   有修改的文件有CalcFactory.cpp ...
C++ Plug-in 技术的一些深度思考(2)     最近,忙于思考如何重构一个Unix系统。这个系统是由C++写的,重构的思路是希望能够抽取出一些公共的东西,作为Core。另外一些东西做成Plug-in。这样以后如果客户的规范更新了,我们只需要增加修改Plug-in就好了,Core的部分不需要再修改。         要满足这个要求,有些基本的原则:       [1] Core里面所有的东西不能依赖Plug-in里面。这种依赖可以理解为Build(Compiler + Link)Core里面模块的时候,不需要用到Plug-in里面的头文件或者object文件;      ...
首先注明一下,如果你还不能熟练使用Interface Builder,请最好不要阅读这篇文章。你最好把Interface Builder烂熟于心,才开始走上这条“不归路”比较好。   其次,我说一下为什么要抛开Interface Builder做开发,原因主要是: [1] 更 ...
总有很多朋友会问我的偶像是谁?是Steve Jobs。其实很早就想写点我对苹果,对Jobs的一些了解和理解,可是都不知道怎么开始。今天,借着Jobs当选《财富》杂志评选的10年最佳CEO的机会,写一些感受,表达一下对偶像的崇拜,对IT ...
做iPhone的网络应用,处理XML是家常便饭,NSXMLParser用起来还是得心应手的。不过这个东西,处理非UTF-8,会解析失败。这篇文章就是想和大家一起分享一些这方面开发的新的。          我们在某个RSS地址,可以得到下面这样的XML文件。我这里只是截取一段,   --------------------------------------- <?xml version="1.0" encoding="big5"?> <rss version="2.0"> <chann ...
最近升级到Snow Leopard,然后升级XCode到3.2。不是我想升级,是因为我升级完Snow Leopard之后,虽然XCode可以编译iPhone的程序,不过我没办法在我的MacBook上学习Unix编程了,因为/usr/include里面都删空了。升级完之后我才后悔了,因为XCode3.2在SnowLeopard上没有iPhone2.2的模拟器,不过可以为2.2生成程序。所以如果大家有Legacy的代码要维护,请不要做这样的升级。当然从这点,大家也可以看到苹果在鼓励大家放弃2.x。不过升级之后的好处也是很多的,我列举几个我体会到的。   [1] 文档系统。我自己是觉得新的文档系统 ...
最近在工作中,我需要在Solaris上写很多测试或者辅助工作的脚本。因为单位只推荐使用Perl或者Python,所以我不能选择我最喜欢的Ruby,当然我不会去选择Perl(不是说Perl不好,只是我不喜欢Perl)。其实Python我也有不喜欢的地方,譬如那种ugly的缩进,还有混杂着len(list)和str.strip(" ")这样的语法,让人觉得不那么一致。        可是排除这些因素,其实我觉得Python还是很优秀的,至少它在工作中给我很多帮助。我用Python做模块测试,性能分析工具,要用到的东西几乎它都带了(不是Python3.0,而是几年前的Pytho ...
其实,这一年以来,工作特别忙。不过最近几个月,真的是有些忙得不可开交。上班的时候,用C++在Solaris上写程序,还需要用Purify查内存泄露,用dbx和MDB跟踪程序,用Python写测试脚本。回到家,学习和开发iPhone,感觉真的很累。其实之前我答应了在第一届iPhone开发者大会上做一些演讲的,不过后来因为时间和一些其他原因,没有完成这个事情。不过我最近我在做一些项目的时候小有收获,我将分享一些心得。   [1] iPhone NSXMLParser解析一些非UTF-8的方法。这个问题也许大家没碰到过,但是绝对有意思。我需要花点时间准备这个Blog。[10月25号之前]   ...
几个月前,我写了一篇Blog,介绍了我喜欢的台湾四个女歌手[http://ankyhe.iteye.com/blog/398612]。上次我只介绍了两个,戴佩妮和杨乃文。今天我将完成这个任务,介绍林晓培和陈绮贞。       其实这两个人也算竞争对手,1999年两 ...
Global site tag (gtag.js) - Google Analytics