2007年 11月 11日

言語

言語は英知の固まりだ

勘違いだけど

時間かけてやれば Haskell だって理解できるのではないかと思ってしまう。勘違いだ。

今日は Wikipedia で圏論の項を一応じっくり読んでみたけどほんと全然理解できない (Haskell を理解する上では必ずしも必要ではないとは言われているけど、やっぱり背景をしっておかないと真に言語設計者の意図は感じとれないと思う)。というのもそもそも数学的なことを考えるうえで必要な教養を全く持ちあわせていないせいなんだけど、数学は独学すると危険な香りがするからうかつに手を出せない感 (だからといって先生に教えてもらう、っていうのは、そういうタチではないのを身を持って知っているので独学でやるしかないんだけど) なんか数学コンプレックスみたいだ。頭悪いの実感するから苦手なんだよなぁ。

  • 具体圏以外の圏がイメージできない
  • 数学的構造を理解できない
  • 写像と関数の違いがわからない
  • というか写像が理解できてない
    • map は写像の map ?
    • でも map って関数じゃん
    • 写像は一部分だけっていうのがある?
      • 制限写像とかって map だけでは書けないよね?
      • 恒等写像は map (\x -> x) だよね
    • 関数になってる写像は全射?
    • 全射でも単射でもない写像ってあるの
  • 値域ってなんだよ
    • 値のとりうる範囲?
    • どうやって指定するんだ。
    • Int = 1 | 2 | ... みたいなの?

だめだこれやめたほうがいい泥沼になっていく。数学勉強してる人にバカにされる。おめーみたいなバカが理解できるわけねーだろってゆわれる。(ぼくは高校数学すらほとんどやってない。具体的にいうと高校二年の文理選択のときに全ての数学科目を捨ててる。)

人生がたりない

時間ないよなぁ。例えば、いくら金持ちだったとしても、世界中の国のあらゆる場所のよいところを知ることはできない。住んでみないとわからないことがあまりにも多いからだ。金で時間は絶対に買えない。金で経験は買えない。

時間たりないなんていうくらいなら、ずっとやりつづけろとは思うけれど、そういうのもできない。だめ人間すぎるのだなぁ……


それにしても、本当に大学は無駄だった。ひきこもって独学してたほうが数百倍素晴らしい生活ができたよなぁ。DAIGAKUSEI むかつく。みんな死ねばいい。DAIGAKUSEI だけじゃない。もっと広い範囲で、全くあわない人たちは多すぎる。今の季節の夜に外へ出て鼻腔を広げ冷たい空気とともに秋の匂いを肺一杯に感じるようにしている人達と一緒にいたい。それができないなら死んだほうがマシだ

なんかこう

脊髄反射でニヤニヤしながら「それって違うよね~w」みたいなのをいうやつは頭が本当に悪い。たとえばおれとかだ。それを他人がやっているのを見ると自分を見てるみたいで余計むかつく。直したい。

洗濯機へ消えていった女の子

洗濯機へ消えていった女の子が悩んでいた間、君はいったい何をしていたっていうんだ?

IMG_61360081

Enumerable#inject

実際、なんかネタメソッドとか思っている人もいくらかいるのかもしれないのだけれど、inject は慣れると使いまくるメソッドの一つである。

あと inject を知っていると関数型言語をやるときに生きてきておもしろい。fold とか

ふときづくと

Safari も Mail.app もつかっていない。

今起動してる app

  • Terminal.app
  • Chemr.app
  • Console.app
  • Ttunderebird.app
  • iTunes.app
  • GranParadiso.app

Dashboard も Expose も殆ど使わない。ぜんぜんマカーじゃないですね。

osx.iusethis.com を使わないとのろわれるといううわさなので登録してみた。(copipe)
http://osx.iusethis.com/user/cho45

単射・全射

はてキだと単射は 1:1 で対応がとれているやつって書いてあるなぁ。わかりやすいけどそういうことなのか。

http://ja.wikipedia.org/wiki/%E5%85%A8%E5%B0%84 に図があった。わかりやすい……

autocomplpop.vim

