2010-02-26

各種スペルチェック用の辞書ファイルをくっつける

GNU Aspell と Firefox と TortoiseSVN のスペルチェック用ユーザ辞書をマージする Perl スクリプト。

ついでに NTEmacs の ddskk と skkime のユーザ辞書から abbrev モードで使う単語も抜き出してくっつけます。

Windows の ActivePerl 5.10.1 と Cygwin の Perl 5.10.1 で動くようにしてあります。

こんなの需要があるか分かりませんが、あのムカつく赤波アンダーラインが嫌いな人向けです。ファイルのバックアップとかしませんので必要なら手動でどぞ…。

Crystal HD Driver 3.1.8 + Flash 10.1 beta 3

Crystal HD Driver 3.1.8 と Flash 10.1 beta 3 が出ていたので再レビュー、、、しようかと思ったけど、なんか、別に変わってなかった。

YouTube もニコ動も CPU usage 80% ~ 100% 程度でかろうじて再生はできてるので DXVA 対応の恩恵を受けてはいるみたい。
ニコ動はコメントがあるのでともかく、YouTube のダウンロード済み映像音声のみの再生でもコマ落ちするのじゃまだまだ厳しいかなといったところ。
MPC-HC ではフル HD サイズの H.264 を CPU usage 10% ~ 50% 程度の余裕で再生できることを考えると、Flash ももうちょいいけるんじゃないかと思うんだが。

Acer Aspire One AOD250 + 2GB Memory, Windows 7 x86, Broadcom Crystal HD BCM970012 Driver 3.1.8, Adobe Flash Player 10.1 beta 3 Plugin, Firefox 3.6

Flash Player 10.1 beta 3 ActiveX + IE8 では UI の応答が悪過ぎて試す気になれなかった。再生自体は Plugin よりほんのすこし安定している印象。カクカクでだめげなのは一緒。

2010-02-25

FeedBurner から twitter に飛ばしてみるテスト

知らないうちに FeedBurner から twitter に飛ばせるようになっていたらしい。

feedburner - publicize - socialize

いつのまにこんな機能が…。

2010-02-10

ウィンドウ・バッファ関連のキーバインドを晒してみる

キーバインドを晒してみる。と言うのも…

を読んで、自分の .emacs を見てみたら、キーバインドのカスタマイズは、ほとんどがウィンドウとバッファ関連だったから。

愚直にほぼデフォルトのキーバインドをずっと使ってきたので、長いこと使ってるわりには他のベテランの人みたいな味わい?は無いです。最近になって他のかたの twitter や blog から勉強させてもらって、それで真似てみたのが多いかな。

なのでただ晒すだけ。普段から新しい情報を探している人には目新しいものは無いと思われます。

ぼくが普段使っているのは Windows の GUI の(-nw ではない) Emacs で、一つの Emacs を二つの縦長 80桁のフレームで、頻繁に縦に二分割しながら使ってます。分割するかどうかは window-full-height-p を見ます。

最大化(フルスクリーン)と横分割はあんまりしないです。いまどき 80桁へのこだわりも無いので、そのうち突然横幅を広げるかも知れないけど。

;; ~/.emacs.d/emacs23_nt.el -*- mode: emacs-lisp; coding: utf-8-dos -*-
;; $Id: emacs23_nt.el 635 2010-02-10 11:32:17Z yu-ji $

;;
;; key bindings
;;

