改め Objective Technician

はぐれ技術者のやりたい放題

合宿2

2007-03-18 21:49:28 | 陸上競技
走るほうは、H山さんのおかげで300で自己ベスト(38"08)が出たり、200でも結構走れたりとそれなりに良かったけど、跳躍のほうがあまり良くなかった。


一回も跳べなかった。

というか、跳び方を忘れてて結局最後まで思い出せなかった。


ビデオ見たら、振り上げるときになぜか左足がたたまれてた。

あれじゃ跳べねぇよ。


ここはちょっと意識して練習すれば、振り上げとターンはすぐ元に戻ると思う。


でも、元に戻ったところでこのままじゃせいぜい3m60程度しか跳べない。



3日目の午後に、改めて基本動作を教えてもらった。


「ポールの動きを常に止めない」ことがかなり重要だと分かった。

突っ込む瞬間に、右手を思いっきり上に伸ばしてポールが起き上がる方向に回転運動を加える。いままでは、水平方向にガツンと突っ込んでたから上方向に滑らかに行かずに足が払われて左手が潰れてタメが作れてなかった。

これがちゃんとできればこれらの問題が一気に解決する気がする。

あと、全てが真っ直ぐ行くように。

芝生でポールを放り投げる練習を紹介してもらって、何度かやってみたら案の定左にぱたっと倒れることが多かった。

それと、右足を引き上げること。


これらをふまえて、4歩助走で振り上げの練習したら、前よりもすっごいスムーズになった。


革命的だった。

これからは、とりあえず6歩助走でポールの動きを何回も反復して、棒幅跳びがきれいに出来るようになってから本格的に全助走練習する。


七大までに4m行けるよ。






話はちょっと変わるけど



ポールの練習パートナーとしては、アドバイスなどし合いながら練習するものですよ。彼はもう数え切れないぐらいいろんなことを教えてくれて、全部消化できたわけじゃないけどそのおかげで僕は確実に上達してる。でも、彼と僕とじゃレベルが開きすぎてて僕からアドバイスすることは出来ない。

つまり、Give and Take が成り立ってない。

心理学でも習ったし僕も逆の立場で経験があるから分かるけど、この関係はお互いに悪影響を与える。ましてやこの場合、5mを目指すくらいの選手の足を引っ張ってると思う度に僕は悩んでるわけですよ。だから、もっとポールのこと勉強しようと思うし、山本さんも合練に出てきてほしいなぁと思う。

埼玉に行ったら

2007-03-09 01:06:23 | nack5
埼玉は何も観るところがないのが特徴と言えるような窒素みたいな県だけど、ひとつだけ自慢できることがある。



それは、上尾競技場!!




じゃなくて、





nack5の本社があること。


大宮に。


前は浦和にあったけど、2年前に引っ越した。


周波数79.5[MHz]だから"nack5"のFMラジオ局。



関東はもちろん、全国でも聴取率ナンバーワンらしい。



でも、宮城じゃ聴けない。


関東じゃないと聴けない。



今は、親に同録を送ってもらって聴いてる。


というか、これがないと精神衛生上の安定を保てないほど、もう中毒になってる。


昔から nack5 に生き方を教わってきたようなものだと言ってもいい。



その The Nutty Radio Show 鬼玉 っていう番組から、リスナーたちが投稿したネタを集めたネタ本第二弾が発売された。



これ。







ひとつピックアップ。



お題:世界一ツイテナイ男の名前を考えよう!(274ページ)





.ジミーデ・ヘンナリュック(RN:ドメスティック・ベッキーラ)

.残高ゼロだチョフ(RN:ザマのさいちゃん)

.ジョージ・キャンセル(RN:峠の番人)

.スッコロンデー・モンドリウッチ(RN:マークン)

.ウンコスルダビッヒ・ベンキツマリーノ(RN:ジャン・クロード・チアリ改)

.カッター・ポルシェ・バチモーノ(RN:せんべい汁)

.フタアイータ・ドレッシング・フッチャロッサ(RN:八王子のラオウ)

.イエガ・メッサ・カタムキーノ(RN:こけし)





ネタ職人に敬意を表してラジオネーム(RN)も書いた。







高校のとき、鬼玉に送ったメールが読まれたことが3回ある。



これはすごく自慢。





いや、ただ宣伝したかっただけ。

nack5を。


DNS

2007-03-08 00:29:35 | 勉強
TTRのまね。



僕にとって、DNSといったら


Domain Name System


webブラウザのアドレスバーに

http://blog.goo.ne.jp/kotaro4510

などとドメイン名をタイプすれば相手のIPアドレスを知らなくてもwebページにアクセスできるのは、DNSサーバがIPアドレスとホスト名をマッピングして相互解決してくれるおかげ。


例えば、このブログのサーバのホスト名は

blog.goo.ne.jp

IPアドレスは

210.165.9.64


試しにアドレスバーに

http://210.165.9.64/

と入力すると、同じようにgooブログのページに行ける。

(または、210.165.9.64 と入力するだけでもいい。 http(Hyper Text Transfer Protocol) ってのは、 サーバとクライアント間でハイパーテキストなどの配信に使うプロトコル。)



以下は、この家のマシンからgoo blogサーバに行くまでに経由してるルータを tracert コマンドで調べたもの。





オトナな行動

2007-03-07 16:13:06 | ムダ話
その昔、カッコイイと思ってやってたこと。




自転車の手放し運転。




今日、いい大人が自信満々に腕組んで自転車の手放し運転してるところを目撃した。


ママチャリで。



しかも、鹿落の坂を下りながら。




あぶねぇからやめれ。




むしろ、見苦しいからやめれ。


スネ夫が反抗期

2007-03-06 12:49:43 | 陸上競技
練習日誌


3月6日(Tue) 評定 快晴 風 暖

jog ストレッチ
ドリル

ポールワーク

ポール走

c-down



今日は跳躍しようと思ってたけど、スネ夫(シンスプリントのこと)の自己主張が激しいのでやめた。


合宿で思いっきり跳びたいし。



いつもは、競技に集中すればシンスプのことは気にならなくなるんだけど、ガマンして連日跳躍してると障害が発生する確率が徐々に上昇しはじめ、一線を越えると”疲労骨折”という致命的エラーが発生すると言われている。



このエラーが発生した際に、誤って「走れば治る」という例外処理ルーティンを実行すると、最悪の場合システムがクラッシュして再起動さえ出来なくなる恐れがあるので、熟練したアスリートは様々な婉曲手段を駆使したメッセージを自分の体に返して、自らをごまかしながら競技を続ける技術に長けていると言われている。




//以下は悪い例

try {
  training();
}
catch (SuneoAppearanceException e) {
  training();
}
catch (HamutarouTottokoException e) {
  training();
}
catch (MeatGoodByeException e) {
  training();
}

…



ロングスプリントにも追参を導入すればいいじゃない

2007-03-04 00:20:43 | 陸上競技
400mトラックの100mスタート地点を原点にとり、ゴールに向かってx軸、200mスタート地点に向かってy軸、上空に向かってz軸を取る。

この座標上で、時刻 t での風速ベクトルを w = (x, y, z, t) と定義する。


トラックを走る人の速度ベクトルが、スタートしてからの時間 t の関数 v(t) として与えられているとする。



いや、もしかしたら速度ベクトルは水濠 (-10, 40, 0) ぐらいで急激に大きさが減少する場合もあるかもしれないから、いちおうパラメータに位置も組み込むと、v(x, y, z, t) で表せるとする。


空気抵抗は風との相対速度の大きさの二乗に比例する。

抵抗を f とすると、比例定数を a として

f = a*(相対速度)^2 [N] で、ある本によると

一般人の体形で比例定数は a = 0.2744 [kg/m] であるらしい。


ここで、風ベクトルの、速度ベクトルに対する法線成分は 400m のタイムに無関係であるとして議論することにする。


向かい風をマイナス、追い風をプラスで表現すると、

風との相対速度は、内積を使って

(w・v)/|v| - |v| [m/s]

で表せる。


よって、時刻 t [s] での抵抗値は


0.2744 * ((w・v)/|v| - |v|)^2 [N]


であり、これを走路 s に沿って線積分すると、


0.2744 * ∫s (((w・v)/|v| - |v|)^2) ds



この次元は [Ns] = [J] だからこれは、走路 s として 400m トラック一周を指定した場合、 これは 400m 走での風によるエネルギーロス、または利得を表している。


積分の結果がマイナス方向に大きいほど風によってエネルギーを余計に使っている。


ちなみに、風 (w・v)/|v| を走路に沿ってインテグラルって400 [m] で割ると、全体の平均風速

∫s ((w・v)/|v|) ds /T [m/s]


が計算できる。


積分の結果がプラスなら追い風、マイナスなら向かい風。





合ってる?

バグ×バグ=正常動作

2007-03-03 19:15:54 | プログラミング
バイトの話。


だいぶ前からプロジェクトが進んでいるらしい排ガス浄化装置のシミュレーションを引き継いでいる。


てか、前の担当者どうしたの?


初めは特に説明を受けるわけでもなく、これまでの打ち合わせ資料や企業様の極秘資料を眺めて状況を把握する。

最後まで読み終わって、どうやら今は最終段階でシミュレータを実装する段階にあって、さらにこれまで蓄積してきた考えやプログラムでは実際の系に対応できないと結論付けられていて、


前の担当者の苦労をすべて水に流して

新しい方法でシミュレータを作ることになっているらしいことが分かった。



他人のソースを解読して修正するよりは自分でゼロから組んだほうがはるかに楽なんだけど、一年以上過去の蓄積を全部無視してコーディングすることにどことなく引け目を感じながら実装を進めた。


完成したソフトをSE(に当たる人)に見せると、「じゃぁこれは一段落して、次はグラフィックをどうするか考えよう」みたいな話になり、内心「これでいいのか?」と思いながら報告書をまとめた。


このシミュレーションの目的は、ディーゼルエンジンなどで発生する浮遊粒子状物質(PM)をフィルター(DPF)や触媒で連続再生させることが目的なんだけど、いまのところシミュレータのパラメータに現実的な値を設定してる限り、連続再生どころかすぐに目詰まりを起こす。


最終的に、「いろんなシミュレーションをしたけど、結局連続再生はできませんでした。」って報告するのか?


少なくとも性能評価ぐらいはできるだろうけど。




そんなことよりも最近、C独特の不可解な現象が多発している。


あるところを修正すると、全く関係ないところがうまく動作しなくなったり、


バグを修正すると別のバグが出てきたり、



関係ないところをちょっといじると不具合がなくなったり、




こういうことが起きるということは、たとえ正常に動作しているように見えてもたいていどっかバグっててデンジャラスなソースであるので最終的にはきれいに直さなきゃいけないわけで、がんばってバグを探してたらさらに不可解な現象に遭遇した。



正常に動作してるソースで一つ怪しいコードを見つけて、そこだけ切り出してテストしてみると明らかにバグであった。

それでもどうしてちゃんと動いてるのか不思議に思い、その周辺を眺めていると他にもバグと思われる記述が見つかった。


なんと、複数のバグが重なり合ってなぜか正常な動作になっている



のである。



こんな、奇跡としか言いようがない状況に遭遇したら、感動だけを胸に残して実行環境が変わらないことを願いながら見なかったことにすることが奨励されている。



「動いてるソースにはさわらない」の不文律のもとに。

負の遺産

2007-03-01 20:10:55 | プログラミング
実は、この前のスライディングブロックパズルプログラムで、やっちゃいけないと言われていることをやっている。


ソースコードを一文ずつ見てるようなよっぽど暇な人はいないと思うけど、
実はheuristic()関数でgoto文を使ってる。


このgoto文、プログラムの任意のポイント(ただし同じ関数内)に自由にジャンプできる制御文で、この前は二重ループから脱出するのに使った。


一見とても便利な制御文だけど、これを乱用するとプログラムが構造的でなくなり後で何が何だか分からなってバグの温床となるので、どのプログラミングの本を見ても「使うな」って書いてある。


実際、gotoを使わなきゃ実現できないルーティンは存在しない。


さらに、ダイキストラ博士が「Structured Programming」(構造化プログラミング)という論文で、いわゆる「goto文有害論」を提唱してるもんだから、「独習C」では


監注で「goto文を使うプログラマは嫌われます」と書かれている(445ページ)


いじめられっ子のような存在。


言語自体にgotoが存在しないという形でも虐げられている。



ホントのところ、ダイキストラ博士が言ったことが一人歩きして「gotoは危険だ」みたいになってるけど要は乱用するなってことで、多重ループから抜け出すときだけはこれがないと非常に困る。それに、continue文やbreak文、exit()関数なんかの例外処理もある意味gotoと似たようなモンで、そんな目くじら立てて制限しなくてもいいんじゃないって思う。