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のような純粋関数型の言語のほうが向いているのかもしれない。

2019-09-22

江添ボドゲ会@9月29日

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

江添ボドゲ会@9月29日 - connpass

2019-09-20

江添亮のC++入門の出版記念の勉強会告知

江添亮のC++入門の出版を記念した勉強会を開催します。参加登録は以下から。

https://kbkz.connpass.com/event/148247/

勉強会の内容としては、江添亮のC++入門の執筆について軽く話した後、その場で書籍の販売をしつつ、交流会をする。特に発表者はつのらない。というのも勉強会の価値は交流にあると考えているためだ。

2019-09-19

MSVCのSTLがGitHubで公開

https://github.com/microsoft/STL

MSVCのSTLがGitHubで公開された。ライセンスはLLVM例外条項付きのApache 2.0。更に興味深いことに、今後のSTLの開発はGitHubに移行する予定だそうだ。マイクロソフトも変わったものだ。

C++のテンプレートの都合上、STLのソースコードはMSVCに付属していて、読むことは誰にでもできた。理論的には、MSのEULAに縛られない読み方もできたはずだ。例えばEULAに同意せずにMSVCを入手し、インストラーを実行せずに手動でアーカイブを展開すればソースコードを読むことはできたはずだ。もちろん、わざわざそんな手間をかけてまで不自由ソフトウェアのソースコードを読みたいとは思わないし、民事上のリスクも背負いたくない。

そのため、私がC++を教育するときは、MSVCの存在は単に無視していた。libstdc++とlibc++は自由ソフトウェアであるので、その実装も含めて教育することができるが、MSVCは不自由なので、リスク回避のためにソースコードを読むこともできずにいた。MSVCを無視するなという声に対しては、不自由ソフトウェアに時間を浪費したくはないし、仮に私が教えたいにしても 、マイクロソフトは教えたがらないようだという都合のいい言い訳が成り立っていた。しかし、今後はそういう言い訳は通用しないようだ。

江添亮のC++入門が出版された

江添亮のC++入門が出版された。もうすでに一部書店では店頭に並べているところもあるようだ。

この本はタイトル通り入門書だ。C++のソースコードのコンパイル方法から初めて、GNU Makeによるビルドシステムを少し触り、基本的な文法を解説し、一部のライブラリの仕組みまで解説する。

この本の執筆にあたっては、知識のブートストラップを意識した。私は一から物を教えるという性質の本で、まだその本では説明をしていない知識を何の説明もなしにいきなり出す本を読んだことがある。巷では絶賛されている本ではあるが、著者自らもうその本で教育をしないと宣言した本だ。そのため、すでに説明した知識のみを使って次の知識を説明するようにした。

ただ、これは思いの外大変だった。入門書を書いている間、なぜ変えたいの知れないよくわからないもどかしさに包まれながら解説を書いていた。そしてとうとうポインターを解説した後、あらゆることの説明がとても簡単になっていることに気がついた。なぜならポインターの知識を前提にしてよいからだ。つまり、ポインターが知識の依存関係の割と根本的なところに存在するらしい。なぜポインターの解説がこんなに送れたかというと、現代のC++は生のポインターを直接使わずして実用的なコードが書けるからだ。

今回の本の表紙には私の写真が印刷されている。これは今まで2冊の本を出した際に、なぜ著者の写真がないのだ、ぜひ載せるべきだと言われていたので、3冊めとなる今回は、では載せてみようということで実現した。いまのところ、Twitter上での言及が今までの2冊に比べて多いようで、宣伝効果はあるようだl.写真の撮影は古くからの友人でプロのカメラマンの三浦大に依頼した。

Photographer - Masaru Miura

私の本のライセンスはGPLv3だが、写真はライセンスされない。写真の著作権は撮影者のもので、撮影者がGPLv3に同意しなかったためだ。撮影者は芸術家気質なので自分の作品を改変されたくないという気持ちは理解できる。

EzoeRyou/cpp-intro: Beginner's guide for C++

この入門書を読み終えたならば、少し古いが「C++11/14コア言語」や、未だに大多数の現場では使われていない最新の「江添亮の詳説C++17」も読むとよい。紙書籍、電子書籍で出版されている他、GitHubで公開されている。

