3月 31

My Happy Hacking Keyboard Lite 2

Happy Hacking Keyboard Lite2 を使い始めて、手首を浮かすことがだいぶ少なくなったので、手首が腱鞘炎っぽくなることがほぼ無くなった。

それでも今度は、Emacs 使いの所為か左手小指にかなり負荷がかかっていて、
一日の終わりに頭よりも目よりも先に、左小指が一番最初にガタが来る症状に悩まされたあげく、自分なりの解決策にたどり着いた。

解決策:一番丈夫なのにスペースキーくらいしか叩いてない親指に働いてもらう

↑の画像のようにキーを入れ替える。

  • 半角/全角左Alt
  • 無変換左Control
  • 変換右Control
  • カタカナ/ひらがな右Alt
  • 左Altメニュー
  • ;(セミコロン)Enter
  • Ctrl+;(Ctrlを押しながら;);(セミコロン)

キーの入れ替えには「窓使いの憂鬱」というソフトを使用。
このソフトはかなり便利で、いろんなソフトで Emacs ライクなキーバインドを使える。

窓使いの憂鬱の設定ファイル .mayu に以下を追加。

mod control += 無変換       # 無変換 を LControl に
key *無変換 = *LControl     #       〃
mod control += 変換         # 変換を を LControl に
key *変換   = *LControl     #       〃
mod alt       += ひらがな   # ひらがな を LAlt に
key *ひらがな = *LAlt       #      〃

if ( HHKBLite2 )
  mod alt        -= RAlt       # RAlt を 右クリックメニューの出るやつに
  key *RAlt      = *APPS       #      〃
  mod alt        += 半角/全角  # 半角/全角 を LAlt に
  key *半角/全角 = *LAlt       #      〃
  key Escape     = &Default    # Escape を元に戻す
endif

if ( LetsNoteCFY2 )
  key *半角/全角  = *Esc       # 半角/全角を Esc に
  #key *Esc       = *半角/全角 # Esc はそのまま
  key *Escape     = *Escape    # Escape を元に戻す
endif

key *IC-SemiColon      = Enter       # セミコロン を Enter に
key *IC-C-~S-SemiColon = SemiColon   # Ctrlを押しながらだとセミコロンに;
#key *IC-C-~S-I          = Tab        # Ctrlを押しながらだとTabに

↑の設定では、デスクトップの HHKBLite2 と、Laptop の Let’s note CF-Y2 で同じ設定を共有できるように、
デスクトップで使用する場合は、シンボルに HHKBLite2 を、
Laptop で使用する場合は、シンボルに LetsNoteCFY2 を定義して切り分けるようにしてある。

これで、Control キーを押しっぱなし、Alt キーを押しっぱなしといったことがほとんど親指の仕事になったので、
左小指への負担はだいぶ軽減された。相当酷使しない限り今のところ平気。

あとは、さらに小指の負担が減るように、 Ctrl+i で Tab になるようにしてある。

「窓使いの憂鬱」を使い始めて、何も Happy Hacking Keyboard Lite2 じゃなくても、
同じくらいか、もう少し小さめのキーを押しやすいキーボードがあればそれでいい気がしてきた・・・。
英語版キーボードも、スペースキーの周りにもっとキーがいっぱいあればな・・・。

関連:キーボード(Happy Hacking Keyboard Lite2)

3月 31

Happy Hacking Keyboard Lite2 日本語

今現在、デスクトップPC用のキーボードで Happy Hacking Keyboard Lite2 の日本語配列を使用中。(キーを入れ替えて使用)
選んだ理由は、使い始めた当時、Happy Hacking Keyboard は使いやすいと噂で聞いていたのと、
Happy Hacking Keyboard Professional が英語配列しかなくて、しかも高かったので、 HHKB Lite2 を選択。

Continue reading »

3月 26

Meadow で、 dired から外部のプログラムへファイルを送る実験。

CraftDrop というコマンドラインからファイルを、起動中のプログラムへファイルをドラッグ&ドロップするプログラムを使用する。
cdrop.exe, cdropopt.exe, cdrop.dat(←cdrop.exeを初回起動時に作成される) を PATH の通ったところにコピー。
(めんどかったので、meadow/bin に放り込んだ)

.emacs に↓を追加:

