cld4-epw-20150508 is released
![general general](http://ikazuhiro.s206.xrea.com/images/topics/topic_news.gif)
cdae2-epwを作成されたクサガメさんが、Cambridge Learner's Dictionary 4th Editionに付属のCD-ROMの内容を、EBStudioで変換できるようにするためのPerlスクリプトを公開されています。
メニュー |
ようこそ! Kazuhiro's blog
月曜日, 2月 17 2025 @ 04:38 午後 JST cld4-epw-20150508 is released![]() cdae2-epwを作成されたクサガメさんが、Cambridge Learner's Dictionary 4th Editionに付属のCD-ROMの内容を、EBStudioで変換できるようにするためのPerlスクリプトを公開されています。 Re: wanderlust で GMail 風、新着レス順にソート![]() 元ネタはMatsubaraさんの記事とfumiさんの記事および2ちゃんねるから。 エラーの原因は最初の(cdr x)が(cddr x)の誤りであるからだったような気がしますが、詳細は忘れました。fletを取り除いたり、速度も(多分)速くしたものを公開しておきます。 condition-caseは二つともいらない気がしますが、wl-summary-overview-entity-compare-by-dateがそうなっているので合わせておきました。
(defun wl-summary-overview-entity-compare-by-reply-date (a b)
"Compare entity A and B by latest date of replies."
(let ((fx
#'(lambda (x)
(let* ((number (elmo-message-entity-number x))
(list (cons number
(wl-thread-entity-get-descendant
(wl-thread-get-entity number))))
max time)
(while list
(when (condition-case nil
(elmo-time-less-p
max
(setq time
(elmo-message-entity-field
(elmo-message-entity
wl-summary-buffer-elmo-folder (car list))
'date)))
(error nil))
(setq max time))
(setq list (cdr list)))
max))))
(condition-case nil
(elmo-time-less-p (funcall fx a) (funcall fx b))
(error nil))))
(add-to-list 'wl-summary-sort-specs 'reply-date)
尚、実用上はメッセージの時刻をわざわざ比較せずともメッセージ番号の比較で十分だと思いますので、下記のコードを利用して、reply-numberでソートするのが速度的には有利です。
(defun wl-summary-overview-entity-compare-by-reply-number (a b)
"Compare entity A and B by latest number of replies."
(let ((fx #'(lambda (x)
(setq x (elmo-message-entity-number x))
(apply 'max x (wl-thread-entity-get-descendant
(wl-thread-get-entity x))))))
(< (funcall fx a) (funcall fx b))))
(add-to-list 'wl-summary-sort-specs 'reply-number)
タグ:Wanderlust Emacs ELECOM USB 3.0対応メモリーリーダライタの罠![]() がんばっておもしろおかしく書こうかと思いましたが10秒で挫折したので結論だけ。 ![]() ELECOMのUSB 3.0対応メモリーリーダライタはコンパクトフラッシュ Type IIには対応していません。 私が買ったMR3-C002のパッケージの表には対応メディアにMicro Driveと書かれ、パッケージ裏の対応メディアの一覧やニュースリリースにもコンパクトフラッシュ (Type II) とかマイクロドライブなども記載されていますが、開口部の厚みが足りないのでType IIのカードは物理的にささりません。 WEBサイトで公表している対応表にだけは正しい情報が記載されていますが、製品紹介のページやオンラインショップの製品情報などは訂正されていません。 ちなみに、約1年後に発表された新製品もType IIカードが刺さらない (JPG)のは明らかですが、対応しているとニュースリリースには書かれています。 (記載内容はこの記事を書いた時点でのものです。) (追記) 画像を添付しました。ちなみに、CF Type IIの厚みは5mmです。 (追記その2) 2013/11/28付けの対応表 (pdf) ではCF Type IIとマイクロドライブは対応していることになっているので、新製品の発表時には本当に気づいていなかったのかもしれません。 (追記その3 2014/02/19) MR3-A006については家電量販店ではパッケージに対応メディアの一覧を修正するシールが貼られているのを確認しました。他の製品については製品自体が無かったので不明です。 また、オンラインショップの製品紹介は修正されていません。 SEMI-EPGで自動verifyを抑制する![]() SEMI-EPGで、鍵をauto retrieveされると困る人がいるようなので。 直接の解では無いですが、SEMIと同様に、自動でverifyを行わないようにさせる設定です。
(eval-after-load "semi-setup"
'(eval-after-load "mime-view"
'(when mime-setup-enable-epg
(mime-add-condition
'preview
'((type . application)
(subtype . pgp-signature)
(body . invisible)
(body-presentation-method . mime-preview-application/*-signature))
'with-default "mime-pgp"))))
(2014/01/31 追記) 手元のものではmime-pgp-verify-when-previewをnilにすることでSEMIと同様の動作になるようにしました。 タグ: SEMI-EPG Wanderlust FLIMの新機能![]() 私的に使用しているFLIMの改造版がwanderlust/flim@githubに取り込まれたので、新機能について簡単に解説します。 built-in GnuTLSによるSMTPでのSTARTTLS接続のサポートEmacs24以降ではGnuTLSライブラリの組み込みがサポートされていますが、これが有効になっている場合にはSMTPでのSTARTTLS接続に利用されます。 この機能を明示的に無効にしたい場合は変数smtp-use-gnutlsをnilに設定してください。 RFC2231準拠なエンコーダの取り込みflim-1_14-rfc2231-encoderブランチの変更をマージし、非アスキー文字からなる添付ファイル名はRFC2231に準拠した形ででエンコードするようにしました。 LIMITっぽいエンコーダの実装非アスキー文字からなる添付ファイル名に対してOutlookのようなエンコードを行うエンコーダを実装したのかLIMITから取り込んだのかすっかり忘れてしまいましたが、とにかく入ってます。 ただし、通常は有効にされていません。 例えば以下の様にmime-header-encode-method-alistの値を設定してください。
(setq mime-header-encode-method-alist
'((eword-encode-Content-Disposition-field-body-broken-mime
Content-Disposition)
(eword-encode-Content-Type-field-body-broken-mime Content-Type)
(eword-encode-address-list
Reply-To From Sender Resent-Reply-To Resent-From
Resent-Sender To Resent-To Cc Resent-Cc Bcc Resent-Bcc
Dcc)
(eword-encode-in-reply-to In-Reply-To)
(eword-encode-structured-field-body Mime-Version User-Agent)
(eword-encode-unstructured-field-body)))
応用・注意点
タグ:Wanderlust FLIM ldoce5-fpw-20120824 is released![]() 音声・画像などに対応したldoce5-fpwの改造版を隆さんが公開されています。 phrasal verbも検索できるようになっているそうです。 私が公開しているoald7-fpwにはその機能はありませんが、私以外に使用者がいるのか不明なoald7-fuwではphrasal verbやidiomも条件検索から検索できるようになっています。 oald7-fpwに反映されていないのは自分で使っていないので面倒になっただけだったと思いますが、記憶に自信がありません。 最近はWanderlust周りをいじっていることが多いですが、たまには辞書関連の話題も書いておきます。 サマリバッファの文字化け (Wanderlustの)![]() MLに投稿されていた、サマリバッファのキャッシュが正しく保存されない問題についてですが、WanderlustのMLが早めに終了してしまったようなので、 (だいたい) 自分で調べた内容を記録しておきます。 encode-coding-regionの動作がおかしいというところまでが前提です。 src/coding.cにあるCODING_DECODE_CHARマクロのコメントには以下のように書かれています。
/* This wrapper macro is used to preserve validity of pointers into
buffer text across calls to decode_char, which could cause
relocation of buffers if it loads a charset map, because loading a
charset map allocates large structures. */
これによると、charset mapが読み込まれると、bufferのrelocationが生じる可能性があります。 このコメントにはdecode_charについてのみ書かれていますが、encode_charや、char_charsetについてもcharset mapが読み込まれる、すなわち、bufferのrelocationが生じる可能性があります。 しかし、エンコーダ (encode_coding_iso_2022等) はそれを考慮していない為、実際にrelocationが生じると不適切な場所へエンコードした結果を書き込んでしまいます。 このバグを持つ Emacs に関しては、
(defadvice encode-coding-region
(before avoid-relocation (start end coding) activate)
(encode-coding-string (buffer-substring start end) coding))
等のようにして、encode-coding-region内でcharset mapが読み込まれないようにすれば回避できます。 Emacsに対するパッチも一応投稿していますが、反応が無いのでどうなるのかよく分かりません。 (追記) WanderlustのMLは広瀬さんが引き継がれて再開しました。 新しい投稿アドレスはwl@ml.gentei.orgです。 (追記その2) encode-coding-regionのバグはtrunkで修正されました。 半田さんありがとうございます。 タグ:Wanderlust opensslの代わりにgnutls-cliを使用する (Wanderlustで)![]() 色々あって、gnutls-cliをopensslの代わりにも利用することにしました。 元々opensslを利用しているところは私が把握している限りでは2つあって、ひとつはSMTP over SSL/TLSでメールを送信する時で、もうひとつはIMAP4/NNTP/POP3 over SSL/TLSでフォルダにアクセスする時です。 まず、open-tls-stream関数が接続に失敗してもエラーにならない為、失敗した時にエラーになるようなラッパーを用意します。 こうしておかないと、(少なくともフォルダへのアクセスの際に) 接続に失敗すると永遠にリトライし続けます。 adviceでやってもいいような気はしますが、一応元の関数の挙動はそのままにしておきます。
(defun open-tls-stream-with-error (name buffer host port)
"Wrapper function for `open-tls-stream'. This raises error when failed to connect."
(let ((result (open-tls-stream name buffer host port)))
(if (and (processp result)
(eq (process-status result) 'run))
result
;; raise error when failed.
(error "Opening tls stream is failed"))))
次に、SMTP over SSL/TLSの設定です。 Wanderlustへはきれいにadviceをかけにくいような気がしたので、FLIMにadviceをかけています。
;; Use tls.el for smtp over SSL/TLS
(autoload 'open-tls-stream "tls")
(defadvice smtp-send-buffer (around use-tls-hack activate)
(let ((smtp-open-connection-function
(if (eq smtp-open-connection-function 'open-ssl-stream)
'open-tls-stream-with-error
smtp-open-connection-function)))
ad-do-it))
最後に、フォルダアクセス用の設定です。 こちらだけを使う場合は、SMTP向けの部分にあるautoloadは不要なはずです。 基本的にはすがわらさんの設定と変わりないですが、前述の通り、open-tls-streamを直接使わない方がよいと思います。
;; Use tls.el for over SSL/TLS folder access
(eval-after-load "elmo-vars"
'(set-alist 'elmo-network-stream-type-alist "!"
'(ssl tls open-tls-stream-with-error)))
ちなみに、Emacs24の場合は、可能ならopen-gnutls-streamを使うといいかもしれませんが、確認はしていません。 タグ:Wanderlust starttlsの代わりにgnutls-cliを使用する (Wanderlustで)![]() 最近、Cygwinを1.7に上げたのですが、Cygwin 1.7だとstarttlsがうまくビルドできない (killでシグナルが送れないバイナリになる) ようなので、後ろ向きに回避してGnuTLSのgnutls-cliを利用するようにしてみました。
(setq starttls-negotiation-by-kill-program t
starttls-kill-program "/path/to/cygwin/bin/kill.exe"
starttls-gnutls-program "/path/to/cygwin/bin/gnutls-cli.exe"
starttls-use-gnutls t)
(defadvice starttls-negotiate (around use-external-kill activate)
(if (and (boundp 'starttls-negotiation-by-kill-program)
starttls-negotiation-by-kill-program)
(call-process starttls-kill-program nil nil nil
"-ALRM" (format "%d" (process-id process)))
ad-do-it))
starttlsに付属のstarttls.elではなく、Gnus由来の (Emacsに付属している) starttls.elを利用しています。NTEmacs + Cygwinのgnutls-cliの組み合わせの場合、外部プロセスを利用したシグナルの送信を行う必要があるので、その部分はstarttlsに付属のstarttls.elと同等になるようにしています。 (2011/05/22 追記) adviceを利用したものに変更しました。 タグ:Wanderlust |
新着情報記事-コメント 最近 2 日-トラックバック 最近 2 日- |
Copyright © 2025 Kazuhiro's blog 本ページのすべての商標と著作権はそれぞれの所有者に帰属します。 |
Powered By Geeklog ページ作成時間: 0.05 秒 |