2020-03-29

村上原野(ボレロ村上)の思い出

村上原野(ボレロ村上)の思い出を色褪せないうちに書いておこうと思う。

村上原野の父親であり師匠であった猪風来は縄文土器による芸術家である。縄文土器の制作方法を復元した人物だ。

猪風来プロフィール | 美術館の紹介 | 猪風来美術館

縄文土器は窯を使わずに野焼きで焼き上げる。野焼きで窯ほど燃焼温度が上がらないので、低温でも焼き上がるような粘土を使わなければならない。その製法は再発見され、村上原野が縄文土器作成を学ぶ頃には、一通り完成していた。製法を復元した上で、その製法を使って芸術品を作るというのだ。

聞いた話では、猪風来は極めて形から入る芸術肌の人間で、縄文人の心を理解するために、北海道に竪穴式住居をこしらえて家族で住んでいた。つまり、村上原野の父親と母親と本人は中学生か高校生ぐらいまで北海道の竪穴式住居に住んでいたのだ。

竪穴式住居とは歴史の教科書にも出てくる様式の原始的な家だ。地面を掘り下げ、その上に屋根を設営する家だ。竪穴式住居は全国にあるのだが、北海道のような寒い地方では、寒さ対策のために地面をかなり深く掘り下げる。猪風来がかつて展示会で語っていた話では、竪穴式住居の中で座ると、ちょうど目の高さが地面すれすれになるほどだという。そうして猪風来は縄文人の心を会得した。

その後、村上原野の一家は岡山の廃校に引っ越す。廃校を作品制作の作業場と作品の保管所と美術館として利用している。

村上原野はそのような特殊な家庭環境にもかかわらず、当初は高専を卒業し、確か本人の話では製図技師か何かで数年、民間で働いていたそうだ。ただし本人曰く「やはり土をいじっている方が楽しい」ということで仕事をやめ、家業をつぐことにしたのだという。

村上原野のいでたちは、かなりガッシリとした体格で、よく日焼けしていて、母親の作った作務衣を着ている。どこから見ても偉丈夫であり、刺しても死なないほどの健康な見た目であった。

このブログの読者が知る村上原野は、ボレロ村上、もしくは中3女子という名前で知っている人物で、C++プログラマーだ。

https://github.com/bolero-MURAKAMI/Sprout

Sproutは村上原野によるC++ライブラリであり、C++におけるコンパイル時計算用のフレームワークを提供している。

このSproutを使った村上原野の作品としては、コンパイル時レイトレーシングがある。

constexpr レイトレーシング - ボレロ村上 - ENiyGmaA Code

当時の純粋なテンプレートメタプログラミングのみのレイトレーシングや、あるいはC++11時代のまだ本体はreturn文ひとつしか書けなかった頃のconstexpr関数を使ったレイトレーシングがある。

あるいは、コンパイル時音声生成がある。

constexpr で音階生成&シンセサイザー&音声合成 - ボレロ村上 - ENiyGmaA Code

生前の村上原野に、C++によるこの作品は芸術なのかと聞いてみたことがあるが、彼にとってこれらは芸術ではないらしい。

村上原野 aka ボレロ村上, 中3女子 逝去

ボレロ村上、中3女子ことC++プログラマーで陶芸家の村上原野の訃報が流れている。それによるとどうやら、2月16日未明に、陶芸作品を製作中に倒れ、翌朝に発見されたようだ。

2月15日の21時51分のtweetに体調の変化を示唆する書き込みがある。倒れたのが16日の未明とあるので、そこから6時間後ということになる。

この書き込みから急な脳梗塞ではないかと思われる。体調の変化を感じたら病院に行くべきなのだろう。

大一報はおそらく猪風来美術館のFacebookで、これは20日に公開されたとのことだが、我々プログラマーの界隈に知られるまでに9日間を要したようだ。

岡山にある猪風来美術館は村上原野とその両親が経営している廃校を利用した美術館と製作所のはずで、すぐにでも岡山に行きたい気持ちがあるのだが、あいにくと世間にはコロナウイルスが流行している。行けば至近距離で会話をしたくなるだろうから、東京に住んでいる身としては軽々と訪れることができない。早くコロナウイルスが収束してほしい。

ゲンヤよ!

2020年2月16日未明、おまえは32歳という若さでこの世を去った。最後の作品を制作中、倒れる直前粘土をひと掻きした跡そのままに、手に竹べらをもったまま息絶えた。きらめく魂、やさしい魂、躍動する魂よ、おまえのすべての命が燃え尽きたのだ。 力いっぱい、こんなに精一杯生きて、表現して、苦悩し、愛して、未来へ、新しい地平へ翔けていくはずだったおまえは、今力を尽くして、生命を生き切って、美しい魂の宿る作品を私たちに託して旅立っていった。

おまえの大きな縄文の渦はここから湧きあがり、おまえはその渦に乗りここから翔けあがり、おまえの愛した山や海や大地をめぐり、生まれ育ったアイヌモシリや遥かなアメリカの大地をめぐる。おまえの渦はしなやかに美しく螺旋を描き、無数の夢を乗せて伸びやかに繋がっていく。おまえが見た精霊たちは、今おまえの後を追って螺旋の渦をなし、ひきもきらさず列をなしている。

そして渦に乗ったおまえは何度もなんどもこの地に戻ってくるだろう。まわりの森の木々を震わし、みんなで協力して建てた竪穴住居の茅屋根を撫で、野焼きの野炉の灰を散らし、おまえやほかの人の作った縄文作品を愛で、いつも、どこでも残った私たちにおまえの記憶を喚起させるだろう。おまえの成し遂げた仕事、思索、大きな夢、愛する人たち、すべてがここにあったのだから。

おまえはここで新しいおまえの地平を切り開き生きていくはずだった。縄文のスピリットに惹かれ、現代に生きる己の感性で縄文の新時代の美を求めてひたすらに挑戦を続け、その手でやり遂げていく意欲に溢れていた。私たちは底のない悲しみの中、その夢を引き継ぎ繋いでいかなければと、今祈るような気持ちで歩み始めようと思う。

生前、村上原野を支え、愛し、共に力を携えて活動してくださった方々に感謝の思いでいっぱいです。これから私たちは心を寄せる人たちと共に彼の魂の宿る最後の作品を無事焼き上げます。そして彼の残した作品を新しい縄文芸術として世に提示していきたいと思っています。彼の縄文の渦はまだ終わっていないのですから。どうぞこれからもよろしくお願いいたします。

(猪風来・むらかみよしこ)

猪風来美術館 - ゲンヤよ!... | Facebook

2020-03-08

赤倉温泉スキー場に来ている

2月に白馬に2週間滞在してスノーボードと温泉三昧だった。白馬に2週間も滞在することになったのには長い話があるのだがまたの機会に書くとして、結果として、長期滞在して温泉に浸かりスノーボードをしてリモートワークをする価値に目覚めてしまった。3月も同じことをしたいと思ったので、人を誘って再び一週間の長期滞在をしてきた。

滞在先は赤倉温泉だ。詳しくは知らないが、この暖冬にもかかわらず全国のスキー場の積雪ランキング上位にあるスキー場だ。予約時に300cmの積雪があったので、これならば雪はあるだろうと宿を予約した。赤倉ホテルという宿だ。さぞ予約は取りづらいだろうと思っていたが、あっさりと予約を取ることができた。

宿はなかなかよかった。食事は悪くなく、宿の建物内に温泉が3箇所あり、しかも2箇所は24時間入り放題。そしてもう一つ露天風呂があり、これがやや特殊な完全な外に設置されている露天風呂で、涼しくて湯温も高く最高だった。この露天風呂、変わったことに混浴でかつ周りから丸見えなのだが、そもそもホテルにはほとんど客がいないので気兼ねする必要はなかった。ただし、例年では雪が高くつもり、完全に周囲から隠れてしまうそうで、本来は女性客も入りやすいそうだ。

肝心のスキー場だが、宿の目の前に赤倉温泉スキー場がある。当初、このスキー場にのみ行くだろうと思って、あらかじめリフト券を4日分手配しておいた。しかし、これは間違いだった。赤倉温泉の近くには赤倉温泉スキー場、赤倉観光リゾートスキー場、杉ノ原スキー場、池ノ平スキー場、関温泉スキー場がある。特に赤倉温泉と赤倉観光は隣り合ってつながったスキー場で、赤倉温泉スキー場は広くて簡単でつまらないコースばかりだが、赤倉観光リゾートスキー場の方は難しくて面白いコースが多かった。

まず移動日は滑らず、初日は赤倉温泉スキー場で足慣らし、白馬で2週間、1日滑って2日休むという筋肉を鍛えるのに理想的な頻度で滑っていたので、体には余裕があった。2日目に赤倉観光リゾートスキー場に行ったが、これまた前日の疲れがまったく気にならないほどの余裕があった。3日目は流石に連続しては辛いだろうと赤倉温泉スキー場でのんびりと滑ったが、これまた余裕があった。4日目は再びリゾートに行った。5日目は念の為に休みを入れた。膝は多少痛むが、危険な痛みではない。

これを書いている時点では土曜日だが、明日の日曜日に1日滑り、月曜日は余力があれば午前中に滑って帰ってこようと思っている。こんなにも膝と脚に余裕ができているほど体が鍛えられているとは自分でも驚いている。しかも、スノーボードの腕も上達している。白馬でスイッチができるようになったが、さらに滑走が安定した。

白馬での目的はスイッチだったが、今回の目的はGoProを持っている友人と一緒に言ったので、追い撮りと自撮りの上達を目標にした。そのために自撮り棒を購入した。結果は大成功だった。もっと難しいものだと思っていたのだが、自撮り棒を持っての滑走はほとんど滑走に影響を与えない。簡単であることがわかったので、GoProの来年のモデルが販売されたら購入を検討しようと思う。

今回使ったGoProはHERO 7だが、使う上での注意点がいくつかあった。まずGoProはバッテリーが持たない。リフト営業開始から終了までの丸一日の全滑走を撮影したいというのであれば、4K解像度や120FPS撮影は諦めた上で、予備のバッテリーを2つ以上持っていくのがよいだろう。逆に、事前に危惧していたSDカードの容量は全く問題がないことがわかった。今は512GBや1TBのSSDカードが数万円で売られている。動画のビットレートが90Mbpsであったとして、512GBあれば12時間は撮影できる計算になる。そしてGoProのバッテリーは1時間持たない。

GoProを撮影した後の注意点もある。GoProはSDカードのフォーマットにexFATを使っている。exFATのfuseではないマウントにはLinux kernel 5.4が必要だ。Ubuntu 19.10は5.3、Ubuntu 20.04が5.4になる予定となっている。

GoProが使う動画フォーマットはh.265(HEVC)の10bitプロファイルを使用している。この動画のリアルタイムデコードはとても重い。筆者はここ10年ぐらいCPUのパフォーマンスは十分すぎるぐらい向上したので、いまだにSkyLake世代のIntel CPUを積んだラップトップを今回の旅行に持参した。ところが、H.265 10bitのデコードのハードウェア支援はSkyLakeの次の世代のKirbyLakeが必要だ。KirbyLakeもそうだが、AMDやNvidiaのGPUのハードウェアデコード支援も、h.265 10bitに対応したのは2016年に販売された製品からだ。今回の撮影は2.7k 60fpsで行ったが、筆者のPCではリアルタイムデコードできなかった。前のフレームからの差分で表現するIフレームや、前後のフレームからの差分で表現するBフレームを多用するh.265の再生は、リアルタイムデコードが出来ない場合破綻する。そのために当初は単に映像を確認するためだけにffmpegでh.264にエンコードしていたが、いろいろと試した結果、ブラウザーを実行しない状態でmpvを使うとややフレームレートに違和感はあるものの、再生できることがわかった。

