言語
言語は英知の固まりだ
言語は英知の固まりだ
時間かけてやれば Haskell だって理解できるのではないかと思ってしまう。勘違いだ。
今日は Wikipedia で圏論の項を一応じっくり読んでみたけどほんと全然理解できない (Haskell を理解する上では必ずしも必要ではないとは言われているけど、やっぱり背景をしっておかないと真に言語設計者の意図は感じとれないと思う)。というのもそもそも数学的なことを考えるうえで必要な教養を全く持ちあわせていないせいなんだけど、数学は独学すると危険な香りがするからうかつに手を出せない感 (だからといって先生に教えてもらう、っていうのは、そういうタチではないのを身を持って知っているので独学でやるしかないんだけど) なんか数学コンプレックスみたいだ。頭悪いの実感するから苦手なんだよなぁ。
だめだこれやめたほうがいい泥沼になっていく。数学勉強してる人にバカにされる。おめーみたいなバカが理解できるわけねーだろってゆわれる。(ぼくは高校数学すらほとんどやってない。具体的にいうと高校二年の文理選択のときに全ての数学科目を捨ててる。)
時間ないよなぁ。例えば、いくら金持ちだったとしても、世界中の国のあらゆる場所のよいところを知ることはできない。住んでみないとわからないことがあまりにも多いからだ。金で時間は絶対に買えない。金で経験は買えない。
時間たりないなんていうくらいなら、ずっとやりつづけろとは思うけれど、そういうのもできない。だめ人間すぎるのだなぁ……
それにしても、本当に大学は無駄だった。ひきこもって独学してたほうが数百倍素晴らしい生活ができたよなぁ。DAIGAKUSEI むかつく。みんな死ねばいい。DAIGAKUSEI だけじゃない。もっと広い範囲で、全くあわない人たちは多すぎる。今の季節の夜に外へ出て鼻腔を広げ冷たい空気とともに秋の匂いを肺一杯に感じるようにしている人達と一緒にいたい。それができないなら死んだほうがマシだ。
脊髄反射でニヤニヤしながら「それって違うよね~w」みたいなのをいうやつは頭が本当に悪い。たとえばおれとかだ。それを他人がやっているのを見ると自分を見てるみたいで余計むかつく。直したい。
洗濯機へ消えていった女の子が悩んでいた間、君はいったい何をしていたっていうんだ?
実際、なんかネタメソッドとか思っている人もいくらかいるのかもしれないのだけれど、inject は慣れると使いまくるメソッドの一つである。
あと inject を知っていると関数型言語をやるときに生きてきておもしろい。fold とか
Safari も Mail.app もつかっていない。
今起動してる 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 に図があった。わかりやすい……
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 のレートって &rate=... つきのリンクはれるyouna
あとスクリプトダウンロードのところで http://www.vim.org/scripts/download_script.php?src_id=n になるんだけど、これだと wget するときいちいちファイル名を変更しないといけなくてめんどい……
Rails は hype っていうのを hyde と誤読して、身長を多くみつもること? 背伸び? 自分を大きくみせようとすること? とか考えてきたら、あんがいまちがってなかった。
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 検索を直接使うことはないけど locate は使うなぁ。これってたぶん連動してるよね?
してないですね。なに勘違いしていやがる
vim の -b とかでやるバイナリモードは使いにくいとかいうレベルじゃないので id:amachang に Shibuya.js のときにきいた bvi をいれた。TAB で ASCII のほうと hex のほうとでいったりきたりできるのがおもしろい。
undo の挙動がちょっと違うのがきになるかも。まだあんまりつかってない
http://www.nicovideo.jp/watch/sm1489464
これすごいなー。ちょっと腹の底からグっとこみあげてくる感動があるなぁ。こういう技術っていいなぁ。
こういうのみるたびに、コーディングってライブ感がなくてすげー地味だなーって思ってしまう。ライブコーディングとかも、わかる人にはわかる、っていうレベルの面白さだもんなぁ。わかるひとだけわかるっていうがどっちかっていうと好きだから (大衆受けしても大抵ろくなことにならないから) いいんだけど、たまにちょっと切なくなる。
映像的なプログラミングだってもちろんあるわけだけど、どうもそういうふつーにウケる、みたいなのをやる気にならない。表面的な面白いことと裏側的な面白いことを組みあわせたらいいんだろうけど、表面的な面白さにしか気付かない人を見るとかなり切なくなるし話かけられるのも嫌だし、それだったら最初っから難解で気付く人が気付けばいいと思えてしまう。なんかおれは気持ち悪くひねくれてるいるんだなぁ……
うえの動画だって、おれは絵のことを良く知っているわけじゃないから、知っていればわかるような面白さに気付けていないんだろうなぁ。
(誠に誠死ね申しわけありませんが、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
少しずつプログラミングのエッセンスみたいなのが見えてくる気がする。ある言語の設計がなぜそうなっているかとか、そういうことを、他と比較することで少しずつ理解できる感じがする。
よく、ある程度熟したアーティストが、他のアーティストとコラボレーションして「いい刺激になった」とかいうけど、あれはそのアーティストが既に一つ山を越えていて、ある種完成されている (つまり、完成=安定の状態を崩すための刺激) からであって、その山を越えるまではずっと孤独なんじゃないかって、つまり何がいいたいかっていうと、最初っから、大したことできないくせに、他人とコラボレーションしようとするなよ、ってなんかすごく思うんだ。
っていうのを前に書いたのを思い出した。基本的に独りでできることは独りでやるべきだと思う。
と同時というか、ここ最近なんとなく思いうかべていたのはカブスカウト (ボーイスカウトの小学生の部) の定めにある
カブスカウトは 自分のことを自分でします
カブスカウトは たがいに助けあいます
の二つ (全部で五つある)。
いろんなことは互いのバランスでできているから、例えば「していいよ」と言われてもしてはいけないことはたくさんある。こんなのすごく、すごくあたりまえのことだと思う。