Thursday, October 30

WinFX发想
据说下一代.NET Framework更名为“WinFX”。并且准备取代Win32成为最主要的API(应用程序接口)。
我没有详细去看WinFX的技术设计文档,但是估计今后的API将采用XML作为interface。估计会类似最早嵌入HTML的ActiveX组件,java applet。只不过这次是真正面向Desktop了。
个人认为这在技术发展到现在的程度下是极其自然的。
早期的DLL,后来的COM都无法完全实现“将用户界面的设计者与程序开发人员的工作分开进行,以便提高开发效率”(Allchin)。 特别是现在windows下成ton的API,极端混乱不看,我想即使MS windwos Team的成员也不间得所有的API都了解吧。一些接口下面隐藏的诡秘细节更是令人无从想像。这回API升级以后造成的参数不兼容问题有望在XML接口下解决。
XML接口的另外好处是所谓的AOP,可以通过设置attribute,控制API的安全性,交互协议,字节顺序等等这些API本身不应该负责的事情。
对普通用户来说,windows的界面将想同web一样丰富多彩,每个人都可以轻易设计自己的windows界面,让你感觉更亲近更友善。这种和界面相关的设计语言据说叫做XAML(eXtensible Application Markup Language)

以上纯属个人想像,如有雷同,万分荣幸!


Tuesday, October 28

我昨天胡言乱语了一通,结果遭人骂是"一个看轻自己民族的人"。555,晚上没睡好觉。我只不过介绍了人家的优点,就被基于某种民族思想的言论攻击了。
CSDN上的一篇文章说的好"客观看待自身的问题,才能使我们中国的软件行业实现真正的跨越,超越日本,击败印度,抗衡美国。 真的希望能看到这样一天:中国的程序员能面对世界自信的说:“我们是最棒的!” "

Monday, October 27

胡言乱语
理性的思考,来自怎样的大脑?
看看22岁的麻省理工大学的副教授的Erik Demaine就知道什么是智慧。
玩过联众的俄罗斯方块对战的朋友都知道,在有限的时间里找到最佳的策略是多么不容易,如果让其中一方是一个计算机程序的话,是否有一个有效的算法来解决这个问题呢?Erik Demaine告诉我们,没有这样的算法。因为这是一个NP完全问题。
这个Erik Demaine的博士论文居然是"Folding and Unfolding",完全来自对折纸的研究。
纸张的发明是中国为世界做出的巨大贡献。我不知道折纸是哪个国家发明的,但是折纸(origami)这个英文词拼写是来自日语的"おりがみ"。
历史上中国曾经发明过很多东西,但是我不知道近代中国为世界贡献了什么?
日本NHK电视台有一个节目就是"ProjectX",这个节目在晚上的黄金时间播出,每一集都讲述了近代由日本人发明并对世界都产生影响的产品,从最普通的人,开发最前线的人讲起。我没有每一集都看到,至少看过的有"方便面","洗碗机","复印机","自动检票机"...
现在有一些venture company就同自己的员工说,我们的工作今后会被ProjectX选种的。那是怎样的一种激励啊。

昨天还看了梁肇新的《编程高手箴言》的样章。本来有些感想,现在也想不起来。
在中国做程序员很累。
。。。。。。在外国也不见得舒服。

今天,我作了。。。。

太晚了,我要回家了。bye

Sunday, October 26

前几天有人问杨立伟飞行员从太空能看到长城吗?。。。取决于我们如何定义看见。:)

让我们通过下面这个网站来看看从太空到底能看到什么。
Molecular Expressions: Science, Optics and You - Powers Of 10: Interactive Java Tutorial

Friday, October 24

上海市居住证
上海比较牛啊,中国人在上海住还要申请"签证"呢,还给你评分,分数不够的话,还拒签呢。
:s
我算了算,要是有钱在上海买房的话,刚好能混上3年签证,没房的话1年。要是工作没找好的话,只能拒签了。555~~~
我一个小人物,可怎么是好。

Wednesday, October 22

Microsoft toys with open source
走向开放的微软
微软的产品一般来说都是封闭开发的。外人是无法参与进去的。不过这种说法看上去就要成为过去时了。微软正在草拟一个新的license, 来使一个Windows C++ 代码库WTL(Windows Template Library)成为开放的,允许非微软开发者参与的商业代码库。这对于微软来说几乎是一种激进的行为。
最早,微软Visual C++ Libraries Team的Pranish Kumar在今年4月12日提议将WTL变成shared source。这在WTL社区引起过争论。Pranish Kumar的mail可以在这里找到。他提出了一些重要的想法,而且在征求非微软人士的意见。

