By Charles on 三 28th, 2008 | 1605 Views
我在.net框架下面编程,但是要使用ocx控件。不过,这个领域我真的很白痴啊,很多东西搞不定,不知道怎么回事。
首先是一些术语不明白,什么COM啊,COM+啊,GDI啊,GDI+啊,都是些什么啊?有谁推荐一本书,一次性讲得透彻点的那种。
还有就是我要在程序中使用ocx控件,我不知道怎么初始化一个ocx控件,所以,我一般是先拖到窗体上,抄窗体设计器自动生成的代码。结果,这个办法并不是每次都有效,真是很不爽啊。
比如,我如果直接自己用代码创建控件,抄袭窗体设计器的代码还没有问题,但是如果我要把ocx控件自己包装一下,有些代码就失灵了。比如如下的代码:
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
amc.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("amc"+id.ToString()+".OcxState")));
说实在的,我真的不知道这些代码有什么作用,我在窗体里面用ocx的时候,可以这么写,但是后来,我想用一个panel把ocx给包装个一层,我发现,这两行代码加上就没法运行了,也不知道怎么改,真头疼啊。
Posted in 工作相关 | Tagged dotNet, programming |
By Charles on 三 27th, 2008 | 764 Views
今天是今年第一次去游泳,我选了早上九点的时间,水比本来估计的要热一些,很舒服。
不过遗憾的是,基本上没有同龄人,大都是些老头老太太,来锻炼身体的。
我今天游得很认真,基本游足了四十分钟。刚开始,我还比较累,游一个来回要休息一下喘口气,后来很快就适应了,就连续地游。距离上次游泳少说也有半年了,这次连续的游让我又了新的体会。我在连续游一段时间以后,会感到自己的意识从身体里出来了,在水面上漂浮着,注视着自己,想着很多奇妙的事情。比如我昨天一天干了什么,我今天打算干什么,早上背的单词还记得几个,等等等等。
不过最让我惊讶的还是我发觉自己呼吸得很认真,我就想,如果不是在水里,一定觉得空气是那么自然而然的东西,根本不会像现在这样,我盘算着还有大概5秒钟,我就可以把头伸出水面了,在此之前,一定要把现在肺里的气吐空,蹬腿完毕了,要保持住平衡飘一会儿,然后手夹水的动作要领到底是怎样的,因为一定要确保自己的头能举到水面上面,而且还要有足够的时间。每一次呼吸,我都要完成一系列的思考,当然不占用什么CPU的,但是还是有意识的,我想,我是呼吸得如此认真。那种感觉真的挺奇怪的。
然后,我又联想到了处在一段恋爱关系中,是不是也有的时候把对方当成了空气一般对待,好像觉得空气总是在身边,随时呼吸一口,深一点,浅一点无所谓,多一口少一口,无所谓。其实恋爱中的双方如果把对方当成是游泳时候呼吸的空气,每吸一口气,都那么努力认真,都那么踏踏实实,绝不会有一次偷懒,那么两个人应该都可以很享受这段关系,就好像在游泳的时候,你可以享受畅游的乐趣一样。
哈哈,扯远了呢~~还是太理想主义了呢~
Posted in 日 记 | Tagged opinion, schoollife |
By Charles on 三 26th, 2008 | 1001 Views
这两天使用.net framework编程,其中有个任务是将一个二进制文件格式转换成mpeg4码流的媒体文件。其中需要使用System.IO.BinaryReader类,按照MSDN和我自己使用的SDK的范例,我使用了类似下面的代码。
using(FileStream inputFile = new FileStream("name.bin",FileMode.Open))
using(BinaryReader br = new BinaryReader(inputFile))
{
while(br.PeekChar() != -1) ///<----崩溃
{
////......
}
}
以上代码总是会在调用个PeekChar()的时候发生崩溃,错误信息为:输出字符缓冲区太小,无法包含解码后的字符,编码“Unicode (UTF-8)”的操作回退“System.Text.DecoderReplacementFallback”。 搞不清楚怎么回事,后来上网反复查,发现这个竟然是一个.net framework的bug。
其中涉及到UTF编码格式的一些知识,我也不太明白,不过有一点是可以确定,官方推荐不要使用PeekChar()来判断EOF。这真是让我很晕啊,怎么那么多官方文档和SDK里面都用错误的例子啊,被误导了,耽误了不少时间呢。
推荐使用的判断EOF的方法是:
br.BaseStream.Position < br.BaseStream.Length
参考文献:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1939995&SiteID=1
http://www.codeplex.com/SvnBridge/WorkItem/View.aspx?WorkItemId=9077
Posted in 工作相关 | Tagged dotNet, programming |
By Charles on 三 25th, 2008 | 1010 Views
用电脑的人,都离不开键盘,键盘的重要性远远高于鼠标。但是,对于这么一个每天都要用的键盘,你有没有思考过这么一个问题:键盘上的字母为什么排列顺序这么奇怪?
我一次使用电脑是在十年前了吧,但是我好像从来没有问过这个问题呢,或者我不记得我问过这个问题了。不过昨天从打游戏有些按键坏得特别快的事情上想到了当今键盘键位布局的问题上,今天就baigoogledu之了,真有意思。
我们现在用的键盘,叫做QWERTY键盘,怎么样,反应过来没有,为什么叫这个名字?哈哈~~
发明这个键盘的人,叫克里斯托弗·拉森·受斯(Christopher Latham Sholes)。生卒1819.02.14~1890.02.17,享年71岁整。


键盘最早出现在打字机上(当时是没有电脑的),最早的实用打字机出现在1873年,当时的键盘上字母是按顺序排列的。但是这样的打字机有一个致命缺陷(用过打字机的同学都知道),不小心按下相邻的两个键,会发生卡壳,打字机的构造懒得解释了,也说不清楚,自己看图吧。


