RSS 2.0 Feed
2004-03 Entries
摘要:有个和硬件通讯的程序需要同时向两个端口输出数据,本打算用软件实现,但是由于同步的精度要求实在太高,必须是纳秒级别的同步,所以最终采用了硬件实现的方法。 项目完成以后,突然想利用这个系统测试一下线程同步的精度到底有多高。经过测试,发现软件的线程同步只能达到毫秒级,连微秒级都不能达到。当然精度对于一般的软件项目来说已经十分足够了,但是对于我们这样的高精度项目就只能依靠硬件来实现了。 为了更准确的说明线程同步的精度,把不同执行情况下的程序的输出如图的形式提供给大家看看: 图1:采用100ms的分辨率观察同步波形的时候,认为线程输出的两通道数据是同步的   事实上用更小的分辨率,比如50ms,也很难看出他们之间的差异,但是将分辨率调高到1ms的分辨率的时候,可以很清楚的看到,输出的数据有了先后,不过还可以,因为通过优化程序,县城的同步精度可以达到1.5ms左右。如图2所示   图3是通过硬件同步后的输出波形,即使将分辨率设置到50us的情况下,同步精度也是可以保证的。事实上,同步精度理论上可以达到ns级。 btw:红色是修改后增加的内容...[阅读全文]

posted @ | Feedback (8) |

摘要:看了MVM关于做军官还是做特种兵的阐述,心有戚戚焉。很久以来都是在流传着程序员“学而优则仕”的思想,也有很多的人建议我走管理道路,我仍然坚持在走技术路线。 虽然技术路线的收入可能会比管理路线差很多。我也从行业新手变成的腐朽的老人,我从97年就开始走编程路线,现在仍然还是编程路线。哭。。。。 不过我喜欢coding的生活,虽然外人看我们很辛苦,我们有时也感觉到身心疲惫。但是看到计算机在自己的指挥下听命工作,看到一个个设备按照自己的指令乖乖的听话,这种成就感的获得可以弥补任何付出所带来的不快。我记得我上学的时候,计算机还很少,那时候只要让我写代码,让我给公司钱都是可以考虑的,廉价的劳动给自己带来的无穷的快乐,我们现在又有什么理由去埋怨给自己带来无穷快乐的同时又获得相对舒适生活保证的工作呢? 或许多年以后,我没有办法告诉我的后代,我创造了多么多么伟大的成就,但是我可以告诉他们,我的工作是我的最爱。比起十年前的前辈们学无所用,我们又有多少抱怨可言呢? 当然我不是说管理就不重要,只是我个人而讲,放弃自己喜欢的coding life 而去追求manager的经验的确不是我的best choice. 昨天西安的MVP聚会的时候谈起了GUID的问题,但是我犯了一个错误,将GUID和DotNet中的 共钥/私钥对搞混了,今天一大早就看到了Moslem关于使用 GUID 值来作为数据库行标识 的文章,可能Moslem不是专门讲GUID的,我就根据它的文章找到了http://hegel.ittc.ukans.edu/topics/internet/internet-drafts/draft-l/draft-leach-uuids-guids-01.txt 其中对于GUID的生成进行了详细的讲解。包括基于网卡,基于时间,以及基于白噪声的各种算法都进行了详细的解释。...[阅读全文]

posted @ | Feedback (5) |

摘要:今天化了一个下午的时间研究了一下MSN的协议,对MSN的协议注意了有很长的时间了,但是却一直没有亲自做过什么程序。前面有开心的MSN,后来也给陈锐发过,今天决定自己做一个程序连带学习托管C++基于MSN的开发其实非常简单,关键是熟悉MSN的协议,大家可以在这里学习到详细的MSN协议的知识,唯一可惜的就是全部英文,有心人可以翻译过来http://www.hypothetic.org/docs/msn/index.phpMSN的协议整体是比较简单易用的,只要解决了登录的问题,其它都非常简单.根据协议来看,应该有一个gateway.messenger.hotmail.com:80的登录服务器,但是我一直连接不上,所以就和大家一样使用messenger.hotmail.com:1863来登录了,MS为了避免这个服务器负担过重,在协议中需要根据具体的情况换登录服务器,这些都需要在程序中加以考虑,我遇到了连续登录三次给的服务器地址以后,还要换地址的情况,看来MSN登录太慢也应该就是这个原因的了.在一个比较关键的问题就是passport验证的问题,这里采用的是https验证的方法,上次看MSDN Show的时候CHRIS SELLS说还有另外的一个办法不过我在这里没有采用.仍然是传统的办法方法就是通过连接passport的nexus服务器,然后根据nexus服务器的响应进行passport登录,通过这样的练习可以熟悉passport的一部分运作机制和原理,将来在自己的服务器调用passport服务的时候就不用让用户再看到MS的影子了程序调试过程中得到了 蝈蝈和小马哥的大力帮助,让我这个dot net门外汉不至于找不到门.我是用Managed c++进行这个开发的,在codeproject上有一个C#的project,我做完自己的程序以后发现,我们两个的代码真的很类似,说抄袭都没有人不信,但是我真的是自己写的如果你对自己进行协议层的MSN开发没有兴趣,而对应用层的开发有兴趣,你可以联系开心或者去这里codeproject上的demo在这里:http://www.codeproject.com/csharp/ConnectingToMSN.asp 我把我的代码贴到文章里面了,没有什么特色,大家见笑了。...[阅读全文]

