平衡点


2011/07/04

_ 快適なメール環境の構築(2/n): offlineimap の設定, again

尊也さんに「Google Contacts 使うなら日本語の方が快適だよ」と唆されたので, 試しに変えてみたら(案の定) Gmail の規定のラベルが全て日本語になってしまい, offlineimap で幸せになれなくなってしまったので, メモ.

IMAP4 でのフォルダ名に「日本語」を使う話

本来ならそんな事する気はなかったのですが.

"[Gmail]/All Mail" とかは Gmail を日本語にすると "[Gmail]/すべてのメール" となる. この状況で IMAP 接続すると, modified UTF-7(RFC 2060(日本語訳)) でエンコードされたフォルダ名が取得される. wanderlust なんかでは

;; 日本語フォルダ対策
(setq elmo-imap4-use-modified-utf7 t)

などと設定しておけば良いわけだが, offlineimap の場合は folderfilter とか nametrans などで困ってしまった.

  • 安直にやるなら, utf-7 のフォルダ名を(読み難いけれど)使うのかな?
  • Get offlineimap working with non ASCII characters. にある様に, utf-7 <-> utf-8 変換をする python ファイルを読み込んで, nametrans や folderfilter で使用する, という手もある.

というわけで, 安直にやってみた.

# source: python
# すべてのメール: '[Gmail].&MFkweTBmMG4w4TD8MOs-'
# スター付き: '[Gmail].&MLkwvzD8TtgwTQ-'
# ゴミ箱: '[Gmail].&MLQw33ux-'
# 迷惑メール: '[Gmail].&j,dg0TDhMPww6w-'
# 送信済みメール: '[Gmail].&kAFP4W4IMH8w4TD8MOs-'
# 下書き:'[Gmail].&Tgtm+DBN-
nametrans = lambda foldername: re.sub('^\[Gmail\].&MFkweTBmMG4w4TD8MOs-', 'Archives',
          re.sub('^\[Gmail\].&MLkwvzD8TtgwTQ-', 'Starred',
          re.sub('^\[Gmail\].&MLQw33ux-', 'Trash',
          re.sub('^\[Gmail\].&j,dg0TDhMPww6w-', 'Spam',
          re.sub('^\[Gmail\].&kAFP4W4IMH8w4TD8MOs-', 'Sent',
          re.sub('^\[Gmail\].&Tgtm+DBN-', 'Drafts',
          foldername))))))
folderfilter = lambda foldername: foldername not in ['[Gmail]/&kAFP4W4IMH8w4TD8MOs-', '[Gmail]/&MLQw33ux-', '[Gmail]/&kAFP4W4IMH8w4TD8MOs-', '[Gmail]/&Tgtm+DBN-']

とりあえずコレで行ってみる.

offlineimap を cron から呼ぶために

offlineimap のパスワードを gpg 暗号化した別ファイルから読み込むようにしているので, cron で動かすと gpg の複合ではまる. 鍵の管理は gpg-agent 任せなので, pinentry-gtk-2 が表示できる X 環境を cron に渡すようにすれば良い. 例えば, 以下の様なスクリプトを cron でまわすようにしてみる

# source: sh
#!/bin/sh
# -*- mode:sh; coding: utf-8-unix; indent-tabs-mode: nil -*-
#  offlineimap-cron.sh
#
# Copyright(C) Youhei SASAKI All rights reserved.
# $Lastupdate: 2011/07/12 21:20:57$
# Author: Youhei SASAKI <uwabami@gfd-dennou.org>
# License: GPL-3+
#
#  Code:
#########################################################################
# for personal settings
OFFLINEIMAP_PID=~/Mail/.offlineimap/pid
OFFLINEIMAP_CONF=~/.offlineimaprc
UI=quiet
# access for current session
ck_pid=$(ps -C ck-launch-session  -o pid --no-heading | sed 's/^ //g')
[ $(ps -p `cat $OFFLINEIMAP_PID` -o pid --no-heading) ] && exit 0
[ -z $ck_pid ] && exit 0
local DBUS_SESSION_BUS_ADDRESS XDG_SESSION_COOKIE GPG_AGENT_INFO
for var in DBUS_SESSION_BUS_ADDRESS XDG_SESSION_COOKIE GPG_AGENT_INFO; do
    VAL=$(sed 's/\x00/\n/g' /proc/$ck_pid/environ | grep $var)
    var=$VAL ; export $var
done
[ $(ps -p `cat $OFFLINEIMAP_PID` -o pid --no-heading) ] \
  || nice -n 19 offlineimap -c $OFFLINEIMAP_CONF -u $UI -o &

console-kit を使ってない時には ck_pid の所を適宜弄ると良いかと.


2011/07/20

_ Wicd -> Network Manager

「固定 IP も設定できるよ!」と聞いたので, wicd から Network Manager に戻ってみた.

手元 laptop は

  • 家の無線LAN: DHCP
  • 大学内の居室および居室のある建物: 固定 IP + proxy
  • 大学内の他の建物: DHCP + proxy

なんて事になっていて, 以前書いた(mobile 環境での proxy の proxy)ように, 手元の proxy の設定も NetworkManager での接続時にきりかえられないモンかな, とかジタバタしてみた.

設定スクリプトは /etc/NetworkManager/dispatcher.d/ 以下に置く, というので イケルみたい. とりあえず

#!/bin/sh
# -*- mode: sh; coding: utf-8-unix; indent-tabs-mode: nil -*-
# 99_switch_squid_proxy
#
# Copyright(C) Youhei SASAKI All rights reserved.
# $Lastupdate: 2011/07/19 21:25:27$
#
# Author: Youhei SASAKI <uwabami@gfd-dennou.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Code:

INTERFACE=$1
STATUS=$2
cp /etc/squid/squid-direct.conf /etc/squid/squid.conf
pdnsd-ctl empty-cache math.kyoto-u.ac.jp
if [ "$STATUS" = "up" ] ; then
    case "$IP4_ADDRESS_0" in
        10.226.141.*|10.226.142.*|10.226.165.*)
            cp /etc/squid/squid-kusm.conf /etc/squid/squid.conf
            ;;
        *)
            ;;
    esac
fi
/etc/init.d/squid reload

なんて書いてみて, お茶濁す.

/etc/network/if-up.d とかに置いておく方が良いのかな? こっちもちゃんと見るのかしらん.


2011/07/27

_ Debian/Ruby Extras - PET overviews

メモ

やることは

  • Subversion -> Git
    • gem2deb スタイルへの移行
  • bug 潰し.

かな.

追加


2011/07/28

_ Introducing the Debian packaging tutorial

メモ.

これからパッケージ作成するなら,

  • source format 3.0
  • dh の使い方
  • License format Dep5
  • git-buildpackage(Git じゃなくても良いけど)

かな. 以前は CDBS を勧めていたけれど, いつのまにか dh 信徒になってしまった(笑).

そういや packaging-dev というメタパッケージができているな.

追記

やまねさんに「PDF のリンク切れてるぞ(゜Д゜)ゴルァ!!」とご指摘頂いたので修正.

...Orz


連絡先など
最近の日記
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|
Back to Top ▲