EzoeRyou/cpp-book: C++11 textbook
EzoeRyou/cpp17book: textbook for C++17

数年後も同じ仕事を続けているのであれば、おそらく「江添亮のC++20」のようなタイトルの本が出るだろう。

近いうちに前の本でもやったように、本の出版記念の勉強会でも開きたいところだ。

2019-09-17

CADDi C++勉強会5回目

CADDi C++勉強会の5回目が9月25日に開催されます。

C++勉強会 #5 - connpass

今回はオーバーロード解決とテンプレートの実引数推定について解説する。

2019-09-11

CADDi C++勉強会、11日に延期

CADDiのC++勉強会が、台風の影響による電車の劣悪な運行状況から、11日に延期された。

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

当日はみんなの疑問に答える形で規格上の用語を解説していく。

2019-09-03

CADDi C++勉強会4回目

C++勉強会 #3 - connpass

今回は式と文の違いといった、C++の用語の解説をする。

今回の勉強会の動機は、CADDi社員がうっかり未評価式の文脈でラムダ式を使ってしまったところ、つまり

using type = decltype([]{}) ;

のようなコードを-std=c++17でコンパイルしたところ、「未評価の文脈でラムダ式は使えない」というそのままのコンパイルエラーメッセージが出力されたが、はて、未評価とは?という疑問でこのエラーメッセージの意味するところを理解するのに相当苦労した経験をしたことが元となっている。なぜC++コンパイラーがこのようなエラーメッセージを出すかというと、未評価という言葉は規格上の用語なのだ。ちなみに、Clangのほうがエラーメッセージは親切で、「未評価オペランドの中のラムダ式」としている。これは規格そのままの表現だ。GCCの表現は規格どおりの表現ではないが、規格に沿った表現であることに変わりはない。C++コンパイラー開発者は当然C++規格を参照しているのでC++規格に沿った表現を使う。そのために、コンパイラーのエラーメッセージを解釈するには、規格の用語の知識が必要になる。今回はそのような知っていると役に立つかも知れない規格の用語を解説していこうと思う。

2019-08-27

CaddiのC++勉強会3回目

Caddiによる3回目のC++勉強会が8月30日に開催される。

C++勉強会 #3 - connpass

今回はメタプログラミング。Boost.Hanaを解説する。

最近、私自身はメタプログラミングをしていない。というのも、C++のメタプログラミングは本来計算に使うはずではなかった言語機能を無理やり計算に使っているので、いろいろと無理がある。メタプログラミング機能はコア言語に入るべきだ。C++20ではrequires式がはいる。後は静的リフレクションがはいればBoost.Hanaなど用済みになる。静的リフレクションはC++23かC++26には入るはずなので、あと5年ぐらい待てばいいと思うのだが、そこを待てないのが悩みどころだ。D&Eにも書いてある通り、今使える技術が重要なのであって、来年使える技術には価値がない。

勉強会の内容としては、Boost.Hanaのユーザーマニュアルがよくかけているので、これに沿って解説していくことになる。

2019-08-16

江添ボドゲ会8月25日

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

江添ボドゲ会@8月25日 - connpass

2019-08-13

P++: 静的型付けをめざすPHP

PHP: pplusplus:faq

PHP 8から、PHPは「PHP」と「P++」という2つの言語を提供するようになる。P++はPHPとの下位互換性を削りながら除々にPHPを静的型付け言語にする試みだ。

PHP開発者の中には2つの流派がある。PHPの源流であり現在の形である動的型付け言語としてのPHPを良しとする流派と、PHPをより強い静的型付け言語へと発展させたい流派だ。良い悪いの問題ではない。どちらの流派も正当な理由がある。しかし、ゆるふわな動的型付け言語とガチガチの静的片付け言語は同じ一つの言語として同居できない。

そこで、コードネームP++として、PHPを静的型付け言語に発展させる新しい言語の開発が提案された。P++はforkではなく、PHPと同じコードベースを共有する。PHP 8のバイナリはPHPとP++を同時に実装する。言語の切り替えは何らかの宣言によって指定する。

P++はPHPの厳格な下位互換性を諦め、少しずつ下位互換性を切り捨てつつ、PHPを静的片付け言語にしていく。

