寝まくってたらまた学校関連の夢を見た。

  • 大学のようだ(みんな私服/いつも五月蝿い)
  • 9階建ての建物がある。一番上に広い講義室がある。
  • その講義室で変な講義
  • グループワーク内の一人のやつがお茶をもってくる。しかし既にある。
  • そろそろやばくね。とかいう話をする
  • 解散する
  • よくわからん教授と話す。よくわからん話をする。
  • 階段を下りたりなにかしたりする。覚えてない
  • いつの間にか数名で行動している。
  • 大学の裏手のちょっと日陰になっているところを散策する
  • フェンスで囲まれたところに少年がいる
  • 幽霊らしい
  • 一緒に歩いてた年上の人が反応する。
  • 少年が近づいてくる
  • その岩は大事だから踏まないように とかいう
  • 岩の影に赤くて細長いラッパ状の花が咲いている。
  • プリンがどう とかいう
  • よく聞き取れなくて「プリン?」と聞き返すと「プリンじゃねぇよ」と言われる。
  • 答えを聴こうとしたところで昼食のため強制起床される。

重すぎてまともに見れない。まずロードが終わることがない。なんなんだろう。

ブロックレベルの ins/del が実質使えない。要素の中だと Markdown シンタックスが使えないため、ブロックレベル ins/del を使いたいならば ins/del の中身は全て手動でマークアップしないといけない。これが面倒くさい。

Text::Hatena にしたいけど、既存のエントリをどうするかで困る。meta でフォーマットもってそれを読むようにするとかしないとだめっぽい。むーん。

ひさしぶりに DVD を手に取ってた見たけど、やっぱジャケットがはてななのが面白い。daimasの日記スペシャルの日記

amazon に画像がないのが残念だなぁ。なんか DVD ジャケットとしてはてなダイアリーがでてくるといつも見るはてなダイアリーとは違った感じがする。あたりまえか

起動時にブルースクリーンさんがでしゃばってなかなか起動しなくなってしまったので再インストールしました。

nLite でどうでもよさそうなのを軽く削って、CD ブート。

起動したと思ったら NIC が認識されてなくて途方に暮れた。マザボ付録の CD からドライバ入れて解決。怖かった。これのために部屋をひっくりがえした。見つからない見つからない……結局なぜか DELL の付属品入れに入ってた。引っ越しのときに適当な大きさだったから入れたんだろうけど……

ネットワークが繋がったら

  • Windows Update
  • Intel INF なんたらをインストール
  • nVidia のドライバインストール

とかごたごたやった。

そして

  • synergy
  • 窓使いの憂鬱
  • lhaplus
  • Mozilla Firefox 2.0
  • foobar2000
  • mabinogi

を入れた。既にメインマシンじゃないので適当


でなんかちょっとたったらハードディスクが一気に全部使い果たされてていきなりウィルスかとあせった。なんかオフラインファイル機能が有効だったらしく、ネットワークドライブを勝手に同期されてた。こわい。

このエントリは古いのでアテにしないでください。新しいスクリプトは userscripts.org で公開され、CodeRepos で保守されています。

mallowlabsの備忘録 - ポップアップ型英英辞書 見てて選択したらすぐ検索できるのっていいなぁと思ったので似たようなのを作ってみた。

fastlookupalc.user.js

相違点

  • 英和 (alc)
  • 一個ひいた後に、さらにひける。(こういう機能は英英のほうが便利だけど)

結果のタイトル (赤い部分) をクリックするとその結果だけ消えます。ドキュメント内のどっかをクリックすると全部消えます。

ダブルクリックで単語を選択するのでどんどんひける。

C 言語を最初に知ったぐらいの時、C 言語は自分にとって楽しい言語じゃなかった。ポインタを理解していなかったし、そもそもコンピュータの仕組みを理解していなかったし、ついでにいえば「下手すればコンピュータが壊れるコードを書く」みたいなことを思っていたので手を出せなかった。

何か知らないうちに Ruby をいぢって、Ruby の拡張ライブラリを読んだり、ちょっと作ってみたりするうちにポインタを理解していることに気付いて、最近 C 言語のキャストについてふとした拍子に理解して、だんだん C がわかるようになってきた。

機械語は読めないものだっていう先入観があったけど、Binary 2.0 あたりの流れでそうじゃないことに気付いた。読む人が読めば読めるもののようだ。なんとなく画像処理について気付いた時と同じ気持ちになった。

頭が悪くても、ゆっくりやっていれば結構どうにかなるのかもしれない。急ぐ事を強要されているけど、無視してもいい気がしてきた。

Ruby はなんとなくで「できそうなもの」だったから、やる気が沸いたんだよなぁ。C はそのとき「できなさそうなもの」だったからやる気が沸かなかった。Perl もそうだ。PHP はまだ「できそうなもの」だった。

どっかとっかかりがあればいいんだよなぁ。電子回路設計とかってどっから入ればいいんだろう。

IIrcv - 汎用通知サーバ with dRuby

Windows には Ircv というイカしたメッセージを表示するものがあるのですが、Mac だとこれっぽいのがないので作ってみました。Growl だと時系列が乱れたりするのでなんかだめだってときに便利かもしれません。

これを作るにあたりいろいろ学んだので楽しかった。

  • Cocoa 全般の構造
  • アプリケーションバンドルの作り方
  • バンドル内のファイルのアクセス法
  • NSLayoutManager の使い方少し
  • .icns ファイルの作り方 (/Developer/Applications/Utilities/Icon Composer.app)
  • dmg ファイルをコマンドラインから作る方法 (hdiutil create)
  • 拡張ライブラリの実装法とドキュメントの書き方
  • 拡張ライブラリ rubygems の作り方
  • ユーザ入力が必要な実装のテストの書き方