2.7k 60fpsでこの負荷なので、4K 60fpsはもっと負荷が高いのだろう。GoProで撮影した動画を編集するには最新の高スペックなコンピューターを容易すべきだ。最も筆者はffmpegのフィルターでできる以上の編集をするつもりはないのであまり気にしていない。今のところ考えている編集は動画の切り出しと連結、あとは別音声のmuxぐらいだ。今回撮影した自撮りと追い撮りはすぐにでも動画サイトにアップロードしたいのだが、現在滞在している宿のWiFiの帯域は20Mbps程度で2割程度のパケットロスが発生するという基本的人権がないほど貧弱な環境なので、自宅に帰ってからアップロードする予定だ。

追い撮りと自撮りについてだが、まず自撮りについては特に難しいことはなかった。単に自撮り棒をもって滑るだけだ。スノーボードは両手が自由なので様々な持ち方ができる。360度カメラではない自撮り棒に固定したカメラの場合、後ろ手で持って山側から谷側への撮影、前の手で持って谷側から自分を含む山側を撮影、前の手で持って谷側を撮影という方法が考えられる。全て試してみたが、どれも特性の違う動画ができあがる。

追い撮りは難しい。単に追いかけて被写体をフレーム内に納めるだけならそれほど難しくはないのだが、問題は距離だ。GoProは画角が広い。これは被写体をフレーム内に維持するという点ではいいのだが、実際の距離以上に被写体との距離感が出てしまう。被写体を大きく移すには近づく必要があるのだが、これも難しい。被写体は自分ではないので滑走の速度があわない。直滑走すると追い越してしまうし、丁度いい速度を保つのが難しい。撮影中、離されたので直滑走して追いつき、そして抜きそうになったので減速してまた離されることがたびたびあった。これは自分のショートターンの腕前を上げるほか、被写体と無線で連絡を取り、離されすぎた場合減速してもらうなどの連携が必要だろう。

もう一つ難しいのが、実際に見たとおりに撮影できないということだ。雪面は日光の反射で白飛びしてしまい、起伏が目立たなくなってしまう。かなり深いコブ斜面でもまるで圧雪されているかのようになだらかに見えてしまう。そして、傾斜も実際より浅く見える。これはカメラ自体が傾斜にそっているために仕方がないことではある。カメラを水平にすると撮影できるのはほとんど空だけだ。速度感も乏しい。カメラを高い位置で保持すると全く速度感がない。それなりの傾斜のある斜面を直滑走しても、雪面が白飛びすることと画角の広さのせいで、全然速度が出ているように見えない。速度感を出したければカメラを低い位置に置かなければならない。

また、今回は追われ撮りもためしてみた。これはカメラを後方に向けて滑り、被写体に追いかけてもらうことで、被写体を全面から撮影しようという試みだ。これはある程度はうまくいったが、なかなか難しい。減速やターンをするたびにカメラを左右に降ってしまうので、被写体はフレームに入るためにかなり努力して滑らなけれならない。直滑走すると被写体と撮影者の道具と技量と体重差によって速度差が出てしまうので破綻する。今回、私はスノーボードで友人はスキーだったが、私は毎回ホットワックスをしているが友人はスプレーワックスで済ませるズボラな人間であるのと、私が友人より20kg重いために、直滑走すると友人よりかなり相対速度が開いてしまう。それに、被写体一人だけで同じ姿勢を維持して直滑走し続ける動画はそれほど映像映えしないという問題もある。複数人でのレースのような面白さを追加する要素が必要だ。

手ブレ補正も一長一短がある。GoProの手ブレ補正はなかなかに優秀ではあるのだが、手ブレ補正をかけると滑走のダイナミックな動きが消えてしまう短所もある。

友人はスキーヤーなので、スキーでの自撮りや追い撮りを模索していたが、自撮りについては圧倒的にスノーボードのほうが楽だ。追い撮りもスキーでは細かい調整が聞かずに難しい。ヘッドマウントではカメラ位置が固定されてしまい、自撮り棒を動かすというダイナミックな撮影ができない。スキーで自撮り棒をもつと滑走が難しくなる。スノーボードでは手を固定して滑ることもできるが、スキーは手を動かしてバランスを取りたい特性があるようだ。

今回、自分の滑りを追い撮りしてもらう機会にも恵まれたが、やはり滑走中にバランスを取るために上半身をリーンする癖が抜けない。下半身の屈伸だけで十分にバランスをとれるところでは積極的に下半身を意識して使っていきたいところだ。

2020-02-16

C++20標準規格がほぼ固まった

2020年2月10日から15日までプラハで行われた会議により、C++20のDIS(Draft Intarnational Standard)が可決された。これはC++20となる標準規格と同じ文面であり、もうこれ以上変更はない。今後、このドラフト案に対して各NBによって可否の投票が行われる。何事もなければこのまま可決されてC++20が制定されるだろう。

今回残念なのはstd::formatだ。これはpythonにあるようなテキスト整形ライブラリだ。ただしロケールに依存している。std::formatのロケールを引数に取らないコンストラクターはグローバルなlocaleオブジェクトに依存する。今の所ロケールの影響を受けるのはtype specifier nで、数値を桁区切りにして出力する機能だ。

std::formatがlocale汚染されたことにより、std::formatは危なくて使えないライブラリになったし、ローカライゼーションの妨げになるので使ってはならないライブラリとなった。

10年前、char8_tの必要性を標準化委員会に説いたときはchar型は生のバイト列を表現するのに最適な型だなどととんでもない話を持ち出されて一笑に付されたが、その後にchar8_tの必要性は認識され、かつcharが生のバイト列を表現するのに不適切な型であることが認識され、std::byteが入った。

コルーチンも問題が多い。C++20に入ったコルーチンとはその名前で連想するようなユーザーモード実装の軽量スレッドではない。C++20のコルーチンとは3種類のキーワード、co_await/co_yeild/co_returnを使った関数をコルーチン関数と認識し、その関数に対してあらかじめ定められた変形を行い、最終的にユーザー定義のクラスの特定のシグネチャーのメンバー関数を呼び出す単なるシンタックスシュガーだ。変形ルールを考慮した上で自力でライブラリを実装すれば、例えばユーザーモード実装の軽量スレッドやジェネレーターやメソッドチェインやステートマシンや非同期I/Oといった機能を実現できる。ただし、コルーチンをサポートした標準ライブラリは存在しないので自力で実装する必要がある。そして自力で実装するのは極めてだるい。

コルーチンのためだけにコア言語にここまでユーザー定義クラスの特定のシグネチャが存在することを前提とした文法を入れるのは汚い。コルーチンのような機能は、静的リフレクションで実現すべきだ。

今現在、環境の変化でC++に時間を割くことができていないし、C++20本は出せるかどうかわからない。

2020-01-18

Erlangについて思うところ

職場の今までいた部署が潰れてしまったので、新しい部署で仕事のためにErlangを学んでいる。基礎的な文法については学び終わったので、現時点でのErlangについての雑感を書いておこうと思う。

Erlangは多数派のプログラミング言語とはだいぶ違う文法を持っている。終端記号がドットであることもそうだが、比較演算子もだいぶ違っている。多くの言語が!=を使うなか、Erlangは/=を使っている。Less than or equal toが=<であるのも多数派とは異なっている。ただし、Greater than or equal toは>=だ。一貫性がない。

終端文字はドットだが、関数の中には一つの式しか書くことができない。式はカンマで区切ることができるので、以下のようになる。

func() ->
    expr1 , % カンマ
    expr2 , % カンマ
    expr3 . % ドット

このような文法はリファクタリングの時に問題になる。というのも、例えば関数の戻り値をexpr3の評価結果に依存した別のものにしたくなったとき、

func() ->
    expr1 , % カンマ
    expr2 , % カンマ
    expr3 . % エラー
    expr4 .

うっかりドットをカンマに修正するのを忘れるとエラーになる。

そもそも関数の文法も問題だ。関数は同名の関数群をセミコロンで区切って一度に定義する文法になっている。

Name( P1 ) when ... ->
    expr ;
Name( P1 ) when ... ->
    expr ;
Name( P1 ) when ... ->
    expr . 

関数群の最後はドットで終端するが、途中の関数はすべてセミコロンで区切る。これは関数を定義する順番を変えたときに、手でセミコロンとドットを修正しなければならない。

Name( P1 ) when ... ->
    expr ;
Name( P1 ) when ... ->
    expr . % エラー、リファクタリング中の修正漏れ
Name( P1 ) when ... ->
    expr ; 

変数が再束縛できないのもコードを汚くする。というのは、結局現実のコードでは式を評価した結果を元に更に計算を行い、その結果を束縛し、途中の結果については参照しないコードがある。


R1 = expr1 ,
R2 = Do_something(R1) ,
R3 = Do_something2(R2) .

もちろん、途中の評価結果を変数に束縛する必要はないのだが、あまりにも式が長い場合は可読性のために途中でわかりやすい名前をつけたくなる。しかし、変数の再束縛が許されていないために、変数名に意味のある単語を使わない文化圏の怠惰な数学者がよく使うX'や、gitを使えないバカがよく使う2020-01-18プロジェクト企画書(最新)(第二項)(承認待ち).zipのようなひどい変数名を作り散らかす原因になる。

他にもガードにBIFしか使えないとか型がないとか型がないとか特に型がないとかいろいろといいたいことはあるし、ErlangはHaskellの爪の垢を煎じて飲んでほしいのだが、汎用プログラミング言語としてみたErlangは貧弱で、主要なプログラミング言語とは違う文法を採用し、しかも融通がきかない不自然な文法で、まことにつまらない言語だ。まるでGOやJavaのような言語と言える。

ただ、言語としてはそれほど難しい概念もないので、習得は容易だろう。

ただし、あらゆる点で言語としておそまつな点が目につく。最初はクソ言語と思っていたが、途中からこれはBrainfuckと同じエソテリック言語の仲間だと思えてきた。

そして基礎的な文法を一通り学び終えた今では、ついにあるひとつの結論に達した。Erlangは分散コンピューティング用のDSLなのだ。SQLとかシェルスクリプトと同じであって、汎用プログラミング言語として考えるからクソ言語だと思うのであって、特定の分野専門のDSLだと考えれば悪い言語ではない。汎用プログラミング言語として考えたとき、SQLやシェルスクリプトはいかにもクソ言語というしかない。しかし、SQLやシェルスクリプトの価値はそこにあるのではない。Erlangも同様に、たまたま汎用プログラミング言語としての機能を備えてしまっただけで、本来は単なるDSLであり、ツールでしかない。1980年台にネットワーク越しのリモートコンピューター群をあたかも一つのコンピューターを扱っているかのように扱えるようなツールを実現したという点で価値がある。

さて、Erlangの基礎的な文法は一通り理解したのだが、まだこれでErlangの習得が終わったわけではない。これからErlangのプロセスやメッセージパッシングなどを学ばなければならない。まだもう少し時間がかかりそうだ。

膝の痛みがなかなか治らない

スノーボードによる膝の痛みがなかなか治らない。

30を超えてから新しい運動を始めると悩まされるのが靭帯と腱の損傷だ。筋肉痛というのは数日で回復するが、靭帯と腱の回復には数ヶ月かかる。これまでにボルダリング、ダンス、スノーボードと新しい運動に挑戦し続けているが、そのたびに靭帯と腱を損傷している。

残念ながら今の日本語圏のインターネットにはまともな情報がないので、せめて自分の怪我の状況と回復時の自覚症状ぐらいは書き残しておこうと思う。

ボルダリングでは指の腱を損傷した。原因は単純で、足を滑らせて指だけで極端な荷重変化を支えてしまったのが原因だ。指の腱を損傷すると、指の曲げ伸ばしと手首、手首の下辺りに違和感を感じる。回復の自覚症状はかなり急峻だ。病院に行ったところ、抗炎症作用のある塗り薬を処方された。塗るとわずかに痛みが減る。最初の一ヶ月ぐらいはほとんど回復が見られず絶望的になるが、ある日を境に1日単位で違和感が減っていく不思議な自覚症状の変化が現れた。