これはPerl 5/6やPython 2/3という過去の失敗に学んだのだろう。

PHPとP++は同じコードベースであり、ほとんどのコードは共有するので、PHPの開発リソースが2倍必要になることはない。

PHP 7.4をLTSにしてPHP 8から介護感性を切り捨てるのは良いアイディアではない。言語を分断させてしまう。Python 2/3がすでに犯した失敗だ。

PHP 8はPHPとP++を含むので、PHP 8をインストールするとP++もついてくる。同じコードベースでPHPとP++を共存させることもできる。

PHPの開発が止まるわけではない。ただし静的型付け機能はPHPには入らずP++に入る。PHPは下位互換性を重視する。

Hackとはどう違うのか。Hackは一企業による開発であり、コミュニティの意見によって設計されなかった。またHackは流通や知名度の問題で難がある。P++はPHPと共存するので、PHP 8をインストールしたならばもれなくP++もついてくる。

PHPに静的型付けは必要か? 現在、PHPを仕事で使っているプログラマーの中には、本来ならば静的型付け言語を好むが、仕事なのでPHPを使っている人もいる。PHPが静的型付けを提供する意義はある。

2019-08-07

キャディC++勉強会8月21日、テンプレート基礎

C++勉強会 #2 - connpass

8月21日に株式会社キャディでC++勉強会が行われる。今回はテンプレート基礎だ。参加登録は上記connpassから行える。

前回はポインターと、時間が余ったので即興でリファレンスについて学んだ。今回は初歩的なテンプレートの使い方を学んでいく。

テンプレートといえば、昔はクラスと関数だけだったのだが、今では変数、エイリアス宣言もテンプレートにできる上に、C++20ではコンセプトも追加される。今回の勉強会では初歩的なテンプレートの使い方を一通り学んだ上で、時間があれば未来か過去の話をしようと思う。未来の話はコンセプトやメタクラス。過去の話はテンプレートの歴史だ。初歩を学ぶという点では過去の話をしたほうが良いと思う。

2019-07-19

キャディ株式会社のテクニカルアドバイザーになった

C++勉強会 #1 - connpass

Ta-da:ドワンゴは辞めていない。キャディでテクニカルアドバイザーとしてC++教育もすることになった。7月30日に最初の勉強会をする。

周りで転職が頻発しているので、私もにわかに転職熱をだし、自分の転職市場における価値を確かめるためにも、いくつか企業に話を聞いてみた。その結果としては、私を給料据え置きで雇いC++の仕事をさせたいという企業はあった。しかし、教育一辺倒というわけでもないし年収も現状維持、そしてドワンゴでまだやりたい仕事も残っているときている。転職も興味ぶかい人生の選択ではあるが、しばらくはドワンゴにとどまろうという判断を今回はした。

その話を聞いた企業の一つがキャディ株式会社だ。奇しくもちょうど1年前、もうC++17を現場で使っている企業があるというので話を聞きに行ってブログに書いたことがある。

C++17をすでに現場で使っているというキャディ株式会社に話を聞いてきた

キャディは板金加工の受注生産をしている会社だ。板金加工というのは一枚の金属板を切断したり曲げたり削ったりと様々な加工をして、顧客の望む形状の金属製品を作り上げる仕事だ。従来、板金加工の依頼をするとなると、板金加工業者と話をして、望む形状を伝え、熟練の職人が長年の経験と勘で必要な加工を決定していた。これは時間のかかる作業であり、価格の見積もりだけでも長時間かかるものであった。

キャディは見積もりを自動化することを目指している。顧客がキャディのWebサイトに生産したい形状の3Dモデルデータをアップロードすると、それをソフトウェアで処理し、あたかも折り紙を展開するように、1枚の板から目的の形状を作り出すための加工を決定する。必要な板金加工が自動的に決定できるのであれば、価格の見積もりもできる。従来の板金加工業者が、何日や何週間もかけてようやく見積もりを出していた作業が、自動化をすることによって一瞬で見積価格を顧客に提示することができる。これがキャディの目標だそうだ。

