タグ

ブックマーク / mandel59.hateblo.jp (20)

  • 記号と通信に関する抽象階層モデルのメモ - Ryusei’s Notes (a.k.a. M59のブログ)

    情報科学・技術と記号論を関連付けようとする試みは、いくらか存在するが、個人的には、いままで提示されているモデルで納得がいくものはあまり多くない。既存のモデルは、断片的だったり不正確だ。ここでは、より正確であるが、詳細になりすぎないモデルをメモしておく。 情報システムは、次の4つの世界観に分けて、考えることができる。低次のレイヤーから順に、 物理界=場の世界 通信界=信号の世界 計算界=表現の世界 人間界=意識の世界 と考える。 物理界は、情報システムをそのように物理的な系として解釈した世界観だ。人間や計算機は、センサーやアクチュエーターなどを介して物理的な外部環境と相互作用している。そうした過程のすべての現象は、計算過程や通信過程も含めて、実際にはすべて物理的な法則に従っている。物理界では、人間の知覚しがたい現象が作用しあい、混沌としていて、高度な数理モデルによって記述される。 通信界は、

    記号と通信に関する抽象階層モデルのメモ - Ryusei’s Notes (a.k.a. M59のブログ)
    igrep
    igrep 2024/04/19
  • ハックとデジタル社会 - Ryusei’s Notes (a.k.a. M59のブログ)

    コンピューターで作られたシステムに問題があって、困っているとしよう。システムを作った人はここにいないし、一から作り直す時間はなかったり、そもそも触る権限がなかったりする。そういうシステムを、どうにかうまく使えるようにすることを、ハックという。 ここでいう「ハック」は、コンピューターを壊すとか、システムに侵入するという意味ではないし、単純にコンピューターに精通するというニュアンスでもない。責任の境界を超越して、システムをうまく動くようにしてしまう行為のことを言っている。いいかえれば、他人に依頼して直してもらうめんどくささを回避して、自分でシステムを直してしまうことだ。 たとえば、macOSの標準ブラウザーのSafariには「サイト固有のハックを無効にする」という開発者向けの設定項目がある。これは、どういう意味だろうか? 世の中のWebサイトは、コンテンツを配信するWebサーバーと、それを受け

    ハックとデジタル社会 - Ryusei’s Notes (a.k.a. M59のブログ)
    igrep
    igrep 2023/11/20
    素晴らしい "責任境界の超越を問題とせず、自由に課題に取り組めないことを問題とする思想。問題がいつまでも解決されず絶望するのではなく、問題を自分で解決につなげられるという希望。"
  • 漢字データベースを使って漢字ベン図を作問する - Ryusei’s Notes (a.k.a. M59のブログ)

    漢字ベン図は、QuizKnockがやっていた漢字クイズです。条件が3つ与えられるので、複数の条件に当てはまる漢字を答えていきます。 www.youtube.com この記事では、漢字情報データベース Mojidata を活用して、漢字ベン図を作問してみようと思います。 github.com MojidataはSQLiteというデータベースエンジンで使うことができるデータベースになっていて、情報をSQLで取得することができます。 データベースを使う準備 Mojidataを使うには、Node.jsとSQLiteをインストールしてあると楽です。 その後、ターミナルで次のコマンドを実行して、moji.dbをダウンロードし、sqlite3を起動してください。 # 作業用のディレクトリを作る mkdir kanji-venn # カレントディレクトリを変更する cd kanji-venn # npm

    漢字データベースを使って漢字ベン図を作問する - Ryusei’s Notes (a.k.a. M59のブログ)
  • 簡単関係照会言語 Erq で快適なデータベース分析生活を送る - Ryusei’s Notes (a.k.a. M59のブログ)

    Erq(アーク)は、SQLの代わりにアドホックなデータ分析に用いることを主目的とした、新しいデータベース言語です。リレーショナルデータベースは便利ですが、アドホックなデータ分析を行う上で、SQLの文法は面倒なものです。Erqは、SQLのセマンティクスは極力そのままに異なる文法を採用することで、簡単にクエリを書けるようになっています。 SQLクエリの実例 私はSQLiteデータベースに漢字の文字情報を入れて、複雑な検索や分析ができるようにしているのですが、実際にそのデータベースを使ったクエリ例を見てみましょう。使っているMojidataデータベースは、次のリポジトリからビルドできます。 GitHub - mandel59/mojidata: Character Database for CJKV Text Processing まず、漢字の読みを集めたmji_readingテーブルの内容を全

    簡単関係照会言語 Erq で快適なデータベース分析生活を送る - Ryusei’s Notes (a.k.a. M59のブログ)
    igrep
    igrep 2022/08/13
  • macOS Big Sur では梵字が表示できる - Ryusei’s Notes (a.k.a. M59のブログ)

    support.apple.com macOS Big Sur に組み込まれているフォント一覧を見ると、Noto Sans Siddhamがあることが分かる。これは悉曇文字、つまり寺院などで目にする梵字を収録したフォントだ。Font Bookやアプリのフォント一覧には表示されず、フォントフォールバック機能を介して使うことが前提になっているみたいだ。 フォントが入っていない人は https://github.com/googlefonts/noto-fonts/tree/main/hinted/ttf/NotoSansSiddham からフォントを入手できる。(NotoフォントはSIL Open Font Licenseの条件下で公開されている) 試しに、この記事にもいくつか梵字を載せておこう。(他にも 种子字 - 维基百科,自由的百科全书 にたくさん載っている。) 𑖭𑖾 saḥ この字

    macOS Big Sur では梵字が表示できる - Ryusei’s Notes (a.k.a. M59のブログ)
  • 電子発行された生命保険料控除証明書を読む - Ryusei’s Notes (a.k.a. M59のブログ)

    皆さんは確定申告は済みましたか? 私はまだです。2月中旬にやろうとしたけど、年末の携帯電話料金の引き落としの決済が完了していなかったんですよね……それで今日着手したんですけど、生命保険料控除証明書が必要になりました。10月ごろに郵送されて届いているらしい? けど覚えていません。でも、電子発行も可能なみたいで、大丈夫そうでした。 で、電子発行したんですけど、ファイルの形式がXML。会計ソフトに金額を入力しなきゃいけないから読みたいと思ったんですけど、テキストエディタで開いて中をみてもタグ名がWCE00370みたいな識別子で、さっぱり項目が分かりません。 じゃあ、どうすれば読めるのか。方法を2つ見つけました。 方法その1 QRコード付証明書等作成システムを使う www.e-tax.nta.go.jp QRコード付証明書等作成システムに、生命保険料控除証明書のXMLファイルをアップロードすれば、

    電子発行された生命保険料控除証明書を読む - Ryusei’s Notes (a.k.a. M59のブログ)
    igrep
    igrep 2021/03/01
  • MIDIデータを可視化するやつを作った - Ryusei’s Notes (a.k.a. M59のブログ)

    音楽でどういう音が鳴っているのかを知りたいと思ったので、MIDIデータを可視化するやつ、Midivisを作りました。 https://midivis.ryusei.dev/ Web MIDI APIが動くブラウザー(Google ChromeMicrosoft Edge)で使うことができます。Mozilla FirefoxはWeb MIDI APIをサポートしていないので動きません。(プラグインを使えば動かせるかもしれませんが、確認していません。) ノートは、横方向は半音、縦方向は完全4度の音程で並んでいます。ノートは横に12列並んでいるので、これだと同じ音が重複して表示されることになりますが、このように表示することで、コードのパターンが分かりやすくなります。たとえば、次の動画ではカノン進行 D-A-Bm-F♯m-G-D-G-A を演奏していますが、D→AやBm→F♯m、G→Dのような4

    MIDIデータを可視化するやつを作った - Ryusei’s Notes (a.k.a. M59のブログ)
  • 竈門禰豆子の禰の字について - Ryusei’s Notes (a.k.a. M59のブログ)

    アニメ公式での竈門禰豆子の表記。禰を表示するのに中国語繁体字の字形を使っている。 どうやら、竈門禰豆子の禰の字について、しめすへんは正式には「ネ」の形という指定が存在しているようで、公式サイトでもわざわざフォントを変えて1、禰のしめすへんを「ネ」に変えています。中国語のフォントでは、しめすへんは常用漢字かどうかに関わらず、いつでも「ネ」の形をしているからですね。2 日フォント中国フォント 禰 この、フォントを変える手法での字形変更は昔から行われていますが、中国語のフォントを使うわけなので、日語のフォントのしめすへんとは形が少し違う問題があります。 他の方法としては、異体字セレクタと呼ばれる仕組みを使うと禰󠄁(しめすへんが「示」)と禰󠄀(しめすへんが「ネ」)は区別して出せます。この方法で変えられる字形は、日フォントの中で用意されている、他の字になじんだ字形を使うことがで

    竈門禰豆子の禰の字について - Ryusei’s Notes (a.k.a. M59のブログ)
  • ウイルス感染シミュレーターを作ったので、オーバーシュートを完全に理解した - Ryusei’s Notes (a.k.a. M59のブログ)

    新型コロナウイルスの問題で、専門家が使う「オーバーシュート」という言葉の意味が問題になっていた。 togetter.com 疫学でのオーバーシュートという言葉がどういう風に使われるのだろうと思ってさっと検索したが、https://t.co/LZMpKsJuCL の絵がでてきた。これは語感と一致している。論文もいくつかみたが、この絵でいいように思った。言葉には、色々な「文化」(じゃーごん)があるのは僕らも経験しているが。。— 佐々真一 (@sasa3341) 2020年3月20日 興味を持ったので、自分でも感染症の数理モデルを作り(グラフは参考にしたが、計算するための具体的な数式は見ていない。集団免疫率の定義を見たぐらいだ。)、シミュレーションを行ってみたところ、同様のグラフを得ることができた。ここに、簡単に説明をしておこうと思う。 留意点として、私は疫学の専門家ではないので、以下で使われて

    ウイルス感染シミュレーターを作ったので、オーバーシュートを完全に理解した - Ryusei’s Notes (a.k.a. M59のブログ)
  • オープンソース概念の無意識な風化への抵抗 - Ryusei’s Notes (a.k.a. M59のブログ)

    このツイートが目に触れた。これは問題だ。 lain、商用含む二次創作フリーになったから記念配信で急に岩倉玲音が凸してきてもいいのか— 月ノ美兎🐰 (@MitoTsukino) 2020年3月17日 リプライにぶら下がっているリンクから、<利用ガイドライン>に飛ぶことができた。 日より放送開始30周年となる2028年7月6日までの間において、以下の「利用ガイドライン」と「利用規約」の両方に同意いただくことを条件に、日国内に居住されている個人の方に限り、アニメーション作品「serial experiments lain」(以下「作品」といいます)の二次創作の利用を商用・非商用にかかわらず無償で許諾します。監修を受ける必要もありません。 また、個人の集合体となるファン・コミュニティによるOpen Source Projectであれば法人格を有しない限り、同様に許諾します。 www.nbc

    オープンソース概念の無意識な風化への抵抗 - Ryusei’s Notes (a.k.a. M59のブログ)
    igrep
    igrep 2020/03/18
  • コインハイブ事件への意見書 - Ryusei’s Notes (a.k.a. M59のブログ)

    www.hacker.or.jp 今日、コインハイブ事件への意見書を送付した。(郵送はまだ) 草稿をここで公開しておく。 コインハイブ事件への意見書草稿

    コインハイブ事件への意見書 - Ryusei’s Notes (a.k.a. M59のブログ)
    igrep
    igrep 2020/03/10
  • TopShell: シェル再考 - Ryusei’s Notes (a.k.a. M59のブログ)

    GitHubのExplore repositoriesにたまたま表示されていた TopShell が気になったので、ここで紹介する。 github.com TopShell開発の動機は TopShell: Reimagined Terminal and Shell · topshell-language/topshell Wiki · GitHub に書いてあるが、要点をまとめると「古典的なUnixシェルを使うのはつらい。いいところだけを抜き出して、全くシェルを考えたら、どうなるだろうか?」ということらしい。 Unixシェルのだめなところ 未定義の変数を使ってもエラーにならない【デフォルトで。set -u を使えばエラーになる。】 コマンドがエラーになってもスルーされる【デフォルトで。set -e とか set -opipefail を使えばエラー時に中断される。】 全部のデータが文字列

    TopShell: シェル再考 - Ryusei’s Notes (a.k.a. M59のブログ)
    igrep
    igrep 2019/09/03
    nushellともまた違うようだ
  • Phantom property pattern - Ryusei’s Notes (a.k.a. M59のブログ)

    TypeScriptは、JavaScriptエンジンの動的セマンティクス上に、静的な型システムのセマンティクスが重なっているものです。ここで、JavaScriptとしては正しく実行できても、TypeScriptの型システム上ではちゃんと型が付かないという場合もあります。ときには、TypeScriptで型がつくように大幅に書き換えないといけない場合も出てきたりして、そうなると大変です。それでも、TypeScriptの型システムは高度な機能を持っているので、大体の場合は、うまく表現してやると、JavaScriptらしい書き方のままで型をつけることができてしまいます。今回は、JavaScriptでよくある、プリミティブ値をそのまま取り回すパターンに型を付けたいと思います。 プリミティブ型を扱うプログラミングは、素朴でわかりやすいですが、型の考えからするとかなり悪いものです。こういうプログラミング

    Phantom property pattern - Ryusei’s Notes (a.k.a. M59のブログ)
  • Referential Transparencyについて取り急ぎ - Ryusei’s Notes (a.k.a. M59のブログ)

    Wikipedia語版に 参照透過性(さんしょうとうかせい、英: Referential transparency)は、計算機言語の概念の一種で、文脈によらず式の値はその構成要素(例えば変数や関数)によってのみ定まるということを言う。 https://ja.wikipedia.org/w/index.php?title=%E5%8F%82%E7%85%A7%E9%80%8F%E9%81%8E%E6%80%A7&oldid=46720534 とあるが、これは誤り。「文脈によらず式の値はその構成要素によってのみ定まる」という性質は、参照透過性ではなく構成性 (compositionality) と言う。 In mathematics, semantics, and philosophy of language, the principle of compositionality is th

    Referential Transparencyについて取り急ぎ - Ryusei’s Notes (a.k.a. M59のブログ)
    igrep
    igrep 2016/04/02
    “ある式は、その式をその式の値に置き換えてもプログラムの動作が変わらないとき”
  • プログラミングにおける〈式〉についての考察 - Ryusei’s Notes (a.k.a. M59のブログ)

    「プログラムとは何か」という質問に対する、最も素朴な回答は「プログラムとは、機械に与える命令文の並びのことです」というものだ。命令文を解釈する機械が、プログラムに記された命令に従って、装置を制御し、計算処理を実行する。このようなことは、情報科学の基礎として学校で教えていると思う。 一方で、今日の高水準言語によるプログラミングでは、〈式〉という概念を理解していることがとても重要だ。特に、関数型プログラミングが注目されるようになった今日では、もはや単なる数式としての理解では十分でない。 しかし、プログラミング言語における〈式〉は〈サブルーチン〉や〈関数〉のような概念に比べると自明であるように思われているためか、あまり精緻な説明がなされないようだ。実際、Wikipediaにおける式 (プログラミング) - Wikipediaの記述の短さを見て欲しい。英語版であれば少しだけ記述が長いが、それでも十

  • コメント欄についてのコメントまとめ - Ryusei’s Notes (a.k.a. M59のブログ)

    Twitterのツイートをまとめました。 2012年 コメント欄に載っけるか載っけないかで揉めるし、もうコメント欄は無くしちゃってコメントはツイッターにでも書かせてしまうのがいいのかもなー— Ryusei Yamaguchi (@mandel59) 2012, 8月 17 ブログからはコメント欄を取ってしまったのだけれども、これは「文句言うな」じゃなくて、はてブでもTwitterでもどこでもいいから、もっと色々な場所でコメントして欲しいってことです。Request for Commentsです。面白い意見を聞かせてください。— Ryusei Yamaguchi (@mandel59) 2012, 9月 25 2014年1月17日 NATROMの日記のコメント欄が承認制になった時のコメントです。 “執拗な発言者の存在のためコメントを承認制にします - NATROMの日記” http://t.

    コメント欄についてのコメントまとめ - Ryusei’s Notes (a.k.a. M59のブログ)
    igrep
    igrep 2015/10/18
    僕もコメント欄は要らないと思う。ブログの実装的にも静的サイトジェネレーターで済むんで楽ですよ。はてなブログとか使ってる限り全く気にしなくていい視点ですけど。
  • 関数とラムダ計算の話 - Ryusei’s Notes (a.k.a. M59のブログ)

    bugrammer.hateblo.jp この記事へのツッコミみたいなことを書くつもりだったけど、あんまり関係ない話になったので、サイドストーリーみたいにして読んでください。 分野によって「関数」が違うこともある 前回、数学的な関数の定義の話があったけど、あれは写像の定義であって、個々の分野で「関数」と呼ばれているものと、いつでも一致するとは限らない。まあ普通は関数と言ったらほとんどの場合写像を指すので、少し違う物を指すときは、多価関数とか連続関数みたいに、別の名前を付けていることも多い。 で、プログラミングに関する文脈で「関数」と呼ばれるものが写像と一致するかといえば、もちろん一致しない。ある程度似た部分もあるけど、違う性質を持っている。この違いを、数学的にどうやって説明するかが問題になる。計算の性質を説明するための抽象モデルが抽象書換系で、ラムダ計算の意味も、抽象書換系によって定義でき

    関数とラムダ計算の話 - Ryusei’s Notes (a.k.a. M59のブログ)
  • CoffeeScriptで代数的データを表現する - Ryusei’s Notes (a.k.a. M59のブログ)

    関数型言語ではポピュラーな機能である、代数的データ型を愛してやまない人は多いだろう。しかし悲しいことに、CoffeeScriptは、代数的データ型を持っていない。今回は、オブジェクトを使って代数的データの条件分岐を表現する方法について書こうと思う。 次のコードは、数式の文字列化や評価を行うプログラムだ。 # 分岐関数 match = (x, c) -> x.apply(c) # 構築子 num = (x) -> ->@num(x) add = (x, y) -> ->@add(x, y) mul = (x, y) -> ->@mul(x, y) # 数式 1 + 2 * 3 exp = add(num(1), mul(num(2), num(3))) # 文字列化 p = (exp) -> match exp, num: (x) -> String(x) add: (x, y) -> "(

    CoffeeScriptで代数的データを表現する - Ryusei’s Notes (a.k.a. M59のブログ)
  • 圏論プログラミング言語 CPL - Ryusei’s Notes (a.k.a. M59のブログ)

    Hagino’s Categorical Programming Language について紹介します。 wikipedia:CPL (圏論プログラミング言語)によれば、 CPL (正式名称:Categorical Programming Language) は圏論に基づいたデータ型の定義と計算モデルを持つ関数型プログラミング言語であり、1987年、萩野達也によって発案された。圏論の計算機科学に対する応用の黎明期に生まれた言語である。 CPL (圏論プログラミング言語) ということです。1987年なので、まあ昔に作られた言語です。JavaRubyよりも前。 CPLのデータ型 CPLでは、様々なデータ型を、CPLのプログラム中で定義できます。直積も、直和も、自然数も、そして関数も定義可能です。 ユニット型(終対象)1はこう定義されます: right object 1 with ! is e

  • Ubuntu 9.10でLyX/pLaTeX - Ryusei’s Notes (a.k.a. M59のブログ)

    UbuntuでLyXを使おうとしたら、少し厄介だったのでメモ。http://user.ecc.u-tokyo.ac.jp/~ecnophys/?p=%E3%83%A1%E3%83%A2を参考にした。 インストール パッケージの導入 aptでパッケージの導入。lyxに加えてlatex-extra-japaneseもインストールする。 自分の環境では何故かGNOMEメニューに表示されなかったので、Gnomeのメニューから〈システム→設定→メイン・メニュー〉を選んで起動、オフィスの項目にLyX Document Processorがあるはずなのでチェックボックスをオンにする。コマンドラインからはlyxで起動できる。 japanese.ldfの導入 CTAN(Comprehensive TeX Archive Network)からjapanese.zipをダウンロードしてきて展開し、READMEの

    Ubuntu 9.10でLyX/pLaTeX - Ryusei’s Notes (a.k.a. M59のブログ)
    igrep
    igrep 2011/08/03
    LaTeX on UbuntuでOTFパッケージを使うためにW32TeXから借用しないといけないとは...
  • 1