ダンスでは足首が痛くなった。つま先を上げる方向に足を動かすと、足首が痛くなる。医師の診断によるとアキレス腱を痛めたそうだ。一ヶ月ほどダンスを中断して、痛みがやや収まったものの、依然として残るので病院に行ったところ、処方はロキソニンテープとジクロフェナクNa(鎮痛抗炎症剤)とレバミピド(胃薬)とアセトアミノフェン(解熱鎮痛剤)であった。薬の鎮痛効果により痛み自体は軽減されるのだが、痛みがなくなるわけではなく、回復して痛みが減ったのか、単なる鎮痛効果で痛みがわかりにくくなっているだけなのか判断に困る。そのまま更に1ヶ月ほどは自覚症状は変わらなかったが、ある時を境に急激に1日単位で症状が軽くなっていった。

そして今悩まされているのが膝だ。原因はスノーボードだと思われる。ダンスで膝を痛めなかったのはよくわからない。いかにも膝に負担の掛かりそうな動きもしたのだがダンスでは問題がなく、スノーボードに1日行っただけで極端に膝を痛めてしまった。

当初は右膝の内側に痛みがあったのだが、今は左膝も少し痛み、かつ膝の外側にも痛みがある。膝の内側の痛みしか自覚症状がなかったときに医者にかかったところ、膝関節内側側副靱帯(MCL)を痛めたのだろうということだ。処方は足首と同じだ。

肝心の治療経過だが、一ヶ月経過した今、まだはかばかしくない。未だに痛みが残っている。当初は階段を上がるととても大きな痛みがあったが、今は階段を上がるぐらいでは痛みはでない。当初は膝に負荷をかける動きをすると痛みが出ただけで、安静にしていれば痛みはなかったのだが、今は膝に負荷をかけても痛みはそれほどないが、常に膝に違和感を感じている。この安静時の違和感は安定せず、痛みがないときもあれば、痛むときもある。自覚できる痛みがないからとうっかりと地下鉄の階段を上がってしまった翌日は痛みが出ている気がするので、膝への負荷に遅延して安静時の痛みが生じているのかもしれない。

靭帯と腱の回復には2ヶ月かかるという個人的な経験則からすると、回復にはまだ一ヶ月かかる計算になる。スノーボードのシーズンは短い。特に今年は雪が少なく例年より短くなるだろう。

この記事をここまで書いてから2日立った。たまたま膝の調子が良かったのでボルダリングに行ったところ、回復の兆しを感じた。翌日も痛みがあまり膝に残らない。

改めて考えてみると、今まで靭帯や腱を痛めたときの痛みの自覚症状は、いつも同じような状況だ。まず受傷直後はそれほど痛くない。翌日から数日も痛みはあるもののそれほど痛くはない。ただし、少しでも負荷がかかったならば危険な痛みを感じるので運動はできない。その後一ヶ月以上、運動を完全に控えても痛みが収まらない状態が続く。多少の負荷をかけても当初感じた危険な痛みはないのだが、やはり痛みはあるので運動はできない。このような状態が一ヶ月以上続いて絶望するが、ある時急に回復の兆しを感じる。そうすると少しぐらいは負荷を書けても痛みは感じなくなり、運動も様子を見ながら再開できる。そして、不思議なことに運動をすると回復が早まる。

2月にはスノーボードに復帰できるかもしれない。

2020-01-05

2020年の日本には2020年にふさわしい日本語の掲示板がない

情報の流通において最も効率的なのはテキストだ。テキストを効率よく流通させる方法として、古典的なインターネットにはメール、チャット、掲示板があった。

このうち、メールは古典的なEメールがまだ生き残っている他、現代的なSNSがメールの機能を代替し始めてきた。日本では今の所LINEが最も普及しているようだ。

チャットもそうだ。古典的なIRCはまだ生き残っている。しかし現代的なSNSや、Slackのようなサービスが代替し始めてきている。

では掲示板は? 現代の日本には現代的な掲示板サービスが欠けている。

もちろん、掲示板機能を提供するWebサービスはたくさんある。しかし、日本語圏でWebサービスを提供しているものは、いずれもかなり限定的な目的に特化したものだ。例えばユーザー同士で質問と回答をしあうサービス(Yahoo知恵袋など)とか、ソーシャルニュースアグリゲーション(はてなブックマーク)のようなサービスはある。しかしテキストの流通機能としては貧弱であり掲示板ではない。

2ch/5chのような古典的な掲示板はある。しかし見たところ技術的負債と開発リソースの不足により、ほとんど当時のまま運用されているようだ。2020年に使いやすい作りではない。

私の考える2020年の品質の掲示板とは、RedditやHacker NewsのようなWebサービスだ。どちらもソーシャルニュースアグリゲーションだ。そういう意味でははてなブックマークはとてもいい線を行っている。しかしはてなブックマークは掲示板ではない。単に1行コメントが書けるだけで、他人のコメントを参照してテキストを積み重ねることができない。はてなブックマークはソーシャルニュースアグリゲーションというよりはオンラインブックマークとして設計されているので、結果として掲示板にはならなかった。

結果として、日本には2020年にふさわしい現代的な掲示板がない。ないということはどこかが作れば儲かるのではないかと思う。誰かがやってほしい。

Arch Linuxがパッケージ圧縮フォーマットをxzからzstdに変更

Arch Linux - News: Now using Zstandard instead of xz for package compression

Arch Linuxがパッケージの圧縮に使うフォーマットをxzからzstdに変更した。

Archでは圧縮レベル20を使うことにより、xzにくらべて0.8%サイズが増加するが、デコード速度が1300%向上するという。

CanonicalによるUbuntuは2018年にzstdに移行するテストをしていて、その結果による、圧縮レベル19を使うことにより6%のサイズ増加だったということだ。

zstdとはFacebookのYann Colletが2016年に発表した圧縮フォーマットとそのリファレンス実装のことだ。軽く調べてみたところ、メモリ使用量が多く並列実行に力を入れている設計と実装のようで、現代のコンピューター向けという感じがする。

2020-01-04

未来のタクシーはネットカフェになる

深夜にのんびりとRedditを眺めていたところ、以下のような1年前の記事が話題になっていた。

Mean streets: Self-driving cars will "cruise" to avoid paying to park

内容はこうだ。自動運転が実用化されたならば、車は駐車せずに自動運転で周辺を運転するようになる。なぜならば、燃料費と摩耗費よりも駐車料金のほうが高くつくからだ。

たしかに一理ある。都市部の駐車料金は高い。なぜなら土地が高いからだ。自動運転により人件費がなくなれば、後は「車の燃料費と摩耗費<駐車料金」であるならば車を運転し続けたほうが安い。

この考えを推し進めると、将来、タクシーはネットカフェになる。

ネットカフェは簡易的な個室とインターネット、マンガや映画を提供している。貧乏人はネットカフェを簡易宿として利用している。これらネットカフェの機能は、自動運転による無人タクシーで代替できる。

つまりこうだ。都市部を自動運転による無人タクシーが流している。客はこのタクシーを呼び止め中に乗る。中にはフラットに倒すことのできる椅子とコンピューターと携帯電話網によるインターネットが提供されている。またマンガや映画のストリーミングサービスも提供されている。客がネットカフェ機能を利用している間、この無人タクシーは周辺、あるいは指定した目的地まで運転する。この無人タクシーは簡易宿としても利用できる。客は椅子をフラットに倒して寝ることができる。その間もタクシーは周辺を運転する。

荒唐無稽だとも思えない。現実のネットカフェは、土地と建物を用意するのに大掛かりな費用がかかる。しかも場所は固定で、車のように柔軟ではない。

どの程度現実的なのだろうか。車の摩耗費、メンテナンス費用、通信費用、コンテンツ契約費は償却して無視するとしよう。後に残るのは燃料費だ。現在、日本のガソリン価格はレギュラーが146円/Lだ。最新のハイブリット車は20km/Lを上回る燃費を持っている。

ただ、このネットカフェとしての無人タクシーにおいて、燃費というのは「距離/燃料」ではない。本当の燃費は「時間/燃料」だ。このネットカフェとしてのタクシーは走行をしなくても常時電力が必要なので、停止していても燃料を消費する。運転は燃料消費を最小にするが、走行距離を最大にする必要はない。たとえ信号や渋滞や燃料補給によって都合よく停止している時間が長くても、燃料消費が少なければ問題はない。

もしガソリン1リットルで1時間の燃費(時間/燃料)があるのだとしたら、1時間あたり146円の費用がかかる。

あるいは、蓄電池を搭載した完全電動車とすることもできる。この場合、無人タクシーは充電拠点の周辺を運転することになる。

都心部のネットカフェの料金と比較してみよう。都心部のネットカフェの相場は、30分で300円、3時間で千円、6時間で2千円、12時間で3千円程度だ。自動運転による運転手の人件費のかからない無人タクシーとしてのネットカフェは物理ネットカフェと同じ料金で利益を出せそうだ。

では肝心の駐車場の料金はどうだろう。都心部の駐車場の料金はまちまちだが、無人タクシーは場所の利便性を考えなくてもよい。利便性の悪い場所にある駐車場は、都心部であっても夜中は500円といった安いところもある。長時間利用する客を乗せた無人タクシーは、安い駐車場が空いているのならば駐車場を使い、そうでなければ道路を燃費(時間/燃料)のよい運転で流すのがよいだろう。

高度な自動運転が実用化され、このようなネットカフェとしての無人タクシーが大量に公道を流すようになると、公道が渋滞して社会問題になるはずだ。しかし法改正は技術開発よりも時間がかかるはずで、このような未来はありうるのではないか。

2019-12-18

江添自宅ボドゲ会@12月22日

以下の要領で12月22日に自宅ボドゲを開催します。

https://ezoe.connpass.com/event/159944/

今回はコルトエクスプレスのもう一つの方の拡張がしたい。

かぐらスキー場に行ってきた

12月15日に2019-2020シーズン2回目のかぐらスキー場に行ってきた。すでにオープン2日目の12月1日に行っていたのだが、その時は地面が露出していて、板が傷ついてしまった。

エッジの傷はファイルで研摩した。ベースの傷は白い線がはいっているだけで、それほど深くはなさそうだが、ファイバーテックスでこすったぐらいでは取れないようだ。諦めて上からホットワックスをかけた。

2週間膝を休めて15日に再び滑りに行った。当初の予定では14日からガーラ湯沢、石打丸山、舞子といった里のスキー場がオープンする予定だったが、雪不足のために延期していたので、かぐらが混むかもしれない。しかし年内に3回は行きたいことを考えると、今行かなければならない。

始発の上越新幹線で越後湯沢につくと、バス乗り場にはかなり長い列ができていた。バスには全員乗れたが、満員であった。これではみつまたの狭い更衣室が満員になるのではないかと思ったが、更衣室は意外と空いていた。

チケットの購入もそれほど並んではいなかった。

ゴンドラの待ち時間が30分ほどはあった。

今回のかぐらスキー場の客層は、オープン時とはだいぶ異なっていた。オープン時の客層は遠方から来ていて、ウェアの身なりもよく、言葉遣いも丁寧で、たまたまリフトやゴンドラで一緒になろうものなら自分がいかにスキー、スノーボードを愛しているかを問わず語りする種類の人間であった。

ところが15日のかぐらスキー場の客層はひどい。まず身なりが良くない。道具も手入れされておらずエッジ付近にベースバーンの出た板をそのまま使っている。言葉遣いもひどいもので教養のかけらも感じられない。ましてやリフトやゴンドラから漏れ聞こえてくる話はパチンコとセックスばかり。どうやらローカルが多いらしい。

