kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

2018-05-01から1ヶ月間の記事一覧

TiddlyWiki/Dev - Conclusion

Conclusionまで来ましたとりあえず記事を読むのはここまでということで TiddlyWikiの中心部は裸のTiddlerストアとモジュールシステムを提供するマイクロカーネルのみ マイクロカーネルはJavaScriptで書かれており、ブラウザでもnode.jsでも動く コアプラグイ…

TiddlyWiki/Dev - Core Application (5)

TiddlyWiki Core Applicationの続き トランスクルージョンとテキスト参照 TextReferenceとスペースなしの一単語として書いてあるからテキストリファレンスと書いたほうが雰囲気が出るだろうか テキスト参照 テキスト参照は指定されたTiddlerのフィールドの内…

TiddlyWiki/Dev - Core Application (4)

TiddlyWiki Core Applicationの続き 動的な振る舞いはふたつの方法で追加できる から メッセージ メッセージはユーザによって発信されるイベントで、ウィジェットによって生成される "tm-delete-tiddler"といった型のプロパティを持つ メッセージは親へ親へ…

TiddlyWiki/Dev - Core Application (3)

TiddlyWiki Core Applicationの続き UIとレンダリングパイプライン WikiText → パーズツリー → レンダツリー → DOM →シリアライズ→ 静的HTML パーザ コアプラグインはWikiTextのパーザを提供し、テキストをパーズツリーに変換する パーザはparserタイプのモ…

TiddlyWiki/Dev - Core Application (2)

TiddlyWiki Core Applicationの続き タグ コアプラグインはTiddlerにタグを付ける仕組みを提供する 特定のタグを使ってTiddlerを取得する { tag: [tiddler1, tiddler3, tiddler3] }のようなハッシュマップを取得する 特定のタグがついてないTiddlerのリスト…

TiddlyWiki/Dev - Core Application

TiddlyWiki Core Applicationを読みます これはちょっと長いので分割になりそう マイクロカーネルはWikiストアと裸のTiddlerモデルを提供する マイクロカーネルは一連のTiddlerをロードしてモジュールシステムやプラグインを利用できるようにする TiddlyWiki…

TiddlyWiki/Dev - Microkernel Architecture を読む

Microkernel Architectureより TiddlyWikiのカーテルのアーキテクチャと、Tiddlerのデータモデルを見ていくよ TiddlyWikiはマイクロカーネルのいくつかの関数の上にできている おかげでTiddlyWikiはクリーンなしかけでカスタマイズできる TiddlerがわかればT…

TiddlyWiki/Dev Quick Overview

TiddlyWiki - A quick Overviewを読む TiddlyWikiはSingle Page Applicationだよ JavaScriptで書かれ、GUIはHTML5とCSS3で描画される だからアプリケーションはシンプルさを保つことができ、従来のWebアプリケーションのように状態をエミュレートする必要が…

TiddlyWiki5 開発ドキュメント

いきなりソースを読むのはちょっと無理だった TiddlyWiki/Devをちょっと見てみよう このサイト、"TiddlyWiki"って書いてるけどこれはTiddlyWiki5のことでいいんだよな・・・? とりあえず Introductionから TiddlywikiはSingle Page Applicationとして書かれ…

TiddlyWiki5 Macでもやってみる

なんとなくWindowsだから微妙な動きをしている気がしたのでMacでもやってみた [tiddly]$ brew install node [tiddly]$ git clone https://github.com/Jermolene/TiddlyWiki5 この状態では動かないのか確かめておく [tiddly]$ cd TiddlyWiki5/ [TiddlyWiki5][…

TiddlyWiki5のリポをcloneする

ちょっと思い立ったことがありまして TiddlyWiki5 https://tiddlywiki.com のソースを見てみようかと https://github.com/Jermolene/TiddlyWiki5のreadmeを見てnode.js版をインストールすれば自動的にソースも入りそうなんですが、ここはひとつリポをcloneし…

Quora(日本版)で

cs

適格かどうかと思いつつもつい回答してしまった 文系ですが、コンピュータに興味があり、計算機科学を学びたいと思っています。計算機科学を学ぶ上で、数学IIIまでの高校数学以外にやっておくべきことはありますか? 学びたいことがあったらすぐ、って言いた…

『最短経路の本 レナのふしぎな数学の旅』

数学の本、読みたいとは思うんですけど大学のテキストとか論文とかはまだなかなか読めるレベルに達してなくて、一般向けの数学の本を見つけるとつい買ってしまいます ムスメも読むかもしれないし! 最短経路の本 レナのふしぎな数学の旅 作者: P.グリッツマ…

クロージャ作ろう(1)

