Olympus μ[mju:]-II 是著名的长寿机型。自1997年面世,至今仍在量产,据称销售量超过380万部。该机型有香槟橙、黑色两款。在1998年时,为纪念 Olympus μ 系列销售1000万部,该机型曾推出过金属黑色涂装的限量纪念版。今次自淘宝购入的是普通的黑色版本,卖家标九九新。

详列规格如下。

  • 类型:全自动 35mm 自动对焦中心快门相机。
  • 使用胶卷:35mm 标准 DX 码胶卷 (24 × 36mm)。
  • 镜头:Olympus,F2.8,4片4组。
  • 取景器:旁轴取景器。
  • 对焦:主动式多自动对焦系统。可锁定焦距。
  • 对焦范围:0.35m - ∞ (无限远)。
  • 曝光控制:程序式自动曝光控制,2-区测光,可切换为点测光。
  • 自动曝光范围:EV1.0 - EV17 (F2.8,4秒 - F11,1/1000秒)。
  • 胶卷计数:可自动归零的步进式,在液晶显示板上显示。
  • 自拍:电子自拍,12秒延迟间隔。
  • 胶卷速度范围:带 DX 码的胶卷可自动设定 (ISO 50, 100, 200, 400, 800, 1600, 3200)。对于小于 ISO 50 的非 DX 码的胶卷,其速度设定为 ISO 100。
  • 装片:自动装片 (后盖盖上后自动卷到第一张)。
  • 卷片:自动卷片。
  • 倒片:自动倒片 (胶卷拍完时自动倒片,倒片结束时自动停止)。中途倒片键,可在任何时刻倒片。
  • 闪光灯:内藏式闪光灯。
  • 闪光灯充电时间:约 0.2 - 3.5 秒 (常温下,用新电池)。
  • 闪光灯有效范围:对于 ISO 100 彩色负片 0.35 - 4.1m,对于 ISO 400 彩色负片 0.35 - 8.2m。
  • 闪光模式:自动闪光 (低照明度,逆光,荧光灯或其他人造灯光下时自动闪光),减轻红眼 (其它与自动闪光同),OFF (不闪光),强制 (强制闪光灯工作),夜景 [用低速快门速度 (4秒) 进行夜摄,其它功能操作与自动闪光模式时相同],减轻红眼夜景 (其它情况下与夜景拍摄闪光同)。
  • 电池检查:在液晶显示板上显示。
  • 防水:IEC 标准 529。封装保护等级分类。保护等级的第二特征数为 4。防溅出的水花。从任何方向溅到封装物上的水花不应对封装物造成任何损坏。
  • 电源:3V 锂电池 (DL123A/CR123A)。
  • 尺寸:108(W) × 59(H) × 37(D)mm (不包括突出部)
  • 重量:135g (不包括电池)

以下开箱照。

原装盒子。
img_5967a.jpg

使用说明书、质量保证书俱在。
img_5975a.jpg

相机包、手绳,相机在包内。
img_5984a.jpg

Olympus μ[mju:]-II。
img_5987a.jpg

背后LCD,两个按钮。
img_6002a.jpg

快门按钮。
img_6003a.jpg

Assembled in China. Parts made in Japan.
img_6005a.jpg

Olympus lens 35mm 1:2.8. Multi AF. All-weather.
img_6008a.jpg

已经喂了一卷 Ilford XP2 Super 黑白片。试机照片近期奉上,敬请期待。
img_6013a.jpg

参考资料

  •      成都→亚丁汽车
  •      亚丁→成都汽车
  •      钓鱼路线
  •      徒步路线

附上Google Earth XMZ 文件

旅途照片请移步Picasa网络相册

成都风物
稻城亚丁
Existing Workstation

CPU
  • AMD Althon XP 2200+ Thoroughbred 1800MHz
CPU heat sink
Motherboard
Memory
  • A-DATA 1G DDR400
  • Kingston 512M DDR333
  • Kingston 256M DDR333
Graphic adapter
Storage controller
Sound card
Hard disk drive
Optical drive
  • Pioneer DVD-RW DVR-109
Chassis
Power Supply
  • Goldenfield 300W
Monitor:
Keyboard and Mouse

Upgrade Plan

CPU
    • 6 MB L3 Cache
CPU heat sink
Motherboard
    • Socket AM3 with DDR3 memory support
Memory
  • Kingston KVR1333D3N9/2G x 2
Graphic adapter
    • ATI Radeon HD 4850
    • PCI 2.0 Express
    • 1G DDR3 Memory
Chassis attachment
DC Fan
Power supply

Reference



新败了怪兽等级的黑白负片,期待着第一卷拍完冲洗出来。

以下是搜集到的有关资料。