;; dired で "c" でファイルを CraftDrop 送り
(add-hook 'dired-mode-hook
          (lambda ()
            (local-set-key "c" 'dired-exec-craftdrop)))
(defun dired-exec-craftdrop ()
  "In dired, execute CraftDrop"
  (interactive)
  (craftdrop (dired-get-filename)))
;; 現在の行のファイルを craftdrop 送りにする
(define-process-argument-editing "/cdrop\\.exe$"
  (lambda (x)
    (general-process-argument-editing-function x nil nil nil)))
(defun craftdrop (&optional fname)
  (interactive)
  (if (not (file-exists-p fname))
      (message "%s can't open." fname)
    (setq fname (unix-to-dos-filename fname))
    (let ((w32-start-process-show-window t))
      (apply (function start-process)
             "cdrop" nil "cdrop.exe" (list fname)))))

C-x d で dired を起動して、何かファイルにカーソルを合わせた状態で c を押すと、そのファイルを CraftDrop 送りにできる。

CraftDrop をまだ、ちゃんと使ってないので、このコードが活きてくるのか不明・・・。

参考にしたサイト:

3月 04

※昔の記事を復活(※2004/03/29頃の話を復活させた)

クイックスタート

DUnit がどんなものなのか、ここで少し体験してみます。
新しいプロジェクトを作成して、 1 + 1 = 2 となることを確かめるサンプルです。
※Delphi 7 を使って作業をしてます。

Continue reading »

3月 04

※昔の記事を復活(※2004/03/29頃の話を復活させた)

DUnit とは、Delphi 用の xUnit です。
※Delphi4以降 or Kylix で使用できます。

DUnit にもいくつか種類があるみたいなんですけど、
一番使われていそうなのが今から紹介する DUnit です。(※2004/03/29頃の話)

ここでは、Windows 用の Delphi 7 Professional を使って説明をしていきます。

Continue reading »

3月 03

TortoiseSVN
TortoiseSVN をある程度自動化できるらしい。

C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe を使って自動化する。

例: commit を自動化。D:\Home\project01 にあるプロジェクトのフォルダを右クリックしてコミット、という動作を自動化。

  • C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe のショートカットを作成。
  • ショートカットのプロパティを開いて、リンク先を編集して、↓の様にする。
  • "C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:"D:\Home\project01" /closeend:0 /notempfile

update するとき:
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:update /path:"D:\Home\project01" /closeend:2 /notempfile

check for modification で変更されたファイルをチェックする:
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:repostatus /path:"D:\Home\project01" /closeend:0

ログメッセージを見る:
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:log /path:"D:\Home\project01" /closeend:2 /notempfile

export する(D:\Home\project01 のプロジェクトを D:\Home\exports\project01 にエクスポート):
"C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe" /command:dropexport /path:"D:\Home\project01" /droptarget:"D:\Home\exports\project01" /closeend:0 /extended /notempfile

このショートカットを、Launchy とかに登録すると便利。

3月 03

Laounch LogoLaunchyは便利なランチャー。

Alt-Space(デフォルトでは) を押すと↓のようなのが出てきて、そこにコマンドを打ち込んで起動できる。
Launchy
↑は emacs と打ち込んで Meadow を起動するところ。

Launchy から起動できるコマンドはショートカットをコピーするだけで追加できる。
Launchy の窓を右クリックして Options を選ぶと、ショートカットを追加できるディレクトリが追加変更できる。

メモ帳へのショートカットをコピーして notepad と言う名前に変更すれば、Launchy 上で notepad と入力するだけでメモ帳を起動できる。

デフォルトでFirefox や IE などのブックマークも起動できるようになっているけど、個人的にじゃまなのでWebyプラグインをOFFにして無効にした。

よく使うプログラムのショートカットをどんどんコピーしておくと、かなり便利。

3月 02

ActivePerl LogoWSH で Perl を使えるようにできるらしい。

デフォルトはで、WSH には VBScript と JavaScript が使える。

WSH で Perl を使えるようにするには、ActivePerl をインストールすればいい。

そうすると、 pls という拡張子のファイルが WSH(Perl) のファイルと認識されてダブルクリックで実行できるようになる。

hello.pls

#!/bin/perl -w

our $WScript = $WScript;

use strict;
use warnings;

$WScript->Echo("Hello World!");
  • 1行目のshebangは無くていい。
  • use strict; を使いたい場合は、use strict; よりも前の行で、our $WScript = $WScript; としないと変数が宣言されてないといわれてエラー。
  • 実行するにはダブルクリック。
3月 01

新しい php-mode.el (2008/04/30)
PHP を使うことになったので emacs の php-mode を入れてみたけど、非常に使いにくい状態。
不満噴出で、いろいろ調べて既存の2つの php-mode をくっつけて修正したバージョン。

php-mode.el ver 0.0.4php-mode.el var 1.2.0を混ぜて少し修正。

meadow で動作確認。

site-lisp に php-mode.el をコピーして、
.emacs に以下の行を追加。

(autoload 'php-mode "php-mode" "PHP mode" t)

(setq auto-mode-alist
      (cons '("\\.\\(php\\|php5\\|inc\\)$" . php-mode) auto-mode-alist))
(add-hook 'php-mode-hook '(lambda ()
			    (setq php-intelligent-tab nil)
			    (setq intelligent-tab nil)
			    (setq indent-tabs-mode t)
			    (setq c-basic-offset 4)
			    (setq tab-width 4)
			    ) t)
3月 01

WordPress Logo
http://ja.wordpress.org/ から wordpress-2.3.3-ja.zip をっとってきてインストール。

けれども、インストール画面 wp-admin/install.php へアクセスすると長時間待たされたあげく、 Internal Server Error を吐いて終了してしまう。

コードを追っていくと、wp-includes/wp-db.php の164行目付近の error_log($error_str, 0); から戻ってこない。どうやらこれをコメントアウトする必要あり。

error_log($error_str, 0);
//error_log($error_str, 0);

これで、インストールが問題なく進む。無事インストール完了。

おそらく php.ini の error_log 辺りの設定をちゃんとすればいいのだと思うけど、ひとまずこれで。