乱弹@2004/12/31

今天是2004年的最后一天,在这里写了小半年的blog,感谢大家一致以来的支持,特别是国内的用户—这也是我一直以来的动力!   看到很多blog上都在写2004年小结。可惜我没有这样的感慨—我只是一个渺小的普通人,生活中的大事也就是一些身边的小事。可能等我再老一些,或者说再成熟一些的时候,会更多一份忧国忧民心吧。呵呵。   倒是今天看到几个有意思的东西,放在这里:     做盗版的卖盗版的   贩卖5000盗版盘可被判刑:媒体的一次集体大误读 http://news.xinhuanet.com/newmedia/2004-12/30/content_2393066.htm   其实,这让我想起类似的现象:开发网络游戏的和网吧。盗版问题大家早就麻木了,不过就是个知识产权的问题吗?离普通老百姓太远了。倒是现在的网络游戏,变成了一个很复杂的问题—如果你有一个小孩子,你希望他/她沉迷于网络游戏不能自拔吗?   大学中看到身边一些典型的迷上游戏的例子—至今我的理解是,他们在游戏中完全满足了现实生活中很难实现的理想或者愿望。很多时候,我们学习/工作的动力,也就是精神上的满足。既然游戏可以轻松地提供给我们,为什么还要努力?   所以,这是一个复杂的社会问题。这也是我不喜欢盛大这样的公司的一个原因。     曾毅   前两天在学习C++/CLI的时候,查到了曾毅同学的blog,因为他也在做MSDN上英文的翻译工作。顺便看了看他的blog,觉得一个学生,做到这一步确实不太容易,所以也加上了他的blog的链接。   但今天看到一则消息:   为什么我总是和mvp过不去?兼谈曾毅事件 http://blog.devep.net/virushuo/2004/12/28/1104227587234.html   原来有很多我不知道的事情。好吧,像我这样传统,或者说土的人,一下子不能接受这种抄袭行为,就像我不能接受郭敬明的抄袭事件一样。所以,我还是把曾毅同学的blog链接去处掉。

0

MSN Deskbar Clip

String appData = System.Environment.GetEnvironmentVariable(“APPDATA”); TextReader tr = File.OpenText(appData+@”\MsnDeskbarShortcuts.ini”);   while (tr.Peek() != -1) {   String shortcutLine = tr.ReadLine();   if (shortcutLine.ToUpper().StartsWith(shortcut.ToUpper()))   {     int eqIndex = shortcutLine.IndexOf(“=”);     String shortcutPath = shortcutLine.Substring(eqIndex+1,shortcutLine.Length-(eqIndex+1));     Clipboard.SetDataObject(shortcutPath,true);     return;   } }   猜猜这几行代码是干什么的?如果你使用MSN Desktop Search,那么可以看看这个叫做MSN Deskbar Clip的创意: http://weblogs.asp.net/smguest/archive/2004/12/19/327176.aspx

0

SPS2003相关资源

年底了,我们也来一个SPS2003相关资源大放送:   界面个性化:   www.sharepointcustomization.com 看看他们漂亮的站点,你会惊叹:原来SPS可以做得这么漂亮!   编程资源之SDK:   SharePoint Products and Technologies 2003 SDKhttp://www.microsoft.com/downloads/details.aspx?FamilyId=AA3E7FE5-DAEE-4D10-980F-789B827967B0&displaylang=en   Windows SharePoint Services 2003 SDKhttp://www.microsoft.com/downloads/details.aspx?FamilyID=1c64af62-c2e9-4ca3-a2a0-7d4319980011&DisplayLang=en 尽管有很多人抱怨SPS2003的SDK很差,但开发SPS的应用,SDK总是少不了的。   编程资源之Web Parts:   Office web parts http://www.microsoft.com/downloads/details.aspx?FamilyID=38be67a5-2056-46a1-84b1-337ffb549c5c&DisplayLang=en 这个东东其实从SPS2003的安装光盘就能找到,不是太稀罕。   Office Web Componentshttp://www.microsoft.com/downloads/details.aspx?FamilyID=7287252c-402e-4f72-97a5-e0fd290d4b76&DisplayLang=en 大名鼎鼎的OWC11。没有Office而又要使用Office web parts,那么这个东东是必需的。   Project Server web partshttp://www.microsoft.com/downloads/details.aspx?FamilyID=d044a08b-484e-42e1-9bff-a4286872a7ac&DisplayLang=en把Project和SPS整合起来。   Amazon web part samplehttp://www.microsoft.com/downloads/details.aspx?FamilyID=cd5e5694-089c-4a3e-8e55-8a151c1e19cf&DisplayLang=en调用Amazon web service的例子。   Infopath integrationhttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/odc_sp2003_ta/html/sharepoint_integrating_sps_and_infopath.aspSPS和InfoPath的整合。   Packaging…

