解惑

解己之惑,解人之惑

作者:cherami (第20页共82页)

免责声明

1.本人是文盲,以上内容文字均不认识,也看不懂是什么意思(包括但不限于对以上之内容的识别、阅读、理解、分析、记忆等等)。
2.本人过去、现在以及将来都不认识楼主及楼主所述当事人,且自古以来与该相对人无利益关系。
3.本人昨天、今天以及明天都没有或者不准备去主贴所述地点。楼主表述之事与本人无关。本着“看贴(虽然看不懂)回贴是“中华民族优秀传统美德”的原则敲击键盘,从而为“保增长、扩内需、调结构,促民生”作出贡献,进而使社会more and more 和谐,甚至促进世界much and much大同,做到为往圣继绝学,为万世开太平。
4.本人在此留言(包括但不限于汉字、拼音、拉丁字母、斯拉夫字母,日语假名,阿拉伯字母,单词、句子、图片、影像、录音,以及前述之各种任意组合等等)均为随意敲击键盘所出,用于检验本人电脑键盘录入、屏幕显示的机械、光电性能,并不代表本人局部或全部同意、支持或者反对楼主观点。如需要详查请直接与键盘发明者及生产厂商法人代表联系。
5.人生有风险,上网需谨慎。本回贴不暗示、鼓励、支持或映射读者作出生活方式、工作态度、婚姻交友、股票债券买卖、子女教育的积极或消极判断。未成年人请在监护人陪同下阅读本贴。无完全民事行为能力者,请立即关闭网页,并用20%高锰酸钾+75%乙醇对键盘、硬盘、电压插座、显示器、鼠标、cpu进行灌溉消毒。
6.如本人留言违反国家有关法律,请网络管理员及时删除本人跟贴。
7.因删贴不及时所产生的任何法律(包括宪法,加法、减法、乘法、除法、剑法、拳法、脚法、指法、民法,刑法,书法,公检法,基本法,劳动法,婚姻法,输入法,没办法,国际法,今日说法,吸星大法,与台湾关系法及文中涉及或可能涉及以及未涉及之法,各地治安管理条例)纠纷或责任本人概不负责。
8.本人谢绝任何跨省追捕行为。确因不抓不足以平民愤,或不抓就领不到薪水养家户口的公职人员,建议携带工作证、身份证、结婚证/离婚证、独生子女证、健康证、暂住证、毕业证、边防证、县以上政府机关出具的介绍信温情操作。抓捕按照以下排序倒序:楼主、原作者以及网络管理员以及网络运行商、电信运营商、电力供应商、电脑生产销售商。
9.如回复内容导致楼主或第三方、第四方、第N次方怀孕,本人愿配合做亲子鉴定。
10.本声明的最终解释权归本人所有。

Date的问题

在Groovy中,如果使用Date类型那么需要使用Calendar,再通过Calendar的time属性来获得Date,如果直接使用new Date可能有问题。

BootStrap的问题

本来打算用GAE构建这个系统的,但是发现了严重的问题,所以经过考虑决定用Grails了,主要是为了能够更快的出一个可用的版本,暂时可能就随便找个机器放一下了。

开始使用Grails感觉还不错,但是真正开始使用马上就遇到问题了。
定义了User类,有些属性是可选的,然后在BootStrap的时候创建Administrator用户,发现没有创建出来。开始以为BootStrap没有被调用,加了log.error,控制台支持打出那个信息了,百思不得其解,如果有问题应该会有错误日志啊,但是没有发现任何错误,控制台同样也没有,而且那个语句后面的log语句也正常执行了,应该没有什么问题才对啊。
幸亏我这些年的经验没有白费,也还好我是一个基本上可以怀疑一切的人,马上怀疑是不是构造那个对象写的不对,因为初始化的时候我只设置了不能为空的属性,把全部的属性的值设置上,马上就搞定了。

对Grails的印象打了个大大的折扣,不过还是再试试吧。其实这个也是Grails的调试问题,试了下Eclipse的调试功能,发现不能定位到groovy文件,据说Netbeans可以,下载个试试看了。

更新:
Netbeans也不能调试Groovy,或者我还没有玩出来,反正断点设置好了,以debug模式启动,倒是打开了JavaScript调试器。
不可否认的是,Netbeans对Grails的支持确实是最好的,不需要再打开一个DOS窗口执行那些命令了。而且我在DOS窗口掉那些命令的时候总是有一个错误警告窗口,总是报告:"find.exe – Entry Point Not Found",原因无法定位动态链接库ulib.dll中的入口点。

GAE的严重问题

在你动手开发GAE应用之前,最好先考虑下你的应用是否真的可以跑在GAE上,如果不仔细看它的开发手册,你很可能会漏掉一个严重的问题:

Inequality Filters Are Allowed On One Property Only

A query may only use inequality filters (<, <=, >=, >) on one property across all of its filters.

For example, this query is allowed:

select from Person where birthYear >= minBirthYearParam
&& birthYear <= maxBirthYearParam

