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 辺りの設定をちゃんとすればいいのだと思うけど、ひとまずこれで。