特にひどいのはタバコだ。所構わずタバコを吸うし、あまつさえ滑りながら吸う大ばかものもいる始末。リフトに乗っている最中にもタバコの匂いがしたことさえあった。まだ日本にそんなバカが残っていたのかと驚きさえ覚える。もはや地方に未来はない。

さて、みつまたエリアからかぐらエリアへのゴンドラに乗ろうと道中を滑っていた所、ゴンドラ直前の傾斜で違和感を感じて転倒した。なぜかプロテクターをつけているはずの膝に擦りむいたような衝撃が走る。みると、ピスラボが露出している。しかしカチカチに凍った雪もある。膝のプロテクターをつけていてよかった。最悪に近い状態の斜面をなんとか滑り降りてゴンドラへ。

かぐらエリアにつき、さっそく一本滑ったが、やはり膝が痛む。痛みはなくなったと思ったがまだ早かったのだろうか。しかしここまで来た以上帰るのももったいない。しかし膝は痛む。とりあえず下に降りようと傾斜の極めて緩いゴンドラコースを滑ったところ、膝は傷まない。速度も出せる。楽しい。なるほど、膝の痛む理由が分かった。自分のレベルにあっていない難易度のコースを滑ったからだ。傾斜が厳しく、圧雪もされていないコースを滑り降りるために、強く減速しながら降りてくるために、膝に負担がかかっていたのだ。減速をしなければ膝への負担は軽い。

その日は7本ほどゴンドラコースを滑り、さらに何本かみつまたで滑った。どうやら傾斜20度程度ならば減速せず半ば直滑降、半ばカービングで楽しく滑ることができるようだ。

肝心のスタンス設定だが、やはりスタンス幅56cmは私の体格には長すぎたようだ。今回48cmにしてみたが、だいぶ滑りやすい。56cmのときは膝を極端に内股にしてようやく安定するが、48cmではそのようなことをする必要がない。ただ、流石に少し狭すぎるような気がしたので、次は50cmを試してみたい。

スタンス角であるが、メインのスタンスで+21/+9と+15/-9の違いは実感できなかった。スイッチではダックスタンスのほうがいくぶんか楽に滑ることができるようだ。千シーズンではスイッチはできなかったが、連続ターンがかろうじてできるところまで練習した。しかしスイッチでカービングができないし、直滑降をする勇気も出ない。

翌日、右足に筋肉痛があったが、前回よりは程度が軽く、2日で治った。筋肉痛が治ると、今度は膝の痛みが出てきた。安静にしていると問題はないのだが、地下鉄の階段を登ると痛む。痛むというよりはかゆい。病院に行ったところ、しばらくは運動を控えるべきだと言われたので、次のスノーボードは来年まで控えることにした。

スノーボードの最適なスタンス設定を求めて

前回、スノーボードで膝の靭帯を痛めたが、どうにも解せない。膝を痛めるような過度の負荷をかけるような滑り方はしていないはずだ。そしてグラトリやパークのようなはるかに膝に負荷がかかりそうな運動をしている人でも、膝を痛めていない人がいる。どうもおかしい。健康な人間の靭帯の強度というのはそれほど変わらないはずだ。ましてや片足スクワットが連続してできるほど鍛えた今年、数百メートルおきに休憩するような滑り方でこんなに膝を痛めるのはおかしい。

そこで私は、バインディングの設定に問題があるのではないかと考えた。

スノーボードのバインディングは様々な調整ができる。バインディング自体の調整と、スタンスの調整だ。

スタンスには、スタンス幅とスタンス角がある。

スタンス幅は2つのバインディングの中心部からの長さのことだ。一般に、長いと安定性が増し、かつ板をたわませたり回す力も少なくて済む、ただし膝に負担がかかる。短いと不安定になるし板をたわませたり回す力もより必要になるが、膝への負担が少ないとされている。

一般にグラトリやパークをする人はスタンス幅を長めに設定し、速度を出してカービングする人はスタンス幅を短めにするとされている。また身長の大きな人ほど体格に合わせて長いスタンス幅にするようだ。

私のボードのスタンス幅のリファレンスは56cmあった。膝への負担を軽減するためにスタンス幅を狭くすることにした。板の最も内側のビス穴を使い、かつベースプレートでも幅を狭めることにより、スタンス幅を最短で48cmまで狭くすることができた。まずこれで滑ってみて、あまりにも狭いようであれば現地で調整することにしよう。

スタンス角は大雑把に分けて3種類の設定がある。フォワード(18-27/0-12)、極端にフォワード(30-45/21-35)、ダック(+/-)だ。

前回は初めてダックスタンスを試してみようと+12/-9をためした。極端に強いダックスタンス(+15/-15以上)は後ろ足の膝に負担がかかるという説もある。前回のダックスタンスはそこまで極端でもないので、ダックスタンスで膝を痛めたとは考えにくい。とりあえず次回はカービングをしたいので前向き(21/6)に設定してみた。

バインディング自体の調整としては、ハイバックの傾きを設定するフォワードリーン(forward lean)、ハイバックの位置を変更するロテーション(rotation)、つま先の足置き場の長さを調整するトゥランプ(Toe ramp)がある。

フォワードリーンをいれるとハイバックと靴の間の遊びがなくなり、エッジを立てるときの反応がよくなるが、遊びがないのでわずかな動きもエッジに伝えてしまい操作性が寛容ではなくなる。ロテーションは極端なスタンス角に設定した時に、ハイバックの位置をずらしてボードに対してより平行に当たるようにする目的がある。トゥランプはブーツのつま先が乗る場所だ。

プロのスノーボーダーのスタンス設定をみても、ばらつきが大きすぎて参考にならない。身長とスタンス幅は比例しているように見える。女性のほうがダックスタンスの角度が狭い傾向にある。デモンストレーターには極端なフォワードスタンスがいるが、ハーフパイプやジャンプ競技をするプロはダックスタンスが多い。

少し検索すると以下のような論文が出てきた。

INFLUENCE OF STANCE WIDTH AND BINDING ANGLES ON TIBIAL ROTATION AND OLLIE JUMP HEIGHT IN SNOWBOARD

スノーボードのスタンス設定には科学的な根拠が一切ない。そこで科学的に計測をすることで、膝への負荷の低さとパフォーマンスの観点から最適なスタンス設定を見つけ出す目的で行われた実験である。

実験内容はこうだ。10人のスノーボード上級者に、スタンス幅がshank length(膝から足首までの長さ)と±5cmの3通りと、スタンス角が+30/+15、+18/-15の2通りの、組み合わせで6通りのスタンス設定でオーリーしてもらい、その状況を全身にモーションキャプチャーのようなトラッキングマーカーをつけて計測する実験だ。ジャンプした高さと脚の可動範囲を測定し、スタンス設定のパフォーマンスと脚への負担の影響を調べようという実験だ。

実験結果から言うと、あまり意味のあるデータは得られていないようだ。ジャンプの高さの差は最大で3.6cmだったが、標準偏差が30%もあり、あまり意味がない。もっとサンプル数を上げればましになるだろうか。ただダックスタンスでスタンス幅の広いほうが若干高さが上がる傾向が見られた。

足の可動範囲についてはスタンス幅の影響はみられず、スタンス角の影響は若干観測できたが、やはり標準偏差が大きすぎる。受傷を防ぎやすいスタンス設定については何もわからなかった。

というわけでいろいろとスタンス設定を変えて滑ってみたので、その結果を次に書く。

2019-12-14

Outer Worldsでコンパニオンが死んでいないのに死亡したと認識されるバグ

https://twitter.com/_taylorswope/status/1205252714680045568

今日、#TheOuterWorldsのパッチ1.2をリリースした。これには「ゲームがコンパニオンを死んだとみなす」バグの修正も含まれている。このバグは俺のキャリアで最も長い時間を費やしたデバッグ作業となった。

このバグの概要は、一部のプレイヤーで、コンパニオンクエストが失敗とクエストログにでる。その理由はコンパニオンが死んだからだ。しかし字祭にはコンパニオンは死んでいないにもかかわらずだ。

これは解せないもので、というのも超新星モードでもなければ、コンパニオンは死なないからだ。

リリース前に1度か2度だけこの問題が発生したが、QAチームは再現できなかったので、その原因を特定することはできなかった。

原因の特定が困難だった理由は、どこで問題が発生しているかわからなかったことだ。問題が発現したすべての例で、10時間以内に問題が起こったのでクエストが壊れたらしい、ぐらいしかわからなかった。

この問題の調査にはすべてのスクリプトとコードで、コンパニオンが死亡すると認識する場所を洗い出す必要があった。

論理的に考えて問題の原因箇所となりうる唯一のスクリプトが実行される状況は、コンパニオンのヘルスがゼロになったときだ。銭湯が終わるまで待ち、復活させる。それ以外の場合に、本当に死んだとマークする。

ゲーム中、コンパニオンが存在するがアクティブなパーティには加入していない常用というのは、船の中だけだ。問題は、コンパニオンが船の中にいるときは、ダメージを受けないはずなのだ。

「ダメージを受けない」というのは「死なない」という意味ではない。攻撃によってダメージを受けないが、他の要素ではダメージを受ける。そのうちの一つは、とても高い距離から落下するというものだ。

問題は、船の中には落下死できる場所はない。そこで、今度はなぜコンパニオンがそんな高い場所に移動するのかということを突き止めなければならなかった。

大量の仮説を考えた。「もしかしたらファストトラベルで他のマップに移動したとき時に位置データが維持されているのではないか」とか「もしかしたら2人のコンパニオンが衝突した時に物理演算によって上方向に加速したのではないか」

個人的にお気に入りの仮説は、「コンパニオンがランダムイベントで牛がスポーンする場所に立っていて宇宙に打ち上げられるのではないか」 だ。仮説が否定されたときはちょっと落ち込んだものだ

そしてゲームがリリースされたが、たまたま発生した本来起こりえない不具合だったという希望は打ち砕かれた。世界中のプレイヤーがコンパニオンクエストが失敗したぞと報告し始めたからだ。

最終的に、ユーザーのレビューの中にあった何気ないコメントに、コンパニオンが虚空を登っているという変なバグを見たというものがあり、このコメントによって問題箇所の特定ができた。

開発上、NPCが周りとインタラクトするシステムは、「家具」とよばれている。これは文字通り椅子に座ると言った家具であることもあるが、端末使用とか壁に寄りかかるといった動作もすべてそうだ。

家具システムの奥深いところに、プレイヤーが会話中は、すべてのNPCに新しい家具インタラクションを無効化するコードがあった。

問題は、ハシゴの使用は2つの異なる家具インタラクションになっていた。一つはハシゴに取り付いて登る動作、もう一つは登るのを辞めてハシゴから降りる動作だ。

そのため、誰かがハシゴを登り始め、停止する前にプレイヤーが会話に入った場合、ハシゴから降りることができず・・・まあ、その・・・

なかなか笑えるバグだ。

2019-12-08

違法な職務質問をされたので東京都を訴えた裁判の控訴審は棄却、理由は突然に

職務質問裁判の控訴は棄却された。判決文は以下から読むことができる。

https://github.com/EzoeRyou/calling-110-is-suspicious

2年前の7月3日、職務質問を受けた。

警察官に職務質問をされた話し

この職務質問は明らかに違法であると感じたので、弁護士に相談の上、東京都に対して国賠訴訟を起こした。警察官というのは各都道府県の下に位置する行政組織なので、警察を訴えるというのは、その警察の所属する都道府県を訴えるということになる。

一審判決は請求棄却。理由としては、「最初の10分間は不審事由がないが、刃物などの危険物を入れることができるリュックを背負っていたから声をかけ10分間その場にとどめて話をするのは違法ではない。このとき110番通報を要請したことは不審事由にあたりその後の1時間20分の職務質問は不審事由が存在するために合法である」というわけのわからない判決が出た。