2

C++/CLI学习笔记1—新的托管类型

感谢Stanley B. Lippman为我们提供了一篇非常优秀的关于C++/CLI的介绍:   Translation Guide: Moving Your Programs from Managed Extensions for C++ to C++/CLI http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/html/TransGuide.asp   尽管我的英文不是很好,有时候没有办法理解Lippman先生的原意,但我还是非常欣赏这篇文章,因为写得非常深入与详细。   我很想做些笔记,加深理解,所以就办抄半简地写了这些中文帖子。我觉得自己已经开始喜欢上C++/CLI了,希望大家也一样喜欢他。     Managed C++中令人印象深刻的就是__gc这样的形式—在开始有两个下滑线。其实,原先这样设计的目的,也是为了Managed C++和标准C++尽量相同–毕竟标准C++中可没有什么“托管”的概念。但从几年来的结果来看,似乎效果非常不理想。大家已经忘了Visual Studio.NET中还有C++。所以,在C++/CLI中,其实是对标准C++作了一个扩展。尽管多了一些从来没有看到过的操作符,但没有了__gc这样的关键词,而且看惯了新的操作符以后,会发现这样其实更加自然,也更接近标准C++。其实,这也正是C++/CLI设计的目的之一吧。     我们来看看C++/CLI中是怎样来定义托管类型的:   如果要创建一个对于在托管堆中对象的应用(reference class),我们可以使用下面的两个关键词:   ref class ref struct   其中,struct意味着默认情况下它的成员的访问级别为public,而class意味着默认情况下它的成员的访问级别为private。   如果要创建值类型(value class),那么可以使用下面的关键词:   value class value struct   同样,对于接口,关键词为interface class。   所以,我们就可以看到这样的定义:   public…

0

我用十年时间学习做人

