2007年07月10日

ブログ引越し検討中

コメントスパムがあまりにひどいので、ブログサービスの引越しを考えています。試験的に以下2つを開設して書いています。



/etc/init.d/knagano restart http://d.hatena.ne.jp/knagano/

技術話。このブログの「はじさらし」ぶぶんに相当

knagano.vox.com

よた話。このブログの「ひとりごと」ぶぶんに相当


今後ともよろしくお願い申し上げます。


posted by knagano at 22:09| Comment(3) | TrackBack(0) | ひとりごと | このブログの読者になる | 更新情報をチェックする

2007年07月03日

ThinkPad X31 CPU ファン交換

ThinkPad X31 の CPU ファンが壊れて、異音がするようになったので、交換した。

http://www.noteparts.com/shop/ で、早朝に注文して、次の日にはもう交換部品が来た。X31 保守マニュアル を見ながらキーボードの下のファンを交換、キーボードコネクタを繋いで電源を入れてみると至極快調。ファン開封して5分で交換完了。つくづく ThinkPad はメンテがラクだ。

続きを読む
posted by knagano at 12:21| Comment(0) | TrackBack(0) | はじさらし | このブログの読者になる | 更新情報をチェックする

2007年05月29日

minibuf-isearch 1.7

http://www.sodan.org/~knagano/emacs/minibuf-isearch/

;; - New feature 'shrink-completion-window,' shrinks the completion
;; window to exactly fit its contents. (enabled by default)
;; Patch by Per Nordlow and Shirai-san.

posted by knagano at 08:00| Comment(1) | TrackBack(0) | はじさらし | このブログの読者になる | 更新情報をチェックする

2006年02月05日

C3 Ezra is NOT the i686

「説明は後だ、とりあえずこいつを見ろ!」ってわけにも、いかないのかな。
というより entry title が全てです。"C3 Ezra cmov" あたりで検索すると、事情は分かっていただけると思います。("config.guess" あたりも、必要かな。) どうして kernel に手を加えなければならないのかというと、uname が uname(2) だからです。


diff -u linux-2.4.32/arch/i386/kernel/setup.c.ORIGINAL linux-2.4.32/arch/i386/kernel/setup.c
--- linux-2.4.32/arch/i386/kernel/setup.c.ORIGINAL Sun Feb 5 14:18:30 2006
+++ linux-2.4.32/arch/i386/kernel/setup.c Sun Feb 5 13:34:25 2006
@@ -2052,6 +2052,10 @@
set_bit(X86_FEATURE_CX8, c->x86_capability);
set_bit(X86_FEATURE_3DNOW, c->x86_capability);

+/*knagano: C3 Ezra is NOT the i686 */
+ c->x86 = 5;

/* fall through */

case 9: /* Nehemiah */


まあ、「もっとましな石(と板)買えよ」「とっとと kernel 2.6 に乗り換えろよ」という話ですね。
posted by knagano at 14:23| Comment(18) | TrackBack(0) | はじさらし | このブログの読者になる | 更新情報をチェックする

2006年02月02日

やっぱり fj man になれない

なんというかこういう恥ずかしいことは是非書いて公開しておくべきだという気がするので更新する。
いわゆる本番リリースの直前に、設定ファイルの diff を取ってみたかったのだが、データセンタに持ってきた今回リリースぶんのファイルと前回リリースぶんのそれとの改行コードが違っていて、単純には満足な diff 出力が得られなかった。(設定ファイルはたまたま Java の properties file であったので、改行コードの違いはアプリケーションの挙動には関係がなかった。) \n へと normalize しようと考えた。だが普段こういうときに使っている nkf も qkc も、Emacs (set-buffer-file-coding-system) も vim (:set fileformat=unix)もなかったので、とっさに Perl の one-liner でやろうとした。したのだが、perl -ip -e 's/\r?\n/\n/' などなどと書いても、うまくいかなかった。時間切れになったので目 diff した。帰りの地下鉄で、-ip は -pi でなければならないことを思い出した。急に寒くなって、コートのボタンを全部とめた。
しかしこんなのは恥でもなんでもなかった。本当にやばいのは diff の -b を試さなかったことだ。与えられた diff が GNU やら BSD やらのものではなく、man diff も得られず、よって switches に自信が持てなかったからだったとはいえ、だめもとでやってみるべきだった。さっきから寒気が止まらねえ。鼻水も出る。病院行った。
posted by knagano at 12:25| Comment(16) | TrackBack(0) | ひとりごと | このブログの読者になる | 更新情報をチェックする

2005年12月08日