そんな判決は受け入れがたいので控訴した。その控訴は11月14日に判決があり、公訴棄却となった。

公訴棄却の判決文は一審判決に対する差分という形で書かれている。gitでバージョン管理してほしいところだ。110番通報の要請は不審事由に当たらないという至極当然の変更が行われた。築地の往来を歩く当時の私に不審事由は存在しないが、10分間声を書けるのは違法とまでは言えないという部分は維持された。

今回追加されたのは「突然」という理由だ。突然私がその場から立ち去ろうとした、突然話を打ち切った、警察官の制止を振り切ろうとした、突然警察官のいない方向に走った、などという文が追加され、これは不審事由に当たるとされた。

これもおかしな話だ。最初の10分間だけでも、一歩でも足を動かそうものなら警察官2人がかりで抱きつかれてその場に止められたし、話というのも私から切り出さなければなにもなく、ただ最初から荷物の中身を見せろという要求をひたすら繰り返すだけであったし、私はわざわざ「そこを通してください。あなたは動く必要はありません。私が迂回します」と言って動く意思を事前に表明したし、その上で警察官は拳銃を装着している右腰を私に押し付けて「あ、拳銃に触った」などとわざとらしく声を上げたりした。最後の突然警察官のいない方向に走ったというのは事実なのだが、実は東京都の主張ではそのようなことはなかったことになってる。むしろ私の方から主張したのだ。これはさぞかし不審事由だろうから当然書き付けてくるだろうと思った所ない。弁護士によると、私が自発的に応じたということを強調したいがためにわざと省いたのだろうということであった。これだけを見ても東京都の主張には嘘が多い。走った後はすぐに私有地の駐車場に押し込められて、大勢の警察官に囲まれて私有地の駐車場内に監禁されたような状態になった。

さて、真実がどうであれ、高裁判決で認定された事実は事実となる。高裁判決の事実認定が覆ることは原則的にない。日本の裁判は三審制ということになっているが、最高裁への上告は事実関係について争うことはできない。上告は憲法違反や、従来の判例が適用できないような状況の時に行う。

それでは今回の件はどうかというと、弁護士によれば、あるそうだ。

判決文では、警察法2条1項の「警察は、個人の生命、身体及び財産の保護に任じ、犯罪の予防、鎮圧及び捜査、被疑者の逮捕、交通の取締その他公共の安全と秩序の維持に当ることをもつてその責務とする。」と定めているとし、職務質問の条件を満たさない場合においても警察の諸活動は強制力を伴わない任意手段による限り、一般的に許容されるべきもので・・・有形力の行使であっても必要性、緊急性に応じて・・・具体的状況下の下で相当と認められる限度において許容されるものと解すべきであるとし、具体的な判例を挙げている。

その挙げられている判例であるが、これが今回の件にぴったり当てはまるかというと、実はそうでもない。というのも警察法2条1項に基づく、根拠規定のない警察の諸活動がどこまで許容されるかについてはあまり判例がない。というのもこの辺の解釈を要求する裁判など滅多に行われないからだ。裁判というのはとてもコストのかかる行為であり、わざわざ緊急時の警察官による有形力の行使の許容範囲の線引きを試みるような裁判は滅多に行われない。やるとするならば、他にいい方法がないので一か八か警察官による有形力の行使を違法だと認定させ、それによってその後の対応も全て違法であり無効化を狙ったものになる。

一つの判例は昭和50年(あ)第一四六号のもので、任意捜査に置いて許容される有形力の行使の限度について争ったものだ。

具体的に起こった有形力の行使としては、警察官から左手首を両手で掴まれたというものだ。これが許容されると認定された判例だ。

有形力の行使に至るまでの経緯はこうだ。車で道路脇に置かれたコンクリート製のゴミ箱に衝突する交通事故を起こした被告人は、顔が赤くて酒のにおいが強く、身体がふらつき、言葉も乱暴で、外見上酒によっていることが伺われた。そこで警察官は呼気検査に応じるよう要求したがこれを拒否。被告人は署内でマッチを課してほしいと要求し、警察官はこれを断った。被告人は「マッチを取ってくる」と言いながら立ち上がったが、警察官はこの公道を逃げ去るのではないかと思い「風船をやってからでいいではないか。」と言いながら左手首を両手で掴んだ。その後もみ合いに発展したというものだ。

これについて最高裁は、すでに事故を起こし、呼気検査拒否罪があるので本来ならば現行犯逮捕される状況にありながら警察官の配慮により逮捕をしていなかった状況で、警察官は逃げ去ると思って手首を掴んだのでこれは許容される有形力の行使である。その後被告人は警察官を殴っているが、これは公道の自由を実現するためにしたやむをえないもので正当防衛であるので暴行罪も成立しない。法は逮捕勾留されていないのであれば「何時でも退去できる」と定めているが、これは呼気検査を拒否して時間を稼ぎアルコールを身体から抜こうという被告人の公道が捜査に支障をきたすためであるので、署内のとどめたのも許容できるとしている。

この判例の具体的な状況と今回の状況はあまりにもかけ離れている。私は車を運転しておらず路上を歩いていただけで、路上の器物を損壊するなどの行為もなかったわけで、かつ職務質問をするべき不審事由も当初はなかったわけだ。この状況で声をかけ、抱きつくなどしてその場にとどめるのが許容されるべきではない。

もう一つの判例は昭和53年(あ)一七一七号のもので、交通の安全及び交通秩序の維持などに必要な警察の諸活動と警察法二条及び警察官職務執行法一条との関係について争ったものだ。

この事件のあらましはこうだ。警察はかねてから飲酒運転の多発地点とされている場所で一斉検問をしていた。この場所を通過する車両のすべてに停止を求めて、自動車検問を行った。この日1日の検問では被告人を含む酒気帯び運転5人を検挙した。被告人はそもそもこのような一斉検問は違法であり、違法な検問の違法な呼気検査によって収集された証拠は違法証拠であり、証拠能力がないと主張して裁判になった。

最高裁はこれについて、適法であると判断した。

今回の件は路上に検問を設けて通行人すべてを呼び止めていたものではない。警察の主張によれば、たまたま車で築地の道路を巡回中、私とすれ違った所不審(帽子を目深にかぶりうつむいて下を向いて歩いていた)を認めたのでパトカーを停車し、後を追い、自販機で飲み物を買っていた私に声をかけたということだ。この判例が今回の場合と何の関係があるのだろうか。

弁護士によれば、警察法2条1項が許容する範囲について新たな判例を残すのは、結果がどうあれ意義があることであるとのことだった。そこで上告することにした。

2019-12-07

Googleがブログ記事を検閲

私のBloggerのGMailアカウントに以下のようなメールが来ていた。

Hello,
Google has been notified that content in your blog contains allegedly infringing content that may violate the rights of others and the laws of their country. The infringing content that has been made unavailable can be found at the end of this message. For more information about this removal and how it affects your blog, please visit https://support.google.com/blogger/bin/answer.py?l=en&answer=2402711.


The notice that we received, with any personally identifying information removed, will be posted online by a service called Lumen at https://www.lumendatabase.org. You can search for the notice associated with the removal of your content by going to the Lumen page, and entering in the URL of the blog post that was removed. If you have legal questions about this notification, you should consult your legal advisor.

Terms of Service: https://www.google.com/intl/en/policies/terms/
Content Policy: https://www.blogger.com/content.g

The Google Team

Urls affected:
http://cpplover.blogspot.jp/2012/04/blog-post_9853.html

Countries affected:
Japan

またよくあるフィッシングメールかと思ったが、送信者はGoogleのBloggerのドメインで、実際に該当URLのブログ記事は検閲されている。

http://cpplover.blogspot.jp/2012/04/blog-post_9853.html

このブログ記事の内容は、2012年に千葉県八千代市の市役所の公式Webサイトにある内容を自分のブログである日新流山日聞 ™(現在消去されている)に違法にコピーしたとして著作権侵害の疑いで千葉県警サイバー犯罪対策課が同県八千代市米本の無職、****容疑者を逮捕した。容疑者は行為を認めているが違法ではないと主張していた。という報道を紹介し、容疑者のブログを示した上で、これはどうも本来ならば名誉毀損で民事で訴えるべきところを無理やり刑事にするために著作権侵害をでっちあげて別件逮捕したのではないかという見解を示し、その後著作権法を参照して、市のWebサイトには果たして著作権が認められるのか。仮に認められたとして、市役所のWebサイトの内容を著作権の例外である引用を超える範囲で利用することなどできるのか書いたものである。

この7年前の記事の内容になにか日本国内における権利を侵害する内容があるとは思われない。

しかし困ったことに、問題は検閲している相手はGoogleだということだ。Googleから人間のサポートを引き出すのは極めて困難だ。Googleの個人向け無償サービスから人間のサポートを引き出す方法は2つしかない。Google社員、しかも相当の重役、あるいはその該当のサービスを担当している部署の人間にコネを持つか、あるいはインターネット上で大炎上させて対応を余儀なくさせるかだ。いずれにせよ極めて強い影響力を持っていなければGoogleから人間のサポートを引き出すことはできない。

訴訟も容易ではない。まず費用が100万円ぐらいかかるし、Googleの日本法人は担当していないと主張されて逃げられる可能性がある。

とにかくなにか手を考えなければならないのだが、GoogleのBloggerに至っては、問い合わせ先すら容易に見つけられない。

2019-12-02

かぐらスキー場に行ってきた

11月23日のオープン初日にかぐらスキー場に行こうと計画していたが、あいにくの雪不足でオープン延期となっていた。その後もオープンのアナウンスもないので、11月30日は諦めていた。それに、ちょうど自宅でボドゲ会を開く予定もあった。

ところが、29日になって急に30日はオープンすると告知されていることに気がついた。しかしライブカメラをみるとまだ雪は多くない。それに滑走できると告知されているのはかぐら第1ロマンスリフトの範囲の滑走距離600m、幅20mの部分だけだ。幅だけみると軽井沢よりマシだが、距離は軽井沢の400mよりはマシだが大差がない。それに、みつまたエリアに十分な雪がない場合、とても悲惨なことになる。

悲惨なことというのはこうだ。みつまたからロープウェイで雪のないみつまたに上がり、歩いてみつまた第1高速リフトに乗り、そこから徒歩、ブラシ、あるいは今年から第二2ロマンスリフトで下ることでかぐらゴンドラまで移動し、ゴンドラに10分間乗り、ようやくたどり着いた場所で、たったの600m滑走できるということだ。

ところが天候に恵まれたらしく、30日の結果をみてみると、みつまたに雪があり、かぐらの第1高速リフトも可動しており、1500m滑走できるという。30日に滑った人の意見をネット上で探してみると、いずれも評価が高かった。天気予報を見ると翌日の日曜日は晴れ、月曜日からは雨の予報。これは滑りに行くしかない。明日の朝の早朝の起床に成功したら滑りに行こうと決意して急遽用意をし、早めに就寝した。

翌日の12月1日、予め設定しておいた目覚ましの喧しい鶏の鳴き声で起床。5時半に家を出ることに成功した。自宅からは20分ぐらいで東京駅につく。去年、日帰りの越後湯沢が圧倒的にお手軽だと主張してもあまり周りの賛同を得られなかったのは、皆東京駅から遠いところに住んでいるからだ。東京駅から越後湯沢駅までは70分。しかし、東京駅から自宅まで1時間以上かかるのであれば、交通時間は倍以上になるのでお手軽ではない。しかし、片道90分であれば、これは平均的な都心部労働者の通勤時間だ。十分にお手軽となる。

東京駅で予定通りに06:08分の始発新幹線に乗る。駅のホームではスワローテイルのスノーボードが立てかけたあった。持ち主は弁当でも買いに行っているのか見かけなかったが、上越新幹線に乗るということはおなじくかぐらに行くのだろう。