Ilford XP2 Super 胶卷,染料型黑白负片,醋酸盐片基。它具有宽广的曝光范围,标称感光度 ISO 400 ,用作 ISO 50 - 800 曝光时,不需要增感或降感冲洗。推荐使用标准 C-41 工艺冲洗。用作 ISO 400 曝光时获得最佳整体表现,用作 ISO 200 曝光时获得更细腻的颗粒,用作 ISO 50 曝光时颗粒最细腻但是底片的密度变大。

* C-41 工艺就是通常冲洗彩色负片的处理工艺

Ilford XP2 super 400

新机入手,第一卷 Kodak 彩色负片终于出炉,单冲底扫。Zeiss 镜头成像颜色很艳,与之前Canon EOS 400D 机身上大有不同。

以下请看。

街头随拍

柯达彩色金胶卷 ISO 100/21°
柯达彩色金胶卷 ISO 100/21°

柯达全能胶卷 ISO 400/27°
柯达全能胶卷 ISO 400/27°

新机入手啦,这一支是 Cosina 代工生产的 Voigtländer Bessaflex TM Silver。这是新出产的复古机型,2003年上市,2007年底停产。铝镁合金机身,机械快门,在电池电力耗尽的情况下,只有机身内建的测光表停止工作,所有其它功能均可运作如常。

Voigtländer Bessaflex TM Silver 和 Carl Zeiss Planar T* 1.4/50 ZS 合体
Voigtländer Bessaflex TM Silver 和 Carl Zeiss Planar T* 1.4/50 ZS 合体

Voigtländer Bessaflex TM Silver 机顶
Voigtländer Bessaflex TM Silver 机顶

以下是机身详细规格。

Type 35mm SLR camera with focal plane shutter an TTL metering system
Film Format 35 mm film, 24x36 mm
Lens Mount M42
Shutter Vertically moving metal focal plane shutter B 1-1/2000sec.
Self-Timer Mechanical self timer, approx.10 sec. duration
Viewfinder Field of view 95%
Exposure display = Over exposure warning
= Good exposure indication
= Under exposure warning
Exposure Metering System TTL stop-down metering system. Center weighted area measurement.
Exposure Coupling Range ISO 100/21 EV1(F1.4, 1s) - EV19 (F16, 1/2000s)
Flash Terminal X synchronic contact, synchronized at 1/125 or lower shutter speed
Film Advance By single and/or ratcjet lever action. Double exposure lock system. Trigger winder available (optional extra).
Film Rewind By film rewind button and film rewind crank
Frame Counter Progressive type with auto reset by opening the back cover.
Film Speed Range ISO 25/15 - 3200/36 by 1/3 steps
Power Source Two 1,5V Alkaline batteries (LR44) or Silver batteries (SR 44)
Dimensions 135 (W)x89(H)x52.5(D)mm
Weight 485g

参考资料

Here is a tricky method other than use tar --version and awk.  This method may not work with old version of GNU tar.
$ tar -c -f /dev/null -T /dev/null --checkpoint=1 \
> --checkpoint-action='exec=echo $TAR_VERSION'
1.20

Rules[1]

  • Board - The board is an 8×8 grid, with alternating black and red squares, called a checkerboard (in the U.S., in reference to its checkered pattern, also the source of the name checkers). The playable surface consists of the 32 dark squares only. A consequence of this is that, from each player's perspective, the left and right corners encourage different strategies.
  • Pieces - The pieces are usually made of wood and are flat and cylindrical. They are invariably split into one darker and one lighter color. Traditionally, these colors are red and white. There are two kinds of pieces: "men" and "kings". Kings are differentiated as consisting of two normal pieces of the same color, stacked one on top of the other. Often indentations are added to the pieces to aid stacking.
  • Starting Position - Each player starts with 12 pieces on the three rows closest to their own side, as shown in the diagram. The row closest to each player is called the "crownhead" or "kings row". The black (darker color) side moves first.
  • How to Move - There are two ways to move a piece: simply sliding a piece diagonally forwards (also diagonally backwards in the case of kings) to an adjacent and unoccupied dark square, or "jumping" one of the opponent's pieces. In this case, one piece "jumps over" the other, provided there is a vacant square on the opposite side for it to land on. Again, a man (uncrowned piece) can only jump diagonally forwards, and a king can also move diagonally backwards. A piece that is jumped is captured and removed from the board. Multiple-jump moves are possible if, when the jumping piece lands, there is another piece that can be jumped. Jumping is mandatory and cannot be passed up to make a non-jumping move, nor can fewer than the maximum jumps possible be taken in a multiple-jump move. When there is more than one way for a player to jump, one may choose which sequence to make, not necessarily the sequence that will result in the most amount of captures. However, one must make all the captures in that sequence. (Under traditional draughts rules jumping is not mandatory. If it is not done, the opponent may either force the move to be reversed, huff the piece or carry on regardless.)
  • Kings - If a player's piece moves into the kings row on the opposing player's side of the board, that piece is said to be "crowned" (or often "kinged" in the U.S.), becoming a "king" and gaining the ability to move both forwards and backwards. If a player's piece jumps into the kings row, the current move terminates; having just been crowned, the piece cannot continue on by jumping back out (as in a multiple jump), until the next move.
  • How the Game Ends - A player wins by capturing all of the opposing player's pieces, or by leaving the opposing player with no legal moves.