posted @ | Feedback (42) |

摘要:对于Asp.Net开发,我是菜鸟。这几天为了公司的一个事情需要写一部分的Asp.Net代码。但是我的本本上预装的操作系统是Windows Xp Home 的版本,在这个版本上是没有办法安装IIS的,MaQi告诉我可以利用CassIni在Home上开发Asp.net的应用。 经过一段时间的应用,发现确实还是很好用的,不过还是有几个小小的限制 1.和VS2003的结合还不是很紧密,最好以命令行的形式单独启动CassIni Server 2.目前的版本的CassIni只支持一个Virtual Directory,不过对于个体开发还是很足够了 3.只能通过http://localhost 进行访问   据说CassIni Server在Vs.net Whibdey 上会以Venus Web Server 的名称出现,起码不用再单独下载了 BTW:   开心最近打算整理博客堂的帐号,其实我是双手同意的,不过就是担心我也被处理了。今天打开我的博客堂联系信箱,发现也属于管理团队,甚感荣幸。博客堂现在的确是要整理整理了,以前每天上网第一件事情就是来这里汲取营养 BlogBus被整顿了,在首页上明确的告诉大家,没有办法访问了。blogcn 今天也没有办法访问,不过连基本的信息都没有提供。看来两会期间,凡事小心是没有错误地。...[阅读全文]

posted @ | Feedback (84) |

摘要:在网上一直找不到适合的bug管理系统,忙里偷闲顺便用vs2003开发一个asp.net的应用,所谓闲来无事,权当练手的说。 发现DataGrid在很多地方的确不错,不过我觉得还是有改进的余地(.net我是新人,说得不对的地方大家包含)。 1.应该增加AllowRowSelect 属性 2.修改数据的时候不要点EditText了,选中一行的时候允许直接进行编辑 我以前在ASP下写的Grid就支持这些,有时间的话,写成控件的说。 BTW: 昨天的西安MVP聚会非常成功,我在西安10年都不知道西安还有一条小资一条街。感谢崔亮。也见到了另外一个新MVP--杨涛,希望今后大家之间会有更多的交流学习的机会。...[阅读全文]

posted @ | Feedback (19) |

摘要:很多MVP都知道我的工作是和硬件测试密切相关的,其实很简单,就是编程实现对硬件的测试。最近我们准备进入电路板测试的领域,对我而言,真的是一窍不通呀。 经过一段时间的充电,终于搞清楚了一点点内容,原来测试都是相通的。 我们软件测试需要有一个测试覆盖率的问题,硬件测试也有这样的指标。 软件测试分为黑盒测试和白盒测试,硬件也有类似的测试。至于软件中的单元测试,系统测试,硬件中也是少不了的 最关键的一个理解是,原来电路板测试也需要测试用例、边缘测试这样的理论。需要生成信号矢量表对硬件功能进行测试,这个矢量表就相当于软件测试中的测试用例。而边缘测试可以对硬件的连通性进行测试,比如元器件有成千上万个,可以通过软件定位到是哪两个元器件之间有虚焊。早知道有这样的技术,偶们早都不担心什么虚焊等等的了。 现在的电路板测试还有一个比较难解决的问题就是模拟电路的测试,因为模拟电路对于信号的激励的反应是有变化曲线的,数字电路则可以根据电路原理图以及FPGA程序模型进行分析。 和软件测试不通的是,硬件测试好贵呀。因为除了需要编写程序以外,还需要有激励源和相应设备,而这些设备会由于被测电路的指标成指数的变化,这个是纯软件无法做到的。 link:   Synopsys SmartModel Library 是一个基于FPGA信号的建模软件   LASAR 软件是对电路板的激励与响应进行测试与仿真的软件 有个朋友告诉我一句话:没有测试就没有科学 深表赞同...[阅读全文]

posted @ | Feedback (4) |