板金加工の見積もりを自動化する。こう書いてしまうととても簡単に読める。しかし似たような計算である折り紙の展開というのは数学的に難しい問題である。自動化の実現には、数学力とアルゴリズム力とコーディング力が必要だ。キャディは自動化の要となる処理の実装について、最新のC++を選択した。古いC++で生産性を下げている余裕はない。問題は、最新のC++を知っているプログラマーは労働者市場では希少だということだ。

しかも、単にC++を知っているだけではダメで、数学力とアルゴリズム力も問われる。しかし、これについては朗報がある。AtCoderのような競技プログラミングコンテストを定期的に開催しているWebサイトの興隆で、今や競技プログラミングは盛んに行われている。高レートを維持している優秀な競技プログラマーは本物の数学力とアルゴリズム力を持っているので、数学力とアルゴリズム力を持ったプログラマーは労働者市場に多数供給されている。

AtCoder:競技プログラミングコンテストを開催する国内最大のサイト

好都合なことに、競技プログラミングではC++が使われることが多い。問題は、単に競技プログラミングで好成績を出すためだけであれば、C++を理解する必要はないということだ。一部の突出した競技プログラマーは、プログラマーというよりはもはや数学者に近く、彼らにとってC++というのはプログラミング言語ではなく、都合のいい計算機でしかない。そのため、必要な数学力とアルゴリズム力とC++力を兼ね備えた人材は労働者市場に極めて稀にしか存在しない。労働者市場に即戦力がいないのであれば教育するしかないが、最新のC++がわかるプログラマーに数学を教えるのと、競技プログラマーに最新のC++を教えるのはどちらがマシかというと、確実に後者だ。そもそも、労働者の人口としてもC++プログラマーより競技プログラマーの方が多い。

キャディは最新のC++を現場で使う興味深い企業であるので、強い興味を持ちながらも、ドワンゴの環境も捨てがたく、結局転職はしなかったのだが、つい先日、技術顧問として月2回ぐらいキャディの社員向けにC++教育をしてくれないかという話がきた。キャディ社内には私と同等以上にC++に詳しい人間がいる。ただし彼には数学力もあるので教育よりは現場の開発に労力を費やしてほしい。単発の勉強会で30分ぐらい話してくれというのであればともかく、定期的に月2回も社員向け教育をしてくれというのは流石に無償では引き受けられない。では報酬も支払うという話になった。

ところで、今私が雇用されているドワンゴでは兼業申請が通れば兼業をしてもよいということになっている。兼業申請が認められるための条件はいくつかあるが、特に重要な条件に、ドワンゴと競合関係にないという条件がある。ドワンゴが板金加工事業をしているという話は聞いたことがないし、その他の条件も問題はないだろうと考え、兼業申請を出してみたところ承認された。

そしてこのたび、キャディ株式会社のテクニカルアドバイザーとなった。

当面の予定としては、月2回、勉強会を開くことになっている。勉強会でキャディの社内情報がかかわらない内容については、聞きたい人がいれば社外から少し人が聞きに来てもいいだろうということで、connpassで勉強会の告知を行うことになった。

C++勉強会 #1 - connpass

勉強会の内容としては、さしあたって、テンプレート、メタプログラミング、ムーブセマンティクスを理解できるようにする目的だが、記念すべき第一回目では、ポインターについて話すことになった。

なぜポインターなのか。私はちょうどC++入門書を書いている。この入門書ではC++知識のブートストラップを試みた。参考書ではすでに教えた知識だけを使って、次の知識を教えるようにした。このような入門書を書くのは初めてなので手探りで牡蠣進めていった結果、ポインターを教えるまではなんともいいがたい教えにくいという違和感があったのだが、ポインターを説明してからは、ポインターの知識を前提にできるので圧倒的に教えやすくなった。そのため、もしポインターが理解できていないのであれば、まずポインターを理解するべきであると考えた。そのため、今回はポインターだ。

https://github.com/EzoeRyou/cpp-intro

ポインターの難しさは複合的な要因がある。アドレスや関節参照という概念の難しさ。C++の型システムの難しさ。C++の文法の難しさがある。この3つを意識しながら7月30日は2時間、ポインターについて話をする。

江添自宅ボドゲ回@7月28日

7月28日に自宅ボドゲ回を下記の要領で開催します。

江添ボドゲ回@7月28日 - connpass