07:24に越後湯沢に到着。かぐらへのバスは07:50から片道20分。待ち時間も含めて40分ぐらいはかかる。駅直結のガーラ湯沢との差の40分だが、この時間の差によって、越後湯沢駅からかぐらに向かう人間は、ファーストトラックのパウダーを食いそびれる。東京駅で見かけた特徴的なスワローテイルの板の所有者もバス停にいた。

このバス停で、たまたま前に並んでいた人は饒舌な人で、本人の主張によると2歳からスキーをしているそうだ。何故か話題がとりとめなく変わる人で、発達障害か高次脳機能障害があるのではないかと思われた。また本人もしきりに、「あ、僕また変なことをいいましたか」と言う。話題がスキーに関連する以外は突然変わる以外は、その発言をしたときにはさほど変なことは言っていないことを考えると、本人に正確な自己評価ができていないことが伺える。曰く、「去年、「家族」が怪我をしたので今年は一人で滑りに来ている」、スキーヤーには珍しくヘルメットを持っていたが「去年からヘルメットを着用している」、「絶対に怪我をしてはならない」ということであった。まるで脳震盪でも起こして高次脳機能障害にでもなったのではないかという感想を持った。

もちろん怪我を防ぐためにプロテクターは重要だ。筆者はスノーボードなので、ヘルメットをはじめとして、尻、膝、肘、手首にそれぞれプロテクターを着用している。手首のプロテクターは新調した。去年は硬いカーボン板で補強された無骨なプロテクターを使っていたが、カーボン板と布の縫い付けが甘く1ヶ月でほつれてしまった。カーボン板には針が通らないので修理もできない。そこで、今年はBURTONの手首プロテクターを買ってみた。こちらは剛性の高いカーボン板ではなく、硬めのクッションと布を使っている。ミトンの中に装着できるので、プロテクターとグローブの間に雪が詰まることもない。

ミトンも新調した。去年は五指を使う必要があるだろうとグローブを買ったが、バインディングを占める程度では五指は必要なく、トイレやヘルメット着脱、財布から現金を取り出すと言った作業ではグローブを外さなければならなかったので、グローブは意味がなかった。

背中と肩を保護する上半身用の着るプロテクターを買うかどうかは迷ったが、今回は買わなかった。いずれパークに挑戦する時に買うかもしれない。

越後湯沢駅周辺や、バス乗車中の道を眺めていると、ある程度雪が積もっている。これは期待できそうだ。

さて、みつまたについて、10分以上着替えに費やした。何しろプロテクターの数が多いのだ。どうせ東京もそれなりに寒いのだから、今度日帰りするときは自宅からプロテクターとウェアを装備した上で移動してもよさそうだ。

さてみつまたからロープウェイでゲレンデに上がる。なんとみつまたも全面雪で覆われていた。さっそくスノーボードを装着し、リフトまで向かおうとするが、これが難しい。雪が硬すぎる上に、体がうまく動かない。去年スノーボードを始めたばかりなので、滑り方を覚えているかどうか心配だったが、案の定滑り方を忘れている。なんとかみつまた第1高速リフトにたどり着いて乗る。待ち時間はほとんどない。みつまたを滑っている人もいるが、こんなに雪が硬くては滑りづらい。やはりゴンドラにのってかぐらエリアに向かうのがいいだろう。リフトを降りると、雪はある程度柔らかかった。これなら滑ることができる。かぐらに行くには、短いがかなり傾斜のある部分を滑らなければならない。ここが辛かった。うまく連続ターンできない上に、土踏まずがとても痛む。なんとかゴンドラにたどり着く。ゴンドラはとても空いていて、私一人で乗ることになった。ゴンドラの中で靴を脱いで足を休める。するとだいぶ楽になった。久しぶりだから慣れていなくてつらいのだろう。前日に一度靴を履いて足を慣らしておくべきだったと後悔した。

かぐらエリアについたので、ロマンスリフトではなく高速リフトで上に上がる。かぐらエリアのコースは、基本的に非圧雪だ。唯一圧雪されているコースも、左側が3分の1ぐらい圧雪されているだけだ。リフトから滑っている様子を眺めていると、圧雪側をすべるときのエッジの音が極めて激しい。まるで氷の上を削りながら滑っているようだ。すでに滑った同乗者によると、圧雪側は完全に凍っていてとても滑りづらいとのことであった。では非圧雪側はどうかというと、凸凹だらけだ。ただし同乗者によるとふかふかだという。

私は非圧雪側を滑ることにした。去年ある程度滑ることができたはずなのにうまく曲がれない。速度も出せない。非圧雪面なので転んでも全く痛くはないのだが、起き上がる時に手のひらが沈みこんでしまいなかなか起き上がれない。一本目をほうほうの体で滑り終えた。どうしたものか。全く楽しくない。完全に滑り方を忘れている。やはりスノーボードの趣味は失敗だったのか。

その心配は、2本目を滑る時になくなった。どうやら滑り方を思い出してきたらしい。内股にして膝を近づけ、板を湾曲させるようにするととてもよく曲がれる。荷重と抜重の感覚も戻ってきた。これなら滑ることができる。非圧雪は滑りづらいが、去年の最後にかぐらでコブレッスンを受けていたのが役に立った。滑ることができる。楽しい。今回はダックスタンスを試してみようと+12/-9にした。あまりにも角度が広すぎると膝を痛めるとのことでこうしたのだが、まだ余裕があるようなので、次は+15/-12も試してみようと思う。そして、ブーツ、バインディング、板が全体的に柔らかい気がする。もっと上達したら、来年は硬い道具を買い揃えてみたい。

ただし足が疲れる。今年はダンスを練習していたので足も鍛えられていたかと思ったが、どうやら下腿部はかなり鍛えられているが、大腿部は鍛えられていないようだ。数百メートル滑ると休まなければならない。そして呼吸にも違和感がある。標高が高いので空気が薄いのだろうか。

この日は私は数百メートルおきに休みながら滑ることにした。この日のかぐらはかなり空いていた。リフト待ちはほぼなく、とくに午後になってくるとリフトを相乗りすることすらなくなった。人がいないので座っていてもまったく迷惑にならない。何しろ本当に人がいないのだ。リフトを降りたところでも数人しかいない。疲労のために仰向けになると背中が冷たい。背中を保護するプロテクターは防寒用に買うのもありではないか。

1日の終わり頃になってくると、かなり滑りが上達してきた。ただし、ヒールエッジが苦手だ。転ぶときは必ずヒールエッジのようだ。少し速度が出た状態でヒールエッジ側でターンをすると転んでしまう。状態は起こしているはずなので、どうもエッジを立てすぎているのが問題ではないかと思う。しかしエッジを立てすぎないのは難しい。

スイッチは逆で、トゥエッジで曲がることができない。もう少し緩斜面で練習をしたいところだが、残念ながらかぐらエリアに緩斜面はリフト付近にしか存在しない。それも斜面と言うよりはほぼフラットに近い。傾斜がなさすぎる。

やがて15:30になりかぐらエリアのリフトが止まった。かぐらからみつまたに戻るコースは閉鎖されているので、ゴンドラで戻る。今日は疲れたのでもうこのまま帰ろうと下山を目指したが、なんとみつまたは傾斜が強すぎず弱すぎない最適な緩斜面だった。あれほど疲れていた足でも速度を緩めずにカービングターンができる。なるほど、かぐらエリアは傾斜が強すぎる上に非圧雪だから難しかったのだな。

下山コースは台風19号の影響で途中の橋が壊れたらしく閉鎖中だ。ゴンドラで降りて帰路につく。大変に満足した1日だった。来てよかった。雪質も想定以上によかった。ただし、ところどころ草木や地面が露出しているところがあった。

20時に帰宅。そこから2時間道具の手入れ。かぐらは楽しかったし、満足したし、後悔はしていない。ただし板の消耗が激しい。雪は汚れていなかったのでベースに汚れはなかったのだが、硫化アンモニウムを大量に使っているはずで、まず水洗いした。ベースに去年2ヶ月滑って累積したよりもひどい傷がついている。草木や地面をこすったからだろう。p-texで埋めるほどの傷ではないが目に見える傷だ。そしてエッジにも傷が入っている。エッジに傷が入ったのは初めてだ。ヤスリで磨き、硬いホットワックスをかける。トップデッキには傷が入っていないようだ。いっそのこと、板が壊滅的に壊れてくれれば、次の硬い板を買う踏ん切りもできるものだ。今年は板を乗り潰すつもりで練習しよう。

そして翌日、心配していた膝はそれほど問題がないようだ。問題は右足の大腿四頭筋が強烈な筋肉痛になっていることだ。スイッチで滑ることができないのと、大腿部の筋肉が十分に鍛えられていないのが原因だろう。次のオフシーズンでは大腿部の筋トレをするべきだろう。

このまま膝に問題がなく、筋肉痛が治り、雪の状態が良ければ、7日にもう一度滑りに行くつもりだ。

ちなみに東京から日帰りする費用としては、新幹線代が12520円、バス代が980円、早割リフト券が3500円、ロッカー代が500円。スキー場の食事は食べられたものではないので食事はしなかったが、自動販売機で飲み物を合計1000円は購入した。道具をすべて持っているとしても日帰りで1万8千500円ぐらいはかかることになる。本格的にシーズン入りして、事前に計画した場合は旅行会社の割安のツアーを使うことで1万4千円程度には抑えられる。スノーボードにはカネがかかる。

2019-11-29

江添ボドゲ会@11月30日

江添ボドゲ会、今月は11月30日。今回はポータル非協力ケーキ獲得ゲームを買った。夜からはぶりしゃぶ。

https://ezoe.connpass.com/event/156214/

2019-11-28

CADDiのC++勉強会#9

CADDiのC++勉強会が12月3日に開催される。応募は以下から。

C++勉強会 #9 - connpass

今回はコンセプトについて学ぶ。コンセプトはコア言語としては6ページぐらいしかない極めて小さい機能だ。コア言語としては誠に小さい機能なのだが、その威力は絶大だ。コア言語としてのコンセプトを理解するのはそれほど難しくないが、正しくライブラリとして設計するのは難しい。

2019-11-25

ダンスを学んで半年たった

ダンスを学んで半年たった。始めた頃はリズム感もなくルーチンも覚えられず散々だったが、最近はリズム感も向上し、ルーチンも覚えられるようになり、ダンスレッスンをまともに受けられるようになった。

次に突き当たった壁は、手足が独立して同時に動かないという問題だ。これはどうも独立して動くようになるまでひたすら訓練するしかないようだ。今は少しづつ改善されてきている。

今抱えている問題は、体が十分に正確に動かないという問題だ。リズムには合わせているし、その場で振りも覚えられるのだが、速いビートに体がついていかない。これはどうもリズム感ではなく単純に体が動かないようなので、体を鍛えるしかないとは思うのだが、なかなかそうはいかない事情がある。靭帯だ。

筋肉痛は数日で回復する。しかし靭帯の回復には1-2ヶ月を要する。どうもダンスは足首にかなり負荷がかかるらしく、ダンスを初めて2ヶ月目に足首の靭帯を痛めてしまった。完全な回復にはダンスのレッスンを控えて2ヶ月かかった。

今通っているダンススクールは定額でレッスン受け放題なので、時間があればダンスのレッスンを受けたいのだが、足首や膝の靭帯の調子を考慮しながら、適切に休息を入れなければならない。日常生活では違和感がなくても、ダンスのような強い負荷をかけると違和感が出ることもあるので、ダンスレッスンを受ける前には一度強い負荷をかけてみて調子を確認している。

また、ダンスレッスン用の靴を買い替えた。最初に買った靴はジョギング用のソールが薄くて柔らかい靴だったが、今の靴はソールが分厚くて硬い靴にした。