ns9tks さんが既につくっていたのか>< 恥ずかしながら知らなかった。オプションとかが充実しててすばらしすぎる。どう考えても life changing

http://www.vim.org/scripts/script.php?script_id=1879

入れた! しかしちょっと気になったので一箇所だけ修正してみた

--- autocomplpop.vim.orig       2007-11-11 16:26:40.000000000 +0900
+++ autocomplpop.vim    2007-11-11 16:22:20.000000000 +0900
@@ -192,7 +192,7 @@
 
     if pumvisible()
         " a command to restore to original text and select the first match
-        return "\<C-p>\<Down>"
+        return "\<C-p>\<Down>\<C-p>"
     elseif a:nRetry > 0
         " In case of dividing words by symbols while popup menu is visible,
         " popup is not available unless input <C-e> (e.g. 'for(int', 'a==b')

オリジナルだと表示されてすぐ C-n だけだと最初の候補を選択してくれない (二回おして最初の候補が補完される)。なんかでも環境によるのかもしれない。うちだとこうするとうまくいく。( VIM - Vi IMproved 7.1 (2007 May 12, compiled Oct 7 2007 05:51:43) ) なんか他の部分となんかなってるのかもしれない。

あとは lazyredraw だけ別設定してチラつきおさえた (Mac の gvim だと hjkl おしっぱのカーソル移動がみえなくなって不便だけど gvim とか滅多につかわないからそんなに不便じゃない) それと ignorecase を一時的に変更できるみたいなのでデフォの ignorecase を元にもどした。

あと、補完候補表示したまま RET おして改行できないので以下のコードを復活させた

inoremap <expr> <CR> pumvisible() ? "\<C-Y>\<CR>" : "\<CR>"

vim.org

vim.org のレートって &rate=... つきのリンクはれるyouna

あとスクリプトダウンロードのところで http://www.vim.org/scripts/download_script.php?src_id=n になるんだけど、これだと wget するときいちいちファイル名を変更しないといけなくてめんどい……

Rails hype 156cm

Rails は hype っていうのを hyde と誤読して、身長を多くみつもること? 背伸び? 自分を大きくみせようとすること? とか考えてきたら、あんがいまちがってなかった。

Spotlight (Mac 的な意味じゃなくて)

Copernicus はマウストラッキングしてスクリーンとれるけど、どことってるのかよくわからない。

ので、ある範囲だけ明くする RubyCocoa スクリプトのサンプル

#!ruby -Ku

require "osx/cocoa"
include OSX

class MainView < NSView
	def drawRect(rect)
		super_drawRect(rect)

		NSColor.blackColor.set
		NSRectFill(bounds)

		NSColor.clearColor.set
		point = NSEvent.mouseLocation
		x, y = point.x, point.y

		width  = 512
		height = 384
		NSRectFill([
			x - width / 2,
			y - height / 2,
			width,
			height
		])
	end
end

class Test < NSObject
	def applicationDidFinishLaunching(n)
		screenFrame = NSScreen.mainScreen.frame
		rect = screenFrame

		@window = NSWindow.alloc.objc_send(
			:initWithContentRect, screenFrame,
			:styleMask, NSBorderlessWindowMask,
			:backing, NSBackingStoreBuffered,
			:defer, 0
		)
		@window.opaque             = false
		@window.hasShadow          = false
		@window.level              = 1000 # NSScreenSaverWindowLevel
		@window.ignoresMouseEvents = true
		@window.alphaValue         = 0.8


		@view = MainView.alloc.initWithFrame(rect)

		@window.contentView = @view

		@window.frameOrigin = [0, 0]

		# いでよ
		@window.makeKeyAndOrderFront(nil)
		@window.orderFrontRegardless

		point = NSEvent.mouseLocation
		Thread.start do
			loop do
				sleep 0.01
				np = NSEvent.mouseLocation
				unless np == point
					@view.needsDisplay = true
				end
				point = np
			#	@view.display
			end
		end
	end
end

app = NSApplication.sharedApplication
app.delegate = Test.new
app.run