あと言語依存を解決したい。Interface Builder で nib 作って読み込む方法がいまだにわからないのでどうにかしたい。

Universal Binary 云々は確認がめんどい割に面白くないのでやる気がおきない。

所属ギルドが解散するらしい。残念だなぁ。

ここ最近ログインしてもコミュニケーションサーバーが重くてギルドチャットがまともに通らないことが多い。直後はしばらく繋がらないから発言できないし。キャラクターチェンジ多いとほぼずっとオフライン扱いになってしまう。直して欲しいな、と書こうと思っていたけどもうどうでもいいな。

大してログインもできないくせにこれから他のギルドに所属するのは面倒くさい。今更知らないギルドに入って相手の考えていることを量りながらチャットするなんてモチベーションは生まれてこないし、そんなに時間がとれない。

そろそろネトゲも卒業ですか。

オートリロードでリロードが楽になるのはいいんだけど、リロードさせるために設定をしたりとかするのがすっごいめんどく感じるようになってきたので設定もオートでやろうぜって思った。

Rinda::Ring は UDP で検索したり登録したりしてサービス呼び出せるライブラリで、これを使うと一瞬で上のようなことができちゃってオレスゲー感を味わえます。ちょーLL

まず tuplespace を起動する。以下のスクリプトそのまま。このタプルスペースはサービスの情報を統括してる。

require 'rinda/ring'
require 'rinda/tuplespace'

DRb.start_service

ts = Rinda::TupleSpace.new
place = Rinda::RingServer.new(ts)

DRb.thread.join

次に各種リロードサービスを tuplespace に登録するスクリプト。 こいつらはブラウザとともに常駐して、リロード要求をうけつける。これらはもちろん RingServer と同じホストで動いている必要はない。

以下は例

reloadfx.rb

#!/usr/bin/ruby

require 'rinda/ring'
require 'net/telnet'

class Reload
    def reload
        telnet = Net::Telnet.new({
            "Host" => "localhost",
            "Port" => 4242
        })
        telnet.puts("content.location.reload(true)")
        telnet.close
    end
end

reload = Reload.new
DRb.start_service(nil, reload)

provider = Rinda::RingProvider.new(:Reload, DRbObject.new(reload), 'Reload')
provider.provide

DRb.thread.join

reloadsafari.rb

#!/usr/bin/ruby

require 'rinda/ring'
require 'net/telnet'

class Reload
    def reload
        <<-`EOC`
        osascript -e '
        tell application "Safari"
            do JavaScript "location = (location.href);" in document 1
        end tell
        '
        EOC
    end
end

reload = Reload.new
DRb.start_service(nil, reload)

provider = Rinda::RingProvider.new(:Reload, DRbObject.new(reload), 'Reload')
provider.provide

DRb.thread.join

でもって、上記サービスをタプルスペースから検索し、リロードメソッドを呼ぶスクリプト

#!/usr/bin/ruby
# reload.rb
require 'rinda/ring'

DRb.start_service
ts = Rinda::RingFinger.primary

ts.read_all([:name, :Reload, DRbObject, nil]).each do |i|
    begin
        p i[2].reload
    rescue Exception => e
        puts e.message
        puts e.backtrace
    end
end

この reload.rb を呼ぶだけで、何の設定もなしに、ネットワーク内のブラウザをリロードする。

新しくブラウザを起動したら同時にそのブラウザ用の Provider を起動すれば、それも何の設定もなしにリロードしてくれるってわけですよ。やばい!

Rinda::Ring さいこう>< DRb は Ruby の宝><

もうちょっといぢってみる。

[Creammonkey 0.8]( http://blog.8-p.info/articles/2006/12/03/creammonkey-0-8 ) がリリースされたため、そちらをご利用ください :)

Creammonkey という Safari で userjs を使えるようにするものがあるのですが、userjs を書いている時いちいちメニューから Reload All User Scripts をするのが面倒くさいので改造してみました。

MIT ライセンスらしいのでビルドしたやつを公開。なにぶん Xcode 使ったのも初めてなのでこれでいいのかよくわかりません。ソースを公開したいときとか diff とりたいときってどこまでやればいいのかわからない。

Creammonkey-Debug.zip Original Copyright (c) 2006 KATO Kazuyoshi

Debug というメニュー項目が追加されるので、それをチェックしておけばページリロードのたびに userjs もリロードされます。

エルフ

ちょっと前にエルフを支援してアシスタントキャラクターを作った。ちょっと前っていうかだいぶ前だな……

でもってまちがえて17歳で作ってしまったので転生させた。っていうかそれも二週間前だ……

でレンジを 9 にした。IB とかカウンタとか、まず絶対必要なのもとってあるのでそこそこは戦える。が、アローリボルバー/レンジ1に慣れてしまっているので連射速度が遅くてしかたない。一回はずしたらほぼ確実に食らうしなぁ……ダンジョンでは戦えない。

それでなんとなく製錬をあげようと思ってちょっと掘ってみたけど、なんかやっぱルーチンワークが苦手なので (掘ってるときにいかにして自動化するかずっと考えてしまう) 露天で石買ってあげまくり中。それもめんどい。

あんまりやる時間ないなぁ。もっと死ぬほど暇になりたい。


正攻法でちょっと採掘をやりやすくする方法を書いてみる。

「コントロールパネル」の「ユーザ補助のオプション」の固定キー機能の設定で、Shift 5回連打で固定キーをオンにするチェックを入れておく。そして必要なときに Shift 連打して、 Alt キーを固定し発掘。

別に発掘じゃなくても、クモの糸ひろいでも使える。ずっと Alt キー押してるのめんどいし便利なのでおすすめ。