转眼间,我已离校10年了,总结十年的经历得出”我用十年时间学习做人”的结论。在此,我将写出我这十年的主要经历和心得以期为新人提供一些借鉴,使你们可以比我少弯路;也欢迎前辈和同辈指正和交流。   第一章、进入工厂 93年毕业后,我按个人计划进入工厂做技术员,94年8月离开。我在工厂的多数时间是当辅导老师,帮助车间里读夜大的同事。这一年时间,让我认识到我不是做技术的料。我痛恨工程师,老技术员将各种技术资料尽量收藏起来,将一些经验小心保护。我知道他们在某种程度上是对的,毕竟那是一个”教会徒弟饿死师傅”的环境。   第二章、初涉外贸 94年9月调入一家小的外贸公司,开始了2年的业务员生涯。 *收益*: 1、建立了”重合同,守信誉”的观念。 做进出口时对合同的条款,合同的签定和执行都非常谨慎。一时大意很可能导致受骗,索赔等。那时的损失很可能个人承担不起。 2、建立了”积极开拓市场”和”多赢”的观念。 那时别的公司凭借资金实力,刻意压低价格,甚至不惜赔本来抢单。整个行业恶性竞争非常严重。我们被逼只有在比较专业、细分的市场求生存。我们要培育供货商,尽量向客户提供优质产品和服务还要确保我们的利润。三者的关系一旦失去平衡,合作将很快终止,我们也将受到损失。 3、体会到资源的重要性。 没有钱,没有专业的人才,没有关系,个人能力再强也是”巧妇难为无米之炊”。 4、君子爱财取之有道。 我们的副总被骗,造成损失500万,而他被查出受贿20万,最终被判7年。“吃人的嘴短,拿人的手短”,受贿的结果通常是丧失应有理性原则和立场.愿君手莫乱伸。 *缺憾* 花太多的时间与同事喝酒,打麻将,而没有很好的陪伴父母。我的父母均已过逝,现在想来是我胸中永远的痛。时世变换无常,失去时才知道父母的恩重如山。   第三章、北飘首都 终于控制不住想证明自己能力的思想,放弃别人羡慕的工作北飘首都。我在一家小的个体涉外贸易公司做了两年销售经理。 *收益* 1、被人信任是一种幸福,信任别人是一种宝贵的品质,也是一种财富。 97年初,刚果战乱时,老板准备做金属钴的生意。我立即扎入报社、商社、图书馆,找资料、画图分析、做表格,最后形成一份老板非常赞赏的报告。但老板迟迟不下定金,一再观望。2个多月后形势明朗了,老板才下单,此时的价格已涨的很高了。原来可以赚130多万的单子,却只可以赚20多万。我当时显的比较气愤,怪老板错过了赚钱的好时机,老板也有些后悔。其实,3年后我才明白我当时的表现是错的。我的方案也许是对的,但老板要用他全部的身家来赌一把,而我只看到了机会没有看到风险,更没有考虑风险承担者的巨大压力。后来,我同老板一同拜访了一家大客户。在交货时,我们出现品质异议,老板让我同厂方的采购经理飞去工厂检验品质并谈判。检验结果出来了,品质略低于合同标准。厂方提出降价要求时,我向老板请示。老板明确的告诉我,我了解情况,让我全权处理,他相信我。我很快同厂方达成合理的协议,当天带着空白汇票返回北京。我在飞机上感觉,老板如此信任我,200多万的空白汇票我即使拼命也将把它交回公司。“被人信任是一种幸福,信任别人是一种宝贵的品质,也是一种财富”。这是我在那间公司最大的收获,也成为指引以后工作的座右铭。 2、培养下属,善待下属 我们公司有四个员工。老板在业务上教了我许多的知识,在技术上重点培养另一位同事,给他时间进行考研准备,最后帮他选的导师。他常讲要经商先做人。他的言行对我的职业生涯产生极大的影响。许多的人将“商道即人道”,“商道德为先”等等的高调唱的震天响,但实际的作为却差之千里。这种行为不但误己,也误人子弟。 注: 1、公司即将倒闭时,老板依然给我发了双薪让我离开公司。 2、我认为培养下属确实应是领导的重要工作。一方面,这样可以提高团队的整体绩效;另一方面可以促使自己不断的进步。一般人担心下属能力提高后超过自己,而不愿传授经验给下属。可是别人的进步是抑制不住的,何况还有许多空降兵会随时杀入公司,对你构成真正的威胁。如同竞争能提升行业生产水平一样,来自下属的威胁可以使你保持清醒,不断进步。你的资源或信息是下属不可比拟的,当你教会他高效工作时,你会自动想出更好的方法。退一步讲,育人之德何尝不是一大收获呢? 3、勇于承担责任,勇于承认错误。 我的工作除老板安排的外,许多是我自行开发的项目。我向老板汇报时,老板会及时做出处理。老板也会犯错,但我们指出或他醒悟时会做自我批评并承担责任。所以,公司里的员工都比较积极主动的工作,并愿意承担相应的责任。 *缺憾* 我们公司是被一家东北的老客户给坑垮的。那家厂子和老板合作了4年最后一笔坑了我们160多万。我们的公司没有资金再周转了,只有关门。我认为:1、即使关系再好的老客户,也要做风险评估,严格财务制度,将风险降至可以承受的范围。2、信任他人可能会给自己带来一时的损失,但长远看她所带来的财富远远超过你所损失的。要知道我的老板现在也是千万身价行列中人。   第四章、拓荒西北 我转到一家生产胶粘剂的企业任西北地区技术服务经理,实质上仍是销售经理。 *收益* 1、困难、挫折是一种财富。被人一次次拒绝;严冬中的通宵苦干;还有在深过脚裸的大雪中,只能找到2元钱一张的床位,半夜在寒冷中起来加火……困难、挫折是一种财富。当我用3个月的时间建起销售体系,完成销售任务时,我很欣慰。直到如今,我依然为此自豪。相信许多朋友会有类似的经历和感受。 2、尊重他人,特别是一些实际操作的人员。我能成功完成任务,更多的归因于工厂中那些实际操作人员的帮助。他们中很多的人身怀绝技,只是不愿显露而已。我尊重他们,客观地说明我们产品的优点和局限性,赢得他们的尊重。很多难题还是他们自己帮我解决的。   第五章、五年磨剑 在西北呆了三个月后,我被朋友请回北京。他任公司的销售副总,我任销售经理。 *自豪点* 1、我们成为行业内的第一品牌,市场占有率接近40%。 2、第三年时,我们两个人负责全国的广告、公关、渠道建设和管理,年销售额1.2亿元。 3、5年中6个多亿的销售额中,仅被洛阳人用假电汇传真骗去9000多元。 *少言的销售经理* 代理商常讲,我是他们见过的话最少的销售经理。的确,从客户关系的角度上看我的得分极底,我很少记得他们的生日,过年也不发贺卡,从不问他们家人的情况。我们几乎只聊工作和未来。用他们的话讲,我非常的敬业尽职,但我对他们公司未来的发展、存在的问题、如何解决等非常的关心,也尽我之力提供帮助。因此许多的人成为我的朋友。但我不会因此而牺牲公司的利益去迁就他们,他们也从不这样求我。我认为话不在多,而在你从行动中如何体现对他们的关心,尊重和建立多赢的合作关系。体现出公正和积极解决问题的态度,从而赢得他们的信任和支持。当然,如果我注意一些客户关系的培养,效果也许更好。 *最大的失误* 对己负责,对他人负责,对公司负责。最初的3年,我忙于渠道建设,对下属约束较少。结果造成个别人损公肥私,甚至索要贿赂。后来我才醒悟到,这是我严重失察的地方。认为他们已经同我干了几年,以前很可靠,现在也会很可靠。我忘了管理是要靠制度,而不是靠信任。人是会变化的,包括我在内都要有必要的约束和监督,这样才不会偏离目标。宽以待人也有度的约束,否则就是害人、害己、害公司。人有时很容易产生一种-“大家都是打工者何必那么认真呢,只要你不妨害我的直接利益,我才不管你”。对他们的小错不是管的很严,结果有些人得寸进尺,养成不良习惯,甚至造成损失,那时他们已是积习难返了。你的损失,公司的损失将非常大。因此,我认为务必要克服这种心态,严格要求自己,比较严格的要求别人。这是对己负责,对他人负责,对公司负责的行为。 *最惨痛的教训* 一次同一家大公司谈OEM单,我认为上层路线已经打通了,就贸然去见他们的产品经理,结果发现准备工作太不充分,对他们的产品了解不足,结果当然是丢单了。 事后反思,1、我们是国内第一的心理作怪;2、认为上层路线非常可靠,其实不然,竞争对手同样也在下工夫,也有不次与我的上层关系。3、成功无侥幸。好在我吸取教训,在另一家公司取得胜利。 *最大的收益* 照章纳税…

