2016/12/02

ブレーキディスク交換

ちょっとハードなブレーキングをするとフロントからジャダーが発生するので、 フロントのブレーキディスクを交換する事にした。
調べてみると純正のパーツもまだ供給されている様なのだが、 折角の機会なので社外品を物色してみる。
最近よく見かける様になったウェーブディスクは見た目は格好良いのだが、 インプレッションなどを見ると信頼性や操作性でラウンドディスクの方が良いという意見が多く見受けられたので、 今回はブレーキディスクを各メーカーに OEM 提供も行っている、 信頼と実績の国内メーカであるサンスターの プレミアムレーシング を装着してみる。

Image: disk1.jpg

EM-102WR-SV

プレミアムレーシングは自分の好みである程度カスタマイズ可能なので、 アウターディスクは見た目重視でホール&スリットタイプ、 インナーディスクは軽量なメッシュタイプ、 ほぼ街乗りなのでセミフローティングタイプでカラーピンはシルバーを選択した。

ブレーキディスクを交換する場合はブレーキパッドも新品と交換するべきである (ブレーキディスクに同梱されている説明書にもそう明記されている)。 現状のブレーキパッドはまだ結構残っているので若干勿体ないのだが Vesrar 社のシンタードタイプのブレーキパッドを装着した。
ブレーキパッドはあらかじめヤスリなどで角の面取りを行っておき、 装着する時はカッパーグリスを裏面や上面に塗布するとブレーキ鳴きがある程度は解消される。

Image: pad.jpg

Vesrah ZV-VD255JL

交換作業は自動車用のパンタグラフジャッキを利用してフロントを浮かせて行った。
フロントホイールの脱着やブレーキディスクの脱着、 ブレーキパッドの交換を含めて作業は大体 1 時間程度で完了するのだが、 ブレーキは重要な保安部品なので経験や自信がない場合はショップにお願いするのが良いと思う。
自分で作業する場合はサービスマニュアルなどを参照して 新品交換が必要な部品や締め付けトルクなどは正しく管理して作業する。
今回はマニュアルに従ってディスクボルトは全て新品に交換した上で、 ネジロックを塗布して規定のトルクで締め付けた。

Image: disk2.jpg

標準的なラウンドディスク

全ての交換作業を終了したら最後にもう一度全てを見直してから試走してみる。
ディスクもパッドも新品なので当たりが出るまではブレーキのききはイマイチなのだが、 それでも従来のディスクに比べると操作性やブレーキのタッチ、そしてブレーキのききも格段に向上しているし、 新品のブレーキディスクなので当然なのだがジャダーも発生する事なくブレーキングが快適になった。
標準的なラウンドタイプのディスクなのでフロント周りはそれほど派手にならず、 インナーロータはホイールの色にピッタリの黒なので足元が引き締まった印象になったかな。

2016/11/21

画像の回転スクリプト

blog などに添付する画像を回転するためのスクリプト。
回転処理は ImageMagickrotate (1) コマンドで行うのだが、 一部のブラウザでは exif 情報に含まれる Orientation の値で画像を回転して表示するので、 回転した後で exif の Orientation の情報を修正している。
exif 情報の取得と設定は Perl モジュール Image-ExifTool を利用している。

getor: exif 情報から Orientation を取得する。

  1#!/usr/bin/perl -w
  2use Image::ExifTool ':Public';
  3my $file = shift or die "Please specify filename";
  4
  5$exifTool = new Image::ExifTool;
  6$exifTool->ExtractInfo($file);
  7
  8print $exifTool->GetValue('Orientation') . "\n";
    

setor: Orientation に水平 Horizontal (normal) を設定する。

  1#!/usr/bin/perl -w
  2use Image::ExifTool ':Public';
  3my $file = shift or die "Please specify filename";
  4
  5$exifTool = new Image::ExifTool;
  6$exifTool->SetNewValue('Orientation', 'Horizontal (normal)');
  7$exifTool->WriteInfo($file);
    

引数で指定されたファイルを回転して Orientation を設定する。

  1#!/bin/sh
  2for i in $*
  3do
  4    n=$(getor $i | awk '/^Rotate/{ print $2 }')
  5    if [ ${n:-0} -gt 0 ]
  6    then
  7        convert -rotate $n $i /tmp/_$$.jpg &&
  8        mv /tmp/_$$.jpg $i
  9        setor $i
 10    fi
 11done
    

2016/11/22 追記

