2014年4月2日星期三

几个可以下载volume数据的网站

好记性不如烂笔头。

昨天同学问我去年在qq群里推荐的一些网址,这我怎么可能还记得。不过由此想到,还是应该在平时把想到的好想法看到的好网站记下来,之前也用过evernote,后来不知怎么的就没有整理和记录的热情了。既然现在开了博客了,干脆写在这里,没准儿对其他人还能有帮助。

几个可以下载用于可视化的volume data的网站:
grand-challenge All Challenges
DICOM files
Bone CT-Scan Data
The Volume Library

2014年3月22日星期六

开始学习Qt

春节之后的周末,又是一通瞎忙,好久没有踏下心的看书学习了。今日终得闲,加上最近几日工作中受到的刺激,感觉还是要继续战斗才好,随时做好新起航的准备。

按照之前想的那么多,又想重温设计模式和重构,又想学习Qt,又想学一些自动化测试,想学的太多,反倒出现了选择困难和厌学情绪。思考之后,决定先学Qt,然后写一个简单的程序来实现所有的设计模式,做这个程序的过程中估计重构和测试也就都能设计到了。

Qt如今已经发布了5.2.1,并且可以支持iOS和android开发(不过对移动软件的开发相信很难真的有实际的实践意义,原生开发工具已经足够好了,看不到任何去学这个的必要,当然这肯定是后话了),国内网站中对Qt的讨论主要还是集中在Qt4,毕竟对于公司开发的话不可能果断的舍弃旧的代码用新的框架重构,不过对于我个人兴趣式的学习,我还是决定学习最新的版本,从Qt5直接入手。

在网上的搜索过程中,找到了一位大牛的博客DEVBEAN' S WORLD,在他的博客中,专门有一个单元叫Qt学习之路2。这位大牛以前也写过一个学习教程是Qt学习之路,当时是针对Qt4写的,如今他将自己曾经的所有博客针对Qt5进行了重新整理,放在网上供大家学习,对他这种精神真的是佩服的五体投地啊。

今天先学习了前六篇教程,对Qt有了个初步的了解,尤其是对信号槽(slot)这个概念有了个直观的概念。以下摘抄自该教程第四节,Qt 学习之路 2(4):信号槽
所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。(这里提一句,Qt 的信号槽使用了额外的处理来实现,并不是 GoF 经典的观察者模式的实现方式。)
有这么好的教程网站,之后要加快学习的脚步才好。

2014年1月29日星期三

\Microsoft was unexpected at this time

作为一名Windows开发者,visual studio是最常用的开发工具之一。虽然真正的开发过程肯定用vs开发,但是有些时候只是想验证个算法时,就会用Visual Studio Command Prompt在命令行直接编译运行看下。命令行编译省时省力,不用建项目也没有繁多的编译生成物。算是我从TC走来继承的优良传(lou)统(xi)吧。

但是,这两天命令行忽然不能用了!
百思不得其解。

今日得闲,google到了同病相怜之人。
附上搜到的两条链接,\Microsoft was unexpected at this timeSerious Visual Studio 2008 install bug that can break your builds
He mentioned that as he found out, one of the directories where SDK was had braces in the name as well, and that broke the statement above completely as batch processor would find nested parentheses in the folder’s name and consider them as the end of the statement.
So, the fist thing you should do if you’re having the same problem: look at your %PATH% environment variable and check if anything is enclosed in double quotes.

我查了下我的环境变量,果然有一条路径加了莫名其妙的双引号!
"C:\Program Files (x86)\Microsoft DirectX SDK (October 2006)\Utilities\Bin\x86";
是安装DirectX SDK时自动添加的环境变量,原来问题的始作俑者还是Microsoft自家的产品……

删掉双引号,世界恢复如初了。

PS. Blogger不智能啊,插入的图片不能自动适应页面大小?

2014年1月24日星期五

参加公司培训

月初参加了公司的内部培训,培训的内容关于clean code。当时听完两天的培训后,心里还是挺有感触的,但是迟迟没有写下来,现在一些细节就想不起来了。记得多少就说多少吧。拖延症害死人啊!

挺有感触的一点是:什么是编程?
最初天真的以为会写个Hello World就算是会写程序了,这个想法实在是too young too simple了。在这几年的自学过程中逐渐认识到,光是会写几个函数不能算是会C语言,当学会了数据结构可以用结构体和指针自行实现stack & queue时,才感觉C语言入了门;光是写一个类把函数封装在一起也不算是会C++,当逐一把二十多种经典设计模式敲过一遍之后,才意识到OOD思想的精髓。听了这次的培训,意识到,以上的这些,最多只能算是掌握了某一门编程语言,真正编写程序,除了基本的语言知识,还需要掌握重构的能力,以及UT的能力。

说到重构,倒也不是新知识,以前也曾花过时间和精力读书学习过,但是碍于没有接触过真正的项目,也没有重构的需求,所看的书都成了纸上谈兵。而UT,对于我这个半路出家的程序猿,就是完全遗漏掉的知识了。

听完这次培训,忽然感觉写程序也是非常有意思的,这种打磨一个程序的感觉,不亚于打磨一件手工制品,不亚于打磨一个算法的速度或效果,之前之所以没有这样的感觉,其实还是由于对这个行业的不深入不了解。说到底,人丑就该多读书啊!

放个书单上来吧,说说最近想重读或初读的书:
重构,这个看过一两遍了,之后要拿代码出来针对性的改一改。
设计模式,这个看过很多遍了,但是培训的时候发现很多模式都记不得了,而且UML还是挺重要的,还要再复习下。
大话设计模式,这个买来翻过几页,现在回头重读一遍,一定会有更好的收获。
Head First 设计模式,这个没有看过,不过应该和上一本设计模式差不多,找来速看一遍吧。
单元测试之道C#版,单元测试的书好像没找到C++的,拿这本C#的凑合看?
代码大全2,这书经典中的经典,就是厚度让人望而生畏。。。

说到最后,今年一定要开始学习写QT程序了!立字为据。

2014年1月6日星期一

序言

早就想开通blog记录些生活与学习的点点滴滴了,但是拖延症啊拖啊拖,完美主义啊想啊想,一直也没有真正的付之于行动。今日一拍大腿,忍无可忍不能再忍,逼着自己开始絮叨几句吧,时不我待。

其实今天开始记录生活,时间点也挺好的,2014年开年嘛,从今年开始在公司转正,彻底脱下学生的身份,开始正式进入成人的生活节奏。而且,今年应该会发生很多里程碑式的大事件吧。拭目以待吧。