0

谁要Gmail的账号?

今天发现,我居然有十个邀请权!要的朋友请留个信。先来先得,一共十个,过了十个也就不用留了。

63

C++/CLI的初感受

第一眼看到C++/CLI的介绍的时候,只是听说,这是变得很厉害的一个东东,不仅是因为功能变得很强,而且是因为基本上重写了Visual Studio.NET中的C++。那不管怎么样,只有仔细看看,才能做出判断。   1. 其实,仔细看看,底层是不怎么动的,该得比较厉害的,就是具体的语法了。Visual Studio.NET 2001/2003中的C++ (Managed C++) 语法太别扭了,所以他们差不多重写了一次。例如,一个很大的变化是__gc new到gcnew。   我们知道计算机的内存中有栈(Stack)和堆(Heap),在程序的函数中的一些本地变量,一些寄存器值,都是存放在栈(Stack)中的。而当我们使用new (C++)来创建一个新的对象时,就会被分配到堆(Heap)中,当我们不再需要了,就使用delete (C++)来删除。这样,效率非常高。但会导致:   1) 忘记删除,导致内存泄漏。 2) 重复删除,导致程序崩溃。   所以,.NET使用了垃圾回收,我们在C#和VB.NET中,都不需要使用delete,.NET会自动删除不再需要的空间。但在C++这样高级的语言(其实是需要调用底层代码)中,就要区分,在创建对象的时候,是放在.NET控制的Heap上,还是传统的Heap上。   在Managed C++中,这里的语法太丑陋,是这样的:   IO::MemoryStream __gc* heapObject = __gc new IO::MemoryStream;   而在C++/CLI中,变为:   IO::MemoryStream^ heapObject = gcnew IO::MemoryStream;   这样语法更自然了。但多了一个操作符: ^,用来声明一个用作CLR指针类型的变量,其实也就是一个指针,只不过是C++/CLI中,指向.NET Heap中的对象的指针。   2. 析构函数的变化。   C++/CLI中,析构函数是这样的:   ref class test {…

1

[zz]给我们一个不用微软产品的理由

