Yearly Archives: 2010

2010-07-07

magit-0.8.1

magit-0.7からmagit-0.8.1へ入れ替えました。

shell-file-name(sh.exe)経由でgitを呼ぶコードは無くなったようなので、場当たり的なdefadviceを.emacsから削除しました。

0.8.1になっても画面を更新するときの待ち時間は相変わらずです。何にそんなに時間がかかっているのかよく分かりません。コマンドラインでgit diff等としてもすぐに結果が出ますし、remoteを定義していないローカルだけのリポジトリでもそんなに待ち時間は変わらないのでネットワークが絡む問題でもなさそうです。Meadow、NTEmacs23の間でもそんなに変わりません。ほかのOSだともう少し速いのでしょうか。

2010-07-01

anything.elでファイル検索(Windowsの場合)

anything-c-source-locateが働かなくて困った(Meadow3使用時)。anything-config.elによると、

;;; Locate
;; NOTE for WINDOZE users:
;; You have to install Everything with his command line interface here:
;; http://www.voidtools.com/download.php
(defvar anything-c-locate-command
  (case system-type
    ('gnu/linux "locate -i -r %s")
    ('berkeley-unix "locate -i %s")
    ('windows-nt "es -i -r %s")
    (t "locate %s"))
  "A list of arguments for locate program.
The "-r" option must be the last option.")

ということで、Everythingとes.exeをダウンロードして使ってみたが、IPCが云々と言われて動かなかった。Windows7だからだろうか。

Cygwin環境なのだからlocateを使えばいいじゃんと思いupdatedbして(日本語ファイル名でエラーが発生したためLC_ALL="C"にしなければならなかったのと、システム全体では時間がかかりすぎるのでホームディレクトリ内だけに限定したデータベースを作ったりして)試してみたら、どうやらそれなりに動作しているようだった(日本語は化けたけど)。

しかしupdatedbを定期的に実行するのは面倒だ。Cygwinのcronを使ったことはないし、あまり使いたくない。

そもそもWindowsの検索機能でホームディレクトリはインデックス化しているのだから、そちらを使えないものかと思い調べてみると、そのものズバリの記事が見つかった。

しかしこの記事で紹介しているPythonスクリプトはCygwinのPythonでは動かなかった(実際そう書いてあるし)。Win32ビルドのPythonをこれだけのためにインストールするのはためらわれたので、Visual C++で書き直してみた。

ADOって初めて使ったのだけど、案外簡単なのね。

2010-07-01

anything.el導入

もう何周遅れかわからないけれどanything.elを試してみた。

ずっと試してみるのをためらっていたのは、すごいすごいと聞くのだけれど、具体的に何をするものなのか説明を読んだだけではピンと来なかったからだ。

でも実際に入れてみて分かったのは、何でも開ける検索バーみたいなものなのかなということ。最近のWindowsはスタートメニューの検索ボックスでコントロールパネル内を検索できたりしてなにげに便利なのだけど(「環境変数」と打てば環境変数の変更がすぐできるとか)、そういう感覚と言えば近いだろうか。

「ファイルを開く」「ブックマークを開く」「バッファを選択する」「関数を呼び出す」等々、こういった操作を「M-x anything 名前(正規表現)」で統一的に実行できるわけだ。M-x anythingの部分は適当なキーに割り当てておく。anythingはswitch-to-bufferの代わりにもなるのでC-x bに割り当てる人もいるようだ。

しかし、このやり方には懸念もある。打鍵数の増加だ。様々なソースから検索するため名前が重複しがちであり、それを解決するには追加の打鍵が必要になる。

この懸念が本当か、使い続けてみないとわかりそうもない。

(setq anything-sources
      (list anything-c-source-buffers
            anything-c-source-bookmarks
            anything-c-source-locate
            anything-c-source-find-files
            anything-c-source-file-name-history
            anything-c-source-recentf
            anything-c-source-info-pages
            anything-c-source-man-pages
            anything-c-source-calculation-result
            anything-c-source-emacs-commands
            anything-c-source-google-suggest
            anything-c-source-occur))

とりあえずソースはこんな感じに設定してみた。C-x bに割り当ててしばらく使ってみることにする。

2010-07-01

7月

あっという間に今週ももう木曜日です。

仕事の方はちょうど1~2週間くらいの作業が終わったところです。思ったより時間がかかってしまったなと、カレンダーを見返したのですが、なるほど、通販作業等を手伝っていたからですね。

さて、次は何をしますかね。

2010-06-30

iarconvの改善

  • 変換指定ファイルのマクロ機能の強化(:for改善、ユーザー定義マクロ関数、STR組み込み関数)
  • 外部ファイルに基づく切り出し範囲指定
  • 読み込み時自動合成形式の追加

果てしなくやる気の出ない作業を何とか終わらせたので、何かミスがあるかもしれない。

2010-06-29

HTML5 Piano on Google Chrome

Google Chromeで動かないのを何とかしてみた。

ミニタイプの方は一応何とかなったけど、88鍵タイプはムリっぽい。

今回の改善点は3つ。

  • Chromeでオーディオの読み込みが終わらない問題を改善した。どうやら読み込みが終わる前にオーディオオブジェクトが解放されてしまう模様。弱参照とGCの兼ね合いみたいな感じ。鍵盤を表示するdiv要素のプロパティにオーディオオブジェクトを持たせるようにした。
  • 鍵盤数の少ないミニタイプを作った。Chromeではオーディオオブジェクトが多くなるとなぜか鳴らないものが出てくるみたい。鳴らないAudioオブジェクトのプロパティを表示して調べてみたが原因は分からなかった。読み込み状態や音の長さ(duration)は正しい値を返すし、再生するとcurrentTimeがちゃんと増加する。でも音は鳴らない。個数制限でもあるのだろうか。
  • ミニタイプではオーディオの巻き戻し(先頭へのシーク)をAudio.load()で行うようにした(つまり、押す度に読み込み直すようにした)。Audio.load()を連発するとメモリ消費量はどんどん増加していくみたいなのだけど(Firefox, Opera使用時)、Chromeではこの方法でないと妙なレイテンシー(?)が発生して聞けたものじゃなくなる。

※Google Chromeでの動作確認はバージョン6.0.447.0(Windows版)で行った。

2010-06-21

Visual Studio 2010とWindows 2000

ようやくVisual Studio 2010をインストールしました(自宅)。インストールしただけでまだ何もいじってません。既存のプロジェクトのビルドすらしてません。面倒くさい。

ところで、VS2010でビルドしたものはWindows2000で動かないとのこと。VS2008では9x系が動かなくなっていましたし、おそらく同様のことでしょう。

もうすぐセキュリティパッチも出なくなるようなOSをサポートするのもどうかと思いますが、一応もうしばらくはVS2008でビルドすることにします。

2010-06-20

JavaScript HTML5 Audio Piano

HTML5 Audioで試しにピアノを作ってみた。

JavaScript HTML5 Audio Piano

88鍵分の音源データはwavファイルで40MB、mp3またはoggで4MBくらいにもなる。ブラウザのメモリ消費量もそれなりに増加するようだ。

dataスキームで自分でシンセサイズする人が絶対いそう。と調べていたら、一応Audio Data APIなるものも検討されているようだ。いや、このくらい出来なければflashの置き換えなんて夢のまた夢だよね。