log

Logicool M510 を買った


現状使ってる有線マウスの線が邪魔に感じ始めてきたので、Logicool の M510 を買った。




今日届いたので少し使ってみたけど、電池の分なのか少し重く感じる。外してみたらそれほど気にならないし、工夫すればどうにかなるのかな。


ちなみに今まで使ってたのは ELECOM の M-M4URBK。安物だけど軽いし持ちやすいしそこそこ満足してた。そもそもマウスをそんなに使わないってのもあるかもしれないけど。





これで少しでも有線のごちゃごちゃが解消されるとうれしい。

Emacs + Org-mode + howm + MobileOrg + Dropbox でテキスト管理環境を構築した


元々 Org-mode でメモやTODO管理してたけど、howm と MobileOrg 設定したらかなり快適になった。



全体の構成はこんな感じ。



https://cacoo.com/diagrams/ZlDcDKihBDjtqHko.png



ちょい前までは Evernote 使ってたんだけど、アウトライナーとして Org-mode が便利すぎるので結局こういう構成になってしまった。



Emacs と Mac のクリップボードを共有する


コピペが不便なので、いつもの如く調べてみたら設定できた。



クリップボード共有は 若き日の過ち: キルリングとクリップボードの共有(とりあえずMac) に書いてある通りに設定した。



ただ、現状の init.el は Linux と Mac 環境で共有してるので、できれば両方で使える状態に保ちたい。



いい方法無いかなーと調べてたらひとつの .emacs で設定を書き分けるための Tips。 - 日々、とんは語る。にて環境を判定する方法が書かれてたので、それを組み合わせた結果うまくいった。



