2014-01-01から1年間の記事一覧
人間をコンピュータシミュレーションにエンコードするプロジェクトを始動させる。潤沢な財源を用意すること。 気合でトリップして未来のコンピュータ内の人格をジャックする。
Real World Objects // Speaker Deck 1年前のトーク(↑)の続き。 実世界をモデルしようとしたときに、考察もなしに「全てがオブジェクトだ」とか「全ては不変データと関数で表現できる」って言っちゃうのは早計なんじゃないかと思ってたまーーに思い出したよ…
1年ぶりに浦和に帰ってきた。1月から代々木のあたりで就職が決まってて、12月中はそこでバイトさしてもらってる。 なにかソフトウェアを書こうって時にいきなりエディタと向かい合うのが辛い時がある。そんなときにやってみてアリだなと思ったことをメモしと…
SFを書きました。 音楽好きのY氏は、いつものようにを飲んで仕事をしていた。Y氏が耳の中で環境音を合成してネコネコカワイイを聞いていると、同僚のJ氏が話しかけてきた。 「Yさん、最近いい夢見ましたか」 「Jさん、私はネコネコカワイイを聞いて仕事をし…
ClojureのGSoCやった人にCognitectから旅費が出るというのでワシントンDCに行ってきた。 トークも面白かったけど、それより人と会うのが楽しかった。次も行きます。 Indiana Universityの人たちと友達になって招待してもらったWeWorkのミーティングと、Crime…
または代々木の12階に出る妖怪について。 某P社では、Android入りの巨大モニタに入れた簡単なアプリを勤怠管理のインターフェースに使っているんだけど、夏が近づいてきたある日から、このアプリに不思議な現象が起き始めた。夜中の11時頃から朝方に掛けて、…
昨日の記事で書いたVOC (Vision Oriented Communication) の実装を支援するライブラリを作った。 https://github.com/ympbyc/VOC READMEを英語で書いたのでここに日本語版を書いとく。 VOCのコンセプト オブジェクト指向やアクターはpushベースだけど、実世…
OO paradigms that are built on top of messaging concept don't correctly model the world we live in. We dont send messages addressed to receivers. Communication Without Messages Consider a situation where you are driving your car (A) behind…
今日バイクの上で考えたこと: オブジェクトとかアクターとかだと、メッセージは宛先を持つ。dog barkはdogにたいしてbarkってメッセージを送る。そしてメッセージは普通盗聴できない。 僕らの世界ではメッセージは宛先を持たない。車がブレーキランプを点灯…
ここ数ヶ月Carrotを全く触っていなかった。これ以上放置するとまた飽きて捨てたリポジトリが増えることになるからちょこっとしたコミットを作って浮上させた。 (synonym Map (lambda [a b] `(List (Pair ,a ,b)))) (= (name (Map Keyword String) (Option St…
夏休みです。 セメスタ始まりに教授に勧められて応募したGSoCのTyped Clojurescriptのプロジェクトプロポーザルが採択されて今週からコーディング期間が始まりました。 http://www.google-melange.com/gsoc/project/details/google/gsoc2014/ympbyc/56768300…
最近バイトに明け暮れて頭を使っていなかったので頭の体操をしてた。全部適当に考えただけで支離滅裂だけど、今度もう少しちゃんとまとめたい。あらかじめ断っておくと僕の物理の基礎はボロボロです。 あと、いつものごとくこの記事ではセクションをまたいだ…
Part 1からずいぶんと時間を置いてしまった。みんな覚えてるかな。前回はごたまぜだったけど、今日はとくに時空についてに絞って書いてみる。前半は2013年の12月にSmalltalk忘年会で話した事の焼き直しだけど、文章にしたことがなかったからもう一度やってみ…
僕は今頭がhyperactiveになってるからとっておきの考えを書く。これは僕が暇なときにいつも考えてることで、これからも何回か書くことになると思う。 宇宙というソフトウェアのコードを、なるべく簡潔に記述するとしたらどんな風になるのか考えてみる。この…
ソフトウェアのバグについて。バグをなくすかユーザをプログラマ*1にするか。 テストについて テストを手で書いて、全ての手続きについてソフトウェアが実行時に取り得る全ての状態のもと*2で正しい結果を返すことを保証するには時間もお金もかかりすぎる。 …
この前作ったkakahiaka.jsを、たまに簡単なWebViewのアプリとかで使ってみてた。小回りが利いていい感じ。 コンセプトはPastaと全く一緒で、関数ベースのMVCをやるとしたらどうなるかっていうのがテーマなんだけど、Pastaは今となってはAPIがださいのでもう…
おととい春セメスタが始まって、今週は授業を取ったりやめたりで忙しい。 今回は 地理: Geography 2 -- Cultural Geography 天文学: Astronomy 5 -- Stars, Galaxies & the Universe ドイツ語: German 1 -- Elementary German - Level I プロマネ: CIS 136 -…
fpsは逆か
今日Object-Oriented Programming Versus Abstract Data Typesってけっこう昔の論文読んで、最近もやもやしてたことが解決した。 クラスを型みたいに使う言語が多いから、そんなもんなんだろうと思ってたけど、クラスは型じゃなくて型のコンストラクタなんだ…
これ便利。 (define-class <serializable> () ()) (define-method write-object [(x <serializable>) out] (let* ([class (class-of x)] [serializable-slots (filter (^s (get-keyword :init-keyword (cdr s) #f)) (class-slots class))] [slot-names (map car serializable-slots)] [in</serializable></serializable>…
TL;DR だいたいみんな知ってることだと思います。On Lispの「いつオブジェクトを使うのか」に言いたいことだいたい書いてあります。 背景 前にサーバーサイドMVCって記事で、クラスはせっかくモジュラーな関数をそうじゃなくするから基本的に悪だってちろっ…
Carrotに静的型付けを実装していくうちに、あれを表現するには代数データ型が必要だ、あれにはシノニム、あれには型クラスなりインターフェースなりが必要、そうするとimplementsだかinstanceだかみたいなのも必要になるし、って結局どんどんHaskellに近づい…
Stop Writing JavaScript Compilers! Make Macros Insteadを読んで、sweet.jsを使ってみた。 解決したい事 JavaScriptでは非同期処理が多いので、継続渡しスタイルのコードばっかりになるのだけど、みんなこれをcallback hellとかpyramid of doomとか呼んで…
昨日の記事で、 例えば、真偽値はa -> a -> aな関数にして、型はBoolにしたいけど、 そうしちゃうと=cを使っても分岐の左右が同じ型かのチェックができなくなっちゃう ということを書いたんだけど、とりあえずこのBoolについての問題はシノニムを導入する事…
年末年始は結局だらだらと本を読んで過ごしてて全然Carrotを触ってなかった。昨日今日と頑張ったらとりあえず動く型チェッカができて、わりかし欲しいものに近付いた気がする。 今はCarrotを、クロージャといくつかの基本型しかない、型なしλ計算計算機みた…
歌っていいですよ
宇宙が舞台 楽屋でなにかの発表の出番を待っている 隣に中学で同級生だった子に似た子がいたから声をかけてみるも別人だった サンダーバードっぽい舞台セット ブラックユーモア 犯罪すれすれの商売(宇宙株の再利用) 巨大でひしゃげた望遠鏡を火星に取りにく…