Monthly Archives: November 2007

Qt integration for Eclipse

Trolltech finally organized technicals to develop integration with Eclipse, the popular C++ development environment in open source community. A version of 1.0 RC2 has come out and can be found from Trolltech offical FTP server at I tried this integration tool to develop a small console tool. It features some interesting things. But it is not very stable yet. Hope 1.0 release version will be more stable and more user friendly.

Pm v2.25


请点击这里下载Pm v2.25安装文件

MD5 sum: f9d813cbf325c3eb93beb35f1335e1b3

Shugong’s baby girl

Today I went to see Shugong, and had a look at his lovely baby girl. She was born around one week ago. I asked Shugong how he feels as a daddy. He said he was proud but very tired. The little baby wakes up every hour in night that making the couples can not even go to sleep. His wife said yesterday she cannot awake him up possibly he was too tired in past days. I experienced those tough time when Duoduo was younger than 1 year old. Anyway, all of us are not regrettable to our initial decision to have a baby.

Qt for VS c++ 2005 EE

Qt 4.3.2 已经支持 Visual Studio C++ 2005 Express Edition了,但不提供Integration,要使用的话,大概使用makefile project再加一点定制,比如使用qmake .pro来生成makefile,通过一些配置,Qt就可以使用VS这个稳定和强大的平台了(比如Intellisense, Debug等都比其它如Eclipse出色,毕竟是商业的)

To install it, download Qt 4.3.2 open source from its ftp at, configure it using a -platform win32-msvc2005, then compile/link by running nmake.

One thing to be noted is we have to install Windows Core SDK, IE SDK (If no IE SDK, prompting by missing shlwapi.h), and optionally MDAC SDK if you are going to install ODBC, prior to configure Qt. VC++ 2005 Express Edition does not come with SDK. We should install SDK seperately. One way is to install this package by appropriate customing.  

After installation, configure vcvar32.bat under "C:Program FilesMicrosoft Visual Studio 8Common7Tools" by adding "C:Program FilesMicrosoft Platform SDK for Windows Server 2003 R2Bin", "C:Program FilesMicrosoft Platform SDK for Windows Server 2003 R2Include",  and  "C:Program FilesMicrosoft Platform SDK for Windows Server 2003 R2Lib" to #path, #include and #lib respectively. Otherwise the compilation will complain it cannot find necessary header files.



Install Boost c++ library

1. get Boost source code from its official web site.
2. download bjam source codes, which is required to build Boost binaries.
3. build bjam. In my environment, mingw compiler is used. type:
 build.bat mingw
 actually the build.bat is smart enough to detect the right compiler
 at this point, we get bjam at it’s bin.ntx86 dir.
4. build boost. enter boost’s source dir, type:
  bjam –toolset=gcc
  make bjam compiled above, can be accessedwe should specifiy toolset as
  it will be msvc by default that’s not what we expect.
5. to enable content assist, it would better change indexer to full.

Days without pirate software

As University does not allow installing any illegal software to computers, I have to try other
developement tools rather than those I used in China. Fortunately, there are many GNU
tools available, which can substutite commercial tools to some extent. As more understanding
to GNU tools, I come to know they are also very powerful in development. They can do everything
that you have to be done with commerical earlier. Some aspects are even better than commercial.
Why not have a try? 
c++: Eclipse-CDT/MinGW/Qt/Boost
c#: Visual studio C# 2005 express (not GNU, but free)
Python, PyQt

Eclipse CDT MinGW debug error: error creating session

When I run as debug, the CDT says error creating session, then launching failed.
This is araised from missing of gdb. For best integration, I download MinGW gdb binary from MinGW’s download repository.
Then install it to MinGW’s same location. It works. 
Nov 29 2007: MinGW GDB debugger is bad; I have suffered various problems in debugging.

GeneratePolygonsByPoints utility

Purpose: to generate polygons (rectangles) by connecting neighboring points

Author: Zhuotong Nan
Date: Nov 21, 2007

ver: 1.0.0

Usage: GeneratePolygonsByPoints [data_file_name] {output shapefile name}
Rows*Cols (for ex, 260*250): (enter numbers of rows and cols for the source data file with
a format rows*cols. Incorrect input will stop the tool.)

data_file_name: source data file name; path can be included.
output shapefile name: optional, as its literal stated. path can be includes.

Supporting environment: Microsoft dotnet framework 2.0, ArcGIS 9.2 with dotnet assemblies, as
well as a valid ArcInfo license.

Remarks: Data file should be organized row by row (you should know exact row and column
number, which will be required to be entered after starting), starting from lower left corner.
In my initial case, the data file is generated by a modified Read_XMRG2 utility for XMRG
radar data file. The modified Read_XMRG2 will generate data with geographical coordinates
instead of HRAP coordinates as does original Read_XMRG2. Anyway, GeneratePolygonsByPoints
will also run against data file generated by original Read_XMRG2, however, with output
shapefile being in HRAP coordination.

Data file content looks like following:

-121.177570 37.897155 0.000000
-121.132468 37.907464 0.000000
-121.087345 37.917746 0.000000
-121.042201 37.928001 0.000000
-120.997037 37.938229 0.000000

The first column is longitude, second latitude, and the third precipitation value. The first
two columns represent that cells’ lower left coordinations. The first row indicates the lower
left cell; second is the next cell right to the first cell; after finishing a row, then begin
a row up the first row, and move upwards.

Output shapefile will be of geographic NAD83 datum. The first two columns will be converted
to points’ geographic location. Values (precp value in above example) will be lost. A new
field named "Index" will be generated to record this polygon’s lower left corner’s coordination
with a format of "lat_lon", for ex. 37.897155_-121.177570 for the first created cell. However,
you cannot depend on this field to link original source data file. In order to do link, you can
"ID" field in shapefile attribute table, which increases by one in consitence with source data

As stated above, each cell is referred by its lower left corner’s coordination. The most upper
cells cannot be generated due to missing of necessary points (we only have lower edge’s
coord). Likewise, the most right cells are also missed.

The distribution also includes a test data file: xmrg0101199900z.out, with a 39*48 (rows*cols)

For more information, please contact the author at


今天是感恩节,有4天的假期。外面小雨。中午本已经吃了点饭,朋友又叫出去,到China Star又吃了点。餐馆老板也是兰大校友。据说今天晚上很多人会去各大商场排队,很多东西会有special price。很多人年前开始计划要买的东西,都要等要今天去。从今天开始到元旦是Shopping season。
在吃饭的时候听朋友讲了很多football的事情,我此前从不知道football,只是刚来的时候W告诉我Pitt有一只叫Steeler的球队,这里的local people都很狂热。一起吃饭的朋友对这东西也很懂了,讲了很多规矩和有趣的故事。Steeler的票据说已经卖到10年以后了,这意味着你现在买只能买10年以后的比赛门票。但也有其它方法,比如Steeler外出纽约比赛,因为纽约队很糟糕,所以纽约本地人不大看,Steeler fans就可以跟过去看。football球迷比soccer要文明,动手打架相对要少。football据说是最美国式的运动,也是现代化装备最好的运动。