;; C-h を backspace として使う。
(define-key global-map [(C h)] 'delete-backward-char)

;; (・ω・)モキュ
(define-key global-map [(M o)] 'moccur)

;; C-x M-f で recentf
(define-key ctl-x-map [(M f)] 'recentf-open-files)

;; C-x 4 M-f u-recentf-open-files-other-window
(defun u-recentf-open-files-other-window ()
  "Show a dialog to open a recent file in other window."
  (interactive)
  (if (window-full-height-p)
      (split-window-vertically))
  (other-window 1)
  (recentf-open-files))
(define-key ctl-x-4-map [(M f)] 'u-recentf-open-files-other-window)

;; C-x C-b で list-buffers のかわりに ibuffer
(define-key ctl-x-map [(C b)] 'ibuffer-other-window)

;; C-x 4 C-b 
(define-key ctl-x-4-map [(C b)] 'ibuffer)

;; C-aで「行頭」と「インデントを飛ばした行頭」を行き来する - ポロポロ
;; http://d.hatena.ne.jp/kitokitoki/20100131/p4
(defun u-move-beginning-of-line ()
  (interactive)
  (if (bolp)
      (back-to-indentation)    
      (beginning-of-line)))
(define-key global-map [(C a)] 'u-move-beginning-of-line)

;; ibuffer
;; Meadow/Emacs memo: バッファリストとバッファの切り替え
;; http://www.bookshelf.jp/soft/meadow_28.html
(define-ibuffer-column
 ;; ibuffer-formats に追加した文字
 coding
 ;; 一行目の文字
 (:name " coding ")
 ;; 以下に文字コードを返す関数を書く
 (if (coding-system-get buffer-file-coding-system 'mime-charset)
     (format " %s" (coding-system-get buffer-file-coding-system :mime-charset))
   " undefined"
   ))
(setq ibuffer-formats
      '((mark modified read-only " "
	      (name 18 18 :left :elide) " "
	      (size 6 -1 :right) " "
	      (mode 10 10 :left :elide) " "
	      (coding 10 10 :left :elide) " "
	      filename-and-process)
	(mark " " (name 16 -1) " " filename)))

;; 分割したウィンドウ間の移動
;; マイ.emacs探訪 - I am Cruby!
;; http://d.hatena.ne.jp/authorNari/20091225/1261667956
(define-key global-map [(C S n)] 'windmove-down)
(define-key global-map [(C S p)] 'windmove-up)
(define-key global-map [(C S b)] 'windmove-left)
(define-key global-map [(C S f)] 'windmove-right)

;; 分割したウィンドウの大きさを Ctrl-上下キーで変える
;; とりあえず暇だったし何となく始めたブログ
;; http://d.hatena.ne.jp/khiker/20100118/emacs_arrow
(define-key global-map [(C up)] 'shrink-window)
(define-key global-map [(C down)] 'enlarge-window)

;; 細かいことはキニシナイ。
(define-key global-map [(C left)]
  '(lambda (size) (interactive "p") (shrink-window size t)))
(define-key global-map [(C right)]
  '(lambda (size) (interactive "p") (enlarge-window size t)))

;; w3m
;; w3m-mode-hook で
;;(define-key w3m-mode-map (kbd "C-c C-q") 'w3m-delete-buffer)

;; twittering-mode
(define-key twittering-edit-mode-map (kbd "C-c C-q")
  'twittering-edit-cancel-status)

;; そろそろEmacsのウィンドウについて一言いっとくか
;; (rubikitch loves (Emacs Ruby CUI))
;; http://d.hatena.ne.jp/rubikitch/20100210/emacs
(defun u-other-window-or-split (arg)
  (interactive "p")
  (if (window-full-height-p)
      (split-window-vertically))
  (other-window arg))
(define-key global-map [(C t)] 'u-other-window-or-split)
(define-key global-map [(C S t)]
  '(lambda (arg) (interactive "p") (u-other-window-or-split (- arg))))

;; URL をブラウザで開く
;;(define-key ctl-x-map "m" 'browse-url-at-point)

;; App キーを Hyper に
;;(setq w32-pass-lwindow-to-system nil)
;;(setq w32-apps-modifier 'hyper)
;;(define-key global-map [(H f)] 'forward-char)

冒頭の rubikitchさんのも早速入れてみました。ちょっと手を加えて。
前述の理由で横分割しないのと、引き数取るのと、C-t で順方向、C-S-t か C-- C-t で逆方向。

手がこれを使うかどうかは分からないけど…。細々操作してると、二分割して「こっちのウィンドウでなにかしたい」ときと「あっちのウィンドウでなにかしたい」ときとありますよね。そういうとき従来のキーバインドを使うと思う。C-t を使いはじめたら、C-t 連打で使い分けるようになるかなぁ。

あと変数の設定は custom でやってるので、関係しそうなところだけ手抜きコピペ。

;; ~/.emacs.d/custom23_nt.el
;; $Id: custom23_nt.el 627 2010-02-03 21:36:35Z yu-ji $
(custom-set-variables
 '(cursor-in-non-selected-windows nil)
 '(custom-file "~/.emacs.d/custom23_nt.el")
 '(history-delete-duplicates t)
 '(ibuffer-mode-hook (quote ((lambda nil (ibuffer-switch-to-saved-filter-groups "u")))))
 '(ibuffer-saved-filter-groups (quote (("u" ("dired" (saved . "dired")) ("Development" (saved . "Development")) ("Text" (saved . "Text")) ("Mew" (saved . "Mew")) ("Twitter" (saved . "Twitter")) ("w3m" (saved . "w3m")) ("Custom" (saved . "Custom")) ("Help" (saved . "Help")) ("Emacs" (saved . "Emacs"))))))
 '(ibuffer-saved-filters (quote (("dired" ((or (mode . dired-mode) (mode . vc-dir-mode)))) ("Emacs" ((or (name . "\\*scratch\\*") (name . "\\*Messages\\*") (mode . Buffer-menu-mode) (mode . completion-list-mode) (mode . apropos-mode)))) ("Text" ((or (mode . texinfo-mode) (mode . org-mode) (mode . text-mode)))) ("Mew" ((or (mode . mew-summary-mode) (mode . mew-virtual-mode) (mode . mew-draft-mode) (mode . mew-message-mode)))) ("Development" ((or (mode . bat-generic-mode) (mode . c++-mode) (mode . c-mode) (mode . change-log-mode) (mode . conf-mode) (mode . conf-windows-mode) (mode . cperl-mode) (mode . css-mode) (mode . diff-mode) (mode . emacs-lisp-mode) (mode . html-mode) (mode . java-mode) (mode . js2-mode) (mode . lisp-mode) (mode . makefile-gmake-mode) (mode . makefile-mode) (mode . moccur-mode) (mode . nxml-mode) (mode . php-mode) (mode . reg-generic-mode) (mode . sgml-mode) (mode . sh-mode) (mode . sql-mode) (mode . vc-bzr-log-view-mode) (mode . vc-git-log-view-mode) (mode . vc-svn-log-view-mode) (mode . visual-basic-mode) (mode . xml-mode) (name . "\\*vc-diff\\*") (name . "\\*vc\\*") (name . "\\.\\(php\\|yml\\|cmd\\)")))) ("w3m" ((or (mode . w3m-mode)))) ("Twitter" ((or (mode . twittering-mode) (name . "^\\*Twit-")))) ("Custom" ((or (mode . Custom-mode)))) ("Help" ((or (mode . help-mode) (mode . Man-mode) (mode . Info-mode)))))))
 '(iswitchb-mode t)
 '(recentf-exclude (quote ("^c:/Users/yu-ji/AppData/Local/Temp" "^c:/Users/yu-ji/home/work/ExtractedFiles/" "^c:/Users/yu-ji/home/Mail/draft/" "^c:/Users/yu-ji/home/.mozilla/firefox/firefox35/itsalltext/")))
 '(recentf-max-saved-items 40)
 '(recentf-mode t)
 '(recentf-save-file "~/.emacs.d/.recentf")
 '(save-place t nil (saveplace))
 '(save-place-file "~/.emacs.d/.emacs-places")
 '(save-place-limit 100)
 '(savehist-mode t nil (savehist))
 '(shift-select-mode nil)
 '(uniquify-buffer-name-style (quote post-forward) nil (uniquify))
 '(w3m-mode-hook (quote ((lambda nil (define-key w3m-mode-map (kbd "C-c C-q") (quote w3m-delete-buffer))))))
 '(windmove-wrap-around t))

見辛いな(-ω-;)

C-S-n, C-S-p, C-S-f, C-S-b は transient-mark-mode と相性悪いめです。

2010-02-06

ActiveState Perl Dev Kit 8.2 / ActivePerl 5.10.1 Build 1007 released

ActiveState の Perl Dev Kit(PDK) 8.2.0 と ActivePerl 5.10.1.1007、ついでに 5.8.9.827 がリリースされました。

ダウンロードのディレクトリ構造が掃除されて、ActivePerl は古いリリースのファイルがダウンロードできなくなってる。いっぱいあったからなぁ。古いファイル捨てられなくなっちゃったな。ActivePerl 5.6 系はもう完全に終了なのかしら。

ActivePerl 5.10 はセキュリティ修正があります。5.8 は cpan モジュールのアップデートくらいかな。

PDK 8.2 は、UTF-8 の取り扱いが腐ってて日本語圏では PerlApp が実質使い物にならなかった問題が修正されています。

同じテストプログラムが PDK 8.2 では正常に動くようになっています。Windows でも Linux でも。

あとは、Windows 7 と x64 Windows ではまだちょこちょこ問題がある様子ですね。それほど問題にはならないかな。たぶん。

2010-02-01

AOD250 に Crystal HD 載せてみた

Acer Aspire One D250 (AOD250) に Broadcom Crystal HD BCM970012 を載せてみた。(あいかわらず酷い写真だけど気にしない)

CrystalHD_BCM970012

購入はヤフオクで。ネジを 2種類つけてくれたので、小さいほうのネジで取り付けました。きちんと差し込んでネジ締めて、Windows 起動してドライバを入れるだけ。

Broadcom CrystalHD Video Decoder

ドライバは 32bit / 64bit 両方あって、Windows 7 Ultimate x86 に 3.1.0 の 32bit 版を入れました。

Atom N280, 945GSE Express (GMA950) の AOD250 では、これまで DVD の SD 画質でどうにかやっと、フル HD とか夢でも再生は無理な状況でした。まぁ、そもそも画面が 1024×600 しか無いので、外のモニタに出さないとアレなんだけど。

Playing FullHD with MPC-HC
涼しい顔してるだろ。フル HD 再生中なんだぜ、これ。

H.264 1920×1080 の動画を MPC-HC (ちょっと古いやつ 1.3.1449) で再生させたところです。なんか楽勝です…。だいたい 50% を上回らない感じ。

エンドロールみたいな文字がスクロールするのもモタつかないし、動きの激しい場面でもコマ落ちしてるように見えないし、ちょっとすごいです。

あと、Crystal HD と DXVA 対応の Flash で YouTube がワーイという触れ込みだったので、Flash 10.1 beta 2 を入れて試してみたんだけど、これはぜんぜんダメげでした。IE8 + Flash ActiveX, Firefox 3.6 + Flash plug-in どちらも。adbsn

ま、Flash は現時点ではβ版だし期待してなかったのでさておき、ふつうの動画は映像にもよるけど 10% ~ 50% くらいの CPU usage でいけちゃうみたい。

ただ、動画再生していなくてもわりとぬくい、再生すると熱いです。すのこタン。必須と思われます。AOD250 はファンがあるからマシだけど、ファンレスのマシンは厳しそう。

結論として、いい買い物だった、かな。
でも、もうこれ以上 AOD250 にはお金かけないぞっ!w