[記]2012-12-15(土), [鍛]トレーニング, [走]走る, [鮨]魚べい, [政]選挙, [乳]牛乳
[記]2012-12-15(土)
『千葉真子BEST SMILEランニングクラブ』で目を覚ましました。
[鍛]トレーニング
土曜日は15時から渋谷の『TOTAL Workout』でトレーニングです。
最寄りの西小山駅から東急目黒線に乗り、目黒駅でJR山手線に乗り換えて、渋谷駅に向かいます。
渋谷駅の玉川改札を出て渋谷マークシティ内を進んで行きます。
『TOTAL Workout』は道玄坂上あります。道玄坂を上るよりも、渋谷マークシティ内を通り抜けるほうが楽です。道玄坂は坂道ですが、渋谷マークシティ内は平地とエスカレーターだからです。
『TOTAL Workout』があるのは、道玄坂上の交番裏のオフィスビルの三階です。受付で会員証を提示し、会員証と引き換えにロッカーキーを受け取ります。入会当初はトレーニングウェアのレンタルは有料ですが、入会7か月でExecutive会員になれば、トレーニングウェアは無料で借りることができます。
着替えを済ませ、『Precor EFX』でウォーミングアップします。『Precor EFX』は『Precor』の製品で、ペダルを踏むことで大腿やお尻などのトレーニングをする装置です。負荷を7にして、1分間に140歩の速度でペダルを踏むと、10METSくらいの運動強度になります。消費カロリーでいうと毎分12キロカロリーくらいです。10分ほどでだいたい体が温まります。
15時になり、トレーナーとともにトレーニング開始です。
今日は肩肉です。フリーショルダーは、久し振りなせいもあって、バーだけでも重いです。
『NAHAマラソン』のために走ってばかりで、ウエイトトレーニングをやってなかったので、上半身がたるみまくっていますね。取り戻すには、しばらくかかりそうです。
当分、筋肉痛の日々です。
[走]走る
トレーニング後のランニングです。
今日も負荷をかけてみます。
2012年12月12日(水)に時速10マイルで5分が限界だと分かったので、今日も限界まで追い込みます。
今日は1キロメートルの全力走を3本、インターバル2分で走ることにします。
時速10マイル(時速16キロメートル)だと、1キロメートルを3.75分(3分45秒)で走れます。面倒なので、時速10マイルで4分走っちゃいましょう。時速9.5マイル(時速15.2キロメートル)で『1キロ4分』ですが、細かいことは気にしない。
インターバルは時速5マイルで2分です。2分では回復しきれないので、2本目、3本目はどんどんきつくなります。
速度 | 時間 | ペース | 距離 |
---|---|---|---|
5mph(8.0km/h) | 10分 | 1km 7分30秒 | 1.33km |
10mph(16.0km/h) | 4分 | 1km 3分45秒 | 1.07km |
5mph(8.0km/h) | 2分 | 1km 7分30秒 | 0.267km |
10mph(16.0km/h) | 4分 | 1km 3分45秒 | 1.07km |
5mph(8.0km/h) | 2分 | 1km 7分30秒 | 0.267km |
10mph(16.0km/h) | 4分 | 1km 3分45秒 | 1.07km |
死ぬかと思った。
時速5マイルで10分走ってウォーミングアップし、そこから時速10マイルで4分を3本走ったのですが、3本目のあとはもう時速5マイルで走るのも無理で、歩いちゃいました。
『全力走』といっても『全力疾走』ではなく、長距離走をギリギリ耐えられる早さです。ギリギリ耐えられてない気がしなくもないですが。
最大心拍数は、3本目を走った直後に測ったところ、188を叩き出しました。自己新記録です。
一般的に、
最大心拍数(目安) = 220 - 年齢
ということなので、ちょっとギリギリな感じです。
[鮨]魚べい
[政]選挙
明日は選挙です。
東京都知事選挙と、衆議院議員選挙です。
西小山駅前で、『最後のごあいさつ』をしている候補者がいました。
公約については語らず、立候補した理由や情熱などを熱く語っていました。
もらったチラシを見ると、
- 原子力発電所の撤廃
- TPPへの不参加
- 子育て支援
などが挙げられていました。
原子力発電所の撤廃、TPPへの不参加は、なんとしても達成してほしいです。
選挙活動は本日20時までとのことで、最後まで演説を聴かせてもらいました。
原子力発電所の撤廃に関しては、代替エネルギーとして『R水素』を挙げていました。
『水素』という単語が入っているせいか、『活性水素水』などの疑似科学(似非科学)と同列に見られてしまうこともある『R水素』ですが、英語では『Renewable Hydrogen(再生可能水素)』と呼ばれる、ちゃんとした科学です。
中学校の理科で、水(H2O)を電気分解して水素(H2)を得る実験をやりましたが、その水素をエネルギーとして利用するだけです。考え方としては、そんなに新しいものでもないです。
- 長所
- 原料が水なので、用意しやすい
- 使用して排出されるのも水なので、環境を汚染しない
- 短所
- 水から水素を得るのにエネルギー(電気)が必要
- 水素の貯蔵は容易ではない
「水素を得るのにエネルギーを使うんじゃ、意味ないじゃん」という意見もありますが、電力の貯蓄という観点では意味があります。電力は非常に貯蔵が難しいのです。リチウムイオン電池による電力貯蔵では、大電力は保存出来ません。貯蓄できないと言ったほうがいいレベルです。
電力は貯蓄ができないため、火力発電のように発電量が調整できる設備では、夜間など電力が必要ないときは発電量を抑えます。一方、原子力発電所のように発電量を大きく変化させられない設備では、夜間でも全力で発電するため、電力を余らせてしまいます。
水力発電(ダム)では、夜間の余剰電力を使って水を汲み上げ、昼間はその水を使って発電するという方法で電力貯蔵(揚水発電)が可能です。ただし、効率の問題で元の電力と同じだけの電力は取り出せません。また、夜間の余剰電力があること、つまり原子力発電所がある前提なので、原子力発電所の代わりにはなりません。
風力発電と揚水発電を組み合わせて、風力発電によって水を汲み上げる方式も考えられますが、電力会社は風力発電の不安定さやコストを理由に、採用しようとしません。確かに、風力発電は風量に依存するので不安定な部分もありますが、揚水発電は汲み上げた水があれば安定した発電ができるので、揚水発電をバッファーとして、安定した発電ができるはずです。自然エネルギーには長所・短所があるので、組み合わせて補い合えばいいだけなのですが、電気会社は採用を渋ってきました。
原発利権が美味しすぎて、他の発電方式に研究投資したくなかっただけなのは、わかりますけどね。
『R水素』も、風力発電や水力発電などの再生可能エネルギーを貯蓄する役割として期待されているようです。水素の貯蔵は容易ではないですが、貯蔵できない電気よりは、貯蔵する手段があります。
そして、水素の素晴らしいところは、燃焼もしくは燃料電池として化学反応させて電気を取り出しても、排出されるのがただの水だということです。生成でも利用でも、有害な物質を出しません。
代替案もなく「原発反対」を叫んでいるわけではないようですし、日本の未来を託しても大丈夫そうだと判断しました。
明日はいよいよ、選挙です。
[乳]牛乳
ミルクはぬるめの燗がいい。
[記]2012-12-14(金), [PC]アップデート, [Perl]条件判断, [Anime]ジョジョの奇妙な冒険(11)『ゲームの達人』
[記]2012-12-14(金)
目を覚ましたのは6時でした。
『吉田照美 ソコダイジナトコ』を聴きつつ、布団を脱出しました。
『ヱヴァンゲリヲン新劇場版:Q』の冒頭6分半を繰り返し観ていたら、8時半を回っていました。
体組成計で測定して、準備をして、9時に家を出ます。
[PC]アップデート
『IS03』を見たら、アプリが一気に6つもアップデートしてました。
- Google Earth
- Google ドライブ
- LINE
- mixi専用ブラウザ(TkMixiViewer)
[Perl]条件判断
Perlの条件判断は、いろいろな記述ができて面白いです。人によっては、それが嫌いらしいですが。
C言語に慣れた人は、下記の書き方が馴染み深いでしょう。
if ($flag) { print "yes!\n"; }
C言語と違い、ブレース"{ }"を省略することはできません。
Perlでは、条件判断を以下のように記述することもできます。
$flag and print "yes!\n";
以下のように、ファイルのオープンに失敗したら終了する処理がすっきり記述できます。
open(FILE, $file) or die "$file:$!";
Perlでは、条件判断を以下のように記述することもできます。
print "yes!\n" if $flag;
英文法的には、このほうがすっきり理解できるらしいですが、C言語使いな人は嫌う傾向にあるようです。
映画『ターミネーター』の有名な台詞を思い出してみましょう。
「Come with me if you want to live.」
(生きたければ一緒に来い)
つまり、"you want to live"が真なら、"Come with me"ってことです。
これが書きたかっただけです。
[Anime]ジョジョの奇妙な冒険(11)『ゲームの達人』
[記]2012-12-13(木), [鍛]筋肉痛, [Perl]chmod
[記]2012-12-13(木)
目を覚ましたのは6時でした。
『吉田照美 ソコダイジナトコ』を聴きつつ、布団を脱出しました。
『ヱヴァンゲリヲン新劇場版:Q』の冒頭6分半を繰り返し観ていたら、8時半を回っていました。
体組成計で測定して、準備をして、9時に家を出ます。
[鍛]筋肉痛
昨日のウエイトトレーニングで、筋肉痛になりました。
背中、腕、胸、腹筋、お尻が筋肉痛です。
チンニングをしたので、背中と腕が筋肉痛なのは想定通りです。胸が筋肉痛になるのは、ちゃんと背中が使えてないってことかな。
腹筋は腹筋をやったから、お尻は全力で走ったからですね。
[Perl]chmod
Perlでchmod
相当のことをするには、chmod
を使います。
そのままやん。
ファイルのアクセス権は数値で指定します。8進数で指定するのが一般的です。Perlで8進数を記述するには、数値の先頭に"0"を付けます。
chmod 0755, $file or die "$file:$!";
以上です。
ITProの『Perlリファレンス』には、こんなことが書いてあります。
http://itpro.nikkeibp.co.jp/article/Reference/20080930/315710/
ファイルのアクセス権限はLinuxのchmodコマンドのモードを表す数値の先頭に0をつけたものです。
これ、嘘ではないですけど、正確な表現でもないです。
Perlのchmod
は数値ならなんでも受け取ってくれます。8進数表記すると人間が読むのに都合がいいだけです。
chmod 0b111101101, $file or die "$file:$!"; # 2進数 chmod 0755, $file or die "$file:$!"; # 8進数 chmod 493, $file or die "$file:$!"; # 10進数 chmod 0x1ed, $file or die "$file:$!"; # 16進数
10進数や16進数で表記するメリットはまったくないですね。こんな表記を見たら殺意の波動に目覚めそうです。
数値の先頭に0b
を付けると2進数になりますが、これはメリットがあります。Perlの数値は、_
で区切って見やすく表記することができるので、2進数で3桁ずつ区切れば、アクセス権限の各bitをそのまま記述できます。
chmod 0b111_101_101, $file or die "$file:$!";
ls
で表示されるアクセス権限と一致します。
-rwxr-xr-x
とはいえ、2進数を使うメリットは、8進数を覚えなくていいくらいですけど。
[記]2012-12-12(水), [肉]とんてき, [災]マグニチュード, [鍛]トレーニング, [走]走る, [病]喘息, [Perl]mkdir -p, [Perl]rm -r
[記]2012-12-12(水)
目を覚ましたのは6時でした。
『吉田照美 ソコダイジナトコ』を聴きつつ、布団を脱出しました。
携帯電話のアラームが5分毎にスヌーズするはずなのに、1回しか鳴らなかったのが気になります。
体組成計で測定して、準備をして、8時半に家を出ます。
えっ!?
1時間半くらい、ぶっ飛んでますよ!!
昨日と同じ展開ですね。
[肉]とんてき
2012年12月10日(月)に会社への沖縄みやげを持って来た時に、一緒に自分へのおみやげも会社に持って来ていました。
『四日市とんてきのたれ』を会社に持って来ても、会社じゃ調理できませんよ。
ところで、2012年12月9日(日)に東京に戻ってきた時、西小山の『松屋』に『トンテキ定食』があるのに気付きました。
2012年11月22日(木)に発売されたようです。
三重県四日市市の名物を、この私に黙って発売するとは、なんたる仕打ちですか。
近いうちに食べに行こうと思います。
[災]マグニチュード
2012年12月7日(金)に起きた三陸沖を震源とした地震、私は三重県に帰省していて気付きもしなかったのですが、マグニチュード7前半の地震ふたつが連続して起きたとみられるそうです。
mixiの日記を見ていたら、見知らぬ人がこのニュースに対し、
マグニチュード7が連続ってことは、マグニチュード14だったってことでしょ?
などと書いていました。
いえ、『マグニチュード』と『地震のエネルギー』は対数関係なので、単に足し算してはいけません。
マグニチュードが1増えると地震のエネルギーは約31.62倍、2増えると1000倍になります。
マグニチュード | エネルギー(J) | エネルギー |
---|---|---|
M1.0 | 2,000,000ジュール | 2メガジュール |
M2.0 | 63,000,000ジュール | 63メガジュール |
M3.0 | 2,000,000,000ジュール | 2ギガジュール |
M4.0 | 63,000,000,000ジュール | 63ギガジュール |
M5.0 | 2,000,000,000,000ジュール | 2テラジュール |
M6.0 | 63,000,000,000,000ジュール | 63テラジュール |
M7.0 | 2,000,000,000,000,000ジュール | 2ペタジュール |
M8.0 | 63,000,000,000,000,000ジュール | 63ペタジュール |
M9.0 | 2,000,000,000,000,000,000ジュール | 2エクサジュール |
M10.0 | 63,000,000,000,000,000,000ジュール | 63エクサジュール |
地球上で起きた最大の地震は1960年のチリ地震だそうで、マグニチュード9.5だったそうです。
マグニチュードが1増えると地震の断層の長さが約3倍に、2増えると10倍になるそうです。
マグニチュード | 断層の大きさ | 断層のずれ |
---|---|---|
M4.0 | 1km × 500m | 5cm |
M5.0 | 3km × 1.5km | 15cm |
M6.0 | 10km × 5km | 50cm |
M7.0 | 30km × 15km | 1.5m |
M8.0 | 100km × 50km | 5m |
M10.0 | 1000km × 500km | 50m |
M12.0 | 10000km × 5000km | 500m |
マグニチュード12の10,000キロメートルですが、地球の極半径が約6,357キロメートル、つまり直径が約12,714キロメートルですから、地球がまっぷたつに割れる勢いです。
則巻アラレちゃん、恐るべし。
そういえば、2001年12月1日(土)にもマグニチュードについて書いていました。
1996年7月9日(火)に観測衛星SOHOが太陽の表面で地震のようなものが起きているのを捉えましたが、これが地震の規模でいえばマグニチュード11.3で、全米で消費されるエネルギーの20年分に相当するエネルギーでした。
当時は「とんでもないなぁ」と思ったものですが、則巻アラレちゃんと比べると大したことないのかも知れません。
則巻アラレちゃん、恐るべし。
[鍛]トレーニング
今日は水曜日でノー残業デーなので、18時過ぎに退社しました。
渋谷には18時45分頃に着きました。
渋谷駅の玉川改札を出て渋谷マークシティ内を進んで行きます。
『TOTAL Workout』は道玄坂上あります。道玄坂を上るよりも、渋谷マークシティ内を通り抜けるほうが楽です。道玄坂は坂道ですが、渋谷マークシティ内は平地とエスカレーターだからです。
『TOTAL Workout』があるのは、道玄坂上の交番裏のオフィスビルの三階です。受付で会員証を提示し、会員証と引き換えにロッカーキーを受け取ります。入会当初はトレーニングウェアのレンタルは有料ですが、入会7か月でExecutive会員になれば、トレーニングウェアは無料で借りることができます。
着替えを済ませ、『Precor EFX』でウォーミングアップします。『Precor EFX』は『Precor』の製品で、ペダルを踏むことで大腿やお尻などのトレーニングをする装置です。負荷を7にして、1分間に140歩の速度でペダルを踏むと、10METSくらいの運動強度になります。消費カロリーでいうと毎分12キロカロリーくらいです。10分ほどでだいたい体が温まります。
19時になり、トレーナーとともにトレーニング開始です。
『NAHAマラソン』も無事に終わったので、ウエイトトレーニングを再開です。
いつものパターンなら、胸肉→背中→肩肉という順番なのですが、今日は背中から始めてもらいました。
チンニングで『殺人キック』がやりたかっただけです。
チンニング(懸垂)は、トレーナーが下から足を支えてくれて、上がるときは補助してくれるので、下がるときだけ自力で頑張ります。自力で上がるようになるのが理想ですが、まだ先は長いです。
補助してくれるトレーナーを、あまり勢いよく蹴ると、「うっ」とか呻き声が聞こえたりするので、ちょっぴり申し訳ないです。
私はそれを『殺人キック』と呼んでいるのですが、トレーナーからは「『殺人キック』は、やらなくていいです」と言われます。
久し振りのウエイトトレーニングなので、休み休みやっていたところ、チンニングだけでほぼ時間が終わりそうです。
ローマン・チェアーで伸脚の腹筋20回を2セット、横の腹筋を左右20回ずつやって、おしまい。
今回、トレーナーに色々とダメ出しされました。
トレーナー「沖縄で、なにを食べたんですか?」
私「『とりの丸焼き』をひとりで食べました」
トレーナー「ダメじゃないですか」
私「リバウンド王!」
トレーナー「ダメじゃないですか」
私「パトラッシュ、疲れたろう。ボクもだよ」
トレーナー「持久力、なし(メモ)」
マラソンランナーに、持久力なんて必要ありませんよ!!
いや、そんなことはないか。
[走]走る
トレーニング後のランニングです。
次のマラソン大会は未定なので、特に目標とするペースもないのですが。
『NAHAマラソン』に向けて、今からがんばりますか。
時速6.5マイルで5分ほどウォーミングアップし、時速10マイルに上げました。目標は10分です。
5分で力尽きました。
時速6.5マイルで5分ほどクールダウンしました。
マイル/時 | 時間 |
---|---|
6.5 | 5分 |
10 | 5分 |
6.5 | 5分 |
時速10マイルは、時速16キロメートルです。このペースで走ると、フルマラソン42.195キロメートルで2時間40分を切るペースです。
km/h(mph) | 1km | 5km | 10km | 15km | 20km | 21.0975km | 25km | 30km | 35km | 40km | 42.195km |
---|---|---|---|---|---|---|---|---|---|---|---|
16.0(10.0) | 3:45 | 18:45 | 37:30 | 56:15 | 1:15:00 | 1:19:07 | 1:33:45 | 1:52:30 | 2:11:15 | 2:30:00 | 2:38:14 |
5分で力尽きるのでは、話になりませんけどね。
漫然と同じペースで走っていても早くならないとのことで、今日は思い切って負荷をかけてみたわけですが、先は長そうです。
[病]喘息
限界まで走れるのって、楽しくてしょうがないです。
子供の頃、喘息持ちだった私にとって、走ることは、すなわち喘息の発作を起こすことでした。
走って息が苦しくなるよりも前に、喘息の発作が起こって息ができなくなるので、限界まで走ったことなんかありませんでした。
水泳で体力を付けて、喘息の発作は起こりにくくなりましたが、それでも、シーズンオフの走り込みでは発作を起こして走れなくなりました。
フルマラソンを完走するなんて、当時の私は想像もしませんでした。
そんな私が、さらなるタイム向上を目指して限界まで追い込んでいるとか、自分でも不思議です。
限界まで追い込むと、息が上がってゼーゼーハーハーなのですが、気管支が狭まって息ができなくなる喘息の発作とは違って、ちゃんと息ができます。
息ができるのって、素晴らしい。
[Perl]mkdir -p
Perlでmkdir -p
相当のことをするには、File::Pathを使います。
実際に作成したディレクトリが配列として返されます。
$ perl -MFile::Path -e 'map { print "$_\n" } mkpath "/home/foo/bar/baz/a/b/c/"' /home/foo /home/foo/bar /home/foo/bar/baz /home/foo/bar/baz/a /home/foo/bar/baz/a/b /home/foo/bar/baz/a/b/c/
当然ながら、もう一回実行しても、なにも作成されず、なにも返りません。
$ perl -MFile::Path -e 'map { print "$_\n" } mkpath "/home/foo/bar/baz/a/b/c/"'
パスを分解してmkdir()
を呼んでもいいのですが、モジュールを使うと楽チンですね。
[Perl]rm -r
逆に、指定したディレクトリ以下のファイルを全て削除する、つまりrm -r
相当のことをするには、同じくFile::Pathを使います。
$ perl -MFile::Path -e 'map { print "$_\n" } rmtree "/home/foo"' 6
削除したファイルやディレクトリの数が返ります。
うっかり間違えて/home
をごっそり削除してしまわないように、くれぐれも注意してください。
[記]2012-12-11(火), [荷]発送, [働]英文法, [荷]受領, [Perl]find, [Perl]Nya::Tree 0.1, [Perl]Nya::Find 0.3
[記]2012-12-11(火)
目を覚ましたのは6時でした。
『吉田照美 ソコダイジナトコ』を聴きつつ、布団を脱出しました。
携帯電話のアラームが5分毎にスヌーズするはずなのに、1回しか鳴らなかったのが気になります。
体組成計で測定して、準備をして、8時に家を出ます。
えっ!?
1時間くらい、ぶっ飛んでますよ!!
昨夜はあまりに寒くて眠れなかったのですが、それと関係あるのでしょうか。
[荷]発送
Amazonからメールが来ましたよ。
Amazon.co.jp をご利用いただき、ありがとうございます。 ご注文いただいた商品を少しでも早くお届けするため、本日、Amazon.co.jp が一部の商品を発送いたしました。
昨夜注文した本2冊が発送されたようですが、2冊一緒に注文したのに、別々に発送してくれたようです。
その他、2012年12月5日(水)に不在で受け取れなかった『ゆうメール』の再配達も、今夜19時以降に手配してあります。
今日は19時までに帰宅して、受け取りラッシュです。
[働]英文法
職場の同僚がファイルを変更したというので変更レビューをしたのですが、変更内容は『エラーメッセージ』の修正でした。
File is not found.
というエラーメッセージを、
File not found.
というふうに修正していました。
昔はメモリーが貴重だったので、エラーメッセージからbe動詞を省いて容量削減していましたが、今はそこまでこだわる必要はないんじゃないでしょうか。
The file is not found. (ファイルは見つけられない)
The file was not found. (ファイルは見つけられなかった)
The file has not found. (ファイルは見つけられなかった)
The file could not be found. (ファイルは見つけられることができなかった)
文法的に正しくすると、回りくどく見えてしまいますけどね。
[荷]受領
なんとか19時ちょっと過ぎに帰宅しました。
共有スペースの郵便受けには、不在票は入っていませんでした。
玄関の郵便受けに、『クロネコヤマト』の不在票が挟んでありました。19時の再配達に間に合わなかったのかと焦りましたが、配達時刻が昼過ぎでした。昨夜注文した本2冊の不在票ですね。
念の為に玄関の郵便受けの中を確認すると、『ゆうメール』の不在票が入っていました。2012年12月7日(金)って、4日も前じゃないですか。
今日19時から再配達を依頼してある『ゆうメール』とは別の荷物のようです。こちらの不在票は共有スペースの郵便受けに入っていたのに。担当者によって不在票を置いていく場所を変えるのは容赦してほしいです。
『クロネコヤマト』は、今日の再配達が間に合いました。最終は20時以降ですが、時間指定なしです。
『ゆうメール』は、今日の再配達は間に合いません。最終が19時以降なので、もう締め切っているようです。しょうがないので、2012年12月15日(土)の午前中に再配達申請です。
『ゆうメール』が届きました。荷物は『魔女の宅急便』のBlu-ray Discでした。
おいおい、いいのかそれ。
ここは『クロネコヤマト』にしておかないといけないような気がするのですが。
『クロネコヤマト』が届きました。本2冊が、2個口で届きました。
同じ日に発送するなら、1個口でもよかったのに。
Amazon.co.jp をご利用いただき、ありがとうございます。 ご注文いただいた商品を少しでも早くお届けするため、本日、Amazon.co.jp が一部の商品を発送いたしました。
きっと、タッチの差で先に発送してしまったんでしょうね。
2012年12月15日(土)に再配達を依頼した『ゆうメール』ですが、これは2012年12月5日(水)発売のYUIさんのベストアルバムですね。
2枚同時リリースだと気付かずに別々に注文してしまったので、これも2個口で届きます。
そのYUIさんですが、このベストアルバムの発売をもって、無期限活動休止するそうです。
音楽以外の道を歩いて行くのか、いつかまた音楽に戻ってくるのか、本人にも分かっていないようですが。
いずれ、本人が答えを見つけるのでしょう。
[Perl]find
Perlで指定ディレクトリ以下の全てのファイル一覧を得ようと思ったら、File::Findを使うのが楽です。
しかし、File::Findは個人的に取り扱いにくいと感じたので、2012年11月7日(水)に車輪の再発明しちゃいました。
それで、めでたしめでたし、だったのですが、ある環境でfind
と速度比較をしたところ、find
より倍以上も遅いことがわかりました。
open my $FIND, '-|', "find $dir -name '*'" or die "$dir:$!";
こうやってfind
を呼び出すほうが速いという、残念すぎる結果です。
しかし、find
のオプションを変えて、ファイルだけ探すようにしたところ、ものすごく遅くなることが判明しました。
$ time find . -type f > /dev/null real 0m39.689s user 0m0.068s sys 0m1.256s $ time find . -name '*' > /dev/null real 0m16.212s user 0m0.091s sys 0m0.726s
なんということでしょう、2倍以上も遅くなったではありませんか。
39.689 / 16.212 = 2.448倍
find . -name '*'
で得られたファイル一覧を、perlで-f $file
してファイルかどうか確認したところ、find . -type f
とほぼ同じ処理時間になりました。
ちなみに、2012年11月7日(水)に車輪の再発明したオレオレfind
も、ほぼ同じ処理時間でした。
世の中には、stat()
がものすごく遅いファイルシステムもあるわけですね。
[Perl]Nya::Tree 0.1
2012年11月7日(水)に車輪の再発明したオレオレfind
は、ハッシュツリーを構築するのが面倒になって、ファイル一覧を配列で返すようにしてしまいました。
改めて、指定ディレクトリ下のファイル一覧を元にハッシュツリーを構築するスクリプトを書いてみます。
#!/usr/bin/env perl package Nya::Tree; use strict; use warnings; use Carp; our $VERSION = '0.1'; ${^WIN32_SLOPPY_STAT} = 1; # 5.10 sub tree { my($dir) = @_; my $hash = {}; my @queue = ($dir); while (my $dir = shift @queue) { opendir my $DIR, $dir or croak "$dir:$!"; for (grep !m|^\.+$|, readdir $DIR) { my $full = $dir.'/'.$_; -r $full or next; if (-f _) { my $ref = $hash; map { $ref->{$_} ||= {}; # Directory (ref) $ref = $ref->{$_}; } split('/', $dir); $ref->{$_} = -s _; # File (!ref) } elsif (-d _) { push @queue, $full; } } closedir $DIR; } $hash; } sub hash2list { my($hash, $dir) = @_; if ($dir) { return map { ref $hash->{$_} ? hash2list($hash->{$_}, $dir.'/'.$_) : $dir.'/'.$_ } sort keys %{$hash}; } else { return map { ref $hash->{$_} ? hash2list($hash->{$_}, $_) : $_ } sort keys %{$hash}; } } package main; use strict; use warnings; use Data::Dumper; use feature qw(say); my $dir = shift; my $hash = Nya::Tree::tree($dir); print Dumper($hash); say for Nya::Tree::hash2list($hash);
ディレクトリはリファレンスとして記録し、ファイルはスカラー値を記録しています。
リファレンスじゃなければなんでもいいので、ファイルサイズを記録しています。
[Perl]Nya::Find 0.3
パスを分解してハッシュツリーを作ればいいだけなので、オレオレfind
に組み込んでもいいかも知れません。
#!/usr/bin/env perl package Nya::Find; use strict; use warnings; use Carp; our $VERSION = '0.3'; ${^WIN32_SLOPPY_STAT} = 1; # 5.10 sub find { my(@files, @queue); my %uniq; for (grep !$uniq{$_}++, @_) { -r $_ or next; -f _ and push @files, $_; -d _ and push @queue, $_; } while (my $dir = shift @queue) { opendir my $DIR, $dir or croak "$dir:$!"; for (grep !m|^\.+$|, readdir $DIR) { my $full = $dir.'/'.$_; -r $full or next; -f _ and push @files, $full; -d _ and push @queue, $full; } closedir $DIR; } @files; } sub tree { my $hash = {}; for (find(@_)) { my $ref = $hash; my @path = split('/', $_); my $base = pop @path; for (@path) { $ref->{$_} ||= {}; # Directory (ref) $ref = $ref->{$_}; } $ref->{$base} = -s $_; # File (!ref) } $hash; } sub hash2list { my($hash, $dir) = @_; if ($dir) { return map { ref $hash->{$_} ? hash2list($hash->{$_}, $dir.'/'.$_) : $dir.'/'.$_ } sort keys %{$hash}; } else { return map { ref $hash->{$_} ? hash2list($hash->{$_}, $_) : $_ } sort keys %{$hash}; } } package main; use strict; use warnings; use Data::Dumper; use feature qw(say); say for Nya::Find::find(@ARGV); my $hash = Nya::Find::tree(@ARGV); print Dumper($hash); say for Nya::Find::hash2list($hash);
同じディレクトリを複数回指定すると複数回リストアップしてしまう不具合があったので対策しています。
重複を取り除く方法はいろいろありますが、2012年6月28日(木)にawk
コマンドでやった方法を使ってます。
[記]2012-12-10(月), [雑]クロスシー, [金]ボーナス, [休]忌引, [働]不採用, [働]退職金, [走]走る, [金]小学生, [食]夕食, [寒]エアコン
[記]2012-12-10(月)
目を覚ましたのは6時でした。
体組成計で測定して、準備をして、7時半に家を出ます。
[雑]クロスシー
JR山手線の車内モニターで、シチズンの『クロスシー』のCMが流れていました。
『クロスシー』の『スシ』に反応していたところ、脳天にツッコミを受けました。
私の後ろに立っていた男性が吊り革から手を離し、手を下ろすときに私の脳天に肘打ちを食らわせただけでした。
[金]ボーナス
こんな不景気でも、ボーナスが出てくれて嬉しいです。
[休]忌引
久しぶりに出社して、最初の作業が祖父の忌引申請です。
事態発生日 | 慶事/弔事 | 続柄 |
---|---|---|
2012年12月4日(火) | 弔事休暇 | 祖父(母方) |
2010年2月8日(月) | 弔事休暇 | 祖母(母方) |
2007年7月11日(水) | 弔事休暇 | 祖母(父方) |
父方の祖父は、父が物心付く前に他界したそうです。
これで祖父母と呼べる人はいなくなってしまいました。
寂しいです。
それはそうと、父方の祖母が亡くなったのは2007年7月10日(火)です。私はどうやら申請を間違えたようです。
忌引休暇が5日発生しましたが、葬儀は『マラソン休暇』の間に済んでしまいました。
取得期限日が2013年6月3日(月)なので、折を見て取得しようと思います。
今月いっぱいで今の職場を追い出されるので、異動先を探しているわけですが、異動先の状況によっては休暇どころじゃないんですよねぇ。
[働]不採用
2件が不採用でした。
[働]退職金
こっそりと、自分の退職金を調べてみました。
年度 | 累計退職金額 |
---|---|
2011年度(2012年3月末時点) | 7,791,790円 |
2010年度(2011年3月末時点) | 7,157,070円 |
2009年度(2010年3月末時点) | 6,540,840円 |
2008年度(2009年3月末時点) | 5,942,560円 |
約800万円です。
『早期優遇退職』も視野に入れて、今後を考えようかな。
会社の業績悪化に伴う希望退職の募集に応じて離職した場合は『特定受給資格者』に該当するのですね。なるほど。
[走]走る
『NAHAマラソン』から1週間以上が経過し、体が走りたがってウズウズしています。
練習嫌いの私が、かなり頑張ってベストタイムを約10分ほど更新できたわけですが、理系の私としては、もっと多角的に情報を分析して、効率良くトレーニングして、タイム向上を図りたいです。
会社の同僚も走り始めたそうで、スマートフォンホルダーを購入して、GPSログを取ると言っていました。いきなり本格的ですね。
私もスマートフォンホルダーを買ってGPSログを取ろうかと思ったのですが、『IS03』のバッテリーの貧弱さを考えると、フルマラソンの長丁場に耐えられない懸念もあります。
『ユピテル』のハンディGPSロガーなんてのもありますが、携帯電話とは別にもうひとつ機器を持ち歩くというのは、面倒くさがり屋の私には無理な気がします。
そんなことより、専門書を読んで勉強することにします。
高橋尚子さんや千葉真子さんを指導した小出義雄監督の本があるじゃありませんか。ポチッとな。
マラソンの練習は、毎日走るより、効率よく走ったほうがいいようです。
練習嫌いの私にぴったりのような気がします。
Wikipediaで小出義雄監督について調べると、現役選手では新谷仁美さんを指導なさっているとのこと。
新谷仁美さんは「走るのが嫌い」と公言しちゃったりしてますし、なんだか安心しました。
[金]小学生
22時過ぎまで残業して会社を出て、銀行でお金を下ろすつもりだったのを思い出しました。
財布を見ると、201円しか入っていませんでした。
- 100円玉 × 1
- 10円玉 × 9
- 1円玉 × 11
小学生か!?
さりとて、銀行に手数料を寄付する気にもならないので、夕食は有り物で済ませることにします。
[食]夕食
沖縄で激しく体重を増やして帰ってきたので、プロテイン飲料だけ飲んで、寝ます。
[寒]エアコン
なんだか部屋が寒いと思ったら、エアコンを『暖房』にしても、ただの風しか出ませんよ。
[記]2012-12-9(日), [PC]絶不調, [Anime]HUNTER×HUNTER(58)『ヒキギワ×ノ×ヒキガネ』
[記]2012-12-9(日)
東京に戻りました。
[PC]絶不調
帰宅して、『IS03』をPCに接続して充電しつつ、ネットを巡ったりしたのですが、PCが不調です。
しばらく使っていると、マウスが反応しなくなり、キーボードも反応しなくなりました。
画面を見ると、時計などは止まっていないので、マウスとキーボードの入力を受け付けなくなっただけのようです。
回復する方法もなく、リセットボタンを押すことになりました。
PCが再起動し、しばらく順調に使えていたのですが、やはりマウスとキーボードが反応しなくなります。
マウスだけ反応しなくなることもあるので、マウスが不調で、キーボードを道連れにしているのかも知れません。
2011年7月5日(火)や2011年7月10日(日)に書いた、ワイヤレスマウスとワイヤレスキーボードですが、Unifying対応なので、ひとつのレシーバーで両方とも接続しています。
有線マウスを接続してみましたが、それでもマウスが反応しなくなり、キーボードも反応しなくなりました。
原因不明ですが、マウスとキーボードが反応している間に、不要なソフトを片っ端からアンインストールしてみました。
ドライバーが競合しているかとか、理詰めで原因を追い詰めるなんて、面倒くさくてやってられませんし。
『Adobe Reader』や『Adobe Flash Player』は、さすがに関係ないと思いますけどね。
何回か再起動するうちに、マウスが反応しなくなる時に、「USBデバイスのひとつが反応しなくなりました」という旨のエラーメッセージが出ていることに気付きました。
もっと早く気付け。
USBハブに繋がっている機器を外して、反応しなくなったデバイスを探します。
USB接続のHDDが壊れたのだとすると、それはそれで、ちょっぴり悲しすぎます。
反応しなくなったデバイスを突き止めました。
『IS03』でした。
『IS03』の画面オフまでの時間を5分に設定していますが、そこで『IS03』がサスペンドすると、USBデバイスとして無反応になってしまい、PCが怒り状態になるようです。
データ通信のできない、充電専用のケーブルで『IS03』を接続したところ、問題は発生しなくなりました。
ええい、余計な手間をかけおって。