
新闻来源:翻译自CNET
在专业技术图书方面著名的出版商O'Reilly,近日发行了由Jonathan
Zdziarski撰写的iPhone
Open Application
Development一书。该书主要指导如何在破解的iPhone上开发程序,第一章标题:"Breaking
Into and Setting Up the iPhone."
Zdziarski是去年最早破解iPhone的黑客之一,他这本书从本质上说,是一本关于如何使用“非官方”的iPhone
SDK的指导书。当然现在Apple推出了自己官方的SDK,这给了开发者两个选择。
有一群未知数量的开发者,对于Apple在iPhone
SDK上的限制不满,认为这限制了他们开发富有创意的应用程序。这本书应该很快就会在他们之间流行。该书总结了网上大量的iPhone破解技巧和开发技术,并浓缩成为一本小的参考手册。

该书的封面延续O'Reilly一贯的风格,仍然是一只动物。虽然它既不是Tiger,也不是Leopard(以上两者为Mac OS
X代号),但是它会指引你如何编写非官方的iPhone程序。
GCC:由GNU之父Stallman所开发的linux下的编译器,全称为GNU Compiler Collection,
目前可以编译的语言包括:C, C++, Objective-C, Fortran, Java以及Ada。
GCC 4.3.0是一个大的版本,包含了大量GCC 4.2.x以及之前的GCC版本所不具备的功能。
下载页面:
http://www.gnu.org/order/ftp.html
发布程序的程序在 gcc/gcc-4.3.0/ 子目录下
具体的变更信息可以查看:
http://gcc.gnu.org/gcc-4.3/changes.html
昨天上课的时候老师演示了一道题,题目就不说了,就是设计一个状态自动转换,给了个图,然后写状态表达式,开始写的那个很复杂,然后老师问能不能化简?蛮不以为然,这绝对能化简的么!提共因式,其实提出来的共因式是可以去掉的,应为在状态转换图里很清楚的看到如果但是状态出现则共因式条件必然成立,问题就出现在这个“必然”上!
化简完后老师又问:“这个式子严谨么?”
偶就愣住了,既然是化简所得,咋地个不严谨呢?当然严谨了!
老师看大家一副理所当然的表情就说“不严谨!"彻底愣了……然后他开始说原因:”因为这些状态的出现时在上一个状态的条件成立下出现的,所以大家认为这些条件在当前状态下也必然成立……这就错了!“
呵!偶当时米想起他的,就想到了以前看过的一本书里说的一句话”在正常情况下成立的条件不见得在任何情况下都能出现,因为我们不知道什么时候出现不正常的情况!“哪本书忘了,也不是原话,但意思是这样的……好吧!不严谨!防止以后出现类似误判,记下来提醒自己!
我们常说“语言决定思维”,选择一门什么样的
中国也有一位编程语言之父,虽然不及上述等人的知名度和技术影响力,但起码他在语音

