平衡点
2011/05/01
_ 日記の移行
自由に弄れる環境ができたので, 再び tDiary ユーザに.
はてなダイアリからの移行を考えたのが 04/06 だったので, 環境弄ったり CSS 弄ったりでほぼ 1 ヶ月くらいかかりました.
というわけで, ぼちぼち更新していこうと思います.
2011/05/05
_ tdiary-mode の設定とかなんとか.
- メモ:
-
- tdiary-mode の password 保管先のファイルとして .gpg を使う(epa で透過アクセス)
- 常に tdiary-replace にする? ファイルが存在する時には, 既存のファイルを流し込むようにすれば良い?
- offline での動作ってどうしてたっけ...
- elscreen と連携していた気がするんだけれど, どうやってたっけ?
- Dropbox とか使う? svn とか git と連携できんかしらん
既に記憶が曖昧だ. むーん...
2011/05/06
_ ただダラ/ただダロ
はてダラみたいなの, tDiary にないかな, とちょっとググると, やっぱりありますよねー.
あとは今迄はてなで書いてたはてな記法で書かれたテキストを適当にパースして流し込めば良い...はず.
週末にでもやってしまおう.
_ Ricty が素敵すぎる.
が素敵です.
- Inconsolata と Migu 1M の混成フォント
- Inconolata 由来の Ambiguous 文字の全角化 (>= 2.0.2)
- 全角/半角 2:1 の調整
- 全角スペースの可視化
- 全角/半角のコンマ, ピリオドの差別化
- en dash(Unicode U+2013) の破断線 like な表示
などなど.これは凄い. 痒い所に手が届く感じで非常に綺麗です.
ベースとなったフォントは Inconsolata と Migu 1M(M+ と IPA ゴシックの合成フォント)なので, ライセンスは
ですか... とりあえず ITPしてみる. はてさて.
追記
英語酷い. 意味わからんって指摘. ごもっともですね. 直しました(機械翻訳かけて修正しているのですが, 修正漏れですん).
Orz
2011/05/08
_ というわけで...
とりあえず日記のデータ移行が一通り終わった...かな? はてなダイアリでは「はてな形式」で日記を書いていたので適当にパースして RD に直すだけで良い...と思っていたんだけれど, そういうわけでもなく(笑) あんまり真面目に「はてな形式」で日記を書いていなかったんで, パース漏れが酷くてしんどかったです.
多分, 過去ログには崩れていたり読めなかったりする所があると思いますので 指摘して下さいますと助かります.
あと, 思った以上に ただダラ が便利なので, これを使う用に simple-hatena を軽量化(グループ関連の関数を消す, など)して使ってみる, など.
_ Rictyフォントの行方
先日紹介した Ricty フォントですが, ちょっと微妙な雲行きになってきました. ITP して話を持っていったのは私なので, 薮蛇になってしまった感が否めません.
現在、debian-devel および debian-bugs-dist において、Ricty のライセンスについて議論が行われています。具体的には、OFL 1.1 の以下の条項に矛盾するかしないかというものです。これについては、「(単体のライセンスの下での配布を前提として) OFL であるはずのフォントのライセンスを偽装して OFL 以外の (単体の) ライセンスの下で配布してはならない」と解釈し、合成フォントはこれに当たらないと判断した上で、改変フォントである Ricty の配布を行っています。しかしながら、議論の結果によっては Ricty の配布を中止することもありえますのでご了承ください。
青木さんがおっしゃるように, 言語別に別ファイルで配布, とかならアリな気もします.
- ファイルを分けて
- Inconsolata 由来 -> OFL
- Migu 1M 由来 -> IPA
とか?
個人的には, ここまで綺麗に調整するのは非常に大変だったと思うので, その苦労は無駄にはしたくないですね. なんとかしたい...うーん...
改変収録して問題無いライセンスの, 高品質日本語フォントって「モトヤシーダ」「モトヤバーチ」かなぁ... いや, OFL Section 5 って結構厳しいな. OFL のフォントをベースに合成フォント作成するなら, OFL 単体で配布しないと駄目, って事か. うぅ...
2011/05/09
_ 快適なメール環境の構築(1/n): offlineimap の設定
最近になって Wanderlust + offlineimap + offlineimap-el (+ epa) で, ようやく幸せな気分になったので, そのメモを残しておこうかと (というか, 周りで Gmail + Wanderlust な人がけっこういるので, 参考になったら良いなぁ, とか).
offlineimap
まずは offlineimap の設定のお話.
多くの MUA では, IMAP サーバとのやりとりの際に, メール全文を取得せずヘッダのみを取得してスレッド表示させたりしている (Wanderlust もそうですね), これだとネットワーク接続が無い場合にメール本文が取得できないし, 検索するのも具合が良くない.
offlineimap は, その名前の通り IMAPサーバ上のメールと local の Maildir を同期してくれるソフトウェア. local の Maildir でメールの振り分け(ファイルの移動)や メールの削除(Trash への移動, 削除)などを行なうと, その結果を IMAP サーバと同期してくれる. 当然 IMAP サーバ側でメールを操作していても, 同期時にそれを反映してくれる.
Debian の場合, install は
$ apt-get install offlineimap
で OK.
設定例は /usr/share/doc/offlineimap/examples/offlineimap.conf.gz にあるので
$ zcat /usr/hare/doc/offlineimap/examples/offlineimap.conf.gz \ > ~/.offlineimaprc
とでもしてから .offlineimaprc を編集すれば良い. 注意すべきは "[Gmail]/All Mail" を同期しないようにすることかな(しても良いけどエライ時間かかるし, あんまり見ないでしょ?).
設定例は例えば如何の通り
[general] metadata = ~/Mail/.offlineimap accounts = Gmail [Account Gmail] localrepository = LocalGmail remoterepository = RemoteGmail [Repository LocalGMail] type = Maildir localfolders = ~/Mail/Gmail restoreatime = no [Repository RemoteGmail] type = Gmail remoteuser = [gmail のメールアドレス] realdelete = no nametrans = lambda foldername: re.sub('^\[Gmail\]/Starred', 'Starred', re.sub('^\[Gmail\]/Spam', 'Spam', foldername)) folderfilter = lambda foldername: foldername not in ['[Gmail]/All Mail', '[Gmail]/Trash','[Gmail]/Sent Mail','[Gmail]/Drafts']
この設定では
- offlineimap のメタデータは ~/Mail/.offlineimap 以下に格納
- メールは ~/Mail/Gmail 以下に格納(複数アカウント用に)
- [Gmail]/All Mail, [Gmail]/Trash, [Gmail]/Sent Mail, [Gmail]/Drafts は同期しない
となっている.
この設定で offlineimap を走らせるとパスワードの入力待ちになるので, 適宜入力して同期が終わるのを待つ. maxconnection とか適宜設定しておくと, スレッド並列で同期しはじめるので, 初回には良いかもしれない.
他の Gmail アカウントや他の IMAP サーバとの同期設定も必要ならしておくと良い.
パスワード管理
examples にある offlineimap の設定例でも述べられているけれど, offlineimaprc 内に password を書くことも可能.
以下は gpg で暗号化したファイル内にパスワードを書いておく場合の設定. 以下の python スクリプトを適当な場所に置いておく. (ここでは ~/bin/offlineimap_auth.py とする).
#!/usr/bin/python import re, os def get_authinfo_password(machine, login, port): s = "machine %s login %s password ([^ ]*) port %s" % (machine, login, port) p = re.compile(s) authinfo = os.popen("gpg -q --no-tty -d ~/.offlineimap-pass.gpg").read() return p.search(authinfo).group(1)
.offlineimap-pass.gpg がパスワードが書かれたファイル. 適宜場所や名前を好みに合わせて変えると良い. ファイルの形式は netrc と同じで
machine [IMAPサーバ名] [認証方式] [アカウント名] password [パスワード] port [ポート番号]
例えば Gmail であれば
machine imap.gmail.com login [Gmail のメールアドレス] password [パスワード] port 993
で ok. 認証方式は login 以外は試していない(cram-md5 とかできるのかしらん).
でもって, 実際には
[general] metadata = ~/Mail/.offlineimap accounts = Gmail # パスワードを読みだす python スクリプト pythonfile = ~/bin/offlineimap_auth.py ... - snip - ... [Repository RemoteGmail] type = Gmail remoteuser = [gmail のメールアドレス] remotepasseval = get_authinfo_password("imap.gmail.com", [gmailのメールアドレス], 993) ...
としておくと, offlineimap を動作させる際に gpg でファイルの複合を行なうことになる.
予定
パスワード管理に gpg を使っているので cron で同期させる事はできないのだけれど
- Emacs には epa があるので gpg ファイルを透過的に扱える.
- gpg-agent でも良いけれどね.
- offlineimap-el という emacs lisp がある.
というわけで, 次はその話.
_ Wiki の導入...?
お仕事で, Redmine 上の Wiki にドキュメントを書いてもらっていたりする. 記法は Markdown なのだけれど, いざドキュメントを Fix して公開する段になって, 欲が出てきてちょっと困っていたり.
どうするかな...
- LDAP 認証に対応.
- 閲覧, 追記修正も認証ユーザのみ.
- Markdown Extra 記法に対応
している Wiki ってないもんだろうか. Hiki の パーサを弄るのが一番早いかしらん...
2011/05/26
_ 快適なメール環境の構築(1.5/n): offlineimap あれこれ
先日書いた offlineimap の続き.
書く予定なんだけれど, 多忙なんで, 備忘録がてらメモだけ.
cron で動かす場合
- gpg-agent を使うよう設定しておく. pinentry-gtk2 が吉
- cron を実行するシェルスクリプト内で GPG_AGENT_INFO, DBUS_SESSION_BUS_ADDRESS, XDG_SESSION_COOKIE を設定するようにしておく
- cron 動作時に gpg-agent のキャッシュが切れていると, pinentry-gtk2 のプ ロンプトがデスクトップにパスフレーズの問い合わせをしてくれる.
offlineimap-el
offlineimap を外部プロセスとして実行してくれる elisp
デスクトップ環境で実行中の emacs などで offlineimap-el を動作させると epa が gpg のパスフレーズを記憶していてくれる.