以前作成した Exif 情報から GPS の緯度/経度情報を削除する を元に 全てシェルスクリプトで画像を回転するスクリプトを作ってみた。
dd (1) を利用してバイナリファイルの入出力を行い、 Exif 情報の取得と更新を実施している。
  1#!/bin/sh
  2# 画像を回転し Exif 情報の 'Orientation' を設定する
  3#
  4
  5#
  6# Endian を考慮して 2 バイト数字を取得する
  7#
  8#   $1: ファイル
  9#   $2: オフセット
 10#
 11get2Byte()
 12{
 13
 14    dd ${conv} if="${1}" bs=1 skip=$((${skip} + ${2})) count=2 2> /dev/null | od -d | awk '/^0000000/{ print $2 }'
 15
 16}
 17
 18#
 19# 任意の長さの文字列を取得する
 20#
 21#   $1: ファイル
 22#   $2: オフセット
 23#   $3: 文字列長
 24#
 25getString()
 26{
 27
 28    dd if="${1}" bs=1 skip=$((${skip} + ${2})) count=${3} 2> /dev/null
 29
 30}
 31
 32#
 33# 0th IFD データの解析処理
 34#
 35#   $1: ファイル
 36#   $2: 0th IFD のタグ数
 37#
 38ifd()
 39{
 40
 41    local   i offset
 42
 43    i=0
 44
 45    while [ ${i} -lt ${2} ]
 46    do
 47        # 0th IFD のタグ情報
 48        offset=$((${3} + 22 + (${i} * 12)))
 49        # Orientation の場合はオフセットを表示して終了
 50        if [ $(get2Byte "${1}" ${offset}) -eq 274 ]
 51        then
 52            echo ${offset}
 53            break
 54        fi
 55        i=$((i + 1))
 56    done
 57
 58}
 59
 60#
 61# Orientation 情報の取得
 62#
 63#   $1: ファイル
 64#   $2: Orientation IFD のオフセット
 65#
 66getOrient()
 67{
 68
 69    echo $(get2Byte "${1}" $((${2} + 8)))
 70
 71}
 72
 73#
 74# Orientation 情報のセット
 75#
 76#   $1: ファイル
 77#   $2: Orientation IFD のオフセット
 78#
 79setOrient()
 80{
 81
 82    echo -ne "\00\01" | dd conv=notrunc of="${1}" bs=1 seek=$((${2} + 8 + ${skip})) 2> /dev/null
 83
 84}
 85
 86#
 87# ファイルフォーマットから skip するバイト数を取得
 88#
 89#   $1: ファイル
 90#
 91getSkip()
 92{
 93
 94    if [ "$(getString "${1}" 6 4)" = "Exif" ]
 95    then
 96        # Exif 情報格納
 97        echo 0
 98    elif [ "$(getString "${1}" 24 4)" = "Exif" ]
 99    then
100        # JFIF 情報格納
101        echo 18
102    else
103        # Exif 情報なし
104        echo -1
105    fi
106
107}
108
109#
110# convert(1) のオプション取得
111#
112#   $1: ファイル
113#
114get_conv()
115{
116
117    offset=$(ifd "${1}" $(get2Byte "${1}" 20))
118    if [ ${offset:-0} -gt 0 ]
119    then
120        case $(getOrient "${1}" ${offset}) in
121            2 ) opt="-flip";;                       # 上下反転
122            3 ) opt="-rotate 180";;                 # 180度回転
123            4 ) opt="-flop";;                       # 左右反転
124            5 ) opt="-flop -rotate 90";;            # 上下反転+270度回転
125            6 ) opt="-rotate 270";;                 # 90度回転
126            7 ) opt="-flip rotate 270";;            # 上下反転+90度回転
127            8 ) opt="-rotate 90";;                  # 270度回転
128        esac
129        echo ${opt}
130    fi
131
132}
133
134# メイン処理
135for i in $*
136do
137    skip=$(getSkip "${1}")
138    if [ ${skip} -ge 0 ]
139    then
140        # Endian
141        test $(getString "${1}" 12 2) = "MM" && conv="conv=swab"
142        opt=$(get_conv $i)
143        if [ -n "${opt}" ]
144        then
145            # 画像を回転
146            convert ${opt} "${i}" /tmp/_$$.jpg && mv /tmp/_$$.jpg "${i}"
147            # conviert(1) により TFIF 情報が付加される
148            skip=$(getSkip "${i}")
149            setOrient "${i}" $(ifd "${i}" $(get2Byte "${i}" 20))
150        fi
151    fi
152done
    

2016/11/23 追記

convert (1) だけで出来る事が判明
$ convert -auto-orient 入力ファイル.jpg 出力ファイル.jpg 
    
更に identify (1) を利用すると Exif 情報も取得できるので ImageMagic が導入されている場合は以下のスクリプトで完結する。
  1#!/bin/sh
  2for i in $*
  3do
  4    test "`identify -verbose $i | awk '/exif:Orientation/{ print $2 }'`" != 1 &&
  5        convert -auto-orient $i /tmp/_$$.jpg &&
  6        mv /tmp/_$$.jpg $i
  7done
    

2016/11/20

バルブの LED 化

グリップヒータを装着した事で消費電力が一挙に増加してしまったので、 少しでもバッテリの負荷を軽減しようと各バルブを LED 化した。

テールライト
まず交換したのは一番簡単なテールライトのバルブで、 ブレーキライトと兼用のダブル球を使用しておりバブル形状は S25、ソケットは BAY-15Dとなっている。 ZeaL ではナンバー灯を兼用しているので一部分が白色 LED となっている VALENTI の B13-S25WRW-1 を選択した。 この LED バルブは金具に対して内側の発光部が 180 度回転するので、 ナンバー灯用の白色 LED 部分を正しくナンバープレート側に向ける事ができる優れ物。
ヘッドライト
ヘッドライトは一般的な H4 タイプなので選択肢は沢山あったのだが、 数ある製品の中で一番シンプルだと思われる IMPACT IM-LED-008 を選択。
Image: head.jpg

ヘッドライト用LEDバルブ
CREE 社の SMD チップを利用しているので光量には不足がなく、 コントローラなどが本体内部に全て収まっているのでライトケースに簡単に格納でき、 放熱はヒートシンクのみで冷却用のファンもないシンプルな造りが気に入った。
ウィンカー
ウィンカーはシングル球でバルブ形状は S25、ソケットは BA-15S タイプ。 LED に変更する事で減少する消費電力の影響で早くなってしまう点滅は 対応しているウィンカーリレーに交換する事で解消させた。
やっかいなのがメーターパネルのインジケータで、 ZeaL の場合はリレーと並列で繋がっている (ウィンカーの点灯とインジケータの点灯が交互なタイプ)ので、 そのままではウィンカーが正しく点滅しない(消灯時にも点灯してしまう)ために インジケータの配線を切断してダイオードで整流してなぎ直す必要があったので作業が少し面倒だった。
この配線は整流用のダイオードの入手が面倒だったので、 POSH 製のインジケータスタビライザ 090010-IS を利用した。
これらの問題はウィンカーと並列に抵抗を繋いでも解決可能らしいのだが、 そもそも省電力のためにバルブを LED に変更しているので 抵抗を繋いで消費電力を増やすのは全く無意味になってしまうのでリレーやインジケータの配線を変更した。