これだとマウスをはやく動かしたときに Copernicus のキャプチャにうつりこんじゃうんだよなぁ (それにこのスクリプト自体がかなり重い)。やっぱ自力でキャプチャアプリ書くしかないのかなぁ。速度求められるアプリケーションはむずかしいよお

Spotlight (Mac的な意味で)

Spotlight 検索を直接使うことはないけど locate は使うなぁ。これってたぶん連動してるよね?

してないですね。なに勘違いしていやがる

2007年 11月 10日

apt-get bvi / port install bvi

vim の -b とかでやるバイナリモードは使いにくいとかいうレベルじゃないので id:amachang に Shibuya.js のときにきいた bvi をいれた。TAB で ASCII のほうと hex のほうとでいったりきたりできるのがおもしろい。

undo の挙動がちょっと違うのがきになるかも。まだあんまりつかってない

まる

http://www.nicovideo.jp/watch/sm1489464

これすごいなー。ちょっと腹の底からグっとこみあげてくる感動があるなぁ。こういう技術っていいなぁ。


こういうのみるたびに、コーディングってライブ感がなくてすげー地味だなーって思ってしまう。ライブコーディングとかも、わかる人にはわかる、っていうレベルの面白さだもんなぁ。わかるひとだけわかるっていうがどっちかっていうと好きだから (大衆受けしても大抵ろくなことにならないから) いいんだけど、たまにちょっと切なくなる。

映像的なプログラミングだってもちろんあるわけだけど、どうもそういうふつーにウケる、みたいなのをやる気にならない。表面的な面白いことと裏側的な面白いことを組みあわせたらいいんだろうけど、表面的な面白さにしか気付かない人を見るとかなり切なくなるし話かけられるのも嫌だし、それだったら最初っから難解で気付く人が気付けばいいと思えてしまう。なんかおれは気持ち悪くひねくれてるいるんだなぁ……


うえの動画だって、おれは絵のことを良く知っているわけじゃないから、知っていればわかるような面白さに気付けていないんだろうなぁ。

Emacs lisp (elisp) による blosxom クローン

(誠に誠死ね申しわけありませんが、blosxom を便利につかえるようにする .el ではありません)

http://coderepos.org/share/browser/lang/elisp/blosxom.el.cgi/blosxom.el.cgi

一応だいたいうごくところまで書いてみました。日本語表示できないけどどこで化けてるかわからないからもういいや><

ライセンスを same as Vim とかにしたかったけど Vim のライセンスが GPL とかじゃなかったのでやめた。

実行しているところを ttyshare にあげたかったのだけど、描画させながらゆっくり実行させる方法がわからなかった (*scratch* で insert-file して eval-current-buffer すると一瞬でおわってしまう)。というかひさしぶりに Emacs 起動したら C-h とかきかなかったりして全然操作できなかった。ことあるごとに C-[ 押して混乱してしまうw

いろんな言語

少しずつプログラミングのエッセンスみたいなのが見えてくる気がする。ある言語の設計がなぜそうなっているかとか、そういうことを、他と比較することで少しずつ理解できる感じがする。

2007年 11月 09日

独りで

よく、ある程度熟したアーティストが、他のアーティストとコラボレーションして「いい刺激になった」とかいうけど、あれはそのアーティストが既に一つ山を越えていて、ある種完成されている (つまり、完成=安定の状態を崩すための刺激) からであって、その山を越えるまではずっと孤独なんじゃないかって、つまり何がいいたいかっていうと、最初っから、大したことできないくせに、他人とコラボレーションしようとするなよ、ってなんかすごく思うんだ。

http://lowreal.net/logs/2006/04/14/1

っていうのを前に書いたのを思い出した。基本的に独りでできることは独りでやるべきだと思う。

と同時というか、ここ最近なんとなく思いうかべていたのはカブスカウト (ボーイスカウトの小学生の部) の定めにある

カブスカウトは 自分のことを自分でします

カブスカウトは たがいに助けあいます

の二つ (全部で五つある)。


いろんなことは互いのバランスでできているから、例えば「していいよ」と言われてもしてはいけないことはたくさんある。こんなのすごく、すごくあたりまえのことだと思う。