| Luke's profileLukePhotosBlogLists | Help |
|
March 23 所有购买了正版Rad Studio、Delphi或C++Builder2009的客户,可以上网免费的下载TMS Smooth Controls Pack我们现在已经将这套组件放到了公司的网站上,大家可以登陆网址 http://cc.embarcadero.com/item/26725 进行下载,请注意,你必须使用激活过正版产品的用户名进行登陆才可以下载。关于这套组件的详细介绍,请查看网址http://www.tmssoftware.com/site/advsmoothcontrols.asp 。 我看了一下,一套非常绚丽的界面组件。 贴几个图片上来给大家看看。
July 23 在Dreamhost上设置GMail和各种Google服务的方式本站的主机是放在美国的DreamHost服务器上的。 速度总的来说还是可以接受的,个人比较喜欢的是DreamHost的管理功能,或者叫控制面板的功能非常强大,而且支持SSH登陆。使得这个主机供应商在同类价格的各个服务商之中,功能最完整,对RoR的支持也是最好的(现在已经支持到Rails 2.02了)。 另外很多辅助的功能也比较让人喜欢,比如邮件系统、SVN等等。我已经给本站设置了一个SVN的服务器,供开源项目使用。 但也有不尽如人意的地方,比如邮件系统中的WebMail模式,不支持中文,使用Outlook或其他邮件客户端,首发中文邮件都没有任何问题,但是在WebMail页面上就死活不行。另外,办公相关的功能也不够完整。 几个月之前就发现了DreamHost可以整合Google的邮件和办公相关功能,当时很是激动了一把。赶快进行尝试,当设置了Google邮件系统代替DreamHost本身的邮件系统之后,使用直接使用 http://mail.codegear-cn.com 即可登陆GMail网站,并使用GMail进行邮件首发处理,如果设置了其他的相关办公功能,则可以通过 http://start.codegear-cn.com 访问自设的Google门户网页,通过 http://docs.codegear-cn.com 即可访问google文档站,通过 http://calendar.codegaer-cn.com 即可访问google的日历网站。 其中文档网站的功能是可以让大家上传并共享自己的文档,而且可以在这些文档中进行全文检索。如果一个团队可以将所有的日常文档都上传到文档站上,那么就再也不用担心文档共享与交流的问题了。如果你需要查找一些特定的内容,也可以直接在团队共享的文档中进行搜索。这对于经常需要进行文本作业、方案作业的团队来说,绝对是一个巨大的帮助。 日历站,可以帮助大家设置日历、约会、定时提醒等功能。这种功能其实很多软件都提供的。但是要想在团队内部共享这些东西就比较麻烦了。目前比较成熟的方式就是使用微软的Exchange Server或者IBM的Lotus Domino服务器。当然了,Yahoo和很多其他网站也提供相应的功能,但是这种直接由网站提供的日志功能共享的时候比较麻烦。毕竟那是在一个门户网站上,门户网站上所有的客户在共享日历的时候都是站在平等的位置上的。google的日历站就没有这个问题了,我们通常都是只对本域内部的用户进行共享,很少需要将日历发布到全世界。 另外,如果大家懒得自己做网页的话,也可以通过使用 http://sites.google.com/a/codegear-cn.com 网站,来让google替你完成相应的功能。 一切都是那么的美好,但是当设置完成之后,却发现,所有这些域名都不可以访问。上网一查才知道,原来这些域名属于是某种转译域名,国内的网管是不允许这种域名的。 一切的梦想成空。 上周到加拿大去出差,在加拿大这些域名都是可以访问的,而且也记录了转译以后的域名。大家可以通过直接访问这些转译的域名来访问这些服务。虽然麻烦了一些但总的来说还是可以接受的。 起始页:http://partnerpage.google.com/codegear-cn.com 邮件页面: http://mail.google.com/a/codegear-cn.com 文档页面:http://docs.google.com/a/codegear-cn.com 日历页面:http://calendar.google.com/a/codegear-cn.com 自助站点页面:http://sites.google.com/a/codegear-cn.com 大家可以自己设置一下试试。 February 21 Blackfish SQL 数据库管理系统在嵌入式系统中的应用1 BlackFish SQL是一个什么样的产品 BlackFish SQL是CodeGear公司最新推出的一种在管理代码平台上运行的支持SQL标准的、高效的小型数据库产品。 1.1 支持标准的SQL-92 BlackFish SQL支持各种数据库方面的国际标准,其中包括最基础的SQL-92。它同时还具备很多大型、企业级数据库才具备的功能,比如支持存储过程(Store Procedure)、触发器(Trigger)、用户自定义函数(User Define Function)、在线交易处理(OLTP)。同时支持使用管理语言(比如Java、C#、Delphi、Basic)直接编写存储过程、触发器和用户自定义函数。 1.2 支持Unicode 目前,很多应用或设备都要求能够在不同的语言环境下进行发售和部署。比如同时在中国大陆、香港、台湾、日本、韩国等亚洲国家所使用的编码系统都是这些国家自己设置的,是不相同的。举个例子,我们大陆使用的字符集编码方式是GB2312,这个字符集中包含了英文、简体中文、繁体中文、日文等字符。台湾使用的是Big5字符集,其中也包含了这些字符。但是同样的一个字符在不同的字符集中所对应的却是不同的编码。这就导致了同样一段文字在不同的字符集下显示出来的结果完全不同的现象。为了应对越来越国际化的应用需求,国际软件界普遍认识到,应该有一种字符集能够统一的支持目前人类所使用的所有字符,这就是Unicode。目前比较新的数据库产品都支持将数据保存为Unicode格式。 Blackfish SQL支持现在主流的Unicode编码集,同时支持进行Unicode分类、检索、查询以及排序。 1.3 具有很多大型数据库所提供的功能 BlackFish SQL具备很多大型数据库才拥有的功能。这个产品既能支持嵌入式设备,也能支持大型服务器。 这些特性包括:支持64位CPU、多核CPU和均衡多CPU并行处理(SMP,多个相同的CPU同时处理)。 同时支持本地链接、远程链接以及嵌入程序内部的运行方式。 1.4 完备的可靠性和非常高的性能 数据库的可靠性主要体现在数据库本身的数据安全性方面。普遍的做法是对数据进行备份,然后在出现问题的时候进行恢复。 而备份技术从总体上可以分为离线备份和在线备份,其差异在于:离线备份进行的时候,必须中止数据库服务器的使用,停止所有的数据服务,停止响应所有的数据请求;而在线备份则恰恰相反,在进行备份的时候,允许数据库服务器继续为各种应用提供不间断的数据服务,持续的响应各种数据请求。这就是说,离线备份只能在数据库服务器不工作的时候才能进行,而在线备份可以随之进行。BlackFish SQL所采用的就是在线备份技术。 当然,在线备份技术也不是完美的。虽然在线备份的时候,数据库服务器可以继续提供服务,但是由于在线备份对于数据库服务器的压力很大,进行一次完整的在线备份,往往意味着数据库服务器的响应速度会在备份完成之前的这一段时间里面变慢。为了解决这个问题,BlackFish SQL特地加入了一个最新的技术——增量备份。增量备份的工作方式就是,只进行一次完整的备份,然后每隔一段时间,将这一段时间数据库所发生的变化备份作为一个数据更新增量,备份到原来的那个完整备份上面去。这样一来,BlackFish SQL就可以极大的缩短每一次备份所需要的时间,最终达到让客户可以在不知不觉中完成日常的数据备份工作。 1.5 BlackFish SQL具有极高的运行速度 BlackFish SQL具有非常高的使用性能,这个产品可以以三种方式运行:作为系统的一个服务、作为系统上的一个独立运行的应用、嵌入到特定的应用程序里面。其中将BlackFish嵌入到特定的应用程序里面的方式,从物理上来看就相当于这个应用程序可以通过BlackFish所提供的功能模块,直接访问数据文件。这无疑是最具效率的一种数据访问方式,因为使用这种方式进行数据访问的过程中没有任何通常数据库服务器提供服务时所需要的中间过程,而这些诸如网络通讯、权限认定等中间过程在整个数据请求的周期中所占的比例是非常高的。 1.6 部署成本非常低廉,而且可以做到零维护 很多数据库产品需要安装,并在运行的过程中需要进行复杂配置,但是BlackFish不需要这些。这个产品在使用之前不需要任何安装过程,只要将所需要的文件复制到需要运行的系统中即可,而且如果采用嵌入应用程序的运行方式,需要复制的文件只有一个。 BlackFish SQL只需要在系统中占用1M空间即可运行,而不是像某些大型数据库那样需要几百M甚至上G的空间才可以运行,其所占资源非常有限。 BlackFish SQL可以做到完全的零维护,一但程序开始运行,即不再需要任何维护。 2 对嵌入式系统目前开发状况的简单分析 2.1 多语言、多平台开发 目前同时维持多种语言或平台进行系统开发的现象在嵌入式开发的过程中还是非常普遍。这就意味着系统开发团队中会有很多不同的程序员,他们熟悉不同的开发语言和应用或开发平台,并使用这些语言或平台构筑嵌入系统的不同部分。 这些程序之间基本上是无法进行沟通和交互的。 他们按照自己所使用的开发技术分成一个个小群体。 信息和技术会保持在这些小团体甚至是个人手里,一旦这些团体或个人流失,这部分的技术也就流失了。 掌握不同关键技术的程序员成为团队内的不稳定因素,由于使用的是不同的开发技术,最终可能导致开发团队中每一个人都掌握一些关键技术。应用在被设计之后,就会被分配给不同的人,进行不同的技术开发,他们之间的职位完全没有可替代性。其中任何一个人员的流失都会造成整个项目的失败。 项目的升级、管理成本都非常的大。 这些不同的应用之间基本上无法进行信息共享和协同工作,他们只能独立的完成各自的功能。 这些应用中的C/C++的应用要在每次更换硬件或操作系统平台的时候重新编制、编译。这对于嵌入式系统的供应商来说,也是一个非常沉重的负担。 2.2 通过数据文件来满足数据处理的要求 这种方式的优点在于速度快、占用的空间最小,但是更新维护会变得异常麻烦。伴随着数据复杂程度的上升,维护的复杂程度也会相应的成几何级数上升。这种方式无法适应复杂的应用,只能支持那种只有极少量数据处理的场合。而且,由于使用了数据文件的方式,数据的备份、同步、灾难恢复都需要自己编程处理,这是非常麻烦的。而且,在多个应用都需要对数据进行操作的时候,就必须考虑到锁闭的问题。有些更新动作必须要将数据锁闭,然后再更新之后再解锁,否则的话就有可能造成数据信息的混乱。这些东西都需要程序员自己处理,而且这些代码会分散在不同的应用程序代码里面,一旦要修改非常繁琐。 3 嵌入式系统开发中新的需求与挑战 3.1 单一语言、单一平台开发 依赖比较强劲的虚拟机技术,可以彻底摆脱特定硬件环境的束缚。每次更换硬件平台之后不需要对原来的应用进行修改即可直接使用。所有的应用都是用一种技术开发出来的,程序员之间比较统一沟通,而且关键技术不会掌握在极少数人手里。 程序员招募和培训的成本极大的降低,每一个程序员的角色不再是不可替代的。他们相互之间的可替代性,比原来使用多语言、多平台进行开发的时期极大的提高了。 此外,网上有大量的开源代码可以直接使用,极大的降低了新功能开发的成本。 3.2 通过更强大的数据处理能力,实现更多的增值业务 以前功能比较简单的时候,添加功能的主要工作是编制新代码,各种功能是由一大堆相互独立的源代码堆砌而成的。现在,基本功能达到之后,添加新功能的主要工作就不再是编制代码,而是将现有的功能组合起来,加入更多的具有管理性、协调性、交互性的增值性质的功能。这些功能的运转,主要依赖于复杂的数据逻辑支撑。 未来,在管理性和交互性功能被普遍接受之后,新增的功能对于复杂业务逻辑的要求会越来越高。 4 嵌入式系统对数据处理的要求 随着客户对于嵌入式系统所能提供的功能提出了越来越高的要求,嵌入式系统越来越多的采用支持SQL标准的数据库产品来进行数据的处理。 它具有以下优点: l 可以直接使用标准的SQL语句来处理数据的写入和查询,不需要为每一种数据格式编写单独的数据处理模块。 而且,数据库服务器能够将更新交易、更新锁闭、数据备份、灾难恢复等功能从应用程序中统一的分离出来。 l 数据维护成本和数据复杂度基本无关,不管是十种还是一千种格式的数据,对于这些数据的具体操作程序来说,并没有太大的区别。 l 可以支撑更复杂的应用。 由于嵌入式系统的特殊性,并不是所有的数据库产品都适用于嵌入式应用。下面,让我们来分析一下嵌入式应用对于数据库产品的具体需求。 4.1 最重要的就是可靠性 嵌入式系统有一个最大的特征,就是分发数量巨大。绝大部分的嵌入式系统,其销售或分发的数量都是非常巨大的。 其结果就是,这些设备被售出之后,一旦出现软件质量问题,就是一个巨大的灾难。软件故障和硬件故障有着本质的区别:硬件的设计缺陷一般在出品前都会被检测出来,所以出现在客户面前的硬件故障一般都是个别的设备缺陷,数量不会太大。同一个批次的产品中的软件是完全一样的,一旦其中出现问题,那么这一个批次的所有产品就都有问题。所以这就要求,嵌入式系统使用的数据库产品具备最大的可靠性。而且,一旦出现了问题,最好有一定的自我恢复能力。 4.2 平台无关性 嵌入式系统的硬件环境一般是非常复杂的,每一个批次之间都有可能存在差异。这就要求应用于嵌入式系统的数据库产品必须做到与硬件或操作系统平台无关。最好是运行于虚拟机上,并且最好能够支持目前所有主流的虚拟机平台。 4.3 在低端硬件平台上,达到比较高的性能 嵌入式系统由于其体积和成本的限制,其硬件性能一般情况下不会太高。所以这也就要求应用于嵌入式系统的数据库产品在低端硬件平台上的运行性能必须比较高。 4.4 低廉的部署成本和绝对的零维护 嵌入式系统中的存储空间一般都比较小,这也就要求嵌入式系统中应用的数据库产品所占用的空间必须在嵌入式系统允许的范围内。而且,对于售出的嵌入式系统产品进行大规模的召回维修或者上门维修都不太现实,所以必须要求在这上面使用的数据库产品可以做到绝对的零维护。 4.5 支持SQL标准 为了能够应用大量的网络开源代码或程序员现有的经验,所以要求,数据库产品必须兼容SQL标准。 4.6 支持Unicode 为了能够进行国际化销售和分发,所以要求数据库产品必须能够很好的支持Unicode存储、排序、检索和查询。 4.7 同时支持嵌入式系统、普通桌面系统和服务器系统 很多情况下,我们都需要通过分发数据文件对嵌入式系统进行升级或功能调整。如果一种数据库产品只能支持嵌入式系统而无法在普通的桌面系统或者服务器系统上运行,那么,所有需要分发或者回收的数据文件都必须在嵌入式系统或嵌入式系统的仿真系统中进行处理,这将是一个非常繁琐的事情。最好能够使用同一种数据库产品,在数据维护人员的桌面系统或服务器系统上运行起来,并加载分离出来的嵌入式系统中的数据文件,进行数据的检测和维护。 4.8 数据库文件比较容易进行分离和同步 数据库中的数据文件应该能够进行比较方便的分离和同步,这样的话,通过各种网络对嵌入式设备进行远程的升级或维护就成为了可能,而且这个过程也可以变得更加的人性化。比如用户在自己的系统中进行了一定的特殊配置,那么在升级的时候,系统应该能够将用户自己所作的设置加以保留,并在此基础上将升级的数据注入到数据库之中。 5 BlackFish SQL对于嵌入式系统的支持 5.1 支持在线增量备份 BlackFish SQL支持在线增量备份技术。这项技术使得BlackFish能够经常性的将客户对数据库的修改和更新备份到比较安全的地方。而且这个过程不会给客户带来任何不便。有了对数据的备份,即使数据库信息有什么损害,应用也可以进行无缝的灾难恢复,绝对不会造成由于数据库的原因而导致必须派遣维护人员上门维修或者设备、系统的返厂维修。 BlackFish SQL作为一种商业产品能够提供完整的文档和技术支持服务,绝非一般的开源或免费产品所能比拟。 5.2 在虚拟机上运行,与平台完全无关 BlackFish SQL支持目前流行最广泛的虚拟机平台。这个产品既支持Java平台,同时也支持微软的.NET平台,可以运行于目前已知的绝大部分的嵌入式系统之中。 5.3 使用In-process方式运行,基本上可以达到与直接操作数据文件相近的执行效率 BlackFish SQL支持直接嵌入到应用中的运行方式,就是将BlackFish的各种功能直接作为一个外加模块嵌入到应用程序之中。应用程序通过这种方式来调用BlackFish服务,其工作流程上和直接调用数据文件是一致的。 5.4 不需要维护和安装 驱动数据库所需的额外文件只有一个,所需的额外存储空间也就是1M左右,绝对不会给嵌入式系统造成过多的存储和维护压力。 5.5 支持SQL-92 BlackFish SQL支持标准的SQL-92以及更新锁闭、更新交易处理、存储过程、触发器、用户自定义函数等数据库标准。 5.6 支持Unicode BlackFish SQL支持使用Unicode进行数据的存储、排序、检索、查询。 5.7 同时支持嵌入式系统、标准32位CPU、64位CPU、多核CPU和SMP BlackFish SQL不但能够运行于嵌入式系统,同时也能运行于普通的桌面系统和各种大型的服务器系统。嵌入式系统的开发商完全可以开发一个运行于Web服务器的大型应用,让客户在网页上自助的配置他们喜欢的设定,然后直接将这些设置通过BlackFish SQL数据库服务器写入分离的数据文件中,然后再将其下载同步到客户的嵌入式系统之中去。也可以发布一个运行于普通桌面平台的问题程序,使得客户可以通过标准的PC对其所拥有的嵌入式系统进行简单的维护。 5.8 数据库文件可以自由的分离,并在其它地方进行挂接 BlackFish SQL的数据文件,不需要任何配置,就可以直接挂接到服务器中进行使用。也可以非常方便的将其从服务器中分离出来进行迁移,极大的简化了嵌入式系统的维护和升级过程。 6 总结 客户对于嵌入式系统的功能性要求越来越高,嵌入式系统中软件的复杂度越来越大。为了应对这个变化,嵌入式系统的应用对于复杂数据处理的要求越来越高,而且,嵌入式系统的开发也正在向着单一语言、单一平台的方向发展。 BlackFish SQL是一款专为嵌入式系统设计的、非常适合于嵌入式系统应用的、支持SQL标准的、支持Unicode的高效数据库产品。 February 17 在dreamhost上部署Ruby on Rails应用的步骤现在发现,将RoR发布到Dreamhost上实在是太简单了。 February 07 欢迎参加2008年度的Delphi需求大调查http://video.codegear.com/survey/2008DelphiSurvey_SimplifiedChinese.html 上面是简体中文调查表的地址。由于这个调查表是我在过年放假期间翻译的,而且长度非常的可观。所以里面有一些错误,请大家千万谅解。用一句小品里的话,请领会精神,看在本人过年还要加班的份上,请大家一定要原谅我。 请大家积极踊跃的参加,完全不记名,不要有更多的顾虑。 我们CodeGear的各项资源都是非常稀缺的,特别是人力资源。所以如果希望CodeGear更重视中国地区的要求,请千万要多找些人来,认真填写这份调查问卷。
另外,本人的网站被封闭了,可能要一周以后才能开通。 主要原因是,我的网站是构建在国外的出租空间上。由于没有必要独立购买一个大的租赁空间,所以就通过代理,很多人合租了一个空间。年前,这个代理的一台服务器被中国政府屏蔽了,为了害怕更大的损失,这个家伙直接关闭了他代办的全部300多个网站,要求我们去申请ICP备案,等备案通过之后再予以开放。 我不知道这个事情应该说是谁的责任或者问题。总之比较郁闷,过完年再努力争取尽快开放网站。 January 31 最近的Blog会在我自己的网站上发布最近的Blog主要都会在我自己的网站上发表,http://ss.lukefan.com.cn/?1 欢迎大家访问我自己的空间。虽然管理水平上肯定和微软相去甚远,但是空间巨大100G。可以无限制的上传附件,爽死了。 January 15 我要被RoR的cache折磨死了将网站进行迁移之后,运行的结果却总是不对。 反复调整了多天之后总算发现了问题所在。由于原先的网站一直是以开发模式运行的,所以其中的caches_page语句一直都没有产生作用。这次将状态换成了production,完蛋了。每次只要是cache了一次之后,RoR就会在public目录里面保存一个同样文件名的html文件,比如cache了index之后,public目录里就会有一个index.html,cache了demo/list之后,public目录里面就会有一个demo目录,里面有一个list.html文件。如果我们cache了demo/show/1,那末我们就会得到/public/demo/show/1.html,下次将直接调用这些html文件,不再访问RoR程序。如果修改了代码,这些html文件不删除的话,那么修改的部分将不会显示出来。 本来是一种非常棒的技术,但是我却遇到了很多的问题。首先,计数器不工作了,网页中除了JavaScript的部分所有的动态信息都不工作了。然后,当我取消了对整页的cache,改为对页面中比较相对静态的部分进行cache之后,浏览器只显示出了被cache的那部分信息。实在是让人无法忍受。 最终删除了所有的cache处理,毕竟我的网站访问量不高,这点处理要求应该还是应付的过来的。 January 14 在Dreamhost中进行网站搬迁的痛苦历程由于上一个空间已经快要到期了。所以就去询问续费问题。却被告知由于购买的是优惠网站所以,续费必须交一百多美金,于是就去注册了一个新的Dreamhost空间。这次直接注册了100G,然后我就按照网站的说明开始了迁移。 第一步,移动数据。 先使用telnet上到旧空间上,然后,使用tar命令将网站打包。 tar -cvf xxx.tar xxx 然后使用ftp指令将tar包传到新空间上。 ftp ftp>open www.xxx.com.cn Name: Password: ftp>put xxx.tar ftp>exit 然后再开一个telnet,链接新的站点。建立好目录之后,将tar包移进去,然后 tar -xvf xxx.tar 展开。 重新设置域名的时候发生了问题。首先我给dreamhost的support写信,要求移动站点。对方回信说,你的新空间是使用一个优惠代码购买的,所以不能移动。当时把我急坏了。 我后来先将旧空间上的域名删除了。然后强行添加,发现还是不行。但是我发现域名还是没有被取消,还可以访问到以前的内容。然后等了12小时之后,Dreamhost的DNS刷新时间到了。好了,再访问旧域名的时候,发现已经访问不能访问了。然后再给dreamhost的support写信确认,对方确认说域名已经被从他们的列表中删除了。 然后在新空间里面添加域名 ......一切ok。实在是太激动人心了。 我们不能享受无缝迁移,但是也能够迁移,就是麻烦一点。呵呵,穷人穷办法。 January 02 最新创建的3rdRail试用序列号December 19 Delphi for Win32应用通过REST访问RoR网站的视频例子已经上传REST是一种非常简单的网络信息交换协议,简单到几乎什么都不剩。为什么这么说呢?因为REST完全是使用的HTTP协议在工作,比起复杂的SOAP来,REST只剩下简单的GET和POST了,剩下的就全都是XML了。 如果大家希望了解更多的REST的相关信息请到Google上去搜索。虽然很新,但是这方面的论述还是不少的,我这里就不重新论证了。 作为老牌的开发工具,Delphi也要跟上这个最新的流行趋势,并且争取在REST上面焕发新春,大家千万不要觉得Delphi处理新技术是一件非常痛苦的事情。恰恰相反,使用Delphi来开发REST的客户端,是非常轻松惬意的事情,这主要得益于Delphi自带的功能强大的HTTP控件和极强的XML处理能力。在配合上Delphi强大的客户端界面表述能力,我们完全可以实现一个基于互联网的;多服务器协同服务的;具有完全自由、完全不受限制的用户交互体验的;甚至是操作底层硬件、操作系统的综合应用。 我们的思想再一次的得到了解放,原来我们需要在丰富的表现力和丰富的互联网资源之间进行取舍,我们必须选择IE或FireFox,现在不需要了,我们完全可以开发基于技术互联网协议的,自制信息发布和处理程序,而再不需要局限在浏览器和HTML了。 按兴趣的朋友请点击:我的网站 December 18 网页上的Ajax操作一定要适量,不要过分的依赖这种技术Web应用就是Web应用,虽然有了Ajax之后确实交互能力强了,但是如果太多的交互,那么结果只有两个。必须下载非常多的东西到客户端(JS或Flash)、非常频繁的服务器交互造成服务器负荷过重。 个人网站版面全面更新我用了一个小时挑选背景,用了半个小时裁剪画片,用了五分钟修改代码,用了十分钟上传。完成了版面的更新。总的来说,裁剪画片还是比较简单的。当然,修改代码更简单。 希望大家可以推荐一些好的画片来,要PSD格式的。我好经常的修改一下版面。 希望这次修改的版面大家喜欢。 December 10 参加Softcon2007归来感觉实在是很累,连续两周,参加了两场软件开发相关的研讨会,分别是CSDN主办的SD2.0大会和中科软组织的Softcom2007。我不想对两个会议的水平和层次进行比较。唯一希望双方主办方注意的是,下次请不要将时间安排得这么近,会累死人的。 在Softcom2007大会上,我上午在大会场学习的时候,有一位讲演人居然告诉我们,只要程序员自身的素质比较高,做出来的软件就可以不用进行测试。还举了例子,说一个人平时好好学习,考试的时候飞快的完成试卷,然后不检查就交卷了。另外一个人平时不好好学习,到考试的时候,一遍又一遍的检查,但是最后的成绩还是不如前面那个人。并根据这个例子得出了前面那个恐怖的结论。听到这里,我实在是听不下去了,闪人。在楼下我们的展台上继续等待到下午3点,好进行我的讲演。我感觉Softcom2007大会有一点是做得不错的,那就是中午的饭不错,五洲大酒店和国际会议中心确实是经常进行大型国际化会议的地方,准备的自助餐很对我的胃口(本人是一个纯粹的肉食动物)。我为下午的讲演预备的非常多的内容,但是,实在是太多了,以至于我基本上讲完PPT就没有时间了,后面关于3rdRail的Demo实在是没有时间Show了,只能给大家Show一个简单的结果。非常遗憾,这个时候如果是换作李维大师来讲的话,那该多好啊,当然,李大师渊博的学识,丰富的经验都是咱学不来的,仅仅是他比一般人快两到三倍语速就让人羡慕不已。 年底之前,应该没有太多事情了,我准备将这两次的讲演合并已经录成录像,然后发到网上,将会场上的遗憾补回来。 请大家关注本人的网站 http://www.lukefan.com.cn 笑话一则,与大家分享[最新哈佛营销案例] 一男赶集卖猪,天黑遇雨,二十头猪未卖成,到一农家借宿。少妇说:家里只一人不便。男:求你了大妹子,给猪一头。女:好吧,但家只有一床。男:我也到床上睡,再给猪一头。女:同意。半夜男商女,我到你上面睡,女不肯。男:给猪两头。女允,要求上去不能动。少顷,男忍不住,央求动一下,女不肯。男:动一下给猪两头。女同意。男动了八次停下,女问为何不动?男说猪没了。女小声说:要不我给你猪……天亮后,男吹着口哨赶20头猪赶集去了...... 哈佛评论:要发现用户潜在需求,前期必须引导、培养用户需求,因此产生的投入是符合发展规律的。我们一定要充分掌握这个送猪定律! December 04 SD2.0大会上,听众给照的照片使用ADO.NET 2.0访问Interbase和其它DBX驱动的数据库
首先需要找到AdoDbxClient.dll这个关键的assambly,这个文件应该会在不久之后随着Interbase的补丁包发布到网站上去的,如果你没有这个文件,可以在Rad Studio里面找到 Borland.Data.AdoDbxClient.dll应该也是一样的。 然后在C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG 目下的 machine.config 中加上下面两段中的一个。 <add name="InterBase ADO.NET 2.0 Data Provider" invariant="Borland.Data.AdoDbxClient" description=".Net Framework Data Provider for InterBase" type="Borland.Data.TAdoDbxProviderFactory, Borland.Data.AdoDbxClient, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b"/> <add name="AdoDbx Data Provider" invariant="Borland.Data.AdoDbxClient" description=".Net Framework Data Provider for dbExpress Drivers" type="Borland.Data.TAdoDbxProviderFactory, Borland.Data.AdoDbxClient, Version=11.0.5000.0, Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b"/> 然后就可以开始试验了 首先使用Delphi.NET,你不需要手工的添加任何 Reference ,然后通过下面的这段代码加以实现。 var 如果你使用VS.NET2005则首先需要使用 Add Reference 添加 AdoDbxClient.dll, 然后通过下面的代码来实现。 using System; namespace ADODataGrid public DbConnection getConnection() +"User_Name=sysdba;Password=masterkey;SQLDialect=3;" +"MetaDataAssemblyLoader=Borland.Data.TDBXInterbaseMetaDataCommandFactory," +"Borland.Data.DbxReadOnlyMetaData,Version=11.0.5000.0,Culture=neutral," +"PublicKeyToken=91d62ebb5b0d1b1b;GetDriverFunc=getSQLDriverINTERBASE;LibraryName=dbxint30.dll;" +"VendorLib=GDS32.DLL"; public void ReadData(DbConnection conn) November 30 参加CSDN组织的SD2.o大会归来我昨天(11月29日)参加了由CSDN组织的软件开发2.0大会,这是我在会场展示区中我们的展台旁边,与两位合作伙伴MM的合影。怎么样MM很漂亮吧,我也很茁壮吧。哈哈。 我穿的是大会统一发的衬衫,居然也有我能穿进去的号码,不容易啊。两位MM身上的T-Shirt和帽子,都是我们公司专门为合作伙伴印制的,大会结束之后也许还有剩余(但是我不能保证),请喜欢的朋友在论坛(http://bbs.lukefan.com.cn)上告诉我你们需要的Size,如果剩余中还有你们的Size,我会快递给你们,所有收到T-Shirt或者帽子的朋友,我对你们的要求只有一个,贴一张穿着T-Shirt或者带着帽子的照片在论坛里面。我会在大家把照片都贴上来之后将这些照片统一贴到Blog上来的。另外,由于这批衣服是澳大利亚在中国定制的,所以Size普遍偏大,我只能穿XXL得,上面的MM穿的是S的,不过考虑到我们程序员普遍的体重都比较大,所以我专门订了两件XXXL的,如果有对自己的体型非常有信心的朋友,也可以来试试,我估计这两件肯定能够剩下。作为参考,我告诉大家一个个人隐私,我本人身高基本合格1米77,体重基本达标,超过100公斤,多于的部分自己也不太确定,但是只能穿两个X的,不知道是不是有程序员朋友可以给我一个惊喜。不过即使你们领到了超大size的T-Shirt,也没有关系,至少照一张照片和大家分享一下,至于下一次你是否再穿就看你自己的决定了,当然我希望下次我到你们那里去办活动的时候,如果天气允许的话,你们可以把它穿戴出来。帽子是不分号的,不过本身数量比较少。
在下午的分会场专题技术研讨和交流活动中,我再接再厉,在规定的1小时交流时间之外,再继续占用后面讲师的时间和大家进行着热烈的交流。 前面那么很小的基本上看不出是哪一个的人就是本人,幸亏我身高和体重基本上都达标了,否则的话就会被热情的程序员们所淹没了。这个大厅本身可以容纳150个人,但是在我演讲的过程中,CSDN不得不向里面再加了超过50张的座椅,并且还有一些人不得不站着参加我的研讨会。据CSDN的人说,在我的交流会进行的过程中,另外有两个同时进行的交流会,会场内门可罗雀,真是十分的抱歉啊。我已经很久没有做过这么过瘾的研讨会了,我讲的非常过瘾,我相信下面听的朋友应该也相当过瘾,就是时间太短了,我都没有时间给大家做Demo了。本来CSDN的人应该在还有十分钟的时候提醒我的,我也准备给大家作10分钟的Demo。但是他们现场负责会场进程的几个工作人员也和我以及其他的参加研讨会的朋友一样忘记了时间,直到我已经超时了以后,有下一位讲师提醒,他们才想起来给我举牌子,告诉我还可以再讲五分钟。我当时大吃一惊,然后当场质问他们为什么不在还剩10分钟的时候提醒我呢?我很气愤,所以,我在得到提醒之后又讲了五分钟,然后又给现场的朋友们做了十分钟的Demo,哈哈,又赚便宜了。 这是从我会场前面拍摄的照片,很壮观吧。很遗憾李维大师没有来参加我们的活动,主要是因为他太太生病了,他需要在台湾陪同治疗,请让我们在这里一起预祝李维大师的太太能够早日康复。 本来分工的是李维大师的讲演偏重于Ruby on Rails和我们的最新开发工具3rdRail的,而我的介绍则是以最新发布的开发工具产品Rad Studio 2007和最新嵌入式数据库产品BlackFish为重点的。但是由于李维大师的缺席,很多朋友就没有机会了解到我们的最新RoR开发工具3rdRail的强大功能了,这是在是非常的遗憾,不过我会在下周六(12月8日)下午举办的《Softcon2008》大会上将这一课补上。希望对这一部分感兴趣的朋友,能够届时参加。 另外如果有人对于我们最新的嵌入式数据库产品BlackFish感兴趣的话,可以参加下周三(12月5日)中午12:00在网上举办的在线研讨会,具体参加办法,可以请大家浏览我的个人讨论组(http://bbs.lukefan.com.cn)来了解,我会在这个研讨会上和大家演示如何使用Delphi来编制BlackFish的存储过程和用户自定义函数。并且会在线上交流会后的一周将该交流会的内容录制成录像,放置到我的个人网站(http://www.lukefan.com.cn)上去,上面已经有我录制的很多视频演示,欢迎大家去观看。 这次的活动非常的成功,除了Jim和我都感觉演讲时间不太够用之外,非常完美。希望下周六的活动还能有这么多热情的朋友支持,Jim明天(12月1日)就要回美国了,相信他能够通过这次短暂的中国之旅,感受到中国程序员对于CodeGear得热爱。希望我们能够更多的看到CodeGear的高层直接来和中国的程序员进行互动和交流。下周的《Softcon 2007》大会上,会有我们亚太区的老板Malcolm Groves发表演讲,希望大家继续支持,让他看到我们中国程序员的热情。 November 28 我们将参加一年一度的《2007中国软件技术大会》地点在国际会议中心(亚运村)时间是在12月8日和9日。 |
|
|