解惑

解己之惑,解人之惑

标签:技术

有点落后了

前段时间升级了用了十几年的显示器,从20寸升级到32寸,带的是HDMI线,而我的电脑没有HDMI口,然后看到还带了个VGA的口,结果就很傻的买了个DP转VGA的转接头,然后每次显示器打开的时候就提示显示器的分辨率可以到更高,而到电脑的设置里面发现并不能。另外一个问题就是,电脑重启的时候视频线不能连着,连着电脑就启动不了。直到昨天,忍无可忍了,搜索了下,没有看到直接有人说相同的问题,但是看到一个人说DP是纯数字接口,而VGA是模拟接口,这个转接的方案并不推荐,马上就查了我的机器和显示器的规格参数,发现都直接支持DP,马上就下单了DP线,今天到货插上后分辨率直接就调整为最高的这个了。十几年没有再搞机器和硬件,对新技术有些落后了,但是也不敢奢望能够紧紧跟上时代的步伐,毕竟,有这么多东西日新月异,而人的精力总归是有限的。。。

仅以此文记录自己的知识落后导致的这么久的被两个小问题折磨。

历史遗留问题是微软的死穴

向后兼容性和历史上的诸多古老的解决方案对于微软阵营的开发者而言就是梦魇,它的多语言支持又是另外一个败笔。

我现在被迫从Java阵营临时到了微软阵营,但是遇到的问题多多。
现在有几个比较简单的任务:得到Exchange Server的邮件大小,Exchange本身没有API做这个事情,但是有一些其他的变通方式,例如得到所有的Mailbox然后统计每个Mailbox的大小,而Mailbox的大小也没有直接的API,需要统计所有的Folder的大小,虽然性能上不太好,但是总归是可以做到的。
目前发现的解决方案有这样几个:

  • 使用Exchange 2007的management shell带的Get-MailboxStatistics脚本,我们可以得到Exchange的某个Database的大小,但是缺点是需要在Exchange Server上运行,优点是可以很容易写出C#的代码。
  • 使用Exchange 2007的EWS,优点是可以写出C#代码,而且可以从其他机器运行,缺点是只支持2007版本
  • 使用MAPI32,问题是只能写c++代码,尝试使用DllImport直接使用MAPI32,但是到HrOpenExchangePrivateStore就出问题了,内存读写有问题,MAPIInitialize,MAPILogon,MAPILogoff等方法就没事。网上看到有人用c#封装了MAPI32,但是没有涉及到HrOpenExchangePrivateStore。

接下来只能尝试写COM组件把它包起来给c#用了。

年龄大了学技术不行了

其实不是其他的,年龄大了,要操心的事情太多了,不光是一个人的事情或者两个人的事情了,人到三十,房子、结婚、生孩子、父母的身体都是需要考虑,连自己的健康也要纳入考虑范围了(工作多年可能有职业病,或者多年不运动,身体状况不佳),而学技术,最好是可以一心一意的研究,脑袋里面想的东西不能太多。
就是自己这段时间的感触,有感而发

RSS阅读和人类会变得更加的愚蠢

前两天写了把文章发到JR和只发到这个BLOG的巨大反差,wf说确实如此,而且要劳烦他自己在浏览器里面输入我的BLOG的地址,这个确实是一个问题,我就想到了KESO以前推荐的RSS的阅读方式,但是我不想安装一个RSS阅读器,这样也不方便,还是使用在线的方式比较好,不需要进行同步。搜索了一下,发现gougou的排名靠前,就试了下,结果很糟糕,因为它实在是太慢了。后来又想到google的个性化主页,也提供这个功能,但是现在好像自己添加一个内容比较麻烦,要从一堆地址里面选择,很可能还没有。刚刚又试了下,发现最上面的那个搜索框后面有一个小字链接:按网址添加,呵呵,出来的就是我需要的。为什么google要这样设计呢?我最开始用个性化主页的时候添加内容更方便,因为那个时候默认就是按照地址添加的(那个时候可能还没有多少人用,现在的那个内容选择列表可能没有内容),现在用的人多了,一个地址被我们添加的次数多了就出现在那个列表里面了?可惜我这个人不喜欢看那些新闻,最多看看标题知道有些什么事情发生了。然后我就想到一个很严肃的问题:是不是google认为人越来越懒惰或者愚蠢?他们更喜欢选择而不是输入?更喜欢阅读而不是写作?之所以这么想,是因为刚好我昨天看了一个电影,名字就是蠢蛋进化论,说人类到了2505年IQ降到惨不忍睹的境地,都只会做爱和暴力之类的了。那个电影另外的一些细节也值得我们深思,那就是广告遍地,一个40多寸的电视屏幕,只有之间不到20寸的地方是内容,边上被几十个闪动的小广告块占据;人们穿的衣服也全部被小广告占据;各个政府机构全部被商业公司收购。
技术的发展导致人们的生活越来越容易,越来越傻瓜化,IQ高的人好像也确实越来越不愿生育或者生活的压力更大(IQ高可能不是很会赚钱),希望人类不会慢慢的又成为动物。

公司需要使用到的全部技术列表

今天为公司写一个文档,其中就有需要使用到的全部技术,大致列了一下,虽然不是非常完整,但是应该包括了所有主要使用到的东西,其中前23项是我需要使用到的

  1. EJB
  2. JMS
  3. JDBC
  4. HTML
  5. JavaScript
  6. CSS
  7. JSP
  8. Java Mail
  9. AJAX
  10. XML
  11. XDoclet
  12. Struts
  13. Fusion chart
  14. JUnit
  15. MockEJB
  16. StrutsTest
  17. Cobertura
  18. Crystal Report
  19. Oracle
  20. CVS
  21. Remedy
  22. Peregrine
  23. Ant
  24. LDAP
  25. Ruby
  26. Shell
  27. C
  28. C++
  29. Make
  30. SNMP
  31. Install anywhere

需要掌握的软件开发技术

虽然现在有很多的软件开发技术需要我们掌握,但是就我而言,有如下几个需要掌握的技术,因为只有掌握这些,你才能得到一个比较好的系统设计,系统的灵活性、协调性、可扩展性、稳定性才能得到比较好的保证。
 

  • 设计模式:这个是这几年一直在被热炒的技术,虽然今年似乎热度有所下降,但是这个实在是非常重要的技术,你不一定精通所有的经典模式,但是对于常见的几种一定需要掌握。 
  • 重构:这个在XP中可能强调得比较多,在其它的场合提出得比较少,但是它实在是防止过度设计和优化系统设计的一个利器,需要强调的是重构必须建立在单元测试的基础上,否则系统的稳定性将得不到保证。 
  • 单元测试:这个是保证系统质量的最关键的一个因素,也是保证有效的重构的基础。 
  • IoC:就我的理解,就是要加大对配置的依赖而非代码间的直接依赖,虽然这样做以后系统的总体结构和代码间的关系变得不像以前那么清晰,但是这个确实是使得系统更加灵活和可扩展的不二法宝。 
  • AOP:虽然我还没有真正使用过,但是实在是喜欢它,因为这个可以很好的实现动态的Plugin结构,也是提高系统的灵活性和可扩展性的法宝,而且可以将一些共通的杂项延迟到以后考虑。 
  • 重用:虽然这个不应该算一种技术,但是我想强调项目组内的代码重用,这个是保证系统的行为一致和协调的关键因素,就像我在另外一篇文章提升项目组的开发效率中所强调的那样。

© 2019 解惑

本主题由Anders Noren提供向上 ↑