サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ストレッチ
mandel59.hateblo.jp
漢字ベン図は、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
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ḥ この字
皆さんは確定申告は済みましたか? 私はまだです。2月中旬にやろうとしたけど、年末の携帯電話料金の引き落としの決済が完了していなかったんですよね……それで今日着手したんですけど、生命保険料控除証明書が必要になりました。10月ごろに郵送されて届いているらしい? けど覚えていません。でも、電子発行も可能なみたいで、大丈夫そうでした。 で、電子発行したんですけど、ファイルの形式がXML。会計ソフトに金額を入力しなきゃいけないから読みたいと思ったんですけど、テキストエディタで開いて中をみてもタグ名がWCE00370みたいな識別子で、さっぱり項目が分かりません。 じゃあ、どうすれば読めるのか。方法を2つ見つけました。 方法その1 QRコード付証明書等作成システムを使う www.e-tax.nta.go.jp QRコード付証明書等作成システムに、生命保険料控除証明書のXMLファイルをアップロードすれば、
アニメ公式での竈門禰豆子の表記。禰を表示するのに中国語繁体字の字形を使っている。 どうやら、竈門禰豆子の禰の字について、しめすへんは正式には「ネ」の形という指定が存在しているようで、公式サイトでもわざわざフォントを変えて1、禰のしめすへんを「ネ」に変えています。中国語のフォントでは、しめすへんは常用漢字かどうかに関わらず、いつでも「ネ」の形をしているからですね。2 日本語フォント 禰 中国語フォント 禰 この、フォントを変える手法での字形変更は昔から行われていますが、中国語のフォントを使うわけなので、日本語のフォントのしめすへんとは形が少し違う問題があります。 他の方法としては、異体字セレクタと呼ばれる仕組みを使うと禰󠄁(しめすへんが「示」)と禰󠄀(しめすへんが「ネ」)は区別して出せます。この方法で変えられる字形は、日本語フォントの中で用意されている、他の字になじんだ字形を使うことがで
新型コロナウイルスの問題で、専門家が使う「オーバーシュート」という言葉の意味が問題になっていた。 togetter.com 疫学でのオーバーシュートという言葉がどういう風に使われるのだろうと思ってさっと検索したが、https://t.co/LZMpKsJuCL の絵がでてきた。これは語感と一致している。論文もいくつかみたが、この絵でいいように思った。言葉には、色々な「文化」(じゃーごん)があるのは僕らも経験しているが。。— 佐々真一 (@sasa3341) 2020年3月20日 興味を持ったので、自分でも感染症の数理モデルを作り(グラフは参考にしたが、計算するための具体的な数式は見ていない。集団免疫率の定義を見たぐらいだ。)、シミュレーションを行ってみたところ、同様のグラフを得ることができた。ここに、簡単に説明をしておこうと思う。 留意点として、私は疫学の専門家ではないので、以下で使われて
このツイートが目に触れた。これは問題だ。 lain、商用含む二次創作フリーになったから記念配信で急に岩倉玲音が凸してきてもいいのか— 月ノ美兎🐰 (@MitoTsukino) 2020年3月17日 リプライにぶら下がっているリンクから、<利用ガイドライン>に飛ぶことができた。 本日より放送開始30周年となる2028年7月6日までの間において、以下の「利用ガイドライン」と「利用規約」の両方に同意いただくことを条件に、日本国内に居住されている個人の方に限り、アニメーション作品「serial experiments lain」(以下「本作品」といいます)の二次創作の利用を商用・非商用にかかわらず無償で許諾します。監修を受ける必要もありません。 また、個人の集合体となるファン・コミュニティによるOpen Source Projectであれば法人格を有しない限り、同様に許諾します。 www.nbc
www.hacker.or.jp 今日、コインハイブ事件への意見書を送付した。(郵送はまだ) 草稿をここで公開しておく。 コインハイブ事件への意見書草稿
概念をフォローする 本質的に、わたしたちは概念をフォローしたいのである。 あなたがツイッターで、その人をフォローする理由はなんだろうか。その人自身が本当に好きなのだろうか。単に、好みの記事や、写真や、動画をRTしてくれるから、ではないだろうか。実際に、おもしろ動画botのようなものがあり、それをフォローする人間はたくさんいる。 人間ではなく、概念をフォローするには、どうすればいいだろうか。たとえば、ハッシュタグを追うこともできる。ハッシュタグは、すなわち直に概念に結びついた記号だ。しかし、今のツイッターは、話題を検索することはできても、ハッシュタグを直接フォローすることはできない。 ハッシュタグは、書き手が恣意的に設定しなければならないという点で、ウェブページに設定されたキーワードと同じような、簡易な仕組みだ。それは、機械が直接文章から概念を抽出することができない、あるいは抽出するコストが
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 を使えばエラー時に中断される。】 全部のデータが文字列
TypeScriptは、JavaScriptエンジンの動的セマンティクス上に、静的な型システムのセマンティクスが重なっているものです。ここで、JavaScriptとしては正しく実行できても、TypeScriptの型システム上ではちゃんと型が付かないという場合もあります。ときには、TypeScriptで型がつくように大幅に書き換えないといけない場合も出てきたりして、そうなると大変です。それでも、TypeScriptの型システムは高度な機能を持っているので、大体の場合は、うまく表現してやると、JavaScriptらしい書き方のままで型をつけることができてしまいます。今回は、JavaScriptでよくある、プリミティブ値をそのまま取り回すパターンに型を付けたいと思います。 プリミティブ型を扱うプログラミングは、素朴でわかりやすいですが、型の考えからするとかなり悪いものです。こういうプログラミング
数研出版の教科書『高等学校 社会と情報』(平成24年2月27日検定済、平成27年1月10日発行)の序編第II章では、「情報の特徴」と題して、情報とは何かとその特徴についての説明が行われているのだが、そこで行われている「情報の有無」の説明にいまいち納得が行かない。 情報の有無 16本のマッチ棒をテーブルの上に投げたとき,たいていは,図1のような乱雑な並び方になる。偶然にマッチ棒が,図2のように「SOS(または505)」の文字の形になる可能性もあるが,きわめて確率が低い。私たちが,図2を見たら,人が手で並べたと思うだろう。 この2つの状態(図1の並び方と図2の並び方)のちがい(差)は,何だろうか。私たちが一目見てわかるように,この2つには大きな差がある。そのちがい(差)が,情報である。 (『高等学校 社会と情報』14ページ) 並び方の乱雑な「テーブルに投げたマッチ棒」と、並び方に秩序があるよう
lyrical-logical.hatenablog.com 読んでいて引っかかった部分について考えました。 mutable変数は「入力とは呼べない」? この記事で僕が伝えたいのは、君が書くあらゆる関数には二組の入力と二組の出力があるってことだ。 間違いなく、InboxQueue の状態はこの関数の本物の入力だ。 この隠れた入出力にはちゃんとした名前があって、その名を「副作用」という InboxQueue は、その関数スコープから参照可能な変数の一つに過ぎない。たまたまその関数の環境から触れるというだけで、入力というよりは、環境の中の mutable な変数の一つ、以上のことはないし、これを入力とは呼べない。これはプログラムの状態だ。 http://lyrical-logical.hatenablog.com/entry/2016/12/15/135831 問題のプログラムはこれです。 p
この記事は2016年当時の状況を書いています。その後のバージョンアップで、Windowsでのフォントレンダリングは改善され、ガンマ補正周りのエラーはなくなっているようです。当時の状況を資料として残しておきますが、記事を参照する場合はご注意ください。 TL;DR 游ゴシック体は単に細いから薄いのではなく、ガンマ補正が2重、3重に掛かっているために、グレーが本来よりも明るくなりすぎている。ガンマ補正を逆に掛けると、正常な表示になる。 かすれた游ゴシック Windowsでは游ゴシックがかすれて見える。細字だと薄くて読みづらいから、より太いウェイトを指定しろという話もある。(Windowsで游ゴシックが汚いのは、結局誰が悪いのか? | Cherry Pie Webなど)だが、かすれて見える原因は、ウェイトが細すぎるからではない。 例えば、本文に游ゴシックを使っているWIREDの記事(「癌」という名
以前、言語の完全性について言及した。今回は引き続き、言語の完全性について考える。 mandel59.hateblo.jp フレーゲの「概念記法」 フレーゲは未定義の式の存在を「言語の不完全性」(einer Unvollkommenheit der Sprache)とみなしていた。論理学者のフレーゲにとって、表現の「意味」(Bedeutung; その記号があらわしている事物。表記対象 denotation や言及対象 referent に相当すると考えられる)が確定していることは重要なことであった。表現の「意味」は、ちょうど1つでなければならず、それより多くても、少なくてもいけない。*1そのような多義的ないし無意味な表現は論理的誤謬のもととなるので、学問から排除するべきだと考えた。 フレーゲの提案した「約定」(Festsetzung)とは、そのような「言語の不完全性」を排し、言語を完全化する
巷に膾炙しているプログラム意味論の説明は、正直言って何を言っているのか、部外者にはよく分からないように感じられる。プログラムの意味を論じる「プログラム意味論」の意味がよくわからないというのは本末転倒だろう。ここでは、プログラム意味論を分かりやすく紹介したい。 プログラムの意味 プログラム意味論とは、プログラムの意味に関する理論だ。 そもそも「意味」とはなんだろうか。「意味」の意味を知るために、デジタル大辞泉で調べてみよう。 1 言葉が示す内容。また、言葉がある物事を示すこと。「単語の―を調べる」「愛を―するギリシャ語」 2 ある表現・行為によって示され、あるいはそこに含み隠されている内容。また、表現・行為がある内容を示すこと。「慰労の―で一席設ける」「―ありげな行動」「沈黙は賛成を―する」 3 価値。重要性。「―のある集会」「全員が参加しなければ―がない」 いみ【意味】の意味 - goo国
プログラミングと哲学の間には深い関係がある。プログラミングが昔ながらの哲学と単純に対応するというわけではないけれども、だからといって全くの無関係というわけでもない。その理由として、プログラミングの方法論のひとつに、世界を分析し、それを記述するという方法でプログラムを書くという考えがあることが挙げられる。 それはまさにオブジェクト指向の理念である、と考える人は、プログラミングのことも哲学のこともよく知らない。世界の様子を記述するという性質はオブジェクト指向の専売特許などではなく、平叙型プログラミング*1に共通して見られる考えだ。すなわち、関数型プログラミングや論理型プログラミングもまた、世界の様子を記述する側面を持っている。 「世界を分析して記述する方法」というのは、古来哲学が対象としてきたことのひとつだ。それなら、哲学なんてプログラミングと関係ないとするほうが、伝統に則らない考えだというべ
Referential Transparencyという概念が指すものは漠然としているので、もっと意味が明瞭で使いやすい用語を定義し、色々な言語の性質を記述してみる。 前提として 式は原子式か複合式である。 複合式は関手(functor)と項(argument)から構成される。 〈純粋性〉 「式の意味」と「式の値」は同義である。 〈原子確定性〉 原子式の意味は原子式自身とその原子式の文脈から決定される。 〈構成性〉 複合式の意味は関手および項の意味から決定される。 〈弱構成性〉 複合式の意味は関手、項の意味および式の文脈から決定される。 〈文脈構成性〉 複合式の項の文脈は、その複合式の文脈と関手から決定される。 〈文脈弱構成性〉 複合式の項の文脈は、その複合式の文脈、関手および他の項の意味から決定される。 〈確定性〉 式と式の文脈から部分式の意味が決定される。 〈文脈確定性〉 式と式の文脈か
今日の帰り道に、携帯電話会社の店舗に寄って、支払い方法をクレジットカード払いに変更してきた。身分証明証とクレジットカードを提示し、支払い方法を変更するんだけど、最後にタブレットを差し出され、指で画面への「署名」を求められた。これは変だ。その場で理由も特に聞かないまま、とりあえず日付と名前を書いて「署名」したんだけど、もったいないことをした。もし登大遊だったら、きっとツッコミを入れている。 以前、「ハンコは、ハンコが本人と書類を紐付けることと、複製(偽造)が不可能であることによって意味を持つ」というハンコの意味論の話を書いた。同じ話が、そのまま署名にもなりたつ。 mandel59.hateblo.jp タブレット画面に指で書く「署名」には、どんな意味があるんだろう。家に帰ってから、発行された「【情報変更】申込内容確認書」をよく確認してみると、「(契約者様 ご署名欄)上記内容につきまして、確認
ナンセンスなハンコ 先日、大学で進路説明会なるものが催され、某就活支援サービスの担当者が、就活の心得のようなものを語っていた。そこで、履歴書だかエントリーシートだかの書き方の話になったのだが、「綺麗に書いて最後にハンコを押す段階で失敗して書きなおすことになるのは時間の無駄であるしバカらしいから、先にハンコを押してから書くよう」と指南した。 書類を書く前にハンコを押すとは、ナンセンスに思える。そういうナンセンスな対処を得意げに語ることを許容する社会はどこか鈍いのではないか、誰かこのことをよく考えなければならないのではないかと、そう感じた。ハンコを押すならば、その行為にどのような意味があるか、考えるべきではないのか? 実際のところ、行為に意味があることと、その意味を行為者が認識している(意図がある)ことは別だ。記号は、それを取り扱う者(あるいは取り扱う物)がその意味を認識せずとも、意味を持って
その1 ⇒ プログラミングにおける〈式〉についての考察 - Ryusei’s Notes (a.k.a. M59のブログ) 前回、式の望ましい性質として確定性・構成性・純粋性があるという話をした。これらの性質がなぜ望ましいのかを、実際に式を分析しながら詳しく見ていく。 式の構造 式は一般に、原子式と式の基本構造から再帰的に構成されている。 例えば、次の式1は、2つの式, と、式の基本構造から成り立っている。そして、各部分式もまた部分と基本構造に分解できる。 式1: 式1の基本構造には次のものがある。 リスト1: 式1の基本構造 リスト1は、式を構成する規則として見ることができる。すなわち、これらの基本構造の組み合わせで、さまざまな式を構成できるわけで、どのようなものが式であるかを決めるルールになっているということだ。 式の構成規則を構文という。構文に従って式を分解し、式の構造を明らかにする
「プログラムとは何か」という質問に対する、最も素朴な回答は「プログラムとは、機械に与える命令文の並びのことです」というものだ。命令文を解釈する機械が、プログラムに記された命令に従って、装置を制御し、計算処理を実行する。このようなことは、情報科学の基礎として学校で教えていると思う。 一方で、今日の高水準言語によるプログラミングでは、〈式〉という概念を理解していることがとても重要だ。特に、関数型プログラミングが注目されるようになった今日では、もはや単なる数式としての理解では十分でない。 しかし、プログラミング言語における〈式〉は〈サブルーチン〉や〈関数〉のような概念に比べると自明であるように思われているためか、あまり精緻な説明がなされないようだ。実際、Wikipediaにおける式 (プログラミング) - Wikipediaの記述の短さを見て欲しい。英語版であれば少しだけ記述が長いが、それでも十
www.nikkei.com 用語ミニ解説として、オープンソースが「基本設計図である「ソースコード」が公に開示されているソフト」と解説されているのだけれども、ソースコードは基本設計図なのだろうか。 基本設計図というのは建築における用語だ。建築では、設計図には基本設計図と実施設計図とがある。建築工事に必要なのは、実施設計図だ。www.homes.co.jp 建築における基本設計図とソフトウェアにおけるソースコードの間には、重大な差異がある。基本設計図の段階ではまだ建物は建てられないのに対して、ソースコードは既にビルドできる状態のもので、ビルドすれば実働するソフトウェアが得られるという点だ。建築にたとえるなら、ソースコードはすでに「建築工事」に回せる段階のものだから、これはむしろ「実施設計図」に相当する。
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.
※追記あります Mac OS X El Capitanのヒラギノ角ゴシック — Medium ヒラギノ角ゴシックは10ウェイトあるが、CSSでは9つ(100から900まで100間隔)でしか指定できない。しかも、具体的にどのウェイトで表示されるかが、ブラウザによって異なっているようだ。 font-weightと実際に使われるウェイトの対応の表: CSS font-weight Firefox Chrome 100 W0 W0 200 W2 W1 300 W3 W3 400 W4 W4 500 W5 W5 600 W6 W6 700 W7 W7 800 W8 W8 900 W9 W9 また、normalとboldはそれぞれ400と700を指定するのと同じなのだが、今までのヒラギノ角ゴではW3とW6を使ってきたのだから、これでは少し太いかもしれない。こういう時は、@font-faceを使って、ウ
bugrammer.hateblo.jp この記事へのツッコミみたいなことを書くつもりだったけど、あんまり関係ない話になったので、サイドストーリーみたいにして読んでください。 分野によって「関数」が違うこともある 前回、数学的な関数の定義の話があったけど、あれは写像の定義であって、個々の分野で「関数」と呼ばれているものと、いつでも一致するとは限らない。まあ普通は関数と言ったらほとんどの場合写像を指すので、少し違う物を指すときは、多価関数とか連続関数みたいに、別の名前を付けていることも多い。 で、プログラミングに関する文脈で「関数」と呼ばれるものが写像と一致するかといえば、もちろん一致しない。ある程度似た部分もあるけど、違う性質を持っている。この違いを、数学的にどうやって説明するかが問題になる。計算の性質を説明するための抽象モデルが抽象書換系で、ラムダ計算の意味も、抽象書換系によって定義でき
さて、以上の議論を踏まえた上で、「世界一抽象化されたコード」というのを今から書いてみましょう。一瞬でかけます。 # nop 上にあげたものがそうです。つまり、「なにもしない」というコードこそが、世界一抽象化されたコードです。 http://nekogata.hatenablog.com/entry/2015/08/05/001742 これが本当に抽象なのか? と疑問に思う人がいるのだけれども、これは確かに一種の抽象化ではあるのだ。これが抽象化だと思えないのは、このnopの例自体が、具体的にどういう抽象化を前提としているかを明示していない、抽象的な例だからだ。「抽象化」という概念それ自体が抽象的だ。関数は、機械に扱える抽象化の機構のひとつなのだけれども、だからといって関数だけが抽象化ではない。 抽象化というのは、プログラムを書くのに使える概念であるという以前に、物の考え方としての概念だという
関数型言語ではポピュラーな機能である、代数的データ型を愛してやまない人は多いだろう。しかし悲しいことに、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) -> "(
これから書くのは、言葉や論理と、その意味に関する話だ。フレーゲらによる、物事を厳密に考える言葉の探求は、現代論理学や分析哲学の出発点になった。まずは、その哲学を探りながら、関数プログラミングの話でよく耳にする「参照透過性」という概念を理解することを最初の目標にしたい。 言及 Reference (Stanford Encyclopedia of Philosophy) 普通、記号には表す対象が存在している。記号と記号が表す対象との間にある関係を、言及(reference)という。*1たとえば、「東京タワー」や「港区にある電波塔」という言葉は建造物の《日本電波塔》への言及だし、「港区」や「東京タワーのある区」という言葉は場所の《東京都港区》への言及だ、などという。*2このような、記号の意味とは言及対象のことなのだという考えは、いろいろある意味の捉え方のうちのひとつだ。(直接言及論 Direc
僕は、プログラムを哲学したい。その動機のひとつに、用語の統一がある。現状、プログラムにおいて使われる用語は、対象言語によって色々と異なってしまっている。たとえば、似たような概念に、あるプログラム言語ではポインターという用語を使い、別の言語ではリファレンスという用語を使うといった場合がある。インターフェースとトレイトは同じなのかどうか。クラスと型クラスはどうか。同じ概念に違う名前を付けていたり、違う概念に同じ名前を付けていたりするので、混乱が甚だしい。 このような用語の混乱の下では、その場その場でアドホックに用語を定義し直すしかないが、そうすると他の場面で使われた用語との関係性がよく分からなくなってしまう。プログラムを哲学することで、このようなバベル的混乱の状況を変えられるのではないかと思っている。 動機のもうひとつは、プログラムするという行為の実態をより明確に捉えたいということだ。今日プロ
次のページ
このページを最初にブックマークしてみませんか?
『Ryusei’s Notes (a.k.a. M59のブログ)』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く