靭帯への負荷を減らすためには靭帯周りの筋肉を鍛えるのもいいが、やはり減量もするべきだ。ダンスはかなりの有酸素運動なので減量効果があるだろうかと期待していたが、今の所ダンスでは痩せていない。

今月はこの調子で行くと20コマぐらいのダンスレッスンを受けられそうだ。ダンススクールの月謝が1万2千円なので、レッスン一回あたり600円ということになる。往復の交通費に340円かかっているので、ダンスレッスンに必要な費用の3分の1は電車賃だと言える。

2019-11-17

侮辱的な報酬額の大学講師の仕事依頼がやってきた。その額なんと月2.7万円

あるミッション系の大学から講師委嘱の依頼がやってきた。その科目は私の個人的な知識と経験から興味深い話がたくさんできるであろう分野で、具体的には、著作権特許権と検閲、電子書籍とDRM、著作権特許権の保護する範囲を越えようとする不自由なソフトウェアライセンス、岡崎図書館事件、兵庫県警Alertループ事件、神奈川県警CoinHive事件、あるいは本の出版事情や再販制度といった内容を取り扱うことになる。

例年70-80人の履修者がいて、1学期間に1コマ100分が14回に加えて内容の理解の確認のための課題と評価だ。

単純計算で一ヶ月に7時間の授業と、準備時間を授業時間と同じぐらい確保し、課題作成と80人分の回答を評価する時間を考えると、最低でも月に20-30時間ぐらいは必要だ。質をあげようとすればもっと長時間の労働になるだろう。大学なので報酬は安くても引き受けるとして、期間を定めた個人請負なので時給1万円ぐらい、月に20-30万円ぐらいならば請けようと思っていた所、提示された報酬額はなんとわずかに月2.7万円。

もはや失礼を通り越して桁違いに侮辱的な額だ。まさか想定より桁が一つ違う失礼な額を提示されるとは思わなかった。東京都の最低時給は現在1013円。最低時給を満たすかすら怪しい。およそ大学講師という知的労働に見合った報酬額ではない。

当然詐欺を疑ったが、残念ながら可能性はだいぶ低いように思われる。大学名、教授名、科目名はすべて実在のものであるし、メールアドレスのドメインはac.jpでこれはおいそれと取得できるものではないし、確かにこのメールアドレスに送信した内容に応じた返信を得ている。私はTLS経由でGMailを利用しているので私とGoogleの間の通信経路の改変はないものと考えると、GoogleとGoogleから通信経路さえ信用できればいい。

挙げ句のはてに、「大学の教員のお給料ってそういうレベル」と返事が来たものだ。

そういうレベルとは一体全体どういうレベルだ。公開されている情報によれば、この私立大学は1年あたり、国公立大学の学費の3倍もの費用を学生に課している。3倍金を払っている学生が70-80人も履修する授業において、税法上優遇されている学校法人が、履修者のたった一人の一月分の学費のそのまたさらに10分の1の額しか講師に出せないとしたら、そのカネは一体どこに消えているのだ?

この大学の学生は、学費を搾取されている情弱か、あるいはカネで学位を買っている詐欺者だろう。

そもそも私に声がかかるのがまずおかしい。私はたまたま該当分野で教育できるだけの知識と経験を持っているが、私はこの分野で有名というわけではない。まともな人間は引き受ける報酬額ではないので、ようするにネット上で適当に検索してある程度の知識を持っていそうな人間に片っ端から声をかけているのではないか。残念ながらそれで釣れるのは山師と詐欺師だ。月2.7万円に見合う仕事というのは何の準備もせずデタラメを話し、課題の提出と評価もさらに安価で他人に丸投げし、ついでに学生をネズミ講にでも勧誘することだ。そうすれば元が取れるだろう。ついでに大学講師をしているという肩書を利用してオンラインサロンでもすると一層元が取れる。

こんな侮辱的な報酬額を提示するのは、これでも請ける人間がいるからだろう。労働力の不当廉売をする者は被害者ではなくて加害者だと心得よ。

2019-11-14

John Carmack、人工汎用知能に取り組むと宣言

John Carmack - Starting this week, I’m moving to a... | Facebook

今日から、OculusのコンサルCTOの立場になる。

まだ開発に口を出すが、そんなに時間は割かない。

残りの時間をどのように費やすべきか。振り返って見るに、私はゲーム、ロケット、VRの分野において成果を上げてきた。ただ、今までは曖昧ではあるが解決策の道筋は見えていた。その当時は非現実的であったりまだ動くと証明されていなかったとしてもだ。そこでたまに考えていたのだが、解決の道筋すら見えない問題に取り組むのはどうだろうと。私が歳を取りすぎる前に挑戦すべき課題であるように思われる。

私は人工汎用知能(Artificial general intelligence, AGI)に取り組むことにした。

AGIは可能で、とても有益で、かつ私は何らかの成果を上げられるのではないかと思っている。そこでPascal’s Mugging(たとえ可能性が極めて低くてもそれによって得られる利益が莫大であれば期待値的には釣り合っているのでやるべきという理屈)に従い、挑戦する。

今のところ、私は「ビクトリア朝時代の紳士科学者」風に研究する。自宅で考え、実践してみるのだ。

AGIの次に取り組むべき価値のある研究は、安価な核融合炉だが、この研究スタイルには合わない課題だろう。

2019-11-10

スキー場のシーズン券の購入を考えている

今シーズンは11月から5月まで全力でスノーボードをする予定だ。週に2回はスノーボードに行きたい。そこでシーズン券を買うことを思いついた。同じスキー場に何度も行くのであればシーズン券を買ったほうが得だろう。前シーズンは旅行会社のツアーで新幹線とリフト券を割安で手に入れていたが、旅行会社でツアーに申し込むのも面倒だったし、前シーズンでは東京-越後湯沢を日帰り往復するだけの割安ツアーもあったので、損はしない。

ではどこのシーズン券を買うべきか。都内から日帰りできるスキー場というと、軽井沢か越後湯沢だ。ただ、軽井沢プリンスホテルスキー場は土日祝日に混むのと、スキー場の作りがそんなに面白くはないので、越後湯沢駅から短時間で行けるスキー場になるだろう。

去年はガーラ湯沢によく行っていた。駅直結で行きやすいスキー場ではあるが、ある程度滑れるようになった今、他のもっと面白いスキー場でもいいだろう。特に今年はコブを練習したいのでコブで有名なスキー場がいい。

かぐらスキー場はコブで有名だ。ただしシーズン券が高い。他のスキー場の倍の値段だ。なぜこんなに高いのか考えていたが、おそらく営業期間のためだろう。多くのスキー場は12月下旬から3月末までの約3ヶ月間営業する。しかし、かぐらは11月下旬から5月下旬までの約6ヶ月営業する。営業期間が倍なので、価格が倍でも売れると踏んでいるのだろう。ただ、かぐらはゴンドラやリフトの設置があまりよくないせいで、移動するのに時間がかかる。シーズンのはじめと終わりに何回か行くだけでいいだろう。

神立高原(今年から名前を変えて神立スノーリゾート)は仮眠室という名前の雑魚寝部屋がある。ここのシーズン券と温泉パスを買うと風呂入り放題雑魚寝し放題滑り放題となる。しかもこのスキー場はナイターもかなり長時間やっている。ここならば、夕方に東京から越後湯沢に行き、軽くナイターを滑って雑魚寝し、翌日も滑って風呂に入って帰ってくることができる。実はかなりいいのではないか。ただし、雑魚寝部屋は休日しかやっていないそうだ。

石打丸山スキー場はハーフパイプがある。ただし、おそらく今年はハーフパイプをするほどには上達はしないだろう。

舞子スノーリゾートの早期シーズン券を買うといろいろと特典がついてきてお得だ。

特典という意味では、ガーラ湯沢も捨てがたい。ガーラ湯沢のシーズン券を買うと、なんとスクールの回数券が5000円引きで買えるそうだ。つまり2時間レッスンが実質2千円で受けられることになる。ガーラ湯沢は4月以降もGWまで雪が続く限り営業するので4月になってからも何度かは滑ることができる。

といろいろ考えたが、旅行会社のツアーやショップの割引券などを使えば、リフト券の代金は1日3千円ぐらいになる。それに、今年も白馬八方尾根スキー場などに何度か遠征する予定だ。シーズン券を買って一つのスキー場に縛られるより、いろんなスキー場に行ったほうが楽しめるのではないか。

2019-11-07

Using enum

C++20にはusing enumが入る。この機能、すっかり見逃していた。

どのような機能かというと、scoped enumを名前空間のusing directiveのように使うことができる。

using enumがないと以下のように書かなければならないが


enum struct color { red, green, blue } ;

void f( color c )
{
    switch( c )
    {
        case color::red :
            break ;
        case color::green :
            break ;
        case color::blue :
            break ;
    }
}

using enumを使えば以下のように書ける。


enum struct color { red, green, blue } ;

void f( color c )
{
    using enum color ;
    switch( c )
    {
        case red :
            break ;
        case green :
            break ;
        case blue :
            break ;
    }
}

scoped enumは暗黙の型変換をしないので、従来のenumに変わって使われるべきだが、いちいちenum名を修飾子なければならないのは面倒だ。そこで、名前空間のusingディレクティブのような機能、using enumが追加された。

CADDiのC++勉強会@11月19日

CADDiのC++勉強会が11月19日の19時から行われる。

C++勉強会 #8 - connpass

今回は一時オブジェクトの寿命と、C++20の新機能を時間が許す限り解説していく。

2019-10-25

江添誕生日ボドゲ会@10月27日

自宅ボドゲ会を下記の要領で開催します。

江添誕生日ボドゲ会@10月27日 - connpass

今月は誕生日なので夕方からすき焼き。

2019-10-15

CADDiのC++勉強会

次のCADDiのC++勉強会は10月29日の19時から行われる。詳細と参加登録は以下から行える。

https://caddi.connpass.com/event/151541/

次はtype erasureの続きと、expression templatesについて教える予定だ。

2019-10-12

東京から行けるスキー場のまとめ

シーズンはまだまだ遥かに遠い。早く滑りたい気持ちを抑えるために、またブログ記事でも書くことにする。今回は東京から行ける、個人的に気になっているスキー場について書く。まだ行ったことがないスキー場もある。

フジヤマ スノーリゾート イエティ|静岡県 富士山2合目のスキー場

例年10月下旬にオープンするスキー場。標高が比較的高く涼しい場所に人口造雪機を使って10月下旬に1kmのコースを作り出している。都内から日帰りできる最も早くオープンするスキー場として有名だ。

東京からはバスで片道2時間半かかる。まだ行ったことがない。

軽井沢プリンスホテルスキー場

11月上旬にオープンするスキー場。同じく人口造雪機を使って400mほどのコースを2本作り出している。イエティの次にオープンするスキー場として有名だ。東京からは新幹線で1時間ほどなので、イエティより交通の便が良い。

スキー場周辺は何もない場所であることが多いが、軽井沢は観光地なのでショッピングモールや飲食店街がある。コテージがスキー場の真横に設置されていて、ドアを開けるとすぐにスキー場というお手軽さもある。ただ、スキー場としての面白さはそれほどでもない。もともとそんなに雪が降る場所ではないのを圧倒的多数の人口降雪機で雪を作り出している娯楽施設だ。それに観光客が多くて休日は結構混んでいる。

この他のスキー場は、11月下旬から12月中旬にかけてオープンしていく。

ガーラ湯沢スキー場(新潟県湯沢町)|GALA YUZAWA

東京から新幹線で90分。ガーラ湯沢は東京から日帰りするのに最も手軽なスキー場だ。新幹線に乗る時間だけを考えると軽井沢よりは長い。ただし、軽井沢は駅到着後にスキー場まで移動しなければならないが、ガーラ湯沢は移動する必要がない。JR東日本直営のスキー場で、駅直結の同じ建物内にリフト券売り場、レンタル、更衣室が揃っていて、同じく建物直結のゴンドラで上に上がるとそのままゲレンデにつく。標高が高いので雪質もよい。ただし、そのお手軽さゆえにあまりにも観光客が多く、かつスキー場も狭い。