これで随分と省電力化が出来た様で、 グリップヒータ使用時でもヘッドライトやウィンカーの点滅が安定している。

2016/11/19

サスペンション交換

ZeaL のサスペンションは元々ソフトな設定なのだが、 走行距離と経年変化でヘタってしまい高速コーナーで全く踏ん張りがきかずにフラついていたので交換。
マイナー車ゆえに ZeaL 用などという設定はまず見かけないので、 エンドアイの内径や全長を参考に SR400 や XJR400 向けの製品から選択する。 ZeaL の場合はスペースの都合でリザーバタンク式は装着できないので DAYTONA の 24149 を選択。

Image: sus1.jpg

交換したリアサス

左側はともかくマフラーのある右側は隙間から手を入れて交換する事も可能なのだが、 折角なのでマフラーを外してついでに少しだけ綺麗に磨いてみた。

Image: sus2.jpg

交換したサスペンションは安価なのだが伸び側の減衰力が 11 段階で調整できる。
新品のサスペンションは動作もしっかりしていて、 高速コーナーで荷重がかかってもしっかりと支えてくれている感じがして安心。

2016/11/18

グリップヒータ

行きつけのバイク屋さんで「凄く良いよ」と聞いたのでグリップヒータを導入してみた。
装着したのはKIJIMA の GH07という製品で、 スイッチが左グリップ部と一体なので邪魔にならず見た目もスッキリしていて良い感じ。
ちなみに古いバイクなので念のためにリレーを利用してバッテリーから配線を直結した。

Image: grip.jpg

グリップヒータ

