May 2008 - Posts
我见过一些人,他们通常强调尽可能简单,但若事情突然变得比他们预期的还要简单很多,他们就开始感到不适,甚至拒绝接受这种简单,其实即使事物的发展方向和你的前进方向相一致,但如果发展速度大大超越了你,仍然有可能引发你内心对失控的恐惧。
每一个程序员都希望工具能够更进步,能够更好的服务自己,好让自己少加一些班,但是一旦它真的变好,好到自己已经感觉不可控,那么一种恐惧感便油然而生,随之而来的是不屑、挑刺、贬低、迷茫、无所适从,甚至恶意攻击、无端谩骂等等……
就像当年Java初入世,那些C/C++的元老们一样:Java只能用来在页面上用applet作一些可笑的小动画,Java只能对对火柴棍排序,Java慢得像牛车,Java有内存泄露,Java狂耗内存,Java愚蠢的弱类型容器可以把鲸鱼装进一个笔筒,Java居然没有指针,Java做不了系统程序设计,Java写不了操作系统,Java解决不了我手头的超超级复杂的巨牛无比的难题(孟岩)云云,当然亦如如今Java/.Net元老们对待动态语言态度一样。
没有什么一出世就是完美的,但也没有什么可以一直完美下去,抵制,只因为习惯,只因为恐惧,习惯于写N长的代码去解决一个问题,恐惧于别人两行代码代替了自己2000行的功能,习惯于自己是公司的元老是大牛,恐惧于一个初生牛犊解决了自己长久以来难以解决的问题…… 因为抵制,由此产生的攻击,如此说来,这也算是一种进步,一个新兴的东西,有这些抵制者来发现问题,才会更好的在下一步解决问题,以更好的替代。
由此想来,为什么程序员总是很累?虽然加班经常,但还不至于天天都晚上十点还要搬砖垒墙,虽然压力偏大,也还不至于头一天陪客户蹦迪到凌晨4点,早晨8点还得西装领带满脸笑容神采奕奕去见另一个客户,虽然挣钱无多,怕也不至于到过年回家时还要追着老板要路费。可是依然感觉累,周末睡了两天,周一早晨依然没有精神,于是,要找个替罪羊,总不能就这样不明不白的累了吧?怪老板,老板天天给我们N多任务,压得我们喘不过气,可是老板发我们钱,万一他不爽我们就惨了,所以想想,还是忍了吧;怪PM,他总看我不顺眼,啥事儿都让我干,还处处给我小鞋儿,不行,如果他在老板面前说我坏话……还是算了;Java!.Net!可恶,天天出新东西,搞得我天天跟着跑还跑不过来,不跟?老板拿隔壁公司说事儿:看人家可以XXX,看人家的系统XXX,人家都能XXX你们为什么不能?!
程序写的累,天天为解决这些问题想破脑袋,于是天天盯着MS的网站看是不是又出什么好东西可以让我少加会儿班?咦?果然有新东西,下载,安装,启动,嗯……似乎有点摸不着头脑,这是什么?怎么用?算了,还是先不看了,今天的任务要先完成。过了两天,发现有人在用这个,第一反应:小儿科,我就是没时间,要不然……可是当别人真的拿那东西来做事情了,自己拿来看两眼:这东西似乎不太好学,会不会大家都开始用这个?如果我现在学不会,会不会影响我在团队中的地位?老板会不会给他加钱不给我加?
恐惧,又见恐惧,恐惧新事物,恐惧自己的经验贬值,于是乎,不屑,挑刺,贬低……恐惧的表现…………但不能让人看出来………………
↓↓↓↓↓↓↓↓↓↓ 人说发牢骚可以长寿,给大家提供个地方 ↓↓↓↓↓↓↓↓↓↓
摘要: 当我们在工作流中使用本地服务的事件的时候,WF运行时引擎将入站消息映射到实例中的特定HandleExternalEventActivity活动,对实例的映射是在将工作流实例InstanceId传递到ExternalDataEventArgs构造函数时完成的。所以当工作流实例在本地服务接口上侦听相同事件的不同实例时,就无法确定该响应哪个事件,如何解决这个问题呢,我们就需要在工作流中使用关联.
阅读全文
摘要: 我们知道,Visio的Shape对象有有3个比较特别的属性,分别是Data1、Data2、Data3,平常我们很少用到它,因为我们如果需要属性的话,可能会通过ShapeSheet的Customed Properties中定义我们所需要的信息,需要各种属性的值都可以拿到,那么Data1、Data2、Data3对我们来说,就用处不大,但有的情况下,我们使用它进行一些操作却是非常方便的。
首先我们介绍下,这几个属性是什么东西,Data1、Data2、Data3是Shape的内置属性,不需要额外定义,而且它据说可以放置64K的字符串(没有试过这么大的),一般来说我们是足够放置内容的了。
言归正题,我们什么情况下会使用到这几个属性呢,大家想想,我们在绘图的时候,是不是总有个图框来列出图纸那些设备有几个的一个设备清单呢,或者是一个比例尺说明什么的,这些场合就可以 用上它们了。
因为这些线条,可能是我们随机画上去的,里面的一些设备的说明以及相关信息一般都是根据图纸变化而变化的,因此每次保存的时候,可能要重新绘制一下,但绘制的时候,为了有别于其他设备图元,我们使用这几个属性来记
阅读全文
摘要:
摘要:
作为信息的最重要载体,电子文档处理的研究引起人们极大的兴趣。在任何文档处理系统中,预处理极为重要,其效果好坏会严重地影响其它模块的工作。特别是灰度图像二值化效果的好坏,对识别效果以及其后的一切处理都有相当大的影响。原因之一是,任何物理传感输入都是灰度图像,文档处理系统的大多数模块却仅仅处理二值图像,图像二值化是必不可少的。此外,图像二值化本身也是数字图像处理中重要的基本问...
阅读全文
摘要: 使用VS调试几次项目后,使用SQL Server Management Studio管理数据库时,使用SA登录就会出现这个错误,当然,如果项目中的数据库连接字符串中使用的sa验证,那么项目也会连不到数据库
阅读全文
摘要: 老实说,没有哪个开发人员愿意在其编码时还要考虑线程同步。更糟糕的情况是,编写线程同步代码一点也不好玩。稍一不慎,就会导致共享资源状态不一致,从而引发程序未预期行为。此外,当我们添加线程同步代码时还会导致程序运行变慢,损害性能和可伸缩性。从这点上来看,线程同步简直一无是处。可惜,这也是现实生活中必要的一部分。尤其在多核CPU成为主流的今天。
阅读全文
发现 VS2005 SP1 带的 Web Application Project 在 .aspx 的 设计/源码 视图的右键菜单都没有【在浏览器中查看】这个命令,而在VS主菜单的文件菜单或者右击.aspx菜单中都有这个命令的。VS2005的WebSite以及VS2008 的WAP&WSP都没有这个,记忆当中VS2002/2003应该也有此功能。起初以为是SP1安装的问题,回想SP1安装的苦难历程,也就将就用了,最近又转回Web开发,实在是不方便,又没有找到快捷键可用。
在ASP.NET Forums Missing "View in Browser" command from the context menu of VS2005 WebApplication上讨论了几天,也没有结果,也许是我的VS真的有问题了。
不知道大家有没有此问题?
准备自己开发一个 Add-in 插入可惜没找到 View in Browser 在 EnvDTE 中接口是什么(有人知道吗?或者能提供 VS IDE内置的 Command 列表的更好了
),自己完全实现估计工作量比较大。
虽然 .NET 2.0 可以 Target 到 VS2008 上,还是希望MS能出一个 host fix 出来,毕竟很多朋友还需要在VS2005 WAP上奋斗一段时间。
1、开发环境的搭建
我原系统是WIN2003+VS2005+SQL2005,由于在06年就做了个GHOST镜像,所以必须打一些补丁。
先安装了WIN2003SP2,然后安装VS2005SP1,没想到出了个错误“错误1718。文件c:\windows\installer\81844.msp
未通过数字签名检查”,于是GOOGLE了一下,原来早有大侠解决了。方法是运行secpol.msc,在“软件限制策略”的
“强制”属性中设置“将软件限制策略应用到除本地管理员以外的所有用户”。之后一路绿灯,就是行驶速度慢了点。
(http://www.cnblogs.com/ltp/archive/2007/02/25/656562.html)
还有个SQL2005SP2,估计暂时没啥影响,就先偷懒不装了。接着完全安装VS2008,没出什么问题。
2、简单测试
新建了一个只有一个按钮的Hello World程序,只添加了一句MessageBox.Show("Hello World");这里我选择了
Windows Mobile 5.0 Pocket PC R2模拟器,没遇到什么问题。
3、数据库访问
往模拟器中拖一个DataGrid,然后选择数据源--建立数据库连接--建立DataSet(都是通过向导实现的),
这时Form中多了DataSet、BindingSource、TableAdapter三个控件,工程中多了个DataSet.Xsd,编译通过。
接着先运行一下,这时问题出来了,模拟器提示没安装.Net Compact Framework v2.0,如下图1

既然没装,就装吧,这时有两种解决办法:
A、把C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\wce500
\armv4i\NETCFv2.wm.armv4i.cab复制到模拟器中直接安装,退出时保存模拟器的状态,以便在下次运行时使用。
(安装Microsoft ActiveSync 4.5以及参照图一,通过模拟器“连接”--“插入底座”来交换文件)
B、下载安装NETCFSetupv2.msi(.Net Compact Framework 2.0 sp2),这时其实系统中已存在Compact Framework
2.0,所以会有“修改、修复、移除”三个选项,这时只需要选择“修改”,全选所有项目安装到硬盘就可以了。
安装好后会在运行程序时在模拟器中自动部署Compact Framework 2.0,如图2

今天先到这里。写文章原来好辛苦的
摘要: 在AJAX应用环境中,由于安全的原因,浏览器不允许XMLHttpRequest组件请求跨域资源。在很多情况下,这个限制给我来带来的诸多不便。很多同行,研究了各种各样的解决方案: 1.通过修改document.domain和隐藏的IFrame来实现跨域请求。这种方案可能是最简单的一种跨域请求的方案,但是它同样是一种限制最大的方案。首先,它只能实现在同一个顶级域名下的跨域请求;另外,当在一个页面中还包...
阅读全文
摘要: Google 的 AJAX Libraries API 已经在 http://code.google.com/apis 上发布,Google AJAX Library 本身只是一个内容分发网络(content distribution network )和流行 JavaScript 库的加载框架(loading architecture for the most popular open source JavaScript libraries)。
阅读全文
Linq核心的组成部分有LINQ to SQL, LINQ to DataSet, LINQ to Entities和LINQ to XML,根据Linq对于其他的集成很快会由微软或第三方实现,而改技术对于Access数据库的支持并没有像SQL Server那么友好,今天尝试用Linq查询Access数据文件时遇到了不少麻烦,在网上搜索后发现很多朋友都遇到了相同的问题,经过反复的尝试,终于初步完成了Access的查询。
下面是实现步骤:
1.准备: 用Access2007建立一个users.mdb文件,里面定义一个users表包括了以下三个字段——ID(int),Name(文本),Password(文本)。
2.新建一个控制台程序后,导入改数据连接,VS2008会自动的生成与数据表对应的强类型数据集并且完成相应的配置文件,其中关键的配置代码如下:
......
<connectionStrings>
<add name="Chp.Properties.Settings.usersConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\users.accdb;Persist Security Info=True"
providerName="System.Data.OleDb" />
</connectionStrings>
......
3.实现代码
//定义相关的DataSet和TableAdapter
usersDataSet uDS = new usersDataSet();
usersTableAdapter uTA = new usersTableAdapter();
usersDataSet.usersDataTable uTable = new usersDataSet.usersDataTable(); uTA.ClearBeforeFill=true;
uTA.Fill(uTable);
......
//通过LinQ查询users表中用户名为需要查询的信息,这里AsEnumerable()是必须的
//而u.Field<string>("Name")=="......"的意思是判断是否为需要查询的类型为string的Name字段
var users = (from u in uTable.AsEnumerable()
where u.Field<string>("Name")=="......"
select u).First();
......
//打印查询到的Password
Console.WriteLine("Password:{0}", users.Field<string>("Password") );
总结:其实这里的Linq to Access主要还是通过LINQ to DataSet间接实现和完成的,但是从实现方式上又是按照了ORM的模式来执行的,不得不说的是Linq为数据的查询提供了极大的便利,同时也简化了数据的操作,开始明白微软为解决Data!=Object的意图了!
摘要: 碰到一个小小的需求,就是要根据传入的锚(也就是url中#后面的东西啦)来显示不同的内容,记得以前写了的,不知道被我丢到哪去了,又要重新写一个,顺便把功能整理加强了一些,加入了取QueryString和Cookie的东西。
阅读全文
在用asp.net程序开发一个物品管理系统时,涉及到扫描枪的应用,但是扫描后,直接就执行按钮事件,因为要转换一些数据,所以做成这样不行,后来想了各种办法就是没有办法解决,后来无意中发现了这个
UseSubmitBehavior属性(指示按钮是否呈现为提交按钮)设置了一下,竟然好了
摘要:
PKI体系中的RA系统
摘要:本文以格尔RA为基础,首先讨论了PKI公钥体系,说明了格尔PKI平台产品SRQ15,然后着重介绍了SRQ15中的RA系统。对格尔RA系统的功能进行了分析,对格尔RA系统的架构及开发中所涉及到的技术进行了探讨。最后展示了格尔RA系统的总体效果。
关键字:PKI、RA、SRQ15、CA、私钥、公钥
The Register Authority in ...
阅读全文
More Posts
Next page »