However, this query is not allowed, because it uses inequality filters on two different properties in the same query:

select from Person where birthYear >= minBirthYearParam
&& height >= minHeightParam // ERROR

Filters can combine equal (==) comparisons for different properties in the same query, including queries with one or more inequality conditions on a property. This is allowed:

select from Person where lastName == lastNameParam
&& city == cityParam
&& birthYear >= minBirthYearParam

The query mechanism relies on all results for a query to be adjacent to one another in the index table, to avoid having to scan the entire table for results. A single index table cannot represent multiple inequality filters on multiple properties while maintaining that all results are consecutive in the table.

这个限制很直接,就是非等于的过滤条件只能应用到一个字段(属性)上,原来在关系型数据库上很简单的一些查询,到了GAE上就变得不可行了。

在开始开发GAE应用前,先考虑清楚你的应用是否会不可避免的碰到这个问题,或者是否可以放弃很多功能,看来便宜不是那么好占的。

广博和精深

一个人要想做到既广博又精深几乎是不可能,虽然人类历史上曾经出现过像阿基米德、达芬奇、拉斐尔之类的奇人,但是那是在知识相对匮乏的时代,对于现代人而言,能通一门科学或者学科已经是非常的不易。虽然鱼与熊掌不能兼得,但是也不是水火不容,无论从事什么工作,都可以追求广博,对世界的方方面面都有所接触不会是坏事,而且可能会对你的性格造成一定的影响,就我而言,感觉可以让人更加大度一些,不会让自己有不可一世的感觉,也不会让自己萎靡不振;而追求精深可以很好的树立自己的自信,可以表明自己的能力,也可以解除生活之虞。万事在于把握一个度,过犹不及。

对人的创造能力中有两个东西比死记硬背更重要

美国的小学虽然没有在课堂上对孩子们进行大量的知识灌输,但是他们想方设法把孩子的目光引向校外那个无边无际的知识海洋,他们要让孩子知道,生活的一切时间和空间都是他们学习的课堂;他们没有让孩子去死记硬背大量的公式和定理,但是,他们煞费苦心地告诉孩子怎样去思考问题,教给孩子们面对陌生领域寻找答案的方法;他们从不用考试把学生分成三六九等,而是竭尽全力去肯定孩子们一切努力,去赞扬孩子们自己思考的一切结论,去保护和激励孩子们所有的创作欲望和尝试。

“对人的创造能力中有两个东西比死记硬背更重要:一个是他要知道到哪里里去寻找所需要的比它能够记忆的多得多的知识;再一个是他综合使用这些知识进行新的创造的能力。死记硬背,就不会让一个人知识丰富,也不会让一个人变得聪明,这就是我的观点。”

中国的教育是否也应该尝试一下这样的教育方式呢?但是对于现在的中国而言,全面实现是不可能,我们先不谈农村的情况,就是上海又如何呢?相对美国,中国的基础设施还远远落后。

保护眼睛的电脑色彩

同事转发给我的,修改完以后感觉是好一些,不过很多其他的应用的颜色没有相应的变化,只是微软的一些应用会使用系统的颜色设置(例如outlook,office等),比没有好吧,看看能不能让所有的应用都使用这个颜色设置吧,估计很难:

眼科医生建议电脑屏幕不要用白色,因为白色对眼睛的刺激是最大的,眼科医生推荐的颜色是柔和淡绿色!只要稍微设置一下,就能让你电脑上的窗口从白花花的颜色变成淡淡的绿色。

设置方法:

1、打开控制面板中的"显示选择外观(appearance)-高级(advanced),然后在项目(items)那栏选窗口(windows),再点颜色(color)-其它(others)然后把Hue(色调)设为85Sat(饱和度)设为90Lum(亮度)设为205。对应当色彩: red-204 ; green-232; blue-207

然后单击 添加到自定义颜色(Add to custom colors),按“OK”…一直OK

2、把窗口设成绿色之后,再来把IE的网页背景也变成养眼的绿 色吧:打开IE,点击工具(TOOLS),点INTERNET选项(INTERNET OPTIONS),点右下角的辅助功能(Assessibility),然后勾选不使用网页中指定的颜色(ignore colors specified on web pages),然后点“OK”退出。

更新:大部分应用都可以修改,我已经修改了Adobe,FireFox,Intellij。
IE和FireFox修改完以后有点别扭,很多原来很好看的颜色设置变得巨丑陋,以我的blog为例,修改后在FireFox里面的截图:
阅读全文

使用Checklist提升项目的质量