温度は 5段階の調節が可能で現在設定されている状態が LED の色で判断できる。
最近は寒い日が続いているのでしっかり稼働させているのだが、 5段階の3番目程度で十分暖かく、この時期でも夏用のグローブで問題ないので、 十分実用的だろう。
電圧がある程度以下になると自動で電源が切れるそうなので古いバイクでも安心…かな?
最近は更にハンドルカバーも装着したのでコタツ状態でぬくぬく(笑

2016/11/17

ラジアルポンプマスターシリンダー

ZeaL にもラジアルポンプマスターシリンダーを装着した。
装着したのは自分の中では定番の DAYTONA から発売されている NISSIN 製のマスターシリンダ で、 費用対効果で考えると十分に納得できる価格の製品だと思う。
純正のマスターシリンダは 14mm のタイプなので Ø 17の製品を選択。 今回は他にも色々と作業があったので行きつけのバイク屋さんに作業をお願いした。

Image: break2.jpg

ブレーキレバーを握る方向とマスターシリンダーを押す方向が同じなので、 純正のマスターシリンダに比べると遙かにコントロールしやすい。 更にブレーキレバーの遊びの調整幅が純正品よりも格段に大きいので、 手の小さな自分でも適切な握り幅に調整できるのも素晴らしい。
例によって別体式のマスターシリンダーは物々しい感じがして 見た目がちょっと派手なのだがコレはしょうがないか…

Image: break1.jpg

マスターシリンダーのステーはこの後で上下を逆にしました

同時にブレーキラインも SWAGE-LINE のステンレスメッシュ製に交換した。 ホースエンドはステンレスを、ホース本体はなるべく目立たない様に ブラックスモークホースをそれぞれ選択したので一見すると純正品に見えなくもない。
これでフロントブレーキの操作性と信頼性が更に改善されたかな。

2016/11/16

車載工具

純正の車載工具が搭載されていなかったので自分で選んだ工具を車載工具替わりに搭載した。
自宅にはそれなりに工具があるため、車載工具は基本的に出先での緊急作業のみなので、 今までの経験などから必要最低限の工具を揃えた。

Image: tools.jpg

車載工具

搭載した工具は写真左から以下の通り。

  • 8 mm コンビネーションレンチ
  • 10 mm コンビネーションレンチ
  • 12 mm コンビネーションレンチ
  • 14 mm コンビネーションレンチ
  • ドライバ (Philips / flat 交換式)
  • プライヤ
  • バイスプライヤ
  • 6角レンチセット
  • モンキーレンチ
  • 16 x 21 mm プラグレンチ
これらの工具を手持ちのナイロン製巾着に入れて、 タンデムシート下のスペースに収納してある。
これだけ有れば出先での緊急作業は問題ないだろうと思われる。

レンチはスパナにすれば半分の本数にできたのだが、 ボルトを回すのはメガネタイプの方が安心できるのでコンビネーションにした。
古いバイクなのでネジ山がなめたりするのも嫌だったので、 多少高価なのだが信頼と安心の KTC で揃えた(6角レンチセットは除く)。
使わないに超した事はないがいざという時のためにも 「備えあれば憂い無し」の心がけで。

2016/11/14

YAHAMA FZX250 ZeaL

先日より色々な縁と偶然が重なり久々にバイクに乗っている。

Image: ZeaL1.jpg

YAMAHA FZX250 ZeaL

規制など様々な理由で今は絶滅してしまった 4気筒の 250cc で、 YAMAHA らしい流麗なデザインと FZR250R ゆずりの 高性能な GENESIS エンジンを搭載しており、 街中から多少のワインディングまで今でも十分楽しめるバイクだ。

フレーム番号から察すると1992年の製造なので既に25年以上経過しているのだが、 そうとは思えないほどの綺麗な状態で大切に保管されていた事が判る。

Image: ZeaL2.jpg

非常にコンパクトな車体

良く知られている様にジャンプするイルカをモチーフにしたデザインは 今見ても古くささを感じさせない素晴らしいデザインなのだが、 発売当時はもっと高性能なバイクが求められていたのかそれほど人気は出なかった。
低重心で足つき製も良くそれほど重くもないので取り回しも楽(しかもそこそこ速い)、 そして何より美しいデザインというとても素晴らしバイクなので、 出来るだけ長く乗り続けたい。

Image: ZeaL3.jpg

特長的な右2本出のマフラー

2016/11/13

燻製作り

以前から燻製を作りたいと思っていたのだが、 近所のホームセンタで段ボール製の簡易的な燻煙キットを見つけたので 買ってきて早速燻製造りをしてみた。

購入したのは SOTO の燻家(スモークハウス)という、 段ボール製のスモーカーに金網やスモークチップなど必要な物が全て同梱されており、 具材さえ揃えればすぐに燻製造りが楽しめるという優れもの。

初心者(というか産まれて初めて)なので、まずは簡単なチーズやソーセージ、はんぺんから。

Image: smoke1.jpg

材料を並べて

付属のチップをアルミのトレーに乗せてバーナで着火すれば準備完了。

Image: smoke2.jpg

チップに着火

本体は段ボール製で簡単に組み立てられるので、 開梱してからものの5分も経たないうちにスモーク開始。
付属のチップは大体1時間半位は持続する様で、 暫く待っているとほどよく温燻が完成する。

Image: smoke3.jpg

燻煙中
とても美味しいスモークチーズやスモークソーセージが完成したのだが… なんと写真を撮り忘れて食べ尽くしてしまうという大失態が……

初めてでも簡単に美味しく出来たので次は別な食材に挑戦しようと画策中。
というか熱燻もできる様なちゃんとしたスモーカーに物欲が……

2016/11/10

Coleman Exponent Apex II

Exponent Fyrestorm同様 Coleman 製の分離式 Dual Fuel Stove。

Image: apex1.jpg

Apex II Stove
Fyrestorm とは異なり日本で正式に発売されたモデルなのでボトルのラベルが日本語になっている。
こちらも一般的なホワイトガソリンは勿論、自動車用の無鉛ガソリンが利用できる。

燃料タンクとバーナー部を連結するホースの造りはしっかりしている様に見える。
一体式のストーブに比べると本体が低いのでその分だけ安定感も高い。 また、脚のうち1本には角度を調整するためのボルトが装着されているので、 斜めの地面や不安定な地面でも水平に設置できる様に工夫されている。

Image: apex2.jpg

ボルトで調整が可能

一体式のストーブに比べると若干予熱的な操作が必要なのだが、 基本的には他の Coleman 製ストーブ同様簡単に扱える様になっている。
更に火力調整のためのバルブが別になっているので火力調整が容易なので料理の幅も広がる(勿論ご飯も美味しく炊ける)。
さらに専用のケース(バーナー部を格納できる。ボトルはそのまま携行する感じ?)や、 ゴムリングやスプリングなどの消耗品がセットになった「サービスパーツ」まで初めから同梱されている。

Image: apex3.jpg

一式

本体がコンパクトな事、ボトルが燃料の携行容器になる事、 本体が熱源から遠いのでオーブンなどを使った高温の調理でも割と安心な事など 別体式のメリットは結構あるのでこれからのキャンプで大活躍しそう。

Image: apex4.jpg

Apex II Stove

2016/10/30

It's a special day!!!


Hope your special day, brings you all that your heart desire!
Here's wishing your a day full of pleasant surprises!

Happy Birthday!!!

2016/09/03

Optimus R8

こちらもスウェーデンの Optimus 社製ストーブで R8。
バーナー、タンクなどがコンパクトな四角いケースにすっぽり収まるので、コンパクトかつパッキングしやすいという素晴らしいストーブ。 その外観から「お弁当箱」の通称で長く親しまれて来た名機なのだが、 残念ながら 2005 年に生産が中止されてしまい現在新品は入手できない。

Image: 20160825_122615038_iOS.jpg

使用状態

厚型のベークライトハンドルなので最終型よりは随分と前のモデルが未着火の状態で某オークションに適正な価格で出品されていたので落札した。
折角の未着火コンディションだったので点火する時は若干躊躇したが、ストーブは使ってこその物なので着火した後ガンガン使っている。

Image: 20160825_122814328_iOS.jpg

コンパクトに収納

こちらも 123R 同様予熱が必要なのだが、同時に入手したライセンス生産品と思われるポンプを使って与圧すると、着火していない状態で燃料調整バルブを少しだけ開くとでバーナー下部のプレヒートトレイに燃料を適量噴出させる事ができるので予熱も手軽に行える。

Image: 20160825_122826937_iOS.jpg

お弁当箱

2016/09/02

Optimus 123R SVEA

言わずと知れたスウェーデンの名機 Optimus の 123R SVEA。
19世紀以来、基本的な構造は変更されていないらしい。
Coleman 社製品の様なポンプ構造も持たないシンプルな作りなので、使用時は余熱(プレヒート)が必須となる。
Coleman 製品に慣れていると面倒と言えば面倒なのだが、そもそもキャンプ自体が不自由さを楽しむための様なものなので、アウトドアでは面倒さを楽しむ余裕があっても良いように思う。

Image: 20160825_123134282_iOS.jpg

真鍮製なので金色に輝く本体

付属しているアルミ製のクッカーは収納時に蓋としても機能する様だが、正直このクッカーを使う機会は多分絶対になさそうな気がする。

Image: 20160825_123253123_iOS.jpg

付属のアルミ製クッカーと

余熱は本体バーナー根元のくぼんでいる部分に燃料をたらして着火する。
エスビットなどの固形アルコールや液体のアルコールなどを使うのが一般的な様だが、荷物が増えるのも嫌なのでスポイトで燃料タンクから少量の燃料を吸い出して余熱している(スポイトも荷物になるが本体内に格納できるので良しとしている)。
数分で余熱が完了する(燃料がほぼ燃え尽きる)ので火力調整ノブを開くと着火できる。
バーナーに着火直後は赤い炎がゆれるがすぐに青い炎で安定して燃焼を始める。
このタイプのバーナーの例にもれず火力が少ない割には燃焼音は結構な轟音なので、深夜・早朝のキャンプ場では使うのを若干ためらってしまうレベルなのだが、一人でキャンプする時には不思議と心強さを感じさせてくれる音でもある。

使い勝手や火力を考えると正直言ってあまり出番がないのだが、夜が更けたキャンプ場でこの素晴らしいストーブが初めて作られた過去の日々に思いをはせるのもたまには悪くなさそうだ。

2016/09/01

転職しました

私事で恐縮ですが(ま、Blog なんて私事のカタマリですが)、 本日より新天地での仕事が始まりました。
今まで殆ど関与したことがない WebRTC という分野で、 どこまで力を発揮できるか新たな挑戦となります。

今後とも引き続きよろしくお願いします。

2016/05/11

行抜き出しの速度

某所で話題になったのでテキストファイルの行抜き出し速度を検証してみた。
検証用のデータは若干サイズ的に不足があるのだが、 以下のシェル芸で 24M のランダムなテキストデータを作成した。

$ for i in `seq 50000`; do printf "%05d:%s\n" $i `LC_CTYPE=C tr -c -d 'a-zA-Z0-9' < /dev/urandom | dd bs=501 count=1 2> /dev/null`; done > base
$ ls -l base
total 49616
-rw-r--r--  1 mitz  staff  25400000  5 11 12:15 base
    
作業は全て iMac 上で実施した。
$ uname -a
Darwin coredump.local 12.6.0 Darwin Kernel Version 12.6.0: Wed Mar 18 16:23:48 PDT 2015; root:xnu-2050.48.19~1/RELEASE_X86_64 x86_64
    

検証は以下の手段による行の抜き出しの100回繰り返しを10回実行した時の平均た時間を計測した。

  • tail(1) と head(1) の組み合わせ (入力ファイルを tail(1) の引数として直接指定)
  • tail(1) と head(1) の組み合わせ (入力ファイルを cat(1) を利用してパイプ経由で tail(1) に通知)
  • head(1) と tail(1) の組み合わせ (入力ファイルを head(1) の引数として直接指定)
  • head(1) と tail(1) の組み合わせ (入力ファイルを cat(1) を利用してパイプ経由で head(1) に通知)
  • sed 単体 (入力ファイルを sed(1) の引数として直接指定)
  • sed 単体 (入力ファイルを cat(1) を利用してパイプ経由で sed(1) に通知)
  • awk 単体 (入力ファイルを awk(1) の引数として直接指定)
  • awk 単体 (入力ファイルを cat(1) を利用してパイプ経由で awk(1) に通知)
  • sed 単体で検出後即時終了 (入力ファイルを sed(1) の引数として直接指定)
  • sed 単体で検出後即時終了 (入力ファイルを cat(1) を利用してパイプ経由で sed(1) に通知)
  • awk 単体で検出後即時終了 (入力ファイルを awk(1) の引数として直接指定)
  • awk 単体で検出後即時終了 (入力ファイルを cat(1) を利用してパイプ経由で awk(1) に通知)

結果は以下の通り。 自分の予想に反して head(1) と tail(1) の組み合わせが一番早くて驚き。
OS X の標準コマンドなので GNU 拡張された head(1) や tail(1) ではない筈なので、 そもそもオリジナルの head(1) の実装が良いのだろうか。

追記

twitter 及び当ブログのコメントで指摘を頂いたので sed(1) と awk(1) で 行を検出した場合は終了する場合の時間も計測してみました。
head(1) と tail(1) をパイプで繋いだ場合も、 2番目のコマンドで1行出力すると SIGPIPE が発生して 1番目のコマンドも終了しているのだろうか?

tail -n 4036 base | head -1
real0m0.843s
user0m0.542s
sys0m0.406s
cat base | tail -n 4036 | head -1
real0m16.681s
user0m16.071s
sys0m1.900s
head -n 4036 base | tail -1
real0m1.495s
user0m1.571s
sys0m0.351s
cat base | head -n 4036 | tail -1
real0m1.534s
user0m1.667s
sys0m0.512s
sed -n '4036p' base
real0m3.183s
user0m2.262s
sys0m0.835s
cat base | sed -n '4036p'
real0m2.485s
user0m2.240s
sys0m1.253s
awk '{ if(NR==4036) print $0 }' base
real0m19.430s
user0m18.357s
sys0m0.893s
cat base | awk '{ if(NR==4036) print $0 }'
real0m18.911s
user0m18.513s
sys0m1.369s
sed -n '4036{p;q;}' base
real0m0.467s
user0m0.270s
sys0m0.182s
cat base | sed -n '4036{p;q;}'
real0m0.456s
user0m0.347s
sys0m0.353s
awk '{ if(NR==4036){ print $0; exit;} }' base
real0m1.852s
user0m1.581s
sys0m0.199s
cat base | awk '{ if(NR==4036){ print $0; exit;} }'
real0m1.775s
user0m1.676s
sys0m0.355s

2016/04/06

文字列の読み方を表示する

自動生成したパスワードなどランダムな文字列をメイルなどで他人に伝える場合、 フォントによっては判別しずらい文字がある。
それらの判別しづらい文字を正確に伝えるために、 数字とアルファベットの読みを表示する簡単なプログラム。
標準入力から読み込んだ英数字の読みを表示し英数字以外は無視する。

  1#!/bin/sh
  2
  3awk 'BEGIN{
  4        p["0"] = "ぜろ";
  5        p["1"] = "いち";
  6        p["2"] = "に";
  7        p["3"] = "さん";
  8        p["4"] = "よん";
  9        p["5"] = "ご";
 10        p["6"] = "ろく";
 11        p["7"] = "しち";
 12        p["8"] = "はち";
 13        p["9"] = "きゅう";
 14        p["a"] = "エー";
 15        p["b"] = "ビー";
 16        p["c"] = "シー";
 17        p["d"] = "ディー";
 18        p["e"] = "イー";
 19        p["f"] = "エフ";
 20        p["g"] = "ジー";
 21        p["h"] = "エイチ";
 22        p["i"] = "アイ";
 23        p["j"] = "ジェイ";
 24        p["k"] = "ケー";
 25        p["l"] = "エル";
 26        p["m"] = "エム";
 27        p["n"] = "エヌ";
 28        p["o"] = "オー";
 29        p["p"] = "ピー";
 30        p["q"] = "キュー";
 31        p["r"] = "アール";
 32        p["s"] = "エス";
 33        p["t"] = "ティー";
 34        p["u"] = "ユー";
 35        p["v"] = "ブイ";
 36        p["w"] = "ダブリュー";
 37        p["x"] = "エックス";
 38        p["y"] = "ワイ";
 39        p["z"] = "ゼット";
 40    }
 41    {
 42        n = split(tolower($0), words, "");
 43        for(i=1; i<=n; i++){
 44            v = v g p[words[i]];
 45            g = " "
 46        }
 47        printf "%s (%s)\n", $0, v;
 48    }'
    