(wav's) RIFF format

WAVE PCM soundfile format 図解RIFF の spec。Perl なら File::Format::RIFF をつかいます。

ずううっと昔に動画をしこしこ作っていた時に、MS MPEG-4 でつくった動画に mp3 音声をくっつけたいとき、音声は「wav 形式 mp3」で用意しなければならない、なんて記述を見付けて、なんだこれ、と思っていました。RIFF という単語も確かに見ました。
riffmci.rtf には FOURCC という単語も入っています。いわゆる wav というのも、コンテナなんですね。MP4 や AVI や Ogg や OGM や Matroska みたいな。で、それには raw PCM が入っているのがふつうである、と。(Ogg に Vorbis が入っているのがふつうである、みたいな。?)
posted by knagano at 08:00| Comment(14) | TrackBack(1) | はじさらし | このブログの読者になる | 更新情報をチェックする

2005年12月07日

faad2 stdout problem

以下の投稿をしたんだけれど wav の RIFF 形式(?) に触れるのを忘れていたよ!
fseek するのはどうやら RIFF 形式に wrap-up するためらしくて、-f 2 というのはそれをやらないようにする、という switch です。
続きを読む
posted by knagano at 22:02| Comment(0) | TrackBack(0) | はじさらし | このブログの読者になる | 更新情報をチェックする

2005年12月02日

b2con にいってきたよ

出席者の年齢層が shibuya.pm に比べてなんだか高めでした。
Binary <2.0 でよければ、僕も Emacs の unexec のしくみくらいならしゃべれたかも! いまさら思いついちゃったよ!ちきしょう!
いまから昔のメモを読み返してみます、何か出てくるといいな
posted by knagano at 22:43| Comment(1) | TrackBack(0) | ひとりごと | このブログの読者になる | 更新情報をチェックする

2005年11月05日

factory-method.el based on luna.el

factory-method.el はここに貼ります。僕は何がしたかったのだろう。

(require 'luna)

;;; entry point; eval this
(defun factory-method-sample ()
(let* ((creator1 (luna-make-entity 'concrete-creator-a))
(creator2 (luna-make-entity 'concrete-creator-b))
(product1 (creator/factory-method creator1))
(product2 (creator/factory-method creator2))
(creator3 (luna-make-entity 'concrete-creator-c
:product-a product1
:product-b product2))
(product3 (creator/factory-method creator3)))
(message "++ start")
(product/my-name-is product1)
(product/my-name-is product2)
(product/my-name-is product3)
(message "++ end")))

;;; abstract class product
(luna-define-class product () ())
(luna-define-generic product/my-name-is (product))
(luna-define-method product/my-name-is ((this product))
(signal 'abstract-method "abstract method"))

;;; concrete product a
(luna-define-class concrete-product-a (product) ())
(luna-define-method product/my-name-is ((this concrete-product-a))
(message "NAGANO"))

;;; concrete product b
(luna-define-class concrete-product-b (product) ())
(luna-define-method product/my-name-is ((this concrete-product-b))
(message "KEIICHIRO"))

;;; concrete product c
(luna-define-class concrete-product-c (product) (product-a product-b))
(luna-define-internal-accessors 'concrete-product-c)
(luna-define-method product/my-name-is ((this concrete-product-c))
(message "by concrete-product-c")
(product/my-name-is (concrete-product-c-product-a-internal this))
(product/my-name-is (concrete-product-c-product-b-internal this)))

;;; abstract class creator
(luna-define-class creator () ())
(luna-define-generic creator/factory-method (creator))
(luna-define-method creator/factory-method ((this creator))
(signal 'anstract-method "abstract method called"))

;;; concrete creator a
(luna-define-class concrete-creator-a (creator) ())
(luna-define-method creator/factory-method ((this concrete-creator-a))
(luna-make-entity 'concrete-product-a))

;;; concrete creator b
(luna-define-class concrete-creator-b (creator) ())
(luna-define-method creator/factory-method ((this concrete-creator-b))
(luna-make-entity 'concrete-product-b))

;;; concrete creator c
(luna-define-class concrete-creator-c (creator) (product-a product-b))
(luna-define-internal-accessors 'concrete-creator-c)
(luna-define-method creator/factory-method ((this concrete-creator-c))
(luna-make-entity 'concrete-product-c
:product-a (concrete-creator-c-product-a-internal this)
:product-b (concrete-creator-c-product-b-internal this)))

posted by knagano at 01:35| Comment(13) | TrackBack(0) | はじさらし | このブログの読者になる | 更新情報をチェックする

挫折集(羞恥プレイ)

programming/Perl

* Crypt::Memfrob の次は、String::Strfry を目論んでました! 虚しくなってやめました。そもそも memfrob からして恥ずかしい。

* SEMI (EMY) に入っていた、akr さんの postpet pet-file v2 decoder を Decode::PostPet として移植開始するも、根性なしのため飽きる。(どなたか v3 や Web 版 PostPet の pet 付き mail 下さい! knagano AT CPAN.org まで! ちなみにペットは返せません!!)

* Language::Prolog, Language::Prolog::Interpreter を take over したのですが、手元にある Algorithm::Unification と merge しようとして enbug しちまって、絶賛放置中 (なぜこの程度のものが完成できないのか。学部3年の実習では、ちゃんと SML/NJ で Prolog 書けたのに。)

* Bloglines2IMAP based on WebService::Bloglines + IMAP::Proxy を目論む。未読既読管理を Bloglines に任せるという、自分的に画期的な idea でもって Web 2.0 に鮮烈デビュウ! のつもりであったが、IMAP Proxy の時点で力尽きる

programming/その他

* luna.el (in FLIM) で GoF デザインパターンを網羅する計画をたてるも、factory-method.el 完成をもって飽きる

その他/人生

* resume を書いてみて改めて分かりました。現職や実績と希望職をつなぐ道筋がありません。こういうときどうするんですか?


ええと以上のもの少しでもご興味持ってくださる方いらっしゃいましたら全部出しますんで! どうぞ持っていってください! 特に人生!!
posted by knagano at 01:18| Comment(20) | TrackBack(0) | はじさらし | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。