记者:能否介绍一下Koodoo语言及应用?
朱东宁:Koodoo语言是一种简单高效的
当然,我们很多用户在用惯了Koodoo语言以后,即使不牵涉到语音方面的应用,也喜欢用Koodoo语言来做一些服务器方面的程序,因为Koodoo语言对数据库操作,网络通讯乃至文件操作,都有很好的封装,比那些重量级的编程语言要容易得多。
记者:Koodoo名字的来源和他内核的技术方面是否方便谈一下?
朱东宁:Koodoo语言读做[kudu],Koodoo是一种南非条纹羚羊的名字,之所以取这个名字,一是这个名字看起来简单,容易记忆,更主要是因为Koodoo本身设计成多路并发的,类似南非羚羊身上平行的条纹。
Koodoo语言是我采用C++完全独立开发的,并没有参考任何开源代码,在2001年推出了第一个版本,随后提供了多种主流语音卡硬件平台的支持,并实现了可视化的调试环境和运行环境。
Koodoo语言完全采用多线程设计,以语音卡硬件环境为例,每个通道(可以看成一个话路)是一个线程,一个语音系统相当于多个独立的虚拟机,这样每个通道可以运行不同的Koodoo语言脚本,这带来了相当大的灵活性。
Koodoo语言使语音开发变得简单了,本身语音流程多变、复杂,采用Koodoo这种简单的脚本语言后,开发人员可以不必关心底层的硬件信令等,而专注于业务流程的开发,使开发效率得到极大的提升。语法形式上接近于JavaScript,也是类似于C的语法形式,当然变量或数组不用预先定义。
记者:请问你是从何时开始设计Koodoo语言,历经多长时间?
朱东宁:我从1993就开始用语音卡做证券电话委托系统,那时候需要采用语音卡厂商提供的API进行较为底层的编程,上层的业务代码和底层代码混合在一起,很难维护。而且语音系统是多路并发的系统,当时只能采用状态机的方式进行编程,用大数组记录每个通道的状态,然后根据动作改变通道的状态,状态很多,对于复杂的语音系统来说实在太麻烦了(状态的跳转你可以想像C语言中的goto语句)。这种原始的方式,除了编程困难,调试也很困难,性能也不好,因为不允许堵塞,每个状态要很快地完成,如果线路比较多,性能将急剧下降。
我在2001年前后开始设计Koodoo语言,当时很多新的脚本语言很风行,如Python,JavaScript,他们的表达能力如此之强,但所受的限制又是如此之少,很让人震撼。
记者:能否谈一谈发明Koodoo的初衷?
朱东宁:当时,我感觉到设计一种和Python、Ruby竞争的通用型脚本语言成功的概率很小,其中一个原因是通用型脚本语言都是开源项目,而在国内的软件市场环境,采用开源模式,完全依赖服务收费来挣钱是很困难的,作为一个商业公司,生存是第一重要的;其次,我熟悉语音系统的需求,我觉得在特定领域解决特定问题,设计一种高效的脚本语言更有意义。目标市场就是定位为一种平台,相当于语音系统的中间件,我们称之为语音平台。
我一直认为,试图为所有人服务并让所有人都满意是不现实的,比如,有人设计的出发点是给不会编程的业务人员提供语音流程设计的工具,问题是,语音系统的流程如此复杂,业务人员是不敢去直接编制流程的,大部分
记者: 能否谈谈Koodoo语言的版本升级和目前的发展状况?
朱东宁:目前Koodoo语言有不少电信、金融等行业的用户,Koodoo语言采用类似开源代码的小版本号,目前版本号是ver1.96,大概一个月左右就会推出一个小的升级版本。
随着IVR、CTI市场的发展,甚至3G等应用的展开,我们的Koodoo语言将支持更多的硬件和电信协议,一定有更广泛的应用。
当然,国内软件市场也在慢慢成熟,在不久的将来Koodoo语言也许会采用开源方式进行发展,毕竟对于一种语言,开源才有生命力。
记者:目前来说,Koodoo语言可能还没有太多的影响力,对于他的推广和前途你怎么看待?
朱东宁:目前主要是在公司创建的技术网站(http://www.bluespace.com.cn/koodoo )上进行推广,在网站上有全面的Koodoo语言手册和学习资料,也有单线路的版本可供下载学习甚至使用,也提供试用平台版本下载。Koodoo语言也可以运行在没有任何语音卡硬件的机器上。
Koodoo语言的用户就是专业
记者:很多人认为开发一门编程语言是很帅、很酷的事情而且意味着开发者有很高的技术,远了不说,像Python、Ruby等发明人都得到了程序员偶像级的崇拜。你如何看待开发一门新语言?
朱东宁:对于我来说,开发一门新的脚本语言,只是为了解决某个领域所遇到的问题,并且力图使产品有真正的商业价值。开发一门新语言遇到的难度是很大的,不仅仅是写一个稳定高效的编译器,你还要开发相关的配套工具,如调试器,配套的库,甚至完备的文档,教程,都需要付出巨大的努力。
无论如何,在我们自己熟悉的领域,如果有切实的需求,开发出一种“面向领域”的脚本语言,是完全可行的。【记者:呐不喊】
朱东宁简介
网名:bluesen,真名朱东宁。大学专业为物理学,曾任物理教师和光谱分析工程师。在大学时代曾学习APPLE II的BASIC语言,而后喜欢写程序,90年代初到深圳成为专业程序员,96年和朋友创建蓝星际公司至今,几乎每天都在写程序,常用C/C++。
早年做金融行业软件,近年来专注于语音平台系统软件开发,设计并实现了高级脚本语言Koodoo语言,Koodoo语言可以在大容量的线路上并发执行,如单机几十个电信E1线路即上千个并发话路,系统仍能稳定高效运行。在CTI(计算机电话语音集成)行业有14年的开发经验。
“业余喜欢阅读和写作。得意之作是在网上发表的技术文章“从历史的角度再论状态机”,曾被中南大学教授在专业论文中引用。喜欢有技术含量的网络辩论,痛快,痛快。”
这是原文作者结合自身10多年
本文由CSDN编译:
许多
#1 别重复你自己(Don’t repeat yourself)
在编程的时候,我总是在想从一段很小的
举例: 当我看到filter system中的Zend Framework (PHP)使用的是chains
,在编写了一个helper之前我使用了两次,代码如下:
$filterChain = new Zend_Filter();
$filterChain->addFilter(new Zend_Filter_Alpha())
->addFilter(new Zend_Filter_StringToLower());
于是我使用了这样的代码来代替:
$filterChain = new Zend_Filter_Helper('alpha-StringToLower');
虽然这花费了我3—4个小时来写,但是在接下来的几个月中它却可能节省了我更多的时间,而且还会继续节省。
所以重要的不是为现在为某一段代码而思考,而是应当从整个编程的大范畴内思考:“在这个基础上我能不能再进一步?”
总之别总是重复你自己,要寻求突破,为整个编程为以后是否节省时间着想。
原文作者Nick Halstead:
拥有14年
高强度爬虫程序
Baiduspider+(+http://www.baidu.com/search/spider.htm)
百度爬虫
高强度爬虫,有时会从多个IP地址启动多个爬虫程序!
由于算法问题,百度爬虫对相同页面会多次发出请求(尤其是首页),令人烦恼。
推广效果好。
Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html)
Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
雅虎爬虫,分别是雅虎中国和美国总部的爬虫
高强度爬虫,有时会从多个IP地址启动多个爬虫程序!
比较规范的爬虫,看参考其网址,设定爬虫访问间隔。(但需要考虑同时出现多个yahoo爬虫)
推广效果尚可。
iaskspider/2.0(+http://iask.com/help/help_index.html)
Mozilla/5.0 (compatible; iaskspider/1.0; MSIE 6.0)
新浪爱问爬虫
算法差,大量扫描无实际意义的页面,对动态链接网站负担很大
推广效果差。
sogou spider
搜狗爬虫
算法差,大量扫描无实际意义的页面,对动态链接网站负担很大
推广效果差。
中等强度爬虫程序
Mozilla/5.0 (compatible; Googlebot/2.1;
+http://www.google.com/bot.html)
Google爬虫
算法优秀,多为访问有实际内容的页面
推广效果好。
Mediapartners-Google/2.1
google点击广告爬虫
特点未知
OutfoxBot/0.5 (for internet experiments; http://; outfoxbot@gmail.comoutfoxbot@gmail.com )
网易爬虫
其搜索算法需要改进
推广效果差。
ia_archiver
Alexa排名爬虫
作用未知
其他搜索引擎的爬虫
msnbot/1.0 (+http://search.msn.com/msnbot.htm)
MSN爬虫
特点未知
msnbot-media/1.0 (+http://search.msn.com/msnbot.htm)
(欢迎补充资料)
特点未知
Mozilla/4.0(compatible; MSIE 5.0; Windows 98; DigExt)
Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt; DTS
Agent
Mozilla/4.0 (compatible; MSIE 5.00; Windows 98; DigExt)
(欢迎补充资料)
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; QihooBot
1.0)
名字上看来是Qihoo的
特点未知
Gigabot
Gigabot/2.0 (http://www.gigablast.com/spider.html)
Gigabot搜索引擎爬虫。已被google收购?(欢迎补充资料)
eApolloBot/1.0 (eApollo search engine robot; http://www.eapollo.com; eapollo at
global-opto dot com)
lanshanbot/1.0
据说是中搜爬虫。(欢迎补充资料)
iearthworm/1.0, iearthworm@yahoo.com.cniearthworm@yahoo.com.cn
TMCrawler
WebNews http.pl
RSS扫描器
\rss.asp Mozilla/6.0 (MSIE 6.0; Windows NT 5.1;Foxmail/MILOWU)
这是用foxmail6.0订阅了你的rss
\rss.asp Feedfetcher-Google;
(+http://www.google.com/feedfetcher.html)
google的rss搜索扫描器
\rss.asp feedsky_spider http://www.feedsky.com
一款rss扫描器,有兴趣者进入此网站添加您的rss
除了最后的那个恐怖的程序,小猫实在没有看到那里可笑
这难道就是中外文化的差异?希望看的懂得朋友给点提示
不仅仅国内有吃白饭的“程序员”,国外也常出现一个程序员和一群newbie工作的事。下面就是一个经历了这种事的程序员的搞笑日记:
五月-20:
今天是工作的第一天!我工作的部门是“网络管理部”,里面会有很多有趣的人。这远超过了我期望从银行得到的工作!
五月-22:
我今天遇见了Diane,她正在进行“Repo”
五月-23:
我今天遇见了April。她看起来很漂亮,虽然有点多余但我还是想提一下,她的桌子上摆满了宠物小精灵的周边商品。她的另一项爱好,正如她所说的,是玩在线第一人称射击游戏。除此之外,没事做的头几天还真无聊。
五月-24:
今天认识了Steven。他是国内一些站点的ASP程序员。就在下午快过去的时候,他停下来玩魔方,看起来闷闷不乐。引用他的话说:“你将不得不在这方面帮帮我,因为我对ASP根本一无所知。”
五月-27:
Diane说她在“Repo”数据库上需要一点帮助。她说她会需要我的。我再也没别的事可做。
六月-04:
和April(那个宠物小精灵女孩)聊了一会儿虚拟锦标赛。她在一个“阵营”里。她的任务,很显然,是跑到一片开阔区域的正中央,然后让敌人射击她,这样她的队友就能确定敌人的位置。
七月-08:
Diane想知道我是否能帮她做“Repo”数据库。我说能,她说她很快就会需要我的帮助。
七月-18:
Steven今天到得真的很晚。显然,在他上火车时鞋给车门夹住了,并留在了站台上。他不得不再坐回去拿鞋。
八月-20: Diane又一次问我是否能帮她做“Repo”数据库。我说行,第二次了。
八月-26:
一个新来的,Colt,今天开始工作了,他从银行投资部转来。他之所以转到这里来是因为他觉得自己在这方面很厉害。
八月-27: 突然发现,Colt,对轻武器有一种病态的痴迷。有谁会在钱包里放自己枪的照片?
九月-16:
今天当我问Diane她在做什么时,她突然对我大吼。引用她的话:“我正忙着做Repo数据库!”
九月-17: Diane因为昨天向我大吼而向我道歉。Repo实在给了她太大的压力。
十月-09:
Colt今天弄坏了我的键盘。我赞扬了他的新鞋子。“谢谢。”他回答道。然后,他抓起旁边的一杯水倒在我的桌上。这使得一大片水滴进了键盘里。他接着抬起他的一条腿,脱下鞋放在桌子上。他把鞋用力地在水上摩擦,并说:“在水中也有很好的附着力。”然后就走了。
十月-14:
另一个新人来了,David,今天开始工作。他实际上想离开主机然后基本上想投身页面开发。他基本上比我赚的钱更多,因为他实际上比我在银行呆的时间更长。基本上除此之外,他并不擅长页面开发。嗯,他实际上总是这样说话。
十月-22:
最后我去看了看那个“Repo”数据库。这是一个有三个表格的Access数据库,里面还包括一个名称为Form1的“数据窗体向导”表单。这个表单没有任何意义。这就是Diane六个月来的成果。
十一月-04:
Don让我去看一下David的代码,因为这是他第一次在全彩屏幕上编写代码。他正在编写一个预算计划计算器,里面有很多需要用户填写的项目,比如食物、电力、气体等等。每一个项目的旁边都有一个下拉框,里面有“每周”、“每月”、“每年”这几个选项。
十一月-05:
我看了一下David的代码。我建议说,他应该把这几个选项放在一个数组里来使用,而不是在代码里放上20几个多余的“每周”、“每月”、“每年”。他很高兴学到了新东西。
十一月-08:
David给我看了他修改过后的代码。在现在的代码里,不只有一个数组,而是差不多声明了20个数组,每个数组都包含了“每周”、“每月”和“每年”,同时每个下拉框都使用了不同的数组。我告诉他其实只需要使用一个数组,因为它们都是一样的。
十一月-13:
David想让我知道他已经修正了代码,于是我又看了一遍代码。这就是我看见的东西:
arrayOne = "每周", "每月", "每年"
arrayTwo = arrayOne
arraythree = arrayOne
arrayFour = arrayOne
...
易语言公司全新打造,耗时两年,一款新的编程工具,类Java可跨平台,可选择用英文或中文进行编程,英文或中文只是其一种表现形式而已,如果易语
言公司愿意,法文,意大利文都可以随意扩展出来。所以请大家不要拿中文说事,目前是第一个公开测试版,稳定,功能方面不会很完善。


Powered by Haiwit