nkf (1) や kakashi (1) などで出来ないかとちょっとだけ探ったが、 出来ない様だったので適当にでっち上げた。
他にもっと良いものがあれば是非教えて下さい。

読みの部分を「アルファ」「ブラボー」「チャーリー」等とすれば フォネティックコードにも変換できる。

2016/03/09

Coleman 200A Lantern

こちらは1960年代に作製されたビンテージコールマンの赤いランタン。
いわゆるバースデーランタンという事で自分の産まれた年に生産されたものを探して入手したもの。
本当は月まで合わせたかったのだが、とある資料によると産まれた月には生産されていなかった様なので、 とりあえず産まれた年に生産されたランタンで妥協している。
こちらもアメリカのオークションサイト eBay で入手したのだが年代品の割に状態が良くて普段使いも可能 (というか入手してからは普段からキャンプに持参して普通に使い倒している)。
現在は多少なりとも虫よけの効果を期待してオプション品のアンバー色のグローブを装着している (効果の程は…??)。

色はバーガンディではなく明るめの赤でベンチレータは高いタイプ、本体のロゴステッカーは枠のないタイプとなっているのだが、 この手の細かな部分は前のオーナーが変更している場合もあるのでオリジナルではない可能性もある。
コレクターではないし、製造年月は底面に刻印されているのでタンクが交換されていない限りは間違っていないと思われる。
本体とは別に入手した同年代の「ガルウィングケース」に格納してキャンプに携行している。