Checklist这个词是我在做一个日本的外包项目时学到的,问题源于我们最初提交的代码质量非常的差,很多基本的内容编码人员都没有去处理,例如缩进,注释,日志处理,异常处理等,而且由于我们使用的是他们提供的框架,框架本身也有一些要求,到了后来,我们根据以前常见的问题罗列了一个list,而另外抽调了几个人专门根据这个列表进行检查,就演变为checklist,而且这个列表是不断更新的,发现新的共通的错误就加进去,如果有原来的检查项在经过一段时间后几乎就没有再出现过就从列表中删除以减少检查人员不必要的工作。最重要的是这个经验后来被推广到其它的项目组,以及项目的各个阶段,例如需求分析有需求分析的checklist,设计有设计的checklist,即使是测试组也有自己的checklist,因为有些刚刚开始做测试的人对于基本的测试原理并不熟悉,例如边界测试,极大值极小值测试,异常系测试,对于经常被新人忽略的的测试类似就会有一个这样的list,而且每个系统会有一些自己特有的需要特别关注或者以前比较容易出问题的地方,也可以列到这个list里面。这样在整个软件周期中我们可以避免很多常见的问题,大大提升软件的整体质量。

提升项目组的开发效率

通过几年的实际工作,也参与了规模不一的多个项目,但是项目组的开发效率一直不高,一直都在思考这个问题的症结,最近换了一个公司,由于刚刚去,也不能修改比较核心的代码,就给他们修改bug,在修改其中一个比较有共性的问题时接触了很多他们原来写的代码,发现代码中充斥着很多完全相同或者几乎完全相同的代码,最典型的就是获得数据库连接以及关闭数据库连接的代码,有的类会封装一个自己用的方法,有的就是干脆每次重复,有的更是有相关的方法但是代码的其它地方却没有用,这个现象给了我比较大的触动,现在仔细想想,其实影响一个项目组的开发效率的很大的因素就是代码共享和知识共享太缺乏了。但是代码共享和知识共享又确实是比较困难的事情,共通的功能如何使用,需要什么约束条件,能够完成什么功能等等都需要有比较完善的文档,而一旦这样的功能多起来以后你要从这些功能中找到需要的功能有时候确实是比较困难的,特别是有些功能去查是否有现成的代码所花费的时间可能比自己写一个还多。

根据我的经验,有几个地方注意一下就可以比较好的解决: 
 
共通的内容要易于使用和理解,例如定义的方法名要比较贴切。 
要写比较详细的说明文档,例如给大家发邮件或者发布到内部使用的论坛系统中。 
在公布之前经过充分的测试,否则使用的时候总是有各种问题会导致大家不敢再用共通的代码。 
对于类似的功能有其共通的代码,例如使用struts的系统有自己的系统的顶层的BaseAction,在这个BaseAction中定义系统中的子类需要实现的业务逻辑方法入口,而BaseAction要实现structs要求的execute方法,并完成所有的共通任务,例如是否登录的检查,session是否超时等 
业务功能要比较少的关心杂项共通功能,例如定义logger,获取数据库连接,关闭数据库连接,异常处理等,这些功能都可以定义在BaseAction或者是系统的顶层基类中。 
  而且通过使用共通功能也可以很大程度提高系统的质量,因为通过这些年的实践发现,很多新人由于开始不理解系统的要求,很多地方就是先抄袭别人甚至完全拷贝别人的代码,如果别人的代码是有问题的,那么在没有出问题之前是很难被自己发现的,而到了发现的时候已经积重难返了,而通过顶层类的封装,底层的类的空间就狭窄了,犯错误的可能性就小多了,因为很多系统的共通要求在顶层类中已经实现了。

该相信的不相信,不该相信的乱相信

因为在大连办居住证很麻烦,所以打算去武汉办算了。但是没有想到也不容易。
打电话问的时候的态度还不错,但是需要的材料比较变态,需要我们现在的单位和居委先开我们的初婚未育证明!
我老婆的户口在他们那里,他们自己不知道情况,谁能知道情况,我们原来又没有在他们那里办过准生证,而户口在他们那个地方已经10几年了,其他的地方都不能办准生证,只有他们能办,为什么他们还要我们现在的单位和居委出证明?我们从毕业到现在,城市换了两个,住的地方换了起码五次,我的工作单位也换了6家,哪个单位能够证明我以前的情况?那个居委能够证明我以前的情况?

虽然这个事情的主要责任在武汉的居委和街道,但是我们去上海的居委和街道试图开一个这样的证明的时候,他们提出的要求比武汉的还多,而且在我们上海的单位已经盖了公章的情况下他们也还是不肯盖章。

这些愚蠢的政府的小机构(居委会,街道),手上捏着一个看似无用,但是有时候还有些用的小章子,就能够要求你这要求你那的。

政府每年不知道浪费了多少钱,为什么不建一个全国联网的居民信息系统,把每个人的基本信息收录起来,例如身份、婚姻状态、有无小孩、是否离过婚、现在居住地、档案所在地等等都记录下来并且可以更新,就像那个全国联网的信用系统一样。不过说到低,本地本来也有相关的信息,但是他们自己不会去查去核实,而要我们自己去找人出证明,这个就是典型的不作为和官僚,人民公仆就是他妈的扯蛋。
狗娘养的官僚体制和作风!

更早的文章 更新的文章

© 2025 解惑

本主题由Anders Noren提供向上 ↑