Compiling

Run command "make" to compiling. The main executable file is "ponder".

Playing

The below chart show the user interface of the Ponder engine. This is the official game board of American checkers game, 8x8 size. The squares are marked from "1" to "32" at the lower left.

$ ponder
  +---+---+---+---+---+---+---+---+
  |   |(w)|   |(w)|   |(w)|   |(w)|
  +---+32-+---+31-+---+30-+---+29-+
  |(w)|   |(w)|   |(w)|   |(w)|   |
  +28-+---+27-+---+26-+---+25-+---+
  |   |(w)|   |(w)|   |(w)|   |(w)|
  +---+24-+---+23-+---+22-+---+21-+
  | \ |   | \ |   | \ |   | \ |   |
  +20-+---+19-+---+18-+---+17-+---+
  |   | \ |   | \ |   | \ |   | \ |
  +---+16-+---+15-+---+14-+---+13-+
  |(b)|   |(b)|   |(b)|   |(b)|   |
  +12-+---+11-+---+10-+---+9--+---+
  |   |(b)|   |(b)|   |(b)|   |(b)|
  +---+8--+---+7--+---+6--+---+5--+
  |(b)|   |(b)|   |(b)|   |(b)|   |
  +4--+---+3--+---+2--+---+1--+---+
;[FEN "B:W21,22,23,24,25,26,27,28,29,30,31,32:B1,2,3,4,5,6,7,8,9,10,11,12"]
  *** Black ***
  • (b) indecate a black man
  • (B) indicate a black king
  • (w) indicate a white man
  • (W) indicate a white king
  •  \  indicate an unoccupied dark square

Move a piece by type the starting square and the destination square with a dash between them.

;[FEN "B:W21,22,23,24,25,26,27,28,29,30,31,32:B1,2,3,4,5,6,7,8,9,10,11,12"]
+---+---+---+---+---+---+---+---+
| |(w)| |(w)| |(w)| |(w)|
+---+32-+---+31-+---+30-+---+29-+
|(w)| |(w)| |(w)| |(w)| |
+28-+---+27-+---+26-+---+25-+---+
| |(w)| |(w)| |(w)| |(w)|
+---+24-+---+23-+---+22-+---+21-+
| \ | | \ | | \ | | \ | |
+20-+---+19-+---+18-+---+17-+---+
| | \ | | \ | | \ | | \ |
+---+16-+---+15-+---+14-+---+13-+
|(b)| |(b)| |(b)| |(b)| |
+12-+---+11-+---+10-+---+9--+---+
| |(b)| |(b)| |(b)| |(b)|
+---+8--+---+7--+---+6--+---+5--+
|(b)| |(b)| |(b)| |(b)| |
+4--+---+3--+---+2--+---+1--+---+
*** Black ***
10-14
;[FEN "W:W21,22,23,24,25,26,27,28,29,30,31,32:B1,2,3,4,5,6,7,8,9,11,12,14"]
+---+---+---+---+---+---+---+---+
| |(w)| |(w)| |(w)| |(w)|
+---+32-+---+31-+---+30-+---+29-+
|(w)| |(w)| |(w)| |(w)| |
+28-+---+27-+---+26-+---+25-+---+
| |(w)| |(w)| |(w)| |(w)|
+---+24-+---+23-+---+22-+---+21-+
| \ | | \ | | \ | | \ | |
+20-+---+19-+---+18-+---+17-+---+
| | \ | | \ | |(b)| | \ |
+---+16-+---+15-+---+14-+---+13-+
|(b)| |(b)| | \ | |(b)| |
+12-+---+11-+---+10-+---+9--+---+
| |(b)| |(b)| |(b)| |(b)|
+---+8--+---+7--+---+6--+---+5--+
|(b)| |(b)| |(b)| |(b)| |
+4--+---+3--+---+2--+---+1--+---+

While capture a piece, use character "x" instead of dash.

