1st
July
2008
一直想买个单反备用机,最近瞄上了panasonic的LX2。这是一款2006年的机器了,但是直到今天仍然在生产,而且价格居高不下(甚至比最新款的pany的消费相机还贵),在消费类相机当中实属罕见。这款相机更是在无忌论坛上引起了大水,无数人参与讨论和贴片。莱卡紧随其后推出的几乎一模一样的D-LUX 3 让更多的人对LX2更加疯狂。
LX2的最大亮点当属“Leica镜头+真16:9 CCD+28mm广角+全手动”,机身上那个醒目的“L” 吸引了无数眼球。而最为抢眼的当属16:9的CCD。一般的相机如果有16:9的效果通常是4:3的CCD感光后上下裁剪得到的16:9,这样做通常会损失像素。而这款LX2可以通过16:9的CCD得到千万像素的16:9照片,再加上广角镜头可谓惊艳。周末去Stanford拍的样片就能充分证明这点:
http://www.pbase.com/zyj/image/99542834
http://www.pbase.com/zyj/image/99542836
http://www.pbase.com/zyj/image/99542838
http://www.pbase.com/zyj/image/99542840
http://www.pbase.com/zyj/image/99542843
posted in 捕风捉影 |
13th
May
2008
说说汶川吧。这两天看新闻联播才知道应该读“问川”,惭愧惭愧。身为成都人,平时也最多在七区十二县转转,很少到更北的阿坝或者东北的广汉绵阳去转。
汶川在成都西北,出了都江堰就是,是阿坝州的南大门。要去九寨沟和卧龙等地,汶川是必经之地。印象当中感觉有点像阳平关的感觉,属于地势险要的交通要道。记忆中只是记得刚过都江堰的城区,如果去青城山就去一条路,如果去汶川就走另外一条路,现在还清楚的记得那个分叉口。几乎每次都是路过汶川,没有停下来过,不愧是“南大门”:)
唯一的一次就是去考驾照了。本科毕业后的暑假无所事事,索性在驾校呆了一个月,结识了一帮师哥师姐还有喜欢白酒的师傅。至今还记得驾校师傅们把加速踩油门倒杆作为消遣的场面。转眼之间就要回北京上学了,于是决定报名考了算了。正常情况下应该在成都交管局考的,据说那里已经实行了红外线,稍微一个失误就挂了,都没有灰色区域一说,挂了就是挂了。就在我准备硬着头皮上的时候,驾校通知俺在成都考估计来不及了,约不到比我去北京出发时间早的了,就让我去阿坝考试。 “what??怎么能去那里考?那里考的驾照祖国承认吗?” 带着一肚子疑惑,就被通知当天晚上要去住在驾校,第二天一早跟车去阿坝州考试。我抓起理论考试的书就被老爸送到了南郊的驾校基地,找了个铺位睡下了。NND,这个时候我还没看过理论书呢,第二天就要上场了啊,那岂不是路考没考先载在理论考试上了。我抓起书就开始猛看,同“宿舍”的哥们儿也在努力看书。晚上11点了,领队进来说,“都睡了吧,明天还要赶路呢!” 我说 “书还没看到一半呢”, 他说没关系,就走了。ft,就这么熄灯睡觉了。
第二天早上5点,我已经坐在了去阿坝州的车上。汽车以140公里每小时狂奔在成灌高速上。去阿坝州的路都是一边山一边悬崖的,当然悬崖下面一般是条大河。还记得路上有一座横跨大江的桥,就在刚出都江堰不久,忘了啥名字了,晕。大概上午10点就到了。我原来以为交管局都在市/州政府所在地,对阿坝州来说就是马尔康县,后来才发现自己就在汶川。早上的笔试我都准备豁出去了,自己还处于没睡醒的状态,突然领队出现在考场里面,突然走到我面前指着屏幕上的答案说“选这个,选这个,选这个。。。。”,哇塞,最后居然96分。。。。。无语了
中午在县城里转了转。说是县城,其实也就是沿着公路几百米左右的店铺。跟一起来的哥们儿去苍蝇馆子撮了一顿,就等着下午路考了。路考居然在公路边的一片空地,空地后面就是悬崖大江。这里当然没有红外线了,只有插在七孔砖上的竹竿。终于轮到我了,看看考官,正在跟领队瞎聊。管它三七二十一,我左飞、右飞、移库(驾校术语)一气呵成,满意地下车了,看见领队还在和考官递烟勾兑,考官根本顾不上看俺一眼。师弟上来说,刚才碰到杆子了,我说没有吧,他说他帮我扶到了,没倒,考官忙着跟领队说话,也没看见,我再晕。。。
下午又在汶川晃了一会儿,想先回成都了,就随便上了一个“汶川–成都”的大巴回去了。当然后来也顺利地从驾校拿到了盖有“阿坝州交管局”红章的“省照”并凭此在成都的大街小巷驰骋。说来也得谢谢汶川了。
现在汶川身处震中,既有可能成为一座死城。只有默默的为那里的人们祈祷。
posted in 涂鸦 |
13th
April
2008
好久没来这个blog了,来扫扫土。自己差点连密码都忘了
最近拍了一下自己打球的录像,发现自己打球居然和抡大锤无异!!!!
从今日决定认真按照建议的drill好好练习,使自己的动作compact再compact一点。立此存照!以下是需要练习的drill:
(zz) 半西方式正手击球的特殊训练方法:
1、夹球练习:把球夹在腋下进行练习,以减少后摆幅度,使自己有一个小而有效的后摆,以便有足够的时间来迎击来球;
2、“手铐”式练习:左手尽量随右手一起向后摆,好像一只手铐把两只手铐到一起,以保证在击球前有充分的转肩动作,充分转肩保证击球有力;
3、体会阻力力练习:拉毛巾或拉拍子,有阻力练习以便形成自己的发力方式,所谓自己的发力方式与击球点和全身肌肉的配合,以确定自己的击球点和发力程序,形成自己的强力正手;
posted in Tennis |
11th
October
2007
SetupDixxxx是windows提供的一套非常实用的应用层硬件信息查询API。为了更好地和界面融合起来,MFC的程序经常需要调用这些函数。但是包含这些函数的setupapi.h以及其他的一些guid的头文件需要包含一些基础的windows定义。
最容易想到的就是包含DDK的定义文件,因为这些函数出现在了DDK的文档中(当然也在MSDN中)。所以一上来就include了<ntddk.h>,这样就导致了很多redefinition的问题(和winnt.h冲突)。
其实这些函数在 C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\ 下也有一套,所以不用包含DDK那些头文件了。只要包含下面几个就可以了:
#include <windows.h>
#include <initguid.h> // Guid definition
#include <devguid.h>
#include <setupapi.h>
这里winnt.h还是不能替代windows.h,否则会出现CONST没定义等问题。
同时还要在Project setting中关掉 precompiled headers (stdafx.h)
posted in NT Kernel Study |
11th
October
2007
1. 提前后挥。特别是在running forehand的时候,跑的时候就要开始挥。
2. 前挥的timing。其实这个是最难掌握的,球速不同,timing自然不同。即使后挥了,但是timing不对,还是容易过早或者晚击球。
3.保持与球的距离。侧向距离要保持,特别是现在开始使用非over-size的球拍,对球的位置要求更高。 纵向距离要保持,主要体现在不要死站在距离底线很近的位置,适当退一步。
4. athletic height。这个经常忘记,如果能记住,尽量做到
5. 重心在右脚。这个是最近看球的时候发现的,如果到位的话,重心往右脚上一压,打出去的球自然很稳。但是这个要求每个球都很到位,不适合running forehand。
6.转身。还做得不够。
7. follow-through。
8. 动作幅度小。
恩,基本上就这些,打球的时候能够同时做到3到4样就不错了。
posted in Tennis |
6th
October
2007
有很多工具可以自动构建VS2005下的DDK编译环境。本着求实上进的精神,我还是自己照着一个sample 工程自己看了一下一些具体的设置。 主要就是设置一些DDK的头文件、library和一些诸如Entry Point/Base Address/SubSystem/Target Machine/Optimization方面的设置。 下面的设置是从一个win32 console工程的设置出发需要改动的地方。其中release版本中是一些区别于Debug版本的设置。
[Debug]
General/Output Directory: $(ConfigurationName)
C/C++
General/Additional Include Directories: \WINDDK\3790.1830\inc\crt;\WINDDK\3790.1830\inc\ddk\wxp;\WINDDK\3790.1830\inc\wxp;\WINDDK\3790.1830\inc\ddk\wdm\wxp;\WINDDK\3790.1830\src\network\inc;\WINDDK\3790.1830\INC\IFS\wxp
General/Debug Information Format:
Optimization/Enable Intrinsic Functions:
Preprocessor/Proprocessor Definitions: _DLL=1;_X86_=1;i386=1;STD_CALL;CONDITION_HANDLING=1;NT_INST=0;
WIN32=100;_NT1X_=100;WINNT=1;_WIN32_WINNT=0×0400;WIN32_LEAN_AND_MEAN=1;DEVL=1;DBG=1;FPO=0
Code Generation/Enable String Pooling: Yes (/GF)
Code Generation/Enable C++ Exceptions: No
Code Generation/Basic Runtime Checks: Default
Code Generation/Runtime Library: Multi-threaded (/MT)
Code Generation/Buffer Security Check: No (/GS-)
Code Generation/Enable Function-Level linking: Yes (/Gy)
Precompiled Headers/Precompiled Header File: .\$(ConfigurationName)/$(ProjectName).pch
Output Files/ASM List Location: .\$(ConfigurationName)/
Output Files/Object File Name: .\$(ConfigurationName)/
Output Files/Program Database File Name: .\$(ConfigurationName)\$(ProjectName).pdb
Advanced/Call Convention: __stdcall (/Gz)
Advanced/Compiled As: Default
Advancde/Force Includes: warning.h
Command Line(???): /Zel -cbstring /QIfdiv- /QIf
Linker
General/Output File: $(OutDir)\$(ProjectName).sys
General/Enable Incremental Linking: No (/INCREMENTAL:NO)
General/Additional Library Directories: \WINDDK\3790.1830\lib\wxp\i386;\WINDDK\3790.1830\lib\wxp
Input/Additional Dependency: ntoskrnl.lib hal.lib wmilib.lib ndis.lib $(NOINHERIT)
Input/Ignore All Default Libraries: Yes (/NODEFAULTLIB)
/*Input/Module Definition File: .\$(ProjectName).def*/
Debugging/Generate Program Database File: .\$(ConfigurationName)/$(ProjectName).pdb
System/SubSystem: Native (/SUBSYSTEM:NATIVE)
System/Stack Reserve Size: 262144
System/Stack Commit Size: 4096
Optimization/References: Eliminate Unreferenced Data (/OPT:REF)
Optimization/Enable COMDAT Folding: Remove Redundant COMDATs (/OPT:ICF)
Advanced/Entry Point: DriverEntry
Advanced/Set Checksum: Yes (/RELEASE)
Advanced/Base Address: 0×10000
Advanced/Merge Sections: .rdata=.text
Advanced/Target Machine: MachineX86 (/MACHINE:X86) / Not Set
Command Line: /ignore:4010,4037,4039,4065,4070,4078,4087,4089,4221,4210 /driver
[Release]
C/C++
General/Debug Information Format: Disabled
Optimization/Optimization: Full Optimization (/Ox)
Favor Size or Speed: Favor Small Code (/Os)
Linker
Debugging/Generate Map File: Yes (/MAP)
Debugging/Map File Name: $(Outdir)/$(ProjectName).map
Debugging/Map Exports: Yes (/MAPINFO:EXPORTS)
posted in NT Kernel Study |
2nd
October
2007
一个MFC的程序最近需要迁移到VS2005下面。折腾了半天,有几点需要总结一下,以后就不用再伤脑筋了:
1. 检查_UNICODE设置是否一致
2. 把所有用到的DLL和LIB都在VS2005下重新编译,生成新的LIB和DLL。LIB不匹配会出现LNK问题,DLL不匹配会出现 xxxx@class can’t be located in the DLL的错误。
3. 如果出现了LNK错误,首先检查lib的路径还有DLL是否都用的是新编译的版本(VS2005版本的)。如果没有继承CString类,基本不会出现ATL::CString模板的问题。Tip: 在Linker选项中加入/verbose:lib 来检查link的时候搜索路径是否正确,如果还在搜索VC98的目录,那基本上就是错误的原因了。
4. 著名的WM_HITTEST问题。UINT已经过时了,用LRESULT替代。
先想到这些,以后再补充。
posted in 编程珠玑 |
23rd
August
2007
今天Nikon宣布了自己的第一个全幅DSLR D3。 终于赶上了Canon的节奏,当然也给DSLR市场带来了活力,值得进一步观望。当然D3俺是不想了,预售价都是5000大洋。 同时宣布的还有Nikon的D300。这个机型估计对我更有吸引力。
Nikon动作慢是出了名的。D200已经是2年前的事情了。D300我不太清楚,但是D200有很多D70没有的东东确实值得拥有,毕竟D200是中高端的DSLR:D200去掉了那些我从来不用的风景/人像/花鸟模式,而把ISO、WB和QUALITY分开成三个按钮放在了左边,而P,S,A,M模式都放在了右边用dial来选择;D200用的是RGB的histogram,可以看照片的各个色相的图,仔细检查曝光过度程度;当然2.5寸的LCD也很不错,D300已经变成3寸的了,值得期待;当然像素和对焦/测光模式的区别自然是有了;最后就是外表了,都是黑黑的,但是D200是镁合金机身,自然专业不少。
D300在年末推出,据称又比D200进步不少,看来要开始攒银子了。。。。。
posted in 捕风捉影 |
13th
August
2007
posted in 捕风捉影 |
30th
June
2007
One-liner本来是形容一个喜欢把程序写在一行的人。但是在以前的公司写了一段代码,就被人成为了one-liner。
if(xxxx)
do it;
几个Senior programmer在review我的code的时候说,以后不能这么写,无论如何要加上括号,否则你就是one-liner。当时就悻悻的加上了括号。
if(xxxx) {
do it;
}
半年以后,我坐在这里成为了代码的维护人员。今天某个one-liner就给我带来了麻烦。本来有一段代码:
for(xxxxxx)
if(yyyyyyy){
return zzzzz;
}
我需要移植一段代码,然后就加了一行代码:
for(xxxxxx)
ASSERT(aaaaaaa);
if(yyyyyyy) {
return zzzzz;
}
虽然当时粘过来的时候每行都仔细检查了,但是这个问题没有注意到。后果可想而知。。。。(bug一个)最后还是boss发现了这个问题,发email告诉我code应该是这样的:
for(xxxxxx) {
ASSERT(aaaaaaa);
if(yyyyyyy) {
return zzzzz;
}
}
我还继续犯晕,还跑去问boss他改了什么地方 。汗。。。。。
当然这个问题以后要多注意。有个tip 就是多利用VS或者emacs的re-indent功能,只要重新format就能马上看出问题。
Don’t be one-liner for your good and for everyone else’s.
posted in 编程珠玑 |