我们的克里斯同学针对这个状况,发明了一种新的键盘布局。这种新的键盘布局通过统计英文单词规律,将常见的字母对拆分开来,在键盘上尽可能布置得远,以此来延长打字员击中相邻两个字母的时间,事实证明,这个时间被延长得足够长(因为当时都是看着键盘打字的),以至于在很大程度上减少了打字机的卡(qia3)壳现象。这种布局于1874年获得发明专利,称为QWERTY键盘,也就是键盘第一排前六个字母。
值得一提的,早先,QWERTY键盘上没有数字1,因为克里斯同学认为,人们可以通过字母I来实现1的打印,哈哈。当时的键盘上还没有Shift,只能打印大写字母。
趣味单词:
- hunt-and-peck:用我的话说,这个叫“一指禅”,也可能比那个强一点,就是看着键盘打字。
- touch-typing:直到1888年才出现了这个技术,真不可思议啊~~这就是“盲打”,想我始学电脑,学的就是盲打呢!
Reference:
- http://www2.milwaukee.k12.wi.us/sholes/CLSholes.html
- http://en.wikipedia.org/wiki/Christopher_Sholes
- http://en.wikipedia.org/wiki/QWERTY
Posted in 趣 闻 | Tagged computer, interesting things, science |
By Charles on 三 24th, 2008 | 816 Views
周末在家,看到了关于“小神鹿”的报道,没有去记她的名字,也没有去记那个教练的名字。因为我觉得,他们终将会被人们所淡忘。
8岁,一个骨骼还没有发育健全的女孩子,被教练带着练习马拉松,又一个想要创造神话的人。
07年,中国红了两个典型,一个是刘翔,一个是丁俊辉。刘翔是科学训练的象征,他的成功使得孙海英进入了中国田径队,开创了科学训练的时代,马俊仁那套往死里练的法子终于退出了历史的舞台。
而丁俊辉,开创私人体育训练的时代。在国外,很多运动员从事体育运动都是自发性的行为,只有获得了相当的成绩,国家才开始资助参加大赛。而中国的运动员从一开始就是国家培养的,他们就像国家在外树立形象和争取荣誉的工具一样。从丁俊辉开始,标志着我国在经济进一步发展后,私人从事体育运动成为了可能。
但是丁俊辉只是一个特例,这种模式还没有形成一种可以效仿和可以再现的方式。8岁的这个孩子,玩命练习马拉松,我想只是一种对成功的痴迷的追求,甚至无视科学的规律,是非常不可取的。
Posted in 日 记 | Tagged opinion |
By Charles on 三 23rd, 2008 | 1589 Views
使用WordPress快一年了,还有很多功能我一直一知半解。今天刚刚弄明白了后台编辑器中的“可选摘要”的作用。
接下来,就来谈谈我的体会。
可选摘要这一栏,是搭配着“设置-->输出-->Feed(联合供稿)-->日志内容显示”这个选项来设置的。如果你设置了“摘要”,那么在你博客的Feed中,将会显示摘要。设置了“全文”,那么Feed中就输出全文(并非绝对如此,有一个前提的,后面会说)。
对于Feed来说,我个人觉得是给别人提供方便的,读者订阅你的Feed,就是表示对你的博客内容比较关心,而对别的并不是那么关心,对于一个个人博客,一般来说,不会产生海量的文章,更加不会产生门类繁杂的文章,所以,如果个人博客,只输出摘要的话,那么你的Feed就会变成完全没有价值的Feed,因为到时候,读者还是需要点击一下超链接,才能到你的页面上看文章,那完全没有必要订阅的。所以,一般来说,建议能在Feed中输出全文。
那么这么一来,“可选摘要”是不是就没有用了?并非如此。
在WordPress博客中,按照给类方法的存档页面中,会以摘要的形式给出。比如月存档页面,分类文章页面,tag页面等等。这个时候,如果你的文章在写作的时候填写了“可选摘要”,那么就会使用你写的可选摘要。否则,就会自动截取你文章的前面一段,作为摘要。
但是,大家都知道,WordPress不是中国人写的,所以其内部的摘要函数,在设计的时候,没有考虑到汉语言的特点,有位前辈,曾经研究过WordPress的摘要算法,节选一篇文章中前55个字作为摘要,拉丁语系的单词之间以空格分隔,所以55个字,就是55个空格,那么对于汉语来说,可想而知了吧,我们几乎不会在文章中使用空格。解决这种问题,当然是有办法的,大名鼎鼎的“WordPress中文工具箱”,就提供了这种针对汉语的真正截断的算法,截取的是前面255个字节,然后去掉半个字产生的乱码。
或许,有些人觉得用中文工具箱就万事大吉了,但是对于写作习惯一般的XDJM们来说,前255个字节,可能就是前126个汉字,真的能摘要你的整篇文章吗?有些时候还是认真填写一下“可选摘要”吧。
然后我再来谈谈上文中括号里面的问题。在使用WordPress写文章的时候,如果文章太长,我们需要对文章提供分页,使用<!--more-->标签。但是使用了此标签后,就算是全文输出,也只能输出到该标签处,然后是一个read more的超链接。可以说,这也不是我们希望看到的。不过,解决这个问题就没有那么简单了。又想使主页的文章不要太长,又想在Feed中可以全文输出,怎么两全呢?
一个并不怎么完美的答案,就是使用@Feed插件。为什么说,并不完美呢?因为该插件在屏蔽more标签的时候,强制WordPress在Feed中输出摘要。真是很矛盾的对不?我也觉得很奇怪。
待续……
Posted in WordPress | Tagged usage, WordPress |
Most Commented Posts