2007年 03月 23日

とても君は綺麗に笑うのに

ミナソコだよなぁやっぱ……バーガーは中学のときからホントにほとんど毎日聴いてるのに飽きないよなぁ
不思議だ。なんでまわりに最初っからバーガー知ってる人がぜんぜんいないんだろ。大学の音楽系の人でも一人しか発見できなかった。どういうことだ……

なんか今日はやたら人にぶつかられる。
新宿でパスネットを使い切ろうと思ってたのに、現金しか使えない精算機だった。

長く喋りすぎた。前よりは緊張しなかったけど、かなりテンパってた……
長さの調節できないとなぁ……

irc はいいなぁ。どういうところを聞いているのかわかるのが、面白い。

それにしても、ガッツリ聴いて帰ろうって感じじゃなく、楽しんでって感じがあるのが、素敵だ。

RubyCocoa で AppleRemote リッスンして Safari のプレゼンツールうごかす

http://rubycocoa.com/appleremote/1 にあるとおりに framework をビルドして配置

require "osx/cocoa"
include OSX
OSX.require_framework "AppleRemote"
OSX.ns_import :AppleRemote

class AppleRemoteDelegate < NSObject

	addRubyMethod_withType('appleRemoteButton:pressedDown:', 'v@:ii')

	def appleRemoteButton_pressedDown(buttonIdentifier, pressedDown)
		puts "button #{buttonIdentifier}, pressed #{pressedDown}"
		return if pressedDown == 0
		case buttonIdentifier
		when 1 # down
			call_safari_js "$presentation.fold($presentation.page);$presentation.scrollTo($presentation.pages[$presentation.page]);"
		when 3, 4 # middle, right
			call_safari_js "$presentation.next();"
		when 5 # left
			call_safari_js "$presentation.prev();"
		end
	end
	
	def call_safari_js(script)
		errinfo = NSDictionary.alloc.init
		NSAppleScript.alloc.initWithSource(<<-EOS).executeAndReturnError(errinfo)
			tell application "Safari"
				do JavaScript "#{script.gsub(/¥n/, ";")}" in document 1
			end tell
		EOS
	end
end


a = AppleRemote.alloc.init
d = AppleRemoteDelegate.alloc.init
a.setDelegate d
a.startListening 0
trap (:INT) { exit }
NSApplication.sharedApplication.run

rbosa で JS 送ろうとおもったけど、in document の書きかたがわからなかったので NSAppleScript を読んでる。一応ストレスなしにうごくっぽい

2007年 03月 22日

あー

ここ一週間ぐらいの全くやる気がでない状態からちょっと回復した気がする。
成績通知きたらまたダメになるんだろうけど……

RubyCocoa framework のロード

FAQ に書いてあるほうほう (NSBundle#load) 以外に

OSX.require_framework "IOBluetooth"

ってできたんだなぁ。

そういえば、なんも考えないで Ruby Cocoa の最新版入れなおしたけど、シンボルはさんで呼ぶ方法がつかえなくなるんだよなぁ。いままでつくたやつ全部動かない予感。めんどい……

svk push が失敗していた件

http://subtech.g.hatena.ne.jp/cho45/20070222/1172131008
Apache のログを見てみると XML parser error code: not well-formed (invalid token) とか出てた。invalid token がでそうっていうと入力したログメッセージのせいなんじゃないか、とか思って svk smerge -f (-I をつけない) でまとめてコミットしたらいけた。ながいたたかいだった。

Webmoney

あああああああああああ
ドメインの更新しようと思って買ってきたら、まだ 2400 円も残ってた……

おれがデザインしてない/できない、ことなんてわかりきったことなのに……

2007年 03月 21日

Bluetooth GPS

ってどうなんだろう。写真のデータすぐに埋めこめると嬉しい。けど、Java かかないとないんだろうな
それなら GPS-CS1K で十分っていう


すると地図に使う (というかこれがメインなんだよね) ことになるけど、地図データはどうするんの的な

Creative Commons

CC を採用しているイラストサイトのまとめが欲しい

705NK N73 Wallpaper

テーマで全画面じゃなくて普通に設定するほうの壁紙のサイズ

左右 1px は必ずあいてしまうようだ。240x232 が最も有効に使えるサイズっぽい。

アイコンのエリアと予定のエリア (選択時) はテーマによって(?)勝手にグラデーションがかかる。

一週間ぶりぐらいに一眼つかったけど、やっぱいいなぁ。ドキドキする

レンズ発送

TAMRON SP AF 17-35mmF2.8-4 Di LD を発送したよメールがきた。

Bluetooth on Cocoa, OS X

ケータイでとった写真を自動でかきあつめて日付別にディレクトリにつっこみたかったので Bluetooth をいぢってみた。

いつものとおり RubyCocoa さん

require "osx/cocoa"
include OSX
NSBundle.bundleWithPath("/System/Library/Frameworks/IOBluetooth.framework").load
OSX.ns_import :IOBluetoothObject
OSX.ns_import :IOBluetoothDevice
OSX.ns_import :IOBluetoothOBEXSession
OSX.ns_import :OBEXFileTransferServices


#NSBundle.bundleWithPath("/System/Library/Frameworks/IOBluetoothUI.framework").load
#OSX.ns_import :IOBluetoothDeviceSelectorController
#p OSX::IOBluetoothDeviceSelectorController.deviceSelector.runModal
#

def log(*args)
	OSX.NSLog(args.map {|o| o.inspect }.join("¥n")+"¥n")
end

class Main < NSObject
	def init
		self
	end

	def applicationDidFinishLaunching(aNotification)
		IOBluetoothDevice.pairedDevices.each do |d|
			log d.getAddressString.to_s
			log d.getName.to_s
			d.getServices.each do |s|
				log s.getServiceName.to_s
			end
		end

		target = "Nyece"
		@device = IOBluetoothDevice.pairedDevices.find {|d| d.getName.to_s == target }
		#@device.openConnection

		@session = IOBluetoothOBEXSession.withDevice_channelID(@device, 10)

		@ftp = OBEXFileTransferServices.alloc.initWithOBEXSession(@session)
		@ftp.setDelegate(self)
		log @ftp.delegate
		log @ftp
		log @ftp.isConnected?
		log @ftp.connectToFTPService
	end

	def fileTransferServicesConnectionComplete_error(service, error)
		log "FTP Connected"
		log @ftp.currentPath
		@ftp.retrieveFolderListing
	end

	def fileTransferServicesRetrieveFolderListingComplete_error_listing(service, error, listing)
		log "ls complete"
		log listing.to_a
		log @ftp.disconnect
		#@device.closeConnection
	end
end

app = OSX::NSApplication.sharedApplication
app.setDelegate(Main.alloc.init)
trap('SIGINT') { exit 0 }
app.run

が、BUS Error ( fileTransferServicesConnectionComplete_error の呼びだしで落ちてる ) うまくいかない。orz
obj-c で書いたほうがはやいだろうなぁ。でもなんかそれは負けた気がする。

わかったこと

  • ファイルのやりとりは OBEX っていう転送プロトコルがつかわれる (IrDA と同じらしい)
  • OBEXFileTransferServices は自分で openConnection しなくても勝手にひらいてくれる
  • ファイルのやりとりいがいはたぶん OBEXSession を直接つかって open & delegate するのかな。

プロトコル調べるのがめんどい。

アプリケーションバンドル化してみたけどやぱ BUS Error で落ちる。むりか。