Categories
快乐每一天

2011年专业技术回顾-Q1

今天是Xmas Eve,加班之余也回顾一下过去的一年。

今年是历史最最忙碌的一年,接近于1年的6×12小时的工作。有开心也有不开心,但总归算是开心。

这一年的事情很多。

1. 2011年元旦

从这一天开始,从原公司交接完了工作,到了现在的单位,开始了一份充满了艰辛和挑战的工作。

与合得来的一些老朋友一起工作是很愉悦的,对进度也比较乐观。

人员合作上,4-2的的提议被否决。

这一年的事实证明,人员不再多而在精。不能做事情的人员还是需要尽早清理,否则有百害而无一利。

2011.1.8 搬家,结束了上下班1小时多的奔波,每天开始和10号线打交道。

————————-月份分割线—————————–

2. 2011年2月

简短的春节过后,继续紧张的工作。

这一个月的工作中,提出了有限元计算核心中的几个核心概念,很有价值,也很值得欣慰。

(1)单元分组与死活单元
在酝酿和研究Midas Gen后,坚定地提出单元分组的概念,并将死活单元技术作为核心底层支撑技术。阻力很大,被怀疑,所幸在和求解器部分充分沟通后得到共鸣和支持,后续的大量专项计算在这项技术支持下顺理成章的完成。

(2)影子模型的概念
由于10版新规范中要求同时计算折减与不折减,甚至要求计算强制刚性板假定(很坑爹)。于是讨论提出影子模型的概念(Shaddow Model)。影子模型是基本模型在不同场景下的投影,但是逻辑上的一个完整的模型。

——————-小段分割线—————————-

另外有几个程序开发上的基础设施也在这个时候成型,不断获益。

(1)ICF存储
数据存储采用专门设计带索引的二进制数据块文件,我称之为Indexed Chunk File,简称ICF。ICF作为数据存取的唯一管理者。在宣传材料,称为为异构模型数据库。ICF工作在后台,但是丰功伟绩。

(2)统一的log机制
这是每个软件都应该具备的基础设施,但是在这里没有。在有限元核心程序开发开始的第一天,就建立了单件式的log机制,采用观察者模式进行log分发。所以后续不管是控制台输出还是log到文件,还是再后来图形界面上的异步log输出,都只需要注册一个log handle。

(3)健全的资源监控机制

作为有限元分析核心,系统资源是最大的性能瓶颈。所以在一开始就建立了完善的资源监控,可以随时向log中输出当前资源状态和变化,后续调优中基本上完全依靠这一基础设施。

Categories
快乐每一天

用Python写东西的笔记

自从最近这次换工作以后,空闲时间一下子变得奢侈起来,博客最近也写得少了,一些喜欢的小东西也无暇顾及。

——————无聊分割线————————-

一直对python很钟情,不过最近很少用,能记得比较完整的程序就是“用Python做了个Spider”,当时在一个Linode的VPS上跑了几个月。最近处理数据时候又重新用python来做,做完之后还是继续感慨它的便利性。

用python的一个最大的优点就是可以快速的迭代式开发,不断的重构,这一点在这次体会尤深。

其中有几次跳跃式的重构如下:

第一次的重构在书写了几个数据段的解析函数之后,决定定制一个规则,然后通过解析规则来处理各种字段。于是有了一个大约20条记录的标签库(后来再加一个文件解析的时候又增加了6行),然后就处理了近30种数据段,而且可以很方便的定制扩充。

第二次重构在输出报告的完成了一个数据段的汇总后,抽象出了一个Report类,完全控制报告的输出。也就有了后来用css+html的报告时候的顺理成章。

另外一次不大的重构,在于利用的简化的有限状态自动机的思想来处理各种特殊情况。当然只是思想而不是一个完整的自动机。 这一条在N年前给sudidi同学的abaqus数据文件提取工具中就大体考虑过,可以说轻车熟路。

后来用配置文件来设置参数,打包exe。从开始学习到成功,大约花了30分钟,代码10行,我爱python。

除去一些修饰性的代码和css样式表,核心代码不到500行。如果用c++的话,代码量至少要翻2倍,时间2倍不止。

Eclipse+PyDev是目前开发python程序的不二选择,除去log外,一个完善的Debug环境还是很赞的。

——————无聊分割线2——————–

有些东西记下来权当笔记,免得以后再找。

1.  文件路径的相关处理

用 os.path 就完全解决所有问题,包括路径拼接、路径拆分、相对路径提取、文件存在性判断、文件遍历、递归遍历等等。相关函数有:

os.path.join

os.path.basename

os.path.exists

os.makedirs

os.path.isdir

os.path.splitext

2. 文件的遍历

目录下的文件遍历有两种,一种是os.listdir,一种是用os.walk。如果需要递归,则后者更为方便。

   1: files = os.listdir(proj_dir)

   2: for f in files:

   3:     filepath = os.path.join(proj_dir,f)

   4:     if os.path.isdir(filepath): continue

   5:     if f.find('----')>-1:

   6:         shutil.copy(filepath, self.REPORT_DETAIL_DIR)

使用os.walk则很容易进行遍历:

   1: for root,dirs,files in os.walk(proj_list_dir, True):

   2:     for f in files:

   3:         pass

3. 文件的复制