有人说了几句真话。放在这里,谨供参考。   http://www.donews.com/donews/article/7/71953.html 来源:吕欣欣 原创-IT   方兴东先生在不久前由于政府采购项目采购了微软的产品,于是再次振臂高呼:政府采购法行同虚设,大家想微软投降好了。在我看来,此事情十分正常,只不过主角换成了微软,于是变得敏感了起来。   想来方兴东先生没有参与过大型项目的招标过程,所以对于微软的公关能力叹为观止。在我看来,微软的公关能力在中国的IT公司里,简直就是个小字辈。要说2004年,IT采购最大的两块,除了电子政务还有教育信息化。但是笔者今年所参与的教育信息化产品,微软的项目全被被采用,不过全是盗版。实际上在中国,微软是利益被侵害最严重的公司之一。   再说招标公正,参与过招标的人都知道,招标哪有公正可言?全部都是关系工程。厉害的人能在招标中一手遮天,从写标书到找陪标到拿标,真可谓一气呵成。就拿前不久政府采购PC来说,联想一台PC价格比戴尔贵上800人民币,最后中标的还是联想。不知道这是否符合方先生所谓政府采购法中公平公正的说法?   要想真正镇住微软,我倒是有一个办法:取消招标,这才能暗中做事情,来控制结果。金山想要拿到订单,何需招标啊?想办法暗标或者直接签署合约就完了,很多地方都是这么搞得,这才是遏制微软的不二法门呢。要么就是鼓励发展盗版,让微软在华的损失到最大。   也好方先生没有参与过真正项目招标,不然以方先生的笔力和才华,一定能写出一个二十年目睹招标之怪现象。那里面的公关手段才是五花八门,花样百出呢。招标方也是一个个厉害角色,什么三家痛吃啊、偷梁换柱阿什么玩不出来?   最后可怜一下两个人:一个是方先生所说的中国软件公司。以金山为代表。可是他们已经开始转行互联网和游戏了,都把重心不放在WPS了,怎么能做好软件。更何况现在大家拿出来的软件都不好用,至少还真没有Office好用。   再可怜一下用户,别的行业我不知道。教育行业每年招标都会买一大堆软件,结果呢?这些软件都撂在学校库房里不使用,使用最多的还是盗版的微软系统和微软办公软件。   想问一下方先生:您用的系统和办公软件是什么?

0

以客户为中心

老板说,这张照片是我们的“以客户为中心”的典型代表–中间的那位大帅哥,就是我们的高级客户。^_^

1

使用Application Center Test (ACT)来做压力测试

在我们完成了基于SPS2003的开发,实现了我们的具体应用以后,我们是不是就可以直接请用户来使用了呢?如果我这么做,那么有经验的开发人员一定会对此嗤之以鼻:居然连压力测试也不做!真是不想活了……   呵呵,是啊。开发环境往往只考虑功能,到了具体环境中,就需要考虑有大量的用户来访问的时候,很多功能会不会出错?性能会怎么样呢?……我们这里就简单看看,怎么来做压力测试。   相信作压力测试肯定有很多工具,而我们一般使用的,现在很多是Application Center Test (ACT)。这个东东是VS.NET中的一个组建,很简单,容易上手,而且支持脚本,也可以实现复杂的功能……   这里省略测试步骤,假设我们只是直接对一个网站做测试,例如Test.SendRequest(“http://server/default.aspx”)。现在怎样来分析结果呢?   下面是我刚学到的一些信息,和大家共享,希望对于有经验的朋友,起一个抛砖引玉的功能。   1. 首先,检查一下又没有错误,例如401用户没有验证的错误。如果有错误,那么结果肯定是不对的,也不用看了。   2. 分析Average requests per second,应该就是“每秒平均请求”。   我们可以多测试几次,使用1、2、5、10、50、100、200……的并发浏览器连接数目。然后,我们可以把几次结果放在一个图表中来分析。   一般情况下,随着并发浏览器连接数目的增加,Average requests per second的数目也会增加,但当到了某一个值以后,再增加就反而导致Average requests per second下降了。那么,这个值就差不多是服务器能支持的最大并发浏览器连接数目。   3. Average time to last byte   是发送请求以后,到收到服务器响应结束的时间。   显然,一般情况下,随着并发浏览器连接数目的增加,这个值是会随着变大的。一般情况下,分析这个值是不是合理,可以参考下面的标准:   0.1秒:       非常快了 1秒:          速度还是非常快的,基本不用考虑性能问题 3 – 4秒:    对于内部网络,可以接受的一个结果 5 –…

1