雪がもてばGWまで営業している。

湯沢中里スノーリゾート

越後湯沢駅からバスもしくは電車で15分。標高が低く天候に恵まれなければあまり雪質がよくない。3月にもなると雪が汚れている。平日は一部のリフトは動いていない。ただし圧倒的に空いている。そしてスノーボード率が圧倒的に高い。幅広で傾斜もほどほどのスノーボードが滑りやすいコース設計になっている。

舞子スノーリゾート

越後湯沢駅からバスで2-30分。スキー場の作りとしては、標高が高い上のコースをぐるぐる回るか、長い下山コースを繰り返すかの二択になる。

神立高原スキー場

越後湯沢駅からバスで10分。だいぶ異質なスキー場。スキー場に浴場と大部屋仮眠室があり雑魚寝をすることができる。土日祝日はナイターが深夜までやっている。

まだ行ったことがない。東京駅に近い場所に住んでいて日帰りの負担が少ないため、正直ここに素泊まりするよりは一度東京に帰ったほうがマシだろうと思われる。

かぐらスキー場

越後湯沢駅からバスで2-30分。例年11月下旬にオープンし、5月下旬までやっているスキー場。標高も高い。もともと3つのスキー場が合体したスキー場で広いには広いのだが、入り口から雪質のよい標高の高い場所に行くだけで20-30分はかかる。

白馬八方尾根スキー場 | HAKUBAVALLEY HAKUBA HAPPO-ONE

新幹線で90分かけて長野駅まで行き、そこからさらにバスで70分かかる。移動だけで半日潰れてしまう。1998年長野オリンピックの会場にもなったスキー場だ。とても広い。ただしスキー場の作りはスノーボード向きではない。

北海道

キロロ、ルスツ、ニセコ、フラノ、トマム、サホロが有名。東京からの交通は、羽田空港から新千歳空港に行きバスとなる。サホロだけは帯広空港が近い。まだ行ったことがない。

北海道の有名なスキー場は圧倒的に広く、雪質もよいと聞いているが、東京からは交通の便が悪い。東京から羽田空港まで電車で30分、新千歳空港まで旅客機で1時間半、空港からバスでスキー場まで2時間以上。しかも搭乗手続きの関係上、空港にはフライトの一時間前には着いていたい、スキー場に到着するまで6時間以上かかる計算になる。行くだけで1日潰れてしまう。

月山スキー場

山形の豪雪地帯にあり、ハイシーズンは雪が深すぎて営業していない。4月になるとようやくオープンする変わったスキー場。7月頃まで雪が持つので、どうしても夏に天然雪を滑りたい中毒者がやってくるスキー場。今では珍しくなったTバーリフトもある。

乗鞍岳

スキー場ではなく夏でも雪が残っているだけの場所にすぎない。標高2600mぐらいの地点までバスでいくことができる。リフトはない。自力でハイクアップする必要がある。

早く滑りたい。

2019-10-07

Caddi C++勉強会@10月9日

CaddiのC++勉強会が10月9日に開催される。参加は以下から。

https://caddi.connpass.com/event/150414/

今回は派生と継承という、C++の原点に戻ったような内容を説明する。そしてtype erasureを説明する。時間があればexpression templatesなども説明するが、おそらく次回になるかもしれない。

2019-10-06

スキー/スノーボードの怪我統計の考察

そろそろシーズンが近づいてきたのでそわそわしている。去年は3月末で滑るのを辞めてしまったのでもったいないことをしたと反省している。4月も滑ればよかった。とはいえ、右膝に痛みもあったし辞めておくのは正解だったのだろう。

滑りたいのにまだ滑ることができない憂鬱を紛らわすために、全国スキー安全対策協議会のスキー場障害報告書を読んでいる。

全国スキー安全対策協議会

統計は1998年から始まっている。調査に参加したスキー場には増減があるので、単純に年ごとに比較することはできないが、時代の変遷を感じる面白さがある。

1998年は、カービングスキーに主流が移ってきた時代で、スノーボードが流行り始めた時代でもある。カービングスキーによってアスリートではなくてもカービングターンができるようになり、スノーボードがもたらしたパークをスキー場が設置するようになってきた。

1998-1999シーズンではスノーボードはスキーの2.5倍の受傷率があった。これはどんどん下がり続け、ところが前回の2018-2019シーズンではスノーボードの受傷率はスキーの1.4倍になっている。スノーボードはだいぶ安全になったと言える。

具体的な受傷率はスキースノーボード合わせて1万分の1だ。同じ1年で比較すると、年末ジャンボ宝くじの一等が2000万分の1、雷に当たる確率が1000万分の1、交通事故が3万分の1、裁判員に選ばれる確率が1万分の1となる。それほどウインタースポーツの受傷率は高くない。

怪我の中でもかなりの割合を占める頭部への損傷であるが、ヘルメットを着用していれば防げた怪我がおおい。海外では8割にもなるヘルメット着用率は、日本では未だに低い。2018-2019シーズンでは、スキーのヘルメット着用率が初めて4割を超え、スノーボードでは22.9%だという。ヘルメットは着用すべきだし、各部位へのプロテクターもつけるべきだ。

昔の統計はストレートスキーとカービングスキーを分けていたが、今の統計は一緒になっている。今ではすっかりカービングスキーが主流になり、ストレートスキーを使っているスキーヤーはまれになってしまったからだろう。

受傷時刻は毎年決まって11-12時と14-15時が多い。昼に下がるのは昼食のために人口が減るからで、単に人口が多いから受傷率が高いだけだろう。同じように天候も晴のときが受傷率が高い。特に休日の晴れは受傷率が高い。これも単に人口が多いだけだろう。性別や年齢も、単なる人口比としか思えない結果になっている。ただ、1998-1999シーズンの統計ではスノーボードの年齢は20代が大半だったのに、20年たった今では40台まで広がっている。

受傷者の技能をみると、初めての人の怪我はそれほど多くない。初級者から中級者の怪我が圧倒的に多い。スキーはスノーボードの倍ほど上級者の怪我が多い。この理由はなぜだろう。

怪我の部位を見ると、スキーは圧倒的に膝の捻挫が多い。スノーボードは長らく手首、次いで肩だったのだが、最近は肩の怪我の方が多くなっている。手首の怪我はプロテクターをつけていれば防げるが、肩の脱臼はプロテクターで防ぐことができないためだろうか。

怪我をした理由としては、自分で転倒、人と衝突、人以外と衝突、その他があるが、圧倒的に自分で転倒して怪我をする割合が高い。実は人と衝突して怪我をする割合はスキーのほうが高い。去年滑っていて、リフトから落ちたらどうしようとか、崖から落ちたらどうしようなどと不安になったものだが、転落による怪我の割合は極めて少ない。

自分で転倒した怪我の内訳として最も多いのは単に「バランスを崩した」ためだが、スキーは9割を占めるこの理由、スノーボードでは75%しかない。スノーボードはスキーよりトリックを決める文化が強いせいか、ジャンプ失敗やトリック失敗といった理由が増えてくる。スノーボードでは逆エッジによる転倒もある。

人と衝突した場合、何にぶつかったかという統計が出ている。ぶつかる可能性があるのは、スキーヤー、スノーボーダー、それ以外の人だ。スキーヤーはスキーとスノーボードとの衝突がそれぞれ半々ぐらいだ。スノーボードでは圧倒的にスノーボードとの衝突が多い。

人以外との衝突でぶつかったものについては、立木が最も多いようだ。

日本のスキー、スノーボードで気になっていることとして、スキー場で堂々と酒が販売されているということだ。そして多くの客が飲んでいる。ただ、受傷者の飲酒の割合は2.2%で、それほど高くはないようだ。

受傷場所は緩斜面か中斜面が多く、急斜面での怪我は少ない。

リフト付近での怪我は、リフト乗り場とリフト降り場の怪我が大半で、リフト乗車中に怪我をすることはめったにない。何故か私はリフト乗車中に落ちてしまったらどうしようという不安が常にあるのだが、リフト乗車中に落ちて怪我をすることはまずない。リフトから落ちるのは子供が多いようだ。リフトが子供の体格に合わせて作られていないのが問題なのだろう。

スキーでは講習中に怪我をする割合も高い。スノーボードで講習中に怪我をする割合は少ない。報告書はスキーのほうがスクール受講率が高いのだろうとしている。

障害の程度だが、スキーよりスノーボードのほうが若干軽症が低く、中等傷が多い。重症の割合は余り変わらない。

「頭を強く打った疑い」については、スキー、スノーボードともに割合が変わらない。どちらもヘルメットを着用すべきだ。

受傷時の滑走速度の割合は、単に滑走速度の人口を表しているに過ぎないようだ。

興味深いのは、傷害保険、賠償責任保険の加入有無について、わからないとする回答が4,5割いるということだ。保険に入っているかどうかぐらいわかりそうなものだがどういうわけだろう。統計を報告したのは各種スキー場なので、聞きそびれているだけなのかもしれない。

受傷時の雪面は圧倒的に圧雪されていることが多い。ただ、日本のスキー場の大半は圧雪されているし、パウダーやコブでそんなに速度は出せないし、転んでもパウダーやコブに引っかかってすぐ止まることが多いので、当然といえば当然なのだろう。

雪質の割合もあまり意味のある統計には思えない。

2019-10-03

また初心者にプログラミングを教える機会があった

プログラミングでわからないところがあるので教えてほしいと以下のようなことを聞かれた。

こういうJavaScriptの関数がある。

// valuesは配列
// elementはvaluesの要素型の値
// 配列valuesに値elementと等しい要素があるならばそのインデックスを返す。
// それ以外の場合、-1を返す
function find_index( values, element )
{
    for ( let i = 0 ; i !== values.length ; ++i )
    {
        if ( values[i] === element )
            return i ;
    }
    return -1 ;
}

質問は、「なぜreturn -1にelseはいらないのか」というものであった。

似たような問題に、昔遭遇した気がするが、別人だ。

まずここにelseを書くべき文法はJavaScriptに存在しない。if文で何らかの条件を切り分ける必要もない。なぜならば、return -1が評価されるとき、すでにforループを抜けているわけで、その場合要素が見つからなかったということだ。逆に、要素が見つかったのであれば、すでに上のreturn iが評価されているので、すでに処理は関数の呼び出し元に戻っており、return -1は評価されることがない。

ただ、このような机上の説明を繰り返しても理解ができない様子であったので、さらにデバッガーでステップ実行してみせるなどして説明した。

この問題は、逐次実行という概念と、逐次実行がfor文やif文やreturn文によって変わるということ、そしてプログラミングにおける関数の理解が必要だ。しかし、筆者はこのような概念の理解に苦労した覚えはないし、周りの職業プログラマーに聞いても、やはり苦労した覚えはないという。

しかし不思議だ。質問者は数学の素養があり、数学における関数なら理解しているはずだ。聞けば再帰も理解しているという。それならと以下のように再帰で書いてみた。


function find_index( values, element )
{
    function solve( i )
    {
        if ( i === values.length )
            return -1 ;

        if ( values[i] === element )
            return i ;

        return solve( i + 1 ) ;
    }
    return solve(0) ;
}

これを何の説明もせずに見せたところ、「これはとても良くわかる。なんでみんなこう書いてくれないのか」とのことであった。質問者はJavaScriptの初歩の初歩しか学んでおらず、このようなコードは見たことがないはずだ。しかしわかりやすいと言う。再帰は正しく理解できていることが確認できた。

質問者にはHaskellのような純粋関数型の言語のほうが向いているのかもしれない。