細かい部分は色々と改良されているが基本的な構造は現行のランタンとほぼ同じなので当時から完成度の高さが伺える。
ただし現行品とは異なりメインの燃料バルブ以外にチップクリーナーと呼ばれる小型のバルブが付いていて、 点火や消火の時はこのチップクリーナも操作する必要がある。
特に点火時の操作が若干複雑で、着火方法やタイミングを間違えると グローブの内部が炎の包まれる「火だるま」状態となるので慣れるまでは点火するときは注意が必要だろう。

Image: RIMG0836.JPG

ビンテージランタン
Image: RIMG0838.JPG

チップクリーナ
Image: RIMG0058.JPG

アンバーのグローブを装着
Image: RIMG0060.JPG

ガルウィングケース

交換部品

マントル 21A102J (21A型が利用可能)
ジェネレータ 200A5891
燃料バルブ 200-6571
ポンプ 242J5201 → 3000000455(220A6201)
グローブ R690B051 (#550)
チェックバルブ 200-6381 (118mm)

200A の点火方法

点火
  1. 燃料を入れる
  2. チップクリーナーを数回転させてレバーを上向きの状態で止める
  3. ポンピングする
  4. メインのバルブを 1/4 回転くらい開ける
  5. チップクリーナを徐々に下向きに回転させ燃料が噴出される音が聞こえたら再び閉じる
  6. メインのバルブも閉めて追加ポンピングをしながら30秒程度放置する
  7. メインのバルブを 1/4 回転くらい開ける
  8. マントル付近に火を近づける
  9. チップクリーナを 1/4 回転までの範囲で徐々に開き点火した所で止める
  10. ジェネレータが温まるまでチップクリーナやバルブを微調整する
  11. 必要に応じて追加ポンピング
  12. ジェネレータが温まると燃焼音が「シュゴー」に変化するのでチップクリーナを全開にする
  13. チップクリーナーで明るさの調整を行う
消火
  1. メインのバルブを閉じる
  2. 消火できたらチップクリーナを閉める
点火する場合は最初にチップクリーナを回転させる時に燃料が噴出する位置を大体把握しておき、 実際に着火する時その位置付近でタイミングよく着火する様にすれば「火だるま」状態を回避できる。

Image: 200-6571.jpg

チップクリーナのある燃料バルブ
Image: wrench.jpg

純正ではないがチェックバルブの交換に威力を発揮するレンチ
このレンチはコネクティングロッドでチェックバルブを固定する事でねじ山をなめる事なく 固着したチェックバルブも外せる様に設計されていて大変便利。

2016/03/08

Coleman Feather Lantern

このランタンはコールマンのランタンの中でも最も小さい種類だと思う。
1マントルのコンパクトなタイプなので補助的な明かりとして料理スペースなどの照明などに重宝している。
コールマンの純正ではフロストタイプのグローブは発売されていないのだが、 CAMPINGAZ の Straight globe M (80x80mm) が殆どピッタリのサイズなので流用している。
フロストタイプのグローブだと食事の時に食卓の照明としても眩しすぎずに最適な明るさになる。 コンパクトでテーブルの上に設置してもそれほど邪魔にならないのも良い。

就寝時はバルブを絞り目にして常夜灯替わりにテントの前に置いておく様な使い方もできる。

Image: IMG_3245.JPG

1マントルのシンプルな構造
Image: IMG_3249.JPG

285 ランタンと並べるとサイズの違いがわかる
Image: RIMG0049.JPG

CAMPINGAZ のフロストグローブ装着

ポンプキャップは新型の樹脂製。
ポンプカップは新型のネオプレーンタイプ。

交換部品

マントル 20-102J (20型が利用可能)
ジェネレータ 222A2991 → 226-2991
ポンプ 400E5211
グローブ R136-048J (#2)
チェックバルブ 200-6381 (118mm)

2016/03/07

Coleman 285A Dual Fuel Lantern

こちらはコールマンの代名詞とも言えるランタン (コールマンのマークもランタンだしね)。
2マントルタイプなのでとても明るくテントサイトを照らしてくれるので、 主にサイトのメインの明かりとして大活躍している。

このランタンもジェネレータ交換なしでホワイトガソリン以外に無鉛ガソリンも利用できるタイプ。 とは言ってもやはりジェネレータ詰まり等発生するそうなので無鉛ガソリンはあくまで緊急避難的使い方になると思う。

ランタンはマントルと呼ばれる部分を発光させているのだが、マントルは布製の袋の様になっていて、 使用する前にあらかじめ燃やしておく必要がある (これを「カラ焼き」と呼ぶらしい)。 カラ焼きされたマントルは言ってみれば灰の様な物なので非常に脆くなっている。 ちょっとした衝撃でも崩れてしまうので扱いは要注意。 キャンプの時はマントルだけは必ず予備を持って行った方が良いと思う。

バルブを全開にすると新聞も読める程に明るくなるが、その状態でも7時間程度は燃料がもつので2泊程度のキャンプなら燃料の補給は不要で便利。 明るすぎて他のサイトに迷惑をかけない様に注意する必要があるので、最近はコールマン純正のリフレクター (日本未発売品 2000008533) を利用している。

Image: IMG_3246.JPG

明るさの調整も簡単
Image: IMG_3247.JPG

2マントルタイプ
Image: RIMG0048.JPG

リフレクターを装着

ポンプキャップは新型の樹脂製。
ポンプカップは標準は新型のネオプレーンタイプなのだが、純正の革製ポンプカップに変更する事でポンピングの感触が随分と改善される。

交換部品

マントル 21A102J (21A型が利用可能)
ジェネレータ 285-5891
ポンプ 242J5201 → 3000000455(220A6201)
グローブ R690B048J (#4)
R288-046J (フロステッドタイプ)
R285-043J (フロステッドタイプ スペシャルバージョン)
チェックバルブ 200-6381 (118mm)

2016/03/05

Primus Omni Lite Ti

今回はコールマンではなく Primus 社の Omni Lite シリーズのチタンモデル Omni Lite Ti。
この製品は付属のジェットを交換する事でホワイトガソリン、無鉛ガソリン、ケロシン (灯油)、軽油をはじめとして OD 缶のガスまで利用できてしまう。 一般的に入手可能な燃料であれば何でも使えるので緊急時にはとても頼りになるストーブだ。
しかも本体はチタン製で折りたたみ可能なので、丈夫でかつ軽量コンパクトなストーブとなっていて普段から車に搭載して携行しても良い。

燃料側に燃料用バルブ、本体側に火力調整用のバルブがあるので火力調整も簡単に可能で炊飯も楽にできる (やはり美味しいご飯が炊けるのは大切)。
ガスで利用する場合は OD 缶をコネクタに接続して燃料側のバルブを開くだけですぐ着火するので、その後は本体側のバルブで火力調整を行う。
液体の燃料を利用する場合はコールマンと違って余熱が必要になるが、 それほど面倒ではないので「一種の儀式」と割り切って手間を愉しむのも良いと思う。
ただし燃焼音は非常に大きく轟音と言っても過言ではないレベルなので夜遅い時間のキャンプ場では使用をためらってしまう。

ジェットは

  1. ガス用
  2. ホワイトガソリン用
  3. ケロシン用
と3種類付属しているが、今の所ガスとホワイトガソリンではジェットを交換せずに利用できている。

Image: RIMG0829.JPG

液体燃料用のタンクを接続
Image: RIMG0831.JPG

チタン製の本体
Image: RIMG0832.JPG

OD 缶を接続

液体燃料での使用方法

点火
  1. タンクに燃料を入れてホースと連結する
  2. 20回程度ポンピングする
  3. タンクの ON の文字を上にして水平にする
  4. 燃料側のバルブを全開にする
  5. 本体側のバルブを半回転ほど回して数秒待ちバーナー下部のカップに燃料を補給する
  6. 点火する
  7. 40秒程度燃焼させると炎が弱くなるので本体側のバルブを開く
  8. 青い炎で燃焼すれば OK
  9. 赤や黄色い炎の場合は余熱が不足しているので本体側のバルブを閉じで余熱を続ける
消火
  1. タンクの OFF の文字を上にして水平にする
  2. 1分程度で自動で消火する
  3. 燃料側のバルブを全閉にする
  4. 本体側のバルブも全閉にする

2016/03/04

Coleman 533 Dual Fuel Stove

508 と基本的な構造は同じだけど燃料としてホワイトガソリンと無鉛ガソリンが利用できるタイプ。
何故か日本国内では正規品として販売されていないので平行輸入品を購入した。
ジェネレータの交換なしでホワイトガソリンと無鉛ガソリンが利用できるらしいが、 無鉛ガソリンを使うとジェネレータが詰まったりするので使用は推奨されておらずあくまでも緊急時用らしい。
実際に無鉛ガソリンで燃焼させた事がないのでいつか燃焼させてみたい。

最近の製品だから当然1レバーなので火力調整はすこしだけ難しい (できない事はないけど)。
以前は 508 と2台でキャンプに行っていたが 400A を入手して以来出番がなく家で待機している (ディーゼル車に乗り換えた事で無鉛ガソリンが手元になくなってしまった事も出番が減った理由の一つ)。 たまには使おうとは思うのだが2レバーの便利さを知ってしまうと1レバーの出番は少ない。

Image: RIMG0802.JPG

Dual Fuel モデルは本体がシルバー
Image: RIMG0804.JPG

2011年07月製造
Image: RIMG0811.JPG

純正のスクリーンを装着

キャンプ場などアウトドアでストーブを利用する場合は基本的にスクリーンを装着して利用している。
コールマン純正のスクリーンはスポーツスター系の 508 や 533 だけではなく 400A にも対応しているので1個持っていると便利。

ポンプキャップは新型の樹脂製。
ポンプカップも新型のネオプレーンタイプ。
コールマンの純正ポンプはアルミと樹脂のキャップがどちらも付属しているので 508 や 400A と同じものが利用できる。
1レバーなのでバルブはクリーナーフックのあるタイプとなっている。

交換部品

ジェネレータ 533-5891
ポンプ 242J5201 → 3000000455(220A6201)
バルブ 508A5571
チェックバルブ 200-6381 (118mm)

2016/03/03

Coleman PEAK1 400A Stove 2 Lever

バーナー部分は 508 と共通でタンク部分がより小型化されたのがこちらの 400A ストーブ。
小型のタンクに加えて折りたたみタイプの脚が採用されていてスポーツスターよりも随分とコンパクトで携行性に優れている。
一時期は車のトランクに常時携帯していて適切な場所があればパーコレータで珈琲を淹れて飲んだりしていた。
この 400A はアメリカのオークションサイト eBay で落札したのだが、鍋にも利用できる (使いたくないけどね) アルミケース、 鍋として使う時のためのアルミ製ハンドルなどが付属していた。
前述の通りタンク以外の部品は2レバーの 508 と殆ど共通なのでメンテも楽だし、 使い勝手や火力は 508 と同じなのでこちらも普段からとても重宝している。
現行機種のフェザーストーブと殆ど同じデザインなのだが、有鉛ガソリンには対応しておらず、 折りたたみの脚に穴が開いていないなど細かな差がある。
こちらも2レバータイプなので火力調整が容易にできるのが嬉しい。
508 と比較するとコンパクトな分だけ燃焼時間が若干短いがキャンプでは 508 と並べて併用しているのであまり気にならない。

Image: RIMG0792.JPG

コンパクトな本体
Image: RIMG0793.JPG

付属のアルミケースとハンドル
Image: RIMG0038.JPG

1988年8月製造

ポンプキャップは旧式のアルミ製。
ポンプカップはこちらも純正の革製ポンプカップに変更している。

交換部品

ジェネレータ 400-5891 → 508-5891
ポンプ 400E5211
バルブ 400-5571 → 400B5571
チェックバルブ 400-6381 (96mm)

バーナー周りの交換部品は 508 と共通な部品も多いのでメンテナンス性は非常に高いが、 チェックバルブとポンプはタンクが小型のために 508 に比べて短いタイプとなる。

Image: 508-5891.jpg

508 / 400A で共用の2レバー式ジェネレータ

Image: 508-5571.jpg

フック無しで真鍮製フードチューブのバルブは偶然入手したので大切に保管している。

Image: 200-6381.jpg

ゴム製の O リングを装着したチェックバルブ

2016/03/02

Coleman 508 Stove 2 Lever

最近当ブログの更新が滞っていたのでキャンプ道具の自慢紹介など…

コールマンと言えばまず思い浮かぶのがシングルストーブの 508。
その 508 の中でもこれは火力調整の可能な2レバータイプなので非常に重宝している。

このタイプのシングルバーナーはスポーツスターII (508A) として今でも新品が製造販売されているが、 現行のタイプは燃料開閉用のレバーだけなので特に弱火の火力調整が困難で炊飯時などに結構困る。 ところが旧式の2レバータイプは火力調整専用のレバーがあるので強火からとろ火まで調整が非常に容易である。
コールマンの代名詞とも言えるポンピングのおかげで余熱が不要だし火力調整も思いのままなので、 今の所シングルバーナーのストーブでは最高の1台だと思う。

Image: RIMG0823.JPG

ラベルデザインも旧式
Image: RIMG0824.JPG

燃料調整用レバー
Image: RIMG0825.JPG

1987年12月製造

ポンプキャップは旧式のアルミ製。
ポンプカップは標準は新型のネオプレーンタイプなのだが、純正の革製ポンプカップに変更する事でポンピングの感触が随分と改善される。
2レバータイプはクリーナーがジェネレータにつくのでバルブにはフックを掛けるためのエキセントリックロックがないらしい。 フック無しのバルブ (508-5571) は廃盤で入手できないが1レバータイプのバルブも流用可能らしい。

交換部品

ジェネレータ 400-5891 → 508-5891
ポンプ 242J5201 → 3000000455(220A6201)
バルブ 508-5571 (フック無し) → 508A5571
チェックバルブ 200-6381 (118mm)

2レバーの操作方法

点火
  1. 燃料を入れる
  2. ポンピングする
  3. 黒い火力調整レバーを LIGHT/HI の位置にセットする
  4. 赤い燃料レバーを ON と OFF の中間 (下向き) 位置にセットする
  5. 点火する
  6. 着火したらポンピングを追加し十分な圧力を保持する
  7. 青い炎になり火力が安定したら赤い燃料レバー ON の位置にセットする
  8. 黒い燃料調節レバーで火力を調整する
消火
  1. 黒い火力調整レバーを LIGHT / HI の位置にセットする
  2. 赤い燃料レバーを ON と OFF の中間 (下向き) 位置にセットする
  3. そのまま30秒程度燃焼させる
  4. 赤い燃料レバーを OFF の位置にセットして消火するまで待つ
  5. 完全に消化して数分後に黒い火力調整レバーを CLEAN の位置にセットする


Copyright © 2008-2020 Mitzyuki IMAIZUMI. All rights reserved.