ksmakotoのhatenadiaryスマートフォン用の表示で見るksmakotoのhatenadiary2018-07-19技術書典に申し込みました詳細は後日(の予定)えーと、詳細です。技術系よろず(?)同人誌「ElectroComplex」創刊号*1を持っていきます。(サークル名と同名ですが、〆切ぎりぎりに寝不足状態で作業していたためか、サークル登録にはtypoがあります)内容は記事1本になってしまいましたが、ライフゲームの実装についてです。ありがちなテーマですが、内容的には初出ではないとは言え詳しく解説している例を他に見ない*2ものである、という自負は(だけは)あります。当日(コピー誌なのでこれから大詰めなんですが、それが無事に進行すれば)お会いしましょう!*1:はたして2巻は出るのか?*2:初出文献では、解説はごくあっさり流していたため。23:16技術書典に申し込みましたTweet広告を非表示にするもっと読むコメントを書く2018-06-10「IME文節」という謎のジャーゴンについてはじめに日本の仮名漢字変換関連の某システムの一派の方面が発信元のようですが(その集団ないし個人を糾弾することが目的ではないので、ここでは明示しませんが)、「IME文節」という謎の(良くない)ジャーゴンが広まっているようですので、注意喚起の意図で本稿を書きます。あればそのまま、例えば「複合語の分割と変換」などのように表現すべきです。「IME文節」などという表現がされるのか検索で見つかるいくつかのウェブページや資料などから、私が推測した所では、以下のような理屈により「IME文節」という概念が必要だと思われているようです。ようになっている(ここでは句読点等は除いて考えている)。<付属語>*ここで、自立語とは名詞や動詞だから、仮名漢字変換としては、活用語尾などへの対処は必要であるが、辞書を引いて対処することになる。おいて」というような、1語として辞書に用意するのはありえないようなものもよく出てくる。実際の仮名漢字変換では、ここで示したような日本語の文法によるものよりも細かい分解が必要である。そこでこの、仮名漢字変換で必要な分解の単位を「IME文節」と呼ぼう。までは問題ありません。「IME」という表現が含まれていることから、広まったのは1990年代後半以降であることは確実でしょう(ただしもっと古くから同様な考え方がされていた可能性はあります)。そのような自然言語処理の手法はワープロにおいてもっと以前からちゃんとあったものです。他は、1980年前後のものですから、当然「IME」という語が広まるよりも古いですが、このような「辞書に無い自立語」のことはちゃんと考えて作られています。研究所で研究開発を担当され、JW-10モデル1を設計された天野真家先生が著者に入っている学会発表で「局所意味分析」といったような語が題ないしアブストに入っているものがありますが*1、それが、JW-10モデル1における、これに相当する処理で、後述する「接辞」としての扱いに近い形ですが、このような自立語の処理の実装の報告となっています。*2そういったように、日本において実用的な仮名漢字変換が最初に実装された時点で考慮されていたものであり、また以降で述べるように、言語学的にも以前からきちんと扱われていたものを、ワープロのような自然言語処理でも扱うようになったものに過ぎませんから、あたかもIMEにおける特異な現象であるかのようなジャーゴンを与え、その名で呼ぶのは不適切です。国語学的にはどうなのかソシュールや*3チョムスキー以後の言語学がとり入れられた現代の日本語文法学を持ち出すまでもなく、橋本文法の解説などにも*4、以上で説明したような「自立語よりも細かい単位」について、実際にはきちんと言及はあります。文法の体系』(1987)であれば、公共図書館での取り寄せはそんなに難しくもないと思います(CiNiiで見たところ、大学図書館への所蔵で200件以上あります)。それを読むと、より細かい単位について、以下のようなことが書いてあります。(要約)さらに細かくできそうなものとして、「本箱」や「酒樽」といったような複合語は、「本」と「箱」、「酒」と「樽」といったように分解できるが、分解されたそれぞれは部分にしかなっていない。付属語の他に、「お山」の「お」のような接頭辞などの接辞もある*6。古くからあるいくつかの仮名漢字変換システムにおいても、このような語のために、入力の扱い方を変えるモードのようなものとして「複合語変換」というような名前の機能を持っていたり、マニュアル内で「造語成分」といったように説明されていたりします。まとめまとめると、そもそも「文節」ではなく、ちゃんと「複合語」や「接辞」という専門用語があるものを、単に仮名漢字変換において切り分けが必要だというだけで「IME文節」などと呼ぶのはあまりに雑であり、やめるべきだろう、ということになります。脚注12)にあります*7。*1:他、いくつかの講演資料のようなものにも見つかる。例外だ、というのが「自然言語処理」の講義では余談(?)でした。*3:「四大文法」のひとつ、時枝文法にはソシュールの影響がある(批判的だとも、誤解であるとも言われているようだが、ともかく影響があったということはそうだろう)。*4:いわゆる「学校文法」のベースが橋本文法であるということは事実ですが、義務教育で扱っていることが橋本博士の文法の全て、などというわけはありません。*5:ましてや、書店にはむしろそちら側の本しかないというような状況の、俗説の入り込む隙などは全く無い。*6:「付属語と接辞の違いは、根本的なものでなく程度の差に過ぎない」ともあって、これはちょっとわからないのだが......。*7:国研での用語調査の際の集計対象を文節としたので......といったような話。21:00「IME文節」という謎のジャーゴンについてTweet広告を非表示にするもっと読むコメントを書く2018-05-03「トロン―国産OSが世界標準になる」とかいう見出しの記事について結論いつものアレなのになんで今回はこう騒ぎになってるの?事実関係2017年11月のニュースとして、μT-Kernel(従来のμITRONにおける小さめのプロファイルに相当)を、IEEE標準の「2050」にするために、著作権の移管などがあった。802(LAN)などと同様なワーキンググループのひとつ。http://www.tron.org/blog/2017/12/ieee-standards-association-ieee-sa-and-tron-forum-sign-agreement-to-advance-iot-development-and-interoperability/はあるが、日本語でちゃんとした内容を伝えるものは、なぜか(いつものことだが)出ていない。今後何が変わるか(予想)以下の内容は私の予想だが、そう大きくは外れないだろう。結論としては、何も変わらない。Request)と書かれている所にあるPDFに、プロジェクトのスコープやミッションなどが書かれているが、要するに、今あるμT-Kernelの仕様書をレビューし、IEEE標準のひとつとする、ということだけしか書かれていない。μT-Kernel以外の、(μでない)T-Kernelをはじめとするその他のTRON全てについては、全く無関係な話でしかない。ウェブページから閲覧可能であることから(単に更新されてないだけにも見えるが)、もし、著作権の移管により見られなくなるものならば、現状がそれに違反していることになるので、恐らく問題ないものなのであろうと、強く推測される。坂村先生の風呂敷はいつものことだし、アンチが「Linuxという世界標準があるのに」とか意味のわかんないこと言うのもいつもの後継なんですが、なんで今回はこんなにバズってるのというか。)とか出るんですかどうなんですか。型には、コンパイル時のエラーにならず、代入できてしまう。これは、(静的な)強い型付けを期待しているプログラマの想像に、多分、反している。型Tの値は、union型Uに、Uのどれかの型に代入可能である場合に、代入可能である。)ここで、次のようではないのは意図的なものなのではないか、と思われる。型Tの値は、union型Uに、Uのどれかの型に代入可能である場合、かつその場合に限り、代入可能である。)つまり、このあたりの挙動については、型によって安全を保証することを諦めている(のではないか)と思われる。使えば、こういった問題は避けられるからである。実装を読んだわけではなく、いくつかの例で試した結果からの想像である。型のどれにも現れない属性名がないか確認する。どれにも現れない属性名があったら代入できない。この時、その属性の名前のみがチェックされ、型はチェックされない。代入可能かどうかについて試してゆく。側に属性が余ってもエラーにはしない。(これで、前述の仕様は満たされているはずです。以前の仕様の正確な理由はなぜか具体的にどう修正されたのかという感じになります。library」により、「四則は無限精度」「それ以外の関数などは32桁の精度」で計算する、という仕様になっていました。ような場合でも誤差が発生する場合がある(そして、それは気にしないでしょ?)、となっていました。これ自体には問題はありません。コンピュータで以上のような計算のしかたをすれば、必ず起きる可能性があるものとして、受け取らねばならないものです。いう数がどうやって出てくるのかについては、いくつか検討してみましたが、まだ糸口がつかめていません。(どうやら見つかりました。使っている(のだろう)と、小飼さん(@dankogai)から指摘がありました。上位の1の連続が、ちょうど拡張浮動小数点の64ビット(ケチ表現無し)と一致します。以下は、これの修正に関する、あくまでも「憶測にもとづいた」議論です。具体的にどう修正されたのかがはっきりすれば、心配の必要は全てなくなります。想像される修正おそらく最も可能性が高いと思われるのは、入力の値が整数になっていて(これは前述のライブラリであれば、正確に判定できるはず)、整数平方根により正確な値が得られたならば(これも微妙な点は無いはず)、それを結果とする、という処理が、平方根の前処理として追加された、というもので、基本的に安全な範囲の修正と言えます。)の、「恐ろしくて数値計算に使えたものではない。」と閉じられている最後の段落あたりを参照)。元々のこの問題のチケットが、単に放置されていたのではなく、もし「WONTFIX」になっていたものを*1、わざわざ修正したのだとして、なぜ今更修正したのかがはっきりしてなかったとすると、「なんとなく直した」のではないかという懸念が出てきます。アドホックに手当する、というのは、こういった問題で一番やってはいけないことで、もしそうだったら、という不安があります。アドホックに修正したか。2018年4月6日とのことなので、以下で私が考えるような「さいきょうの修正」は、されていない模様ですが、参考のために書いておきます。平方根には「荒っぽい近似が得られれば、ごく簡単に精度の桁を倍近く伸ばせる」という性質があります。2.0とすれば、1回でもかなり改善されます。全ての場合で精度が改善される問題だったような、「トリビアルに自明な結果」を外すことも無くなる(はず)だと思うのですが、どうでしょうか。*1:後述のように、平方根の計算には、簡単かつ確実に精度を上げる方法がありますから、それなりに意図的にそのままにしたものではないか、という気がします。タッチ操作のイベントの後に、(既存アプリ用の)マウス関係のエミュレートされたイベントを発生させることが、仕様で考慮されており、多くの実装がそのような挙動をします。events.とあるように、先に発生したタッチイベントでコンテンツを書き換えた場合などは、同じ場所で後から発生する(マウス)イベントは、同じ場所に新しくできた違う対象に対して発行されるかもしれない、ということになっています。これは実際のところ、厄介な挙動になり得ます。サンプルは、あるエリアをクリックするとオーバーレイが表示され、そのオーバーレイをクリックするとオーバーレイが消える、というものですが、スマートフォンのブラウザに表示させて試してみると、オーバレイがすぐ消えてしまうような挙動をする(場合が多い)はずです。コンソールに出力しているので、そちらで確認できます。event.となっているので、(あるべしとされている通り実装されていれば)それに従うことで抑止できるはずです。各種のフレームワークの内部でこれが起きている場合、把握するのはなかなかに厄介です。いうハンドラで処理をしています。呼ばれて、ダイヤログがすぐに消えてしまう、という現象が起きます。実行可能なスクリプトが生成されます。スクリプトの実行の流れに関して、少し用語の定義をします。流れを「関数内の実行」と、以下では呼ぶことにします。生成されるサンプルは、循環があっても特に問題が無い場合です。'./isOdd';console.log(isEven(4));console.log(isEven(5));console.log(isOdd(6));console.log(isOdd(7));実行結果は次のようになります。isEven[Function]========truefalsefalsetrueまた、それぞれの子モジュールの内容は次のようになっているのですが、このように「関数内の実行」からのみの参照であれば問題はありません。なっている時はありますが、関数が実行される時には「中身が出来て」います。インポートの順序も、どちらでも構いません。生成されるサンプルは、問題がある循環の場合です。いう代入は、以下のような結果を得るために、どうしても必要)実行結果は次のようになります。}========各モジュールは次のようになっています。なっていて、先に示したようにmainのほうで補完してやっています(あれこれいじってみましたが、他に方法は無いようでした)。「上から下への実行」の途中で実際に参照ができる必要がある、現実的なコードの例としては、classのextendsでの親クラスの指定などがあります。ように外部から操作して循環を完成させないといけません。側のように、mainで(上位側で)インポートする順番に注意する必要があり、直接に参照している側を先にインポートしてやればうまくいきます。警告が来るので外しました。*2:ピリオドを忘れると、npmの、ディレクトリを遡る特性で変なことになる場合があります。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。