;[FEN "B:W15,21,22,24,25,26,27,28,29,30,31,32:B1,2,3,4,5,6,8,9,10,11,12,14"]
+---+---+---+---+---+---+---+---+
| |(w)| |(w)| |(w)| |(w)|
+---+32-+---+31-+---+30-+---+29-+
|(w)| |(w)| |(w)| |(w)| |
+28-+---+27-+---+26-+---+25-+---+
| |(w)| | \ | |(w)| |(w)|
+---+24-+---+23-+---+22-+---+21-+
| \ | | \ | | \ | | \ | |
+20-+---+19-+---+18-+---+17-+---+
| | \ | |(w)| |(b)| | \ |
+---+16-+---+15-+---+14-+---+13-+
|(b)| |(b)| |(b)| |(b)| |
+12-+---+11-+---+10-+---+9--+---+
| |(b)| | \ | |(b)| |(b)|
+---+8--+---+7--+---+6--+---+5--+
|(b)| |(b)| |(b)| |(b)| |
+4--+---+3--+---+2--+---+1--+---+
*** Black ***
11x18
;[FEN "W:W21,22,24,25,26,27,28,29,30,31,32:B1,2,3,4,5,6,8,9,10,12,14,18"]
+---+---+---+---+---+---+---+---+
| |(w)| |(w)| |(w)| |(w)|
+---+32-+---+31-+---+30-+---+29-+
|(w)| |(w)| |(w)| |(w)| |
+28-+---+27-+---+26-+---+25-+---+
| |(w)| | \ | |(w)| |(w)|
+---+24-+---+23-+---+22-+---+21-+
| \ | | \ | |(b)| | \ | |
+20-+---+19-+---+18-+---+17-+---+
| | \ | | \ | |(b)| | \ |
+---+16-+---+15-+---+14-+---+13-+
|(b)| | \ | |(b)| |(b)| |
+12-+---+11-+---+10-+---+9--+---+
| |(b)| | \ | |(b)| |(b)|
+---+8--+---+7--+---+6--+---+5--+
|(b)| |(b)| |(b)| |(b)| |
+4--+---+3--+---+2--+---+1--+---+

Use "help" or "?" in the game engine to show the help information.

help
? Show this help information.
analyze Engine thinks about what move it make next if it were on
move.
black Set Black on move, and the engine will play White.
force Set the engine to play neither color ("force mode").
go Leave force mode and set the engine to play the color that
is on move. Start thinking and eventually make a move.
help Show this help information.
history Show the record of moves.
new Reset the board to the standard starting position.
ping N N is a decimal number. Reply by sending the string
"pong N"
print Show the current board.
quit Quit this program.
rotate Rotate the board 180 degrees.
setboard FEN Set up the pieces position on the board.
sd DEPTH The engine should limit its thinking to DEPTH ply.
st TIME Set the time control to TIME seconds per move.
undo Back up a move.
verbose Toggle verbose mode.
white Set White on move, and the engine will play Black.

Source Code

You can download the source code of Ponder, the American checkers engine from Mamiyami Web site.

Copyrights

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

狂写 bash 脚本数日,偶有所得。

Usually, we use [ -n "$VAR" ] to check if a shell variable contain non null string. But bash man page does not describe how to check if a shell variable is set or not.

After some search and investigation, I got the following missing bash manual

Parameter Expansion

${parameter-word}
Use Default Values. If parameter is unset, the expansion of word
 is substituted. Otherwise, the value of parameter is substituted.
${parameter=word}
Assign Default Values. If parameter is unset, the expansion of
 word is assigned to parameter. The value of parameter is then
 substituted. Positional parameters and special parameters may not
 be assigned to in this way.
${parameter?word}
Display Error if Unset. If parameter is unset, the expansion of
 word (or a message to that effect if word is not present) is
 written to the standard error and the shell, if it is not
 interactive, exits. Otherwise, the value of parameter is
 substituted.
${parameter+word}
Use Alternate Value. If parameter is unset, nothing is
 substituted, otherwise the expansion of word is substituted.

Some section in bash man page for reference

${parameter:-word}
Use Default Values. If parameter is unset or null, the expansion
 of word is substituted. Otherwise, the value of parameter is
 substituted.
${parameter:=word}
Assign Default Values. If parameter is unset or null, the
 expansion of word is assigned to parameter. The value of
 parameter is then substituted. Positional parameters and special
 parameters may not be assigned to in this way.
${parameter:?word}
Display Error if Null or Unset. If parameter is null or unset,
 the expansion of word (or a message to that effect if word is not
 present) is written to the standard error and the shell, if it is
 not interactive, exits. Otherwise, the value of parameter is
 substituted.
${parameter:+word}
Use Alternate Value. If parameter is null or unset, nothing is
 substituted, otherwise the expansion of word is substituted.

Here are some examples

[ -n "${VAR+x}" ]  ## Fails if VAR is unset
[ -n "${VAR:+x}" ] ## Fails if VAR is unset or empty
[ -n "${VAR}" ]    ## Fails if VAR is unset or empty
[ -n "${VAR-x}" ]  ## Succeeds if VAR is unset
[ -n "${VAR:-x}" ] ## Succeeds if VAR is unset or empty
[ -z "${VAR}" ]    ## Succeeds if VAR is unset or empty