对于文件、文件夹、目录树的拷贝删除可以使用shutil相关函数,注意有些条件,比如目标目录不能存在之类。

shutil.copytree

shutil.rmtree

shutil.copy

4. 乱码

如果能用utf-8统一处理是最好,但是如果在window下面,并且和平常文件打交道多的话,可能也需要其他编码。这时候需要注意系统的编码格式。下面这段代码有帮助。

   1: default_encoding = 'gbk'

   2: if sys.getdefaultencoding() != default_encoding:

   3:     reload(sys)

   4:     sys.setdefaultencoding(default_encoding)

5. 配置文件的读写

python内置了ConfigParser,一般的用途足够了。简洁好用。

6. 打包成exe

有时候为了部署方便,而且windows上默认也不会装python,所以打包成一个独立的exe还是相当有吸引力。以前的py2exe已经不维护了,不过现在有更简单的 pyinstaller (www.pyinstaller.org),使用相当简单,支持各种python版本。

需要留意的是,vc9的crt和upx有冲突,可以取消upx选项。

—————-最后的分割线——————————-

写点喜欢的东西还是很高兴,能提高工作效率,从最枯燥无聊的数据工作中解脱出来更高兴.

人生苦短,有限的时间应该花在有意义的吃喝玩乐上,呵呵.

Categories
快乐每一天

黔驴技穷与强制加班

在今天,在各个商家铺天盖地的“双11节”的喧闹声中,又一次听到了强制加班的要求,像盆凉水,满是不和谐的声音。

最近的情绪日渐低落,对于无休止的加班,忽然想到了一个词,叫“黔驴技穷”。

偶尔的加班或者一段时间的集中加班,可以认为是赶进度保时间节点。但是无休止的没有尽头的加班,只能说明其他方面存在严重问题。

——————

最近有很多牢骚和不满,具体也不方面写在这个公开的地方。但是,缺少管理经验,夜郎自大自以为是,以外行指导内行,必然导致工作量的无限放大。

还很清楚的记得,在五一的时候谈起。缺少整体规划、缺少架构设计、各自为政的原始开发模式会增加至少20%的开发成本(我承认在人面前的这个数字后面实际上还少说了一个0)。

但是有谁真正关心。心情好的时候解释一句现在结构都定下来了,以后版本再考虑改进,不好的时候就哼哼哈哈过去。

在按下葫芦浮起瓢的状态的时候,提出了个完整的解决方案。但是几乎所有人抵制,即便只是几十行代码的事情。这是一种在创业团队里非常腐臭的味道,不是真正的看方案的优劣,而是所谓的面子。

—————–

加班真的只是唯一的选择么?偏离了正确的路线,在努力也只会越走越远。

工作只有火热的心是不行的,已经有一些失望了。

—————-

但是不论如何,先不要让这些影响自己的心情吧。

20110223162334_64306

以前,在黔中道这个地方没有驴,后来有个人用船运来了一头。可是因为没有什么用处,驴就被放养在山脚下。

一只老虎看到这个庞大的动物,很好奇。它慢慢地靠近驴,这时,驴长鸣了一声,老虎非常害怕,不敢再接近。但是在观察了一段时间以后,它发现驴没有什么特殊的本领,于是又开始在驴的周围走动。驴非常愤怒,用蹄子去踢老虎。老虎发现,原来驴的本领就只有这些了,于是就跳起来,咬断了驴的喉咙,把它吃掉了。

Categories
快乐每一天

周末公园

难得的星期天休息,而且天气还这么好。 很久没有看到这么蓝的天、这么好的阳光了。

 

(1)元大都公园某段,很喜欢这个构图和色彩。

IMG_7238

(2)上一张的登高换个角度

IMG_7253

(3)秋天的树

IMG_7249

(4) 画壁

IMG_7269

(5)这张我怎么老想起win98的默认蓝天白云呢

IMG_7261

(6) 女儿和外婆

IMG_7219

————————–

天气越来越冷了。

什么时候可以舒舒服服地晒晒太阳呢?貌似奢求。

Categories
快乐每一天

乔布斯走了

t_hero

早上在路上看到新闻,乔布斯走了,心中莫名的悲伤。

苹果网站上这么说的:

t_title

乔布斯是一个传奇,他或许放荡不羁,但是他的才华和创造性无人能及,他造就了苹果的神话,iPod的传奇、Mac的传奇、iPhone的传奇,这个世界上很难有谁可以说明没有受到他的影响。

桌上还有一本书《活着就为改变世界》,是的,只要活着,就要有追求,有梦想,有拼搏。

因为,我们活着。

—————————————-

今天的天气很好。我们都应该珍惜,因为我们活着。

Categories
快乐每一天

科威特之行(8)-接下来几天

2010-10-23至2010-10-28

接下来几天,已经基本上没有了新鲜感。工作紧张忙碌。

受制于当地加工厂的技术水平还有当地采购的困难,方案一再修改。相比于国内的施工环境,在这里施工遇到的困难时相当的大。比UAE还要困难。

每天天亮以后就起床、洗澡、热面包喝牛奶,出发。 不过牛奶很好,没有国内很多牛奶的奶粉味道,烤面包片也不错。 科威特缺水,但是早上洗热水澡的感觉相当好。