;; system-type predicates
;; from http://d.hatena.ne.jp/tomoya/20090807/1249601308
(setq darwin-p (eq system-type 'darwin)
linux-p (eq system-type 'gnu/linux)
carbon-p (eq system-type 'mac)
meadow-p (featurep 'meadow))

; Emacs と Mac のクリップボード共有
; from http://hakurei-shain.blogspot.com/2010/05/mac.html
(defun copy-from-osx ()
(shell-command-to-string "pbpaste"))

(defun paste-to-osx (text &optional push)
(let *1
(let (process-send-string proc text)
(process-send-eof proc))))

(if (or darwin-p carbon-p)
(setq interprogram-cut-function 'paste-to-osx)
(setq interprogram-paste-function 'copy-from-osx">*2



これで Emacs とその他との連携が楽になる。

*1:process-connection-type nil

*2:proc (start-process "pbcopy" "*Messages*" "pbcopy"))) (process-send-string proc text) (process-send-eof proc)))) (if (or darwin-p carbon-p) (setq interprogram-cut-function 'paste-to-osx) (setq interprogram-paste-function 'copy-from-osx

Emacs から WordPress に投稿する方法がわかった

いろいろ試してやっとわかった。M-x weblogger-start-entry でモードに入った後に、もう一度 M-x weblogger-start-entry しないといけない。

あと、日付は 20111120T190000+0900 って感じで後ろに +0900 を付けると正しく設定される。

これで多少は楽に投稿できるかな。

Emacs から WordPress に投稿しようとして失敗した話


「投稿記事書くときにHTML書くのだるいし Emacs から投稿できないかな」ってことで調べてみた。



どうやら EmacsからWordPressへwp-emacsで投稿する。 - redtower's memo の通りにやればうまくいきそうだ、ってことで試してみた。



とりあえずファイルをダウンロードする。


$ mkdir ~/.emacs.d/elisp/wp-emacs
$ cd ~/.emacs.d/elisp/wp-emacs
$ wget http://launchpad.net/weblogger-el/trunk/1.4.5/+download/weblogger.el
$ wget http://www.emacswiki.org/emacs/xml-rpc.el



init.el を編集する。
~/.emacs.d/init.el


; wp-emacs (weblogger)
(add-to-list 'load-path "~/.emacs.d/elisp/wp-emacs")
(require 'xml-rpc)
(require 'weblogger)
(global-set-key "\C-c\C-w" 'weblogger-start-entry) ; weblogger 起動 (C-c C-w)

(defun my-weblogger-send-entry (&optional arg)
(interactive)
(save-buffer)
(set-buffer-modified-p t)
(weblogger-save-entry nil arg)
(my-weblogger-quit))

(defun my-weblogger-quit ()
(interactive)
(when (y-or-n-p "Do you want to quit weblogger-entry? ")
(bury-buffer)))

(add-hook 'weblogger-start-edit-entry-hook
'(lambda ()
(define-key weblogger-entry-mode-map (kbd "C-x C-s") nil)
(define-key weblogger-entry-mode-map (kbd "C-c n") 'weblogger-next-entry)
(define-key weblogger-entry-mode-map (kbd "C-c p") 'weblogger-prev-entry)
(define-key weblogger-entry-mode-map (kbd "C-c c") 'weblogger-start-entry)
(define-key weblogger-entry-mode-map (kbd "C-c C-c") 'my-weblogger-send-entry)
(define-key weblogger-entry-mode-map (kbd "C-c C-k") 'my-weblogger-quit)
;(yes/minor-mode t)
(auto-fill-mode -1)))



一旦 Emacs を立ち上げ、初期設定をする。



M-x weblogger-setup-weblog
http://yono05.wordpress.com/xmlrpc.php



ユーザ名とパスワードを聞かれるので、それぞれ入力する。



そうすると、init.el に設定内容が追記される。元記事にもあるようにパスワードの部分を修正する。
'(weblogger-config-alist (quote (("default" "http://yono05.wordpress.com/xmlrpc.php" "yono05" nil "1")))))



これで使えるようになった、ってことで C-c C-w で編集画面を開いて、適当に何か書いて C-c C-c で送信してみる。



が、Invalid date とかエラーが出て送信されない。



どうやら自動的に挿入される日付の書式に対応してない?っぽくて、yyyymmddThhmmss の書式に書き換えるとうまくいくらしい。



というわけで、試しに以下な感じで送ってみた。



Subject: テスト送信
Keywords:
Date: 20111120T182403
From: yono05
Newsgroup: Engineering My Life
–text follows this line--
これはテスト送信です。



そうすると、何故か最新の投稿に上書きされて上記の内容が保存された……。
泣きながら投稿を書きなおし、改めてやり直してみたものの、やっぱり上書きされる。



やり方が間違ってるのかもしれないけど、どうにもやってられないので別の方向を考えることにした。
要するに素のHTMLを書かずに、Org-mode から変換すればいいわけで。だったら、Org-mode からエクスポートしたHTMLを貼りつけてみたらどうか?ということで試してみた。
やってみた結論としては、エクスポートされたHTMLの本文部分のみを貼りつければ特に問題ない感じ。



というわけで、しばしの運用としては


  1. howm で新しくファイルを作る

  2. Org-mode 形式で内容を書いていく

  3. 終わったら M-x org-export-as-html-to-buffer でバッファに書き出す

  4. /tmp/hoge.html 辺りに保存する

  5. cat /tmp/hoge.html | pbcopy でクリップボードにコピー

  6. WordPress の新規投稿画面を開いて貼り付ける

こんな感じ。



直接投稿できたらもうちょい楽だけど、カテゴリの設定ができないのでどっちみち管理画面は開かないといけないらしい。残念。

ちなみに、この投稿自体も Org-mode から生成された HTML を貼りつけたもの。

org-s5 で Org-mode 形式のテキストからスライドを生成する

スライドを作るときに PowerPoint やら Keynote やら立ち上げるのが面倒なのでテキストからスライドを生成するツールを使っている。
最近 Emacs 環境を整えてるので、スライドも Emacs 経由で(できれば Org-mode から)生成できないか調べてみた。



結果、org-s5 を使うのがよさげだった。前も同名のレポジトリがあったけど、それとは別物らしい。



とりあえずレポジトリを git clone する。


$ git clone git://github.com/eschulte/org-S5.git
$ mv org-s5 ~/.emacs.d/elisp/



init.el に設定を追記する。


; org-s5
(add-to-list 'load-path "~/.emacs.d/elisp/org-s5")
(load-file "~/.emacs.d/elisp/org-s5/org-export-as-s5.el")



スライドを生成するためのファイルを作る。
~/Dropbox/org/test-org-s5.org



ファイルと同じディレクトリに org-s5 内の ui ディレクトリを配置する。


$ cp -r ~/.emacs.d/elisp/org-s5/ui ~/Dropbox/org/



Emacs 上でファイル(test-org-s5.org)を開いた状態で以下のコマンドを実行するとスライドが生成される。



M-x org-export-as-s5



デフォルトの状態だとテーマが微妙なので変更する。
~/.emacs.d/init.el


; org-s5
(add-to-list 'load-path "~/.emacs.d/elisp/org-s5")
(load-file "~/.emacs.d/elisp/org-s5/org-export-as-s5.el")
(setq org-s5-theme "railscast") ; ← 追加



スライド上部に常に出てくるタイトルが邪魔なのでCSSを変更する。
~/Dropbox/org/ui/railscast/pretty.css


h1.title {
visibility: hidden;
}



シンタックスハイライトが微妙なのでカスタマイズする。
そのために、生成時のCSSの扱いを変更する。
~/.emacs.d/init.el


; org-s5
(setq org-export-htmlize-output-type 'css) ; ← 追加
(add-to-list 'load-path "~/.emacs.d/elisp/org-s5")
(load-file "~/.emacs.d/elisp/org-s5/org-export-as-s5.el")
(setq org-s5-theme "railscast")



カスタマイズ用のCSSを作成する。
~/Dropbox/org/ui/railscast/htmlize.css


pre.src {
background-color: #ffffff;
color: #000000;
}

span.org-keyword {
color: #000000;
font-weight: bold;
}

span.org-string {
color: #8b0000;
}

span.org-function-name {
color: #000080;
}

span.org-type {
color: #004000
}

span.org-comment {
color: #888888;
}



作成したCSSを読み込むように修正する。
~/Dropbox/org/ui/railscast/slides.css


@import url(s5-core.css); /* required to make the slide show run at all */
@import url(framing.css); /* sets basic placement and size of slide components */
@import url(pretty.css); /* stuff that makes the slides look better than blah */
@import url(htmlize.css); /* 追加 */



これでとりあえず完了。
ショートカットキー追加したりしたいけどまた後で。

ブログまとめ

なんかブログが増殖しすぎて収集つかなくなってきたのでまとめる。

どうしてこうなった。

 

略歴まとめると、元々 Blogger で書いてたけどすぐにはてなに移行して、一時的に Blogger に戻ったけどやっぱりはてなに帰って、そうこうしてるうちに静的ブログ生成ツールが気になりだして pelican で英語縛りのブログを始めたけどすぐに頓挫して、ブログ自体しばらく書かない時期が続いた後にとあるテーマにひとめぼれして WordPress を使い始めて今はそこがメインになってる。こいつ死ねばいいのに。