特定のタグが付いたホッテントリを非表示にするGreasemonkeyスクリプト
興味がないFacebook関連のホッテントリがあまりにも多くてうんざりしたので、はてなブックマークの人気エントリーのページから、特定のタグが付いたエントリを非表示にするhotentry_cleaner.user.jsを作りました。
そんなことRSSリーダやら何やらを使えというのはもっともですが、僕はここ何年かホッテントリを一覧性が良いWebからチェックするのが習慣になっているので、敢えて敢えてGreasemonkeyスクリプトにしてみました。
ソースコード冒頭のngtagsという文字列の配列に非表示にしたいタグを書いておくと、はてなブックマークのトップや人気エントリーのページで該当するエントリーが消えるようになっています。
var ngtags = ['facebook', 'iphone', 'ipad'];
上記のとおりデフォルトだとFacebookとiPhoneとiPadに関係するエントリーが見えなくなります。タグの大文字小文字は無視されます。日本語を含むタグを扱う場合はutf-8で保存する必要があります。
デフォルトの設定に特別な意図は無いので気を悪くしないて下さい。単に僕がFacebookをあまり面白いと思わないし、iPhoneもiPadも自分で使う気がないだけです。
ダウンロード
- hotentry_cleaner.user.js http://gist.github.com/625638
(直接Greasemonkeyに食べさせたい場合はリンク先のrawをクリック)
mod_sftpでProFTPDをSFTPサーバとして動かす
ProFTPD 1.3.2からmod_sftpというモジュールが添付されており、SFTPサーバになれる機能がオプションで追加されています。
これまでmod_tlsによりProFTPDが標準でサポートしていたFTPS(FTP over SSL/TLS)は対応するクライアントが限られていたり何かと癖が強かったのですが、このモジュールを有効にしてビルドするとより広く使われているSFTPによるセキュアな接続を提供できるようになります。
以下では僕が実際に試したビルドの手順とSFTPを有効にする設定例を紹介します。
mod_sftpにはとても親切なドキュメントがあるので、詳しくは本家のサイトを参照して下さい。
ビルドとインストール
本家(http://www.proftpd.org/)から落としてきたソースを展開し、おきまりの手順でmakeします。
SFTPを有効にするために./configure時に--with-modules=mod_sftpを指定します。公式ドキュメントは--enable-opensslしていますが必須ではないようです。
$ wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3a.tar.gz $ tar zxf proftpd-1.3.3a.tar.gz $ cd proftpd-1.3.3a $ ./configure --prefix=/opt/proftpd --sysconfdir=/etc/opt/proftpd --with-modules=mod_sftp $ make # make install
この例では僕の趣味で--prefix=/opt/proftpd --sysconfdir=/etc/opt/proftpdしています。
既にProFTPDを別の方法で入れている場合は干渉しないように気をつけましょう。
SFTPサーバの設定
設定ファイル(proftpd.conf)に以下のSFTP関連の設定を追加します。公式ドキュメントに倣ってVirtualHostで設定します。
SFTPで接続できるだけでただのVirtualHostなので、もちろんGlobalセクションの設定は受け継がれます。
まずSFTPEngine onでSFTP接続を受け付けるようにします。
SFTPLogはSFTP接続に関わるログの保存先を指定します。ここではprefix=/opt/proftpdだと仮定して指定しています。
Portディレクティブでこの例ではポート2222番を専用の待ち受けポートとしています。
SFTPHostKeyにはsshdで使っているホスト鍵を指定します。少々気持ちが悪いですがサーバに接続する際にホスト鍵が違うと警告を出すのを避けるためです。
<IfModule mod_sftp.c> <VirtualHost x.x.x.x> SFTPEngine on SFTPLog /opt/proftpd/var/log/sftp.log Port 2222 SFTPHostKey /etc/ssh/ssh_host_rsa_key SFTPHostKey /etc/ssh/ssh_host_dsa_key </VirtualHost> </IfModule>
あとはproftpdを実行すればSFTP接続を受け付けるデーモンが起動します。
# proftpd
なおnオプションをつけるとフォアグラウンドで動きます。
# proftpd -n
ProFTPDのアクセス制御を併用する
SFTPが有効なVirtualHostであってもProFTPD独自の認証機能やアクセス制御がそのまま利用できます。
この例ではmod_auth_fileを使って/etc/opt/proftpd/ftpasswdファイルに書かれたユーザだけがログインできるよう認証を行うようにしています。
AuthOrder mod_auth_file.c <VirtualHost x.x.x.x> ... AuthUserFile /etc/opt/proftpd/ftpasswd </VirtualHost>
こういった設定の中でも特に需要がありそうなchrootの設定もこのとおり手軽に実現できます。これでホームディレクトリより上は見られません。
<VirtualHost x.x.x.x> ... DefaultRoot ~ </VirtualHost>
また例えばLimitディレクティブでSITE_CHMODを無効にすればパーミッションを変更できなくなります。またSFTPだけにあるコマンド(例えばSYMLINK)もLimitディレクティブで制限できます。
<VirtualHost x.x.x.x> ... <Limit SITE_CHMOD> DenyAll </Limit> <Limit SYMLINK> DenyAll </Limit> </VirtualHost>
通常のFTPを無効にする
LimitディレクティブでサーバすべてのLOGINを無効にした上で、SFTPEngine onのVirutalHostだけLOGINを有効にする方法がドキュメントのFAQで紹介されていました。
<Limit LOGIN> DenyAll </Limit> <VirtualHost a.b.c.d> <Limit LOGIN> AllowAll </Limit> SFTPEngine on ... </VirtualHost>
フォーラムではVirtualHost外(server configコンテキスト)でPort 0にする方法も紹介されていました。
Port 0
http://forums.proftpd.org/smf/index.php/topic,3840.0.html
ただこんな回りくどいことをしなくても、単にserver configコンテキストでSFTPEngine onにしても良いと思うのですが、VirtualHostを使った方が何かメリットがあるんでしょうか。
iBusの有効/無効に個別のホットキーを割り当てるseparate hotkey patchを作りました(ついでにvi協調機能付き)
あらまし
最近mozcと共に使い始めたiBusですが、UIM + Anthy使いだった僕は以下の点を不満に感じました。
- 日本語入力のオン/オフのホットキーはトグルしか設定できない、オン/オフにそれぞれ専用のホットキーを割り当てたい
- いわゆるvi協調モードのような挙動(これはmozc側の機能?)は、自分の環境だとたまに取りこぼしがあり、不安定だった
そこでiBusのソースをチラ見したところ、案外簡単にいじれそうな作りだったため、次の変更を加えるいいかげんなパッチを作りました。
- 日本語入力のオン/オフだけを個別に行う有効(Enable)/無効(Disable)ホットキーを追加
- ESCやctrl+[といった任意のキーで日本語入力を確実に無効にするvi協調(Vi collaboration)ホットキーを追加
- 日本語入力の有効/無効/vi協調ホットキーを設定できるようにibus-setupのUIを変更(エントリー冒頭の画像)
このパッチはdebian squeezeのリポジトリにあるibus_1.2.0.20091215をベースに書いています。ubuntu 10.04もibus_1.2.0のようなので多分そのまま使えるでしょう。
本家で最近stableになったibus_1.3.5は、構造がちょっと変更されているのでそのままでは使えません。本質的な部分は変わっていないようだったので、とりあえず適用できるように書き換えたパッチも作りました(動作未確認)。
パッチ当てとインストール
debian squeezeの場合だと以下の手順でパッチを適用してインストールできます。ubuntuでもibusのバージョン表記が少し違う程度だと思います。
$ mkdir ibus $ cd ibus $ apt-get source ibus # apt-get build-dep ibus $ cd ibus-1.2.0.20091215 $ wget http://kokutoto.com/files/ibus/ibus-1.2.0.separate_hotkey.patch $ patch -p1 < ibus-1.2.0.separate_hotkey.patch $ dpkg-buildpackage $ cd .. # dpkg -i *.deb
起動と設定
既に起動しているibus-daemonを置き換えてついでにXIMも有効にするなら起動はこんな感じ。
$ ibus-daemon -d -x -r
設定はibus-setupを実行するかシステムトレイのアイコンから設定を起動。
$ ibus-setup
デフォルトではEnable/Disable/Vi Collaborationのどれもキーを割り当てない設定です。Vi CollaborationはEscape; Control+bracketleftを推奨します。キーコード指定時はESCキーを押すとダイアログが閉じるので、キーコードの欄にEscapeと書いて追加します。
設定でトグルや他のホットキーと重複するキーを割り当てた場合は、挙動がおかしくなると思います。あんまりいじめないでください。
おわりに
このパッチは長いものには巻かれろの精神でmozc + iBusを使いたい人向けです。そもそもiBusなんて使いたくないという方は、uim-mozcというすばらしい試みがあるので、そちらを使った方が良いかも知れません。
パッチのダウンロード
- http://kokutoto.com/files/ibus/ibus-1.2.0.separate_hotkey.patch
- http://kokutoto.com/files/ibus/ibus-1.3.5.separate_hotkey.patch
- ibus-1.2.0.separate_hotkey.patch http://gist.github.com/626026
- ibus-1.3.5.separate_hotkey.patch http://gist.github.com/626027
(2010/10/14 gistへ移行)
後藤裕文さんがibus_1.3.9に対応したパッチを公開されています! ありがとうございました。紹介させていただきます。
http://gotto.jp/ibus/ibus-1.3.9.separete_hotkey.patch
(2011/07/13 後藤裕文さんのibus 1.3.9対応パッチへのリンクを追加)
格安のキワモノ系海外VPS「prgmr.com」
格安の海外VPSのprgmr.comを契約しました。契約と解約の方法、デフォルトでのメモリやディスクの使用率、ちょっと使った印象などをまとめておきます(契約は2009年7月)。
プラン
prgmr.comはアメリカのVPS業者で、XENで仮想化されたサーバがレンタルされます。$6からプランがあり、単に固定IPが必要な場合も最安レベルだと思われます。
雰囲気は極めて怪しく、恐ろしく簡素なウェブに" We don't assume you are stupid."と売り文句が書かれています。事実、Webによる管理画面などなく、すべての操作をコンソールで行います。
ひときわ目を引く$6のプランはXENでメモリ128MBと価格にしては優秀な印象。ただ転送量は20GiBと一般的な他のVPSより1桁少ない点に注意が必要です。半年、1年で契約すると更に安くなります。
6$ | 128MB RAM | 3GiB Disk | 20GiB Network transefer | |
8$ | 256MB RAM | 6GiB Disk | 40GiB Network transefer | |
12$ | 512MB RAM | 12GiB Disk | 80GiB Network transefer | |
20$ | 1024MB RAM | 24GiB Disk | 160GiB Network transefer | |
36$ | 2048MB RAM | 48GiB Disk | 320GiB Network transefer | |
68$ | 4096MB RAM | 96GiB Disk | 640GiB Network transefer |
契約まで
もちろんWebから申し込めますが、一部人手による作業があり、英語のメールを書く必要があります。
サインアップ
コースを選んで連絡先をフォームに入力するだけ。支払い方法はpaypalが利用できます。
住所は都道府県が選択式ですが、ウムラウト記号や[]が入っている項目を選択するとエラーになり先に進めません。適当にAomoriなどを選ぶと良いようです。
サインアップ終了後に以下の内容が表示されます。
Signup successful Thanks for signing up! Signup information for YOURNAME: Username: USERNAME Package: 128MiB ram, 3GiB disk, 20GiB transfer Xen VPS, $6/month Remember to send your OpenSSH format public key in an attachment to support@prgmr.com also, let me know if you want CentOS 5.2 or Debian 5.0.
また以下のメールが送られてきます。
you ordered a xen vps, 128MiB ram, 3GiB disk, 20GiB transfer Xen VPS, $6/month username USERNAME Before I can set you up, I need to know what distro you would like and an OpenSSH format public key (on a *NIX, run ssh-keygen and send me either the id_dsa.pub or id_rsa.pub file in an attachment) on putty/windows, see http://www.unixwiz.net/techtips/putty-openssh.html#keypair and scroll down to the screen shot where it says 'openssh format public key for pasting into authorized_keys' - that is what I need. thanks.
コンソールに繋ぐための公開鍵と、どのディストリビューションを使うのかメールしてくれ、とのこと。ここから先は手作業になります。
鍵の作成と設定依頼
Linuxならssh-keygenで鍵を作成すれば良いです。
ssh-keygen
途中で鍵を作る場所を聞かれるのでid_rsaとかしておけば、カレントディレクトリにid_rsaとid_rsa.pubが作られます。パスフレーズはお好みで。面倒なら空欄でも良いでしょう。
希望のディストリビューションを書いて公開鍵id_rsa.pubを添付して support@prgmr.com へ送信します。参考サイトの通り適当な英語メールを書きました。すぐに自動返信メールが届きます。
Hello I want to use Debian. thanks.
以降の作業は手作業で行われているらしく、相手はGMT-0900くらいで動いているので、気長に待つ必要があります。
特に記載はありませんが休日は対応してくれていないようです。しばらくすると設定完了のメールが届きます。
Your server is setup now, you can login to council.prgmr.com with your username and ssh key and follow the instructions at http://book.xen.prgmr.com/mediawiki/index.php/Quickstart The default root password is password, and you should get a bill soon by email. If you have any questions please email support@prgmr.com. Thanks very much. Nick Schmalenberger
管理用のsshアクセス先を教えてくれます。この場合だと USERNAME@council.prgmr.com へ繋げば良いことになります。councilの部分は複数種類あるらしいのでメールを確認のこと。
コンソールへの接続
事前に秘密鍵を登録しておく必要があります。先ほど作成したid_rsaを食わせるなど、適当に。
ssh-add id_rsa
メールの指示に従ってsshで接続します。
ssh USERNAME@council.prgmr.com
以下の管理用コンソールが現れます。
Name ID Mem VCPUs State Time(s) USERNAME 117 128 1 -b---- 19.2 Options for USERNAME 1. console 2. create/start 3. shutdown 4. destroy/hard shutdown 5. reboot 6. exit press the number> Read from remote host council.prgmr.com: Connection reset by peer Connection to council.prgmr.com closed.
ざっと説明すると1. consoleで生のコンソールを叩ける。2. create/startはサーバを起動させる(デフォルトで起動している)。実際にはそのままコンソールが起動する。grubの画面も見られるのでCent OSやFreeBSDはリストアできるらしい(Debianは不明)。あとの項目は不明。概ね意味通りと思われます。
初期状態について
個々のホストにはUSERNAME.xen.prgmr.comというドメインが当たっています。正引きはもちろん、逆引きもこのドメインが設定されています。
デフォルトでsshdが入っていますが、デフォルトでrootログインが禁止されており、1度はコンソールに入る必要があります。
ps
PID TTY TIME CMD 1 ? 00:00:03 init 2 ? 00:00:00 kthreadd 3 ? 00:00:00 migration/0 4 ? 00:00:00 ksoftirqd/0 5 ? 00:00:02 watchdog/0 6 ? 00:00:08 events/0 7 ? 00:00:00 khelper 19 ? 00:00:00 xenwatch 20 ? 00:00:00 xenbus 51 ? 00:00:00 kblockd/0 60 ? 00:00:00 ksuspend_usbd 66 ? 00:00:00 khubd 69 ? 00:00:00 kseriod 102 ? 00:00:00 pdflush 103 ? 00:00:00 pdflush 104 ? 00:00:00 kswapd0 105 ? 00:00:00 aio/0 230 ? 00:00:00 net_accel/0 537 ? 00:00:00 kjournald 613 ? 00:00:00 udevd 1115 ? 00:00:00 rsyslogd 1200 ? 00:00:01 sshd 1227 ? 00:00:00 cron 1244 hvc0 00:00:00 login 1245 tty2 00:00:00 getty 1246 tty3 00:00:00 getty 1247 tty4 00:00:00 getty 1248 tty5 00:00:00 getty 1249 tty6 00:00:00 getty 5057 hvc0 00:00:00 bash 5084 hvc0 00:00:00 ps
/proc/cpuinfo
processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 2 model name : Quad-Core AMD Opteron(tm) Processor 2352 stepping : 3 cpu MHz : 2110.816 cache size : 512 KB physical id : 0 siblings : 1 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 5 wp : yes flags : fpu de tsc msr pae cx8 apic cmov pat clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt lm 3dnowext 3dnow constant_tsc up rep_good pni cx16 popcnt lahf_lm cmp_legacy extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch bogomips : 4233.19 TLB size : 1024 4K pages clflush size : 64 cache_alignment : 64 address sizes : 48 bits physical, 48 bits virtual power management: ts ttp tm stc 100mhzsteps hwpstate
free
total used free shared buffers cached Mem: 131288 56432 74856 0 12060 25148 -/+ buffers/cache: 19224 112064 Swap: 131064 0 131064
df
Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 2952848 554608 2248240 20% / tmpfs 65644 0 65644 0% /lib/init/rw udev 10240 20 10220 1% /dev tmpfs 65644 4 65640 1% /dev/shm
sources.list
deb http://ftp.us.debian.org/debian lenny main
ping
PING USERNAME.xen.prgmr.com (xx.xx.xx.xx) 56(84) bytes of data. 64 bytes from USERNAME.xen.prgmr.com (xx.xx.xx.xx): icmp_seq=1 ttl=42 time=143 ms 64 bytes from USERNAME.xen.prgmr.com (xx.xx.xx.xx): icmp_seq=2 ttl=42 time=142 ms 64 bytes from USERNAME.xen.prgmr.com (xx.xx.xx.xx): icmp_seq=3 ttl=41 time=155 ms 64 bytes from USERNAME.xen.prgmr.com (xx.xx.xx.xx): icmp_seq=4 ttl=42 time=159 ms 64 bytes from USERNAME.xen.prgmr.com (xx.xx.xx.xx): icmp_seq=5 ttl=41 time=138 ms 64 bytes from USERNAME.xen.prgmr.com (xx.xx.xx.xx): icmp_seq=6 ttl=41 time=158 ms 64 bytes from USERNAME.xen.prgmr.com (xx.xx.xx.xx): icmp_seq=7 ttl=42 time=146 ms 64 bytes from USERNAME.xen.prgmr.com (xx.xx.xx.xx): icmp_seq=8 ttl=42 time=138 ms 64 bytes from USERNAME.xen.prgmr.com (xx.xx.xx.xx): icmp_seq=9 ttl=42 time=139 ms 64 bytes from USERNAME.xen.prgmr.com (xx.xx.xx.xx): icmp_seq=10 ttl=41 time=141 ms --- USERNAME.xen.prgmr.com ping statistics --- 10 packets transmitted, 10 received, 0% packet loss, time 8996ms rtt min/avg/max/mdev = 138.164/146.181/159.305/7.941 ms
初期設定
基本的には通常のサーバ設定と何ら変わりはありません。prgmr.comを使う上で注意が必要そうな部分を取り上げます。
ユーザ設定
デフォルトでrootパスワードがpasswordになっているので、これは早々に変更してしまいましょう。
passwd
apt
貧弱な/etc/apt/sources.listはとりあえず以下にでもしましょう。jpではなくusのミラーなのが新鮮です。
deb http://ftp.us.debian.org/debian lenny main contrib non-free deb-src http://ftp.us.debian.org/debian lenny main contrib non-free deb http://security.debian.org/ lenny/updates main contrib non-free deb-src http://security.debian.org/ lenny/updates main contrib non-free
ロケール
もしLANG=ja_JP.UTF-8だとperlがwarningを吐きます。
perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "ja_JP.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory
ロケールのカタログが足りないのが原因のようです。
試行錯誤の結果以下のパッケージを入れれば黙らせることができました。
apt-get install localse locales-all
結構ディスク容量を食うので、必要がなければ入れない方が良いでしょう。
各種サーバのインストール
あとはお好みで。
例えばApache2をインストール。
apt-get install apache2
これでhttp://USERNAME.xen.prgmr.com/でIt Works!が確認できるます。
参考までにApacheインストール後の状況。
Filesystem 1K-blocks Used Available Use% Mounted on /dev/xvda1 2952848 680748 2122100 25% / tmpfs 65644 0 65644 0% /lib/init/rw udev 10240 20 10220 1% /dev tmpfs 65644 4 65640 1% /dev/shm
total used free shared buffers cached Mem: 131288 120984 10304 0 6768 80500 -/+ buffers/cache: 33716 97572 Swap: 131064 24 131040
まだ余裕があるように見えますが、これに色々追加していくとディスクがカツカツになるはずです。やはりお遊びを越えた用途には、最低でも$8以上のプランが選択肢になってきそうですね。
請求
契約後しばらくするとinvoiceというメールが届くので、この請求メールに書いてあるリンクをクリックして、PayPalにより支払いを行います。サーバの契約状況は以下から確認できます。
サポート
英語でsupport@prgmr.comにメールを送ればいろいろ対応してもらえるのだと思います。公式のTwitterアカウントprgmrcomもあります。
何気なくprgmr.comのトラブルについて(日本語で)つぶやいたら、公式のアカウントから的確なreplyが飛んできて驚きました。
prgmr.comのホストは無事に復旧した。でも何故かデフォルトで設定されていたns1.sjc.he.netのネームサーバが使えなくなっているっぽい。アナウンスは特にないけど自力でどうにかしろってことかな。
@kokutoto I can't read what you are saying but if I just re-ip'd you and dns is broken, use 216.218.223.67 and 38.99.2.224
解約について
解約用のウェブインターフェイスなどはありません。メールで解約の希望を伝えると、しばらくすると特に返信もなくアカウントが削除されました。
wimeを使ってLinuxでWindows版ATOK 2008を動作させる
Windows版のATOK2008をwineで動作させcannaサーバに見せかけるプログラム、wimeをインストールして使えるよう設定します。
kokutotoは去年の9月くらいから使っていますが安定していて十分常用できますし、やはり連文節変換でATOKの精度は侮りがたいものがあります。
Linuxで文章を書くがAnthyはちょっと…でもWindows版があるしATOK X3は買いたくない、といった場合に重宝します。
以下の作業はdebian lennyを前提としていますが、ubuntuなどはほとんど変わらない手順で導入できるのではと思います(試していないのでわかりません)。
wineのインストール
まずwineをインストールします。
wimeはwine 1.0.0でも動作するのでdebian lennyならaptからインストールするだけで良いです。
apt-get install wine
ATOKのインストール
ATOK2008製品版のCD-ROMのATOK/ATOK21.msiをmsiexecで実行します。普通にexeを起動するだけではダメなようです。
文字化けするかも知れませんがwime自体は正常に動くのでフィーリングでインストールを進めます。
msiexec /i /mnt/ATOK/ATOK21.msi
不足しているレジストリを補うためwimeを展開した中に入っているatok.regをregeditで読ませます。
regedit atok.reg
wimeのインストール
作業の一連の流れとReadmeを読んでも書いていない事を中心に書きます。
ダウンロード
公式サイトから最新のwimeのアーカイブ(ここでは3.1.3)を落としてきます。
wget http://www.venus.sannet.ne.jp/thomas/wime/wime-3.1.3.tar.bz2
展開します。
tar jxvf wime-3.1.3.tar.bz2
ビルド
makeします。
debianではwine関係のファイルが/usr/libとか/usr/includeに入るのでWINEDIRは/usrにしておくのが良いでしょう。
WINEDIR=/usr make
RK.hが無いと言われたら…。
sudo apt-get install libcanna1g-dev
winuser.hが無いと言われたら…。
sudo apt-get install libwine-dev
gtk.hなどが無いと言われたら…。
sudo apt-get install libgtk2.0-dev
デフォルトで後述するwimeximとim-wimeもコンパイルされるよう設定されているので、これらが不要なら以下のように変数を設定しておくと依存ライブラリが減るかも知れません。
enable_xim=0 enable_gim=0
動作確認
インストール前に動作を確認することもできます。
Readmeにあるようにwimeをmakeしたディレクトリで次のようにするとwimeが動作します。
LD_LIBRARY_PATH=./so:$LD_LIBRARY_PATH WINEDLLPATH=./dll ./exe/wime
wimeの起動/設定/終了
起動はwimeコマンドから。
wime
もし本物のcannaサーバが動いていたら終了させておきます。
wimeを常用する場合はupdate-rc.dでcannaの自動起動設定を切っておきましょう。
sudo /etc/init.d/canna stop
wimeの設定はwimeの起動時にwimectrlで。
wimectrl
wimeの終了はwimectrl -kで。
wimectrl -k
異常終了時に「アドレスは既に使用中です」と言われて再起動できない場合があります。
ImInit: Address already in use
libcannaと通信するためのソケットが残っているのが原因なので、そういう場合は/tmp/.iroha_unix/IROHAを削除します。
rm /tmp/.iroha_unix/IROHA*
入力メソッド毎の設定
ここから先はお好みで。
uim + uim-cannaでの設定例
kokutotoはATOK以外ならuim + anthyな人なのでuim-cannaを使ってuimでwimeを使うように設定します。
sudo apt-get install uim-canna
これでuimの設定でインプットメソッドとしてcannaが指定できるようになります。
uim-pref-gtkで「使用可能にする入力方式」を"Canna"にします。
uim-pref-gtk
wimexim及びim-wime
wimeには2.0.0からXIMサーバのwimeximが、3.0.0からGTK+用immoduleのim-wimeが付属しています。
ATOKパレットも出て素敵な感じになりますが、wineにパッチを当てないとファンクションキーが効かないなど不便な所があります。
debianだとこれらに関係する環境変数XMODIFIERSやGTK_IM_MODULEの設定は~/.xinput.d以下のファイルで行います。
またリソース設定は~/.Xresourcesに書くことにします。~/.Xresourcesはどこかでxrdbで読まれると設定されている前提です。
wimexim
~/.xinput.d/ja_JPで以下を設定をします。
このファイルはデフォルトで/etc下にあるファイルを指すシンボリックリンクなので注意が必要です。
XIM=wime XIM_PROGRAM=/usr/local/bin/wimexim
続いてIMEをon/offするためのキーバインドをリソースで設定します。~/.Xresourcesに以下を書きます。
ximegim.imeToggleKey:A-space
または
Wime.imeToggleKey:A-space
wimeximを起動しておきます。
wimexim
これでXIM対応アプリケーションから、リソースimeToggleKeyで設定したキーバインドでIMEがon/offされ、ATOKが利用可能になります。
im-wime
同じく~/.xinput.d/ja_JPに以下を設定します。
GTK_IM_MODULE=wime
次に~/.Xresourcesに以下を設定します。
wimegim.imeToggleKey:A-space
または
Wime.imeToggleKey:A-space
MoinMoinをお好みのエディタで編集できるPythonスクリプトeditmoin
MoinMoinは海外で使用例が多いPython製のWikiエンジンです。ページ単位でアクセスコントロールが可能なほか、ローカルで動作させることができるなどの特徴があります。
editmoinというPythonスクリプトを使えば、MoinMoinのページを普段利用しているエディタで編集することができます。
基本的な使い方
ログインが必要ないMoinMoinならURLを引数にするだけでエディタが起動して編集が可能です。エディタを終了するとMoinMoinに書き込まれます。
テンプレートの指定は-tオプションを使って行えます。
editmoin http://moinmoin.wikiwikiweb.de/TestPage
editmoin -t SomeTemplate http://moinmoin.wikiwikiweb.de/TestPage
認証の設定(~/.moin_ids)
~/.moin_idsにMoinMoinのURLとMOIN_IDというCookieの対を記述することで、ログインが必要なwikiでも認証なしで書き込めます。
MOIN_IDはMoinMoinにログイン後にブラウザから調べます。Firefoxの場合は「編集->設定」の「プライバシー」にある「Cookieを表示」から調べられます。
以下のようになります。
http://moinmoin.wikiwikiweb.de 987654321.321.54321 http://wiki.canonical.com http://example.com/moin/moin.cgi 123456789.123.12345
Basic認証は~/.moin_idsで指定しなくても対話的に認証できますが、面倒な場合は~/.moin_ids中でURLにユーザ名とパスワードを埋め込むこともできます。
ユーザ名をuser、パスワードをpasswordとすると以下のようになります。
https://user:password@example.com/moin/moin.cgi 123456789.123.12345
ショートカット
~/.moin_idsに記述があればショートカットが利用可能です。URL中でMoinMoin以下のパス(サブパス)がはじまるスラッシュより前の文字列の一部分を入力するとだけでアクセスできます。
例えばhttp://wiki.canonical.comが存在する場合、canonicalだけでもアクセスできます。
editmoin canonical/FrontPage
エイリアス(~/.moin_alias)
深い階層のページなど、長いURLを打ち込むのは面倒な場合は、~/.moin_aliasesでエイリアスを設定することができます。
各行にエイリアスと展開結果の対を指定します。以下のようになります。
script http://moinmoin.wikiwikiweb.de/ScriptMarket
エイリアスを利用したアクセスも通常の使い方と変わりません。
以下の例ではhttp://moinmoin.wikiwikiweb.de/ScriptMarket/EditMoinにアクセスされます。
editmoin script/EditMoin
環境変数による設定
おまけ:Vimシンタックスファイル
VimにはMoinMoin記法のシンタックスファイルmoin.vimがあります。以下からダウンロードできます。~/.vim/syntax/以下に配置しておきます。
moin.vim - Syntax file for MoinMoin wiki text : vim online
さらにファイルタイプの自動判別のために~/.vim/ftdetect/moin.vimとして以下の内容を記述しておくと良いです。
au! BufRead,BufNewFile *.moin \ if getline(1) =~ '^@@ Syntax: 1\.5$' | setf moin1_5 \ | else | setf moin1_6 | endif