lambda作ったのでもうひとがんばりしてクロージャも作りたい 今は渡された引数のことしか知らないので静的スコープどころか動的スコープもありません こういうのはまだ動かないと・・・ > (meval '((lambda (a) ((lambda (b) (+ a b)) 2)) 1)) 3 動いたな な…

lambda作ろう

さてJ-Bob書いてみて意外と書けるもんだなと思ったりしてるところですが(何か苦労した気もしますが) せめてlambdaくらいある言語にしてみたいと思いまして もう1回やってみようと思います 目標レベルはScheme修行のeval程度(ただし継続は除く)

ポモドーロ始めてみました

25分集中して仕事して5分休憩、を繰り返すってやつですWeb上の入門記事をいくつか見たくらいでそれくらいしか知りません ちょっと集中が足りてないなと思ってたんですがふとポモドーロってあったなと思い出してやってみようと思い立ちまして タイマーが必要…

『ノンデザイナーズ・デザインブック』

ノンデザイナーズ・デザインブック [第4版] 作者: Robin Williams,小原司,米谷テツヤ,吉川典秀 出版社/メーカー: マイナビ出版 発売日: 2016/06/30 メディア: 単行本(ソフトカバー) この商品を含むブログ (2件) を見る 以前図書館で借りてさらっと読んだこ…

定理証明手習い(a3) しゅくだい(11)

またもアドバイスいただきました (rev2 (rev2 l nil) nil) = l なら (rev2 (rev2 l (cons a nil)) nil) = (cons a l)ですね。この証明にも、rev2の引数がrcons(またはappend)である場合の補題が必要になるとおもいます。— SUHARA Hiromichi (@suharahiromi…

定理証明手習い(a2) しゅくだい(10)

再考します、と言ってはみたもののイメージはつかめてなかったり (reverse/reverseだって証明はもっと簡単にできるイメージだった・・・) 再掲 reverse2/reverse2 の証明は、私も考えてみましたが、累積変数を使った定義と逆consを使った定義とが同じである…

定理証明手習い(a1) しゅくだい(9)

rcons版のreverse/reverseを証明します reverse2/reverse2はどうしようかな rconsとreverseの定義・証明 (defun defun.rcons () (J-Bob/define (prelude) '(((defun rcons (x y) (if (atom x) (cons y x) (cons (car x) (rcons (cdr x) y)))) (size x) ((Q) …

定理証明手習い(a0) しゅくだい(8)

想定以上に寝かせることになってしまいましたがアドバイスいただきましたので考えてみます寝かせたわりには特にアイデアは思いついていません reverse2/reverse2 の証明は、私も考えてみましたが、累積変数を使った定義と逆consを使った定義とが同じである、…

J-Bobを作ってみよう(11) おしまい

まあ一度真正面からどう動いているのか見てやろうかと ソースは組み込み関数を増やす前のものに戻しました とりあえずこんな感じのベタなことをしてみました これでも意外とつかめるかもしれないし

J-Bobを作ってみよう(10) 組み込み関数を追加する

たかだか証明を数ステップ進めるだけで関数を何百万会も呼ばなきゃいけないのかという疑問を脇に押しのけてたくさん呼ばれてる関数を組み込み関数にしてみます なんにも頭を使わない力技

J-Bobを作ってみよう(9) J-Bobをプロファイリング

J-Bobを動かしてみます >> (load "j-bob.jbb") Welcome to J-Bob #<void> >> (J-Bob/step '((dethm car/cons (x y) (equal (car (cons x y)) x))) '(car (cons 'ham '(eggs))) '((() (car/cons 'ham '(eggs))))) 'ham >> (show-profile) '((untag 18159) (elem1 93</void>…

J-Bobを作ってみよう(8) 簡易プロファイラ

関数の呼び出し回数が見えるようにしてみようかと envに覚えるようにしておいて、japplyかなにかのタイミングで更新すればよさそう リストのままだと更新しづらい(気がする)から、structにしてみようか こういうの「純粋」なやりかたではどうやるのかな ま…

J-Bobを作ってみよう(7)

テストを移植しながら調べているとここが無限ループとは言わないまでも やたらと時間がかかっていることを発見しました なおインデントは自分で直しています(以下同文 >> (defs? (tdefs) '((defun double (x) (add x x)) (defun len (xs) (if (atom xs) '0 …

J-Bobを作ってみよう(6) バグ発見

テストが書けるようになりましたのでj-bob.jbbにテストを移植しつつ調査していきました へんな値が返されるのを発見 implication/1exp actual :(if (equal x 'a) (equal (quote-c 't) 'b) 't) expected:(if (equal x 'a) (equal y 'b) 't) このテストで発生

J-Bobを作ってみよう(5) テスト

どうやって調べようか テストを移植するかな これまで書いたテストを再利用するためにはまずmy/testが書けなきゃいけなくて そのためには最低限displayとbeginがほしい

J-Bobを作ってみよう(4) load

えーとあとは ファイルから読めるようにしたらいいのか どうするのがスマート? J-Bobにloadつけるのかな それともJ-Bobの外に作るのがいいだろうか いったん外で使うのを作って、その後J-Bobに入れよう 文字列型もないけど きっとreadならなんとかしてくれる

J-Bobを作ってみよう(3) 関数定義、関数適用、REPL

さていよいよ関数定義と関数適用です よく覚えていないのでとりあえず雑に書いてみます J-Bobではクロージャとか考えなくてもよさそうな気がしている まずは関数定義 J-Bobのdefunは式一つ書ければいいんだよな・・・?