キーボード
学校の端末を英語配列で使えるようにする方法を考える。権限が少なすぎ……なんか簡単に変えられないのかなぁ。ユーザごとにキーレイアウト変えられないわけがないとは思うのだけれど……
学校の端末を英語配列で使えるようにする方法を考える。権限が少なすぎ……なんか簡単に変えられないのかなぁ。ユーザごとにキーレイアウト変えられないわけがないとは思うのだけれど……
スクリーンショットを対話的にとるとき、マウスでドラッグして選択するのがあるけど、あれってどうやってやるんだろうって考えてた。
マウスイベントをキャプチャーして……とか面倒くさそうだなぁとか思ってたけど全然違う方法で実装できそうだ。
require 'osx/cocoa'
include OSX
class SelectionView < NSView
attr_accessor :delegate
def drawRect(rect)
NSColor.colorWithCalibratedRed(0, :green, 0, :blue, 0, :alpha, 0.1).set
NSRectFill(bounds)
if @start && @end
NSColor.colorWithCalibratedRed(0.5, :green, 0.5, :blue, 0.5, :alpha, 0.5).set
NSRectFill(calc_rect)
end
end
def mouseDown(event)
@start = NSEvent.mouseLocation
end
def mouseDragged(event)
@end = NSEvent.mouseLocation
setNeedsDisplay(true)
end
def mouseUp(event)
@end = NSEvent.mouseLocation
delegate.windowShouldClose(nil)
window.close
end
def calc_rect
x = [@start.x , @end.x].min
y = [@start.y , @end.y].min
w = (@start.x - @end.x).abs
h = (@start.y - @end.y).abs
[x, y, w, h]
end
end
class TEST < NSObject
def applicationDidFinishLaunching(aNotification)
size = NSScreen.mainScreen.frame.size
rect = [0, 0, size.width, size.height]
@window = NSWindow.alloc.initWithContentRect(rect,
:styleMask, NSBorderlessWindowMask,
:backing, NSBackingStoreBuffered,
:defer, 0)
@window.setDelegate(self)
@window.setOpaque(0)
@window.setHasShadow(0)
@window.setLevel(1000) # NSScreenSaverWindowLevel
@view = SelectionView.alloc.initWithFrame(rect)
@view.delegate = self
@window.setContentView(@view)
@window.makeKeyAndOrderFront(nil)
@window.orderFrontRegardless
end
def windowShouldClose(sender)
p @view.calc_rect
exit
true
end
end
$App = NSApplication.sharedApplication
$App.setDelegate(TEST.alloc.init)
$App.run
スクリーンと同じサイズのできるだけ透明なウィンドウを作ってあげてそいつでイベントうけとる。
C 言語を最初に知ったぐらいの時、C 言語は自分にとって楽しい言語じゃなかった。ポインタを理解していなかったし、そもそもコンピュータの仕組みを理解していなかったし、ついでにいえば「下手すればコンピュータが壊れるコードを書く」みたいなことを思っていたので手を出せなかった。
何か知らないうちに Ruby をいぢって、Ruby の拡張ライブラリを読んだり、ちょっと作ってみたりするうちにポインタを理解していることに気付いて、最近 C 言語のキャストについてふとした拍子に理解して、だんだん C がわかるようになってきた。
機械語は読めないものだっていう先入観があったけど、Binary 2.0 あたりの流れでそうじゃないことに気付いた。読む人が読めば読めるもののようだ。なんとなく画像処理について気付いた時と同じ気持ちになった。
頭が悪くても、ゆっくりやっていれば結構どうにかなるのかもしれない。急ぐ事を強要されているけど、無視してもいい気がしてきた。
Ruby はなんとなくで「できそうなもの」だったから、やる気が沸いたんだよなぁ。C はそのとき「できなさそうなもの」だったからやる気が沸かなかった。Perl もそうだ。PHP はまだ「できそうなもの」だった。
どっかとっかかりがあればいいんだよなぁ。電子回路設計とかってどっから入ればいいんだろう。
買った!
Delete の位置が違和感(バッククオートを押してしまう。C-H に矯正すべきか……)
OSX で窓使いの憂鬱みたいなのってないのかな
うーん。いろいろためして DOS プロンプトで生きていこうと思ったけど難しいなぁ。
USB メモリに cygwin インストールしたほうがいいのかもしれない。
@echo off
PATH ¥bin;¥ruby¥bin;¥putty;¥vim7;%PATH%
title Console
prompt $_$P$_$G
doskey ls=dir /B $*
doskey lm=dir /OD $*
doskey cat=type $*
doskey less=more $*
doskey diff=fc $*
doskey rm=del $*
doskey rm-rf=rmdir /s /q $*
doskey findstr=grep $*
doskey mv=move $*
doskey cp=copy $*
doskey cp-r=xcopy $*
doskey clear=cls
doskey ps=tasklist $*
doskey ..=cd ..
doskey kill=taskkill /PID $*
doskey traceroute=tracert $*
doskey vim=start ckw.exe -e vim7.exe $*
cmdみたいなのを USB ドライブのルートから起動するようにしてるけど、補完とか細かい部分がキモくて……