2007年 01月 23日

SKK再入門

OS X に AquaSKK 入れてみた。慣れるまえにやめそうな気がする。
「言って」とか変換するときに悩んでしまうんだよなぁ。あと思ったことを一回単語に分けないと入力できないのは結構つらい (慣れの問題だとは思うけど)。

今 SKK で書いています。なんか C-j で「ひらかな」モードにいかない。なんでだろ。C-g は効く……
z. で三点リーダが入力できるのがいいなぁ。ことえりだと「てん」で変換してた。毎回!!

そうそう mayu の OS X 版欲しい

さがしたけどないっぽいんだよなぁ。カーネル付近でいぢる特定用途のはあって、それ改造すればできそうな気もするけど、デバッグが大変そうで手がでない。

Opera の JSONP の罠ではまってた

検索したらすぐに script 要素を挿入した時点で処理とまるってでてきてくれて流石だと思った。
コールバック関数は script 要素を挿入する前に書かないと

SKK

そんなに打てないわけじゃないかも。結構普通に使えてる、、気がする。やっぱ送りがな間違えて失敗するけど……
これで補完候補がガンガン表示されてガンガン補完できたらいいのになぁ。って思ったけどそれなんて PRIME って感じもする。

rubyclr を使って、Ruby から joystick を扱ってみる

require 'rubygems'
require 'rubyclr'

reference 'System'
reference 'System.Drawing'
reference 'System.Windows.Forms'

include System::Drawing
include System::Drawing::Drawing2D
include System::Windows::Forms

# Timer 付き Form のセットアップ
Application.enable_visual_styles
Application.set_compatible_text_rendering_default false
form = Form.new
form.StartPosition = FormStartPosition::CenterScreen
form.Text = "><ノ"
form.Size = Size.new(120, 0)

timer = Timer.new
timer.Interval = 50
timer.Enabled = true

# ManagedDirectX Input # DirectX SDK が必要
reference 'Microsoft.DirectX'
reference 'Microsoft.DirectX.DirectInput'

include Microsoft::DirectX
include Microsoft::DirectX::DirectInput

joystick = nil
devices = Manager.GetDevices(DeviceClass::GameControl, EnumDevicesFlags::AttachedOnly)
while devices.MoveNext
	joystick = Device.new(devices.Current.InstanceGuid)
	break
end

joystick.Properties.AxisModeAbsolute = true
joystick.SetCooperativeLevel(form, CooperativeLevelFlags::NonExclusive | CooperativeLevelFlags::Background)
joystick.Acquire

prev = ''
timer.Tick do |sender, args|
	state = joystick.CurrentJoystickState

	on = []
	state.GetButtons.each_with_index do |b,i|
		on << i if b.nonzero?
	end

	out = "X:%s, Y:%s, Z:%s, Buttons:%p" % [state.X, state.Y, state.Z, on]
	unless prev == out
		puts out
		prev = out
	end
end

Application.run form

ManagedDirectX とかいうらしい。
http://web.sfc.keio.ac.jp/~t03792sh/archives/2005/10/manageddirectxj.html を参考にした。

どうも Enumerable なやつがうまくいかなくて困った。.each とか使えるはずなんだけど、エラーがでて使えない。しかたないので普通のイテレータ使ってる。
あと joystick.Objects をイテレータでまわしてると Ruby オブジェクトに変換できないだかなんだかで落ちてしまうのでそこは書いてない。どうするんだろ。

SDL のほうが簡単そう。

ruby/sdl を使って、Ruby から joystick を扱ってみる

require 'sdl'

SDL.init(SDL::INIT_JOYSTICK)

SDL::Joystick.num.times do |i|
	p SDL::Joystick.index_name(i)
end

j = SDL::Joystick.open(0)
p j.num_axes
p j.num_buttons
p j.num_balls
p j.num_hats


prev = nil
loop do
	SDL::Joystick.update_all
	out = ''
	j.num_axes.times do |i|
		out << "%d:%06d " % [i, j.axis(i)]
	end
	j.num_hats.times do |i|
		state = j.hat(i)
		ret = [0, 0] # x, y
		case state
		when  SDL::Joystick::HAT_CENTERED
			ret = [0, 0]
		when  SDL::Joystick::HAT_UP
			ret = [0, 1]
		when  SDL::Joystick::HAT_RIGHT
			ret = [1, 0]
		when  SDL::Joystick::HAT_DOWN
			ret = [0, -1]
		when  SDL::Joystick::HAT_LEFT
			ret = [-1, 0]
		when  SDL::Joystick::HAT_RIGHTUP
			ret = [1, 1]
		when  SDL::Joystick::HAT_RIGHTDOWN
			ret = [1, -1]
		when  SDL::Joystick::HAT_LEFTUP
			ret = [-1, 1]
		when  SDL::Joystick::HAT_LEFTDOWN
			ret = [-1, -1]
		end
		out << ret.inspect
	end
	out << (0..j.num_buttons).select {|i| j.button(i) }.map {|i| i + 1}.inspect
	unless prev == out
		puts out
		prev = out
	end
	sleep 0.1
end

全然こっちのほうが簡単だなぁ。フォースフィードバック使えないのがちょっと寂しいかもしれない。
あと hat の返す値がちょっとめんどい。上のでは PyGame like にしてみた

Joystick でマウスを制御

なんで joystick とかいぢっていたかというとマウスを動かしたかったからなのです。そういうツールってあるにはあるのだけれど、いまいち挙動が気にいるのがないので書きたかった。

でとりあえず移動とクリックできるところまでつくってみた。ソースがダサい。
http://lab.lowreal.net/trac/browser/c/util/initj.rb

2007年 01月 19日

synergy clipboard

Windows でコピーした内容が反映されないんだよなぁ。逆方向 (Mac -> Windows) はちゃんといけるのに

2007年 01月 17日

jjjj

jjjj ←ダウナーな気分、の意味

どうよ(どうよ?)

類似の物

G
「地獄に堕ちるわよ」

document.styleSheets.title Safari

Safari だと null がかえってくる。。
というか alternate style が styleSheetsList に含まれてない