我是在2002年6月从大怪兽那里听说WTL这个名词的。在同年10月1日我写自己的第一个WTL程序No!Flash用来屏蔽国内新闻网站的动态广告。WTL让我有一种众里寻她千百度的感觉:)WTL是为那些追求开发出更小巧更快速的windows程序的开发者准备的。

我使用C++编程几乎不得不同时使用STL/BOOST/ATL/ATL Server/WTL以及自己积累的一些CLASS。C++在程序库上的贫乏,再加上一些语法的复杂性,对于一般的开发者来说,C++不是一个好的approch。java和.Net的突飞猛进,不能不说是对C++扬长弃短的结果。

Wednesday, October 15

VB Helper: Index Categories
如果你是VB.Net的开发着,那这个网站还是有些用处的。
我在这里学会了如何让一个winform上的picturebox里的图片透明显示:>
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Use MakeTransparent to make red pixels transparent.
Dim bm As New Bitmap(PictureBox1.Image)
bm.MakeTransparent(Color.Transparent)

' Display the result.
PictureBox1.Image = bm
End Sub

Tuesday, October 7

ASP.NET一个教训
今天一个aspx突然间codebind的部分不执行,页面没有初始化就显示出来了。经过一个多小时的调查,发现不知什么时候由VS自动控制的private void InitializeComponent()里this.Load += new System.EventHandler(this.Page_Load);失踪了。可能是我在修改aspx的时候不小心删除或者修改了某个控件的名字,VS自动修改的时候出现了BUG。这个问题以前也出现过几次,这次仍然在同一个地方跌倒了。写下来留作教训。

Monday, October 6

追求理想与疯狂的界限
昨天一个朋友给我介绍了他的一个同学和他的软件,MOLIPS,这是一个类似visio的画矢量图软件,从UML到分子图都可以轻松完成。这里有一个演示video
这么厉害的软件是一个人开发,并且完全免费的。据说,这个叫福代昌之的作者,为了追求理想,做自己想做软件,给最广泛的人使用,6年前从世界顶级的大公司辞职,专门做这个软件。辞职以后没有收入,坐吃山空,老婆孩子都无法理解他,离他而去。而他并没有利用这个软件谋取什么金钱,只能在一些公司需要软件人员的时候去打打工维持生活。
每个人都有理想,为了实现它,究竟要付出多大的代价?追求理想与疯狂的界限究竟怎样?我也有自己的软件梦,但是我想,我不能不对家人负责。

Friday, October 3

奇怪的session无效问题
yan一直在调试一个jsp程序。一个奇怪的问题就是在本地机器上session很好用,可是从另外一台饥器上访问他的程序,session就失效了。下午我一直与他研究这个问题。一开始以为是tomcat的bug,开始实验tomcat3.3,tomcat4.0,tomcat5.0结果状况都一样,都是不能使用session。
我知道session本质上是根据一个随机生成的sessionID,通过写入cookie来维持客户端与服务器端的状态的机制。
我开始怀疑是IE不让server将sessionID写到本地。我将IE的安全设定设为最低,并接收所有的cookie。结果还是不灵。
我决定试一下我一直在做的一个使用了session的aspx程序。My God,通过另外一台机器也无法使用我的aspx程序,。而且ms提供的一些例子,如mspetshop,Duwamish7都无法使用。
如果设置cookieless="true",则没有问题。
:s
faint

Wednesday, October 1

不要过分相信VS.Net的自动提示菜单和属性窗
在开发asp.net程序的时候,今天过分相信vs.net的自动提示,导致花了1个多小时调查< asp:label...
我将< asp:label...放在一个repeater里,希望在codebind里可以通过
foreach(RepeaterItem rpItem in extClass.Items)
{
Label className = (Label) rpItem.FindControl("clsNa");

将名叫clsNa的label值取回来。
我在aspx里写成
< asp:Label id="clsNa" runat="server">< %# DataBinder.Eval(Container.DataItem, "_class") %>< /asp:Label>
的话,取回来的值总是空字符串。而vs提示asp:Label 没有text这个属性。我就信以为真了。
最后经过调查,改写成这样就可以了
< asp:Label id="clsNa" runat="server" Text='< %# DataBinder.Eval(Container.DataItem, "_class") %>' />

另外< IMG src=其实以可以有visuable这个属性的,真假不同控制这个图像是否显示。