Enumerable#inject
実際、なんかネタメソッドとか思っている人もいくらかいるのかもしれないのだけれど、inject は慣れると使いまくるメソッドの一つである。
あと inject を知っていると関数型言語をやるときに生きてきておもしろい。fold とか
実際、なんかネタメソッドとか思っている人もいくらかいるのかもしれないのだけれど、inject は慣れると使いまくるメソッドの一つである。
あと inject を知っていると関数型言語をやるときに生きてきておもしろい。fold とか
Safari も Mail.app もつかっていない。
今起動してる app
Dashboard も Expose も殆ど使わない。ぜんぜんマカーじゃないですね。
osx.iusethis.com を使わないとのろわれるといううわさなので登録してみた。(copipe)
http://osx.iusethis.com/user/cho45
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 の挙動がちょっと違うのがきになるかも。まだあんまりつかってない
(誠に誠死ね申しわけありませんが、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
少しずつプログラミングのエッセンスみたいなのが見えてくる気がする。ある言語の設計がなぜそうなっているかとか、そういうことを、他と比較することで少しずつ理解できる感じがする。