!kiyoka.blog.2008_07 RSSPLAIN

Related pages: !kiyoka.blog.list
1321555555555555555555555055555555555555555555555555555555555555455555554445555555555555555555555555555550555555555555555555555055555555555555555555505555555555555555555505555555555505555555550555555505555555555555550555555555555555555505555555555555555555555555555555555555555555555555555555555555555555505
1

kiyoka日記。NendoSekkaの開発や、最近思うことなど

3

最新10件!kiyoka.blog   過去記事一覧!kiyoka.blog.list

2

kiyoka.blog_header 

1

このブログを書いている人: 西山 清香(kiyoka) - twitter: @kiyokaEXT

5

5

 

5

 

5

kiyoka.2008_07_28[ブログ][Wiki] ウェブブックの手本、ウェブブック『生きるための水が湧くような思考』(梅田望夫著)EXT

5

これは、梅田さんのこれまで各所に書かれた記事をまとめた形のウェブブック。

5

2008-07-18:ウェブブック「生きるための水が湧くような思考」本日刊行です。 - My Life Between Silicon Valley and JapanEXT

5

ウェブブックのまとめかたの、いいお手本だと思う。但し、梅田さんの様に一本筋の通ったことを書き溜めていないと出来ないことではある。

5

ところで、OldTypeを作り始めた時、ブログのようにリアルタイムに流れていく『フロー型情報』とWikiなどの様に蓄積され、ブラッシュアップされていくストック型情報の両方を扱えるシステムを作りたいと思っていた。

5

自分のブログで同様のやりかたでまとめてみようかと思う。

5

たいした記事は書き溜めていないけれども、自分でも一度フロー型情報とストック型情報の交差する所を自分で作ってみないとと思っている。

5

ポイントは、

5
 一ページ目から最後のページまで通して読めるような一冊の本を作ろう、というものでした。
5

という部分かも。

5

ブログをまとめるだけではそんなものができるとは思わないけど、どんなものになるか自分で見てみたい。

5

 

5

関連記事:

5
第21回 流れる情報と留まる情報 EXT
5
Intem インテム: システム(要素の組み合わせ:ストック型情報)EXT
5
ライフハック交差点:第5回 フロー型とストア型の情報管理|gihyo.jp … 技術評論社EXT
5
ライフハック交差点 (5) フロー型とストア型の情報管理 EXT
5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_07_27[Gauche] 7月27時点のGauche trunkをビルドした

5

目的はparse.pegを動かすため。

5

以下に、手順をメモしておく。

5

(7月27時点のGauche trunk は 0.8.14 としてリリースされるハズのバージョンです)

5

 

5

Gauche-0.8.12をアンインストール

5
アンインストールでやられる
5

MacOS X leopardで Gauche 0.8.12が入っている状態からスタート。

5

Gauche trunkのビルドには最新のリリースバージョン(0.8.13)が必要なので、まずはアンインストール。

5

Gaucheに限らないけど、システムに2バージョン以上の処理系が上書きインストールされた状態で使うと正しいバージョンのライブラリがロードされないとかいろいろ問題が起きると思われる。

5

そんなのでハマりたくないので、ちゃんとアンインストールする。

5

で、別の問題でハマる。

5

Gauche-0.8.12のmake uninstallを実行すると、Boehm GCのダイナミックリンクライブラリが消えた。

5

やられた。

5

Gaucheのリリースノートを見ると0.8.13で直っていると書いてある。

5

だからといって、今回の件は0.8.12をアンインストールする段にはどうしようもない。

5

同じBoehm GCを使うw3m-0.5.2が動かなくなって気がついた。

5

 

5
気を取りなおして、Boehm GC 7.1をインストール
5

前は、Boehm GC 7.0をインストールしていたが、この際最新にしてみた。

5

ちなみに、Gaucheのディストリビューションにはgcが内蔵してあるので、後で上書きされるかも。

5

Gauche trunkもBoehm GC 7.1になっているのでまあどちらでも良しとしよう。

5

w3m-0.5.2が動くようになった。

5

w3mとの相性としては、後方互換性が有るようだ。

5

 

5

Gauche-0.8.13をインストール

5

Gaucheのtrunkをビルドするにあたって、なるべく新しい方ものをベースにするほうが良さそうなので0.8.13をビルドする。

5

問題なくビルド・インストールできた。

5

 

5

Gauche trunkをインストール

5

autoconfが必要な以外は、configure && make && make installできた。

5

ちなみに、ポイントだけ書いておくと、0.8.13アンインストールもちゃんとやるほうが良いだろう。

5

私の実施した手順は

5
Gauche trunk
5
Subversionから取得
4
./DIST gen
5
configure
5
make
5
Gauche 0.8.13
5
make uninstall
5
Gauche trunk
5
make install
5

 

4

ちなみに、この時点でのGauche trunkはバージョン表示が0.8.13のままなのでtrunkをインストールしたことを忘れてしまわないこと。

4
 $ gosh -V
4
 Gauche scheme interpreter, version 0.8.13 [utf-8,pthreads]
5

trunkなのに勘違いして0.8.13の積もりでバグ報告すると、shiroさんが混乱されるので注意。

5

 

5

parse.pegが動くかテスト

5

testに全てパスしたよ。めでたしめでたし。

5
 bash-3.2$ cd Gauche-trunk-20080727/Gauche/ext/peg
5
 bash-3.2$ gosh ./test.scm 
5
 Testing parser.peg ...                                           
5
 <peg>--------------------------------------------------------------------------
5
 testing bindings in #<module parser.peg> ... ok
5
 test rope->string, expects "abc" ==> ok
5
 test rope->string, expects "012abcX" ==> ok
5
 test rope->string, expects #<error> ==> ok
5
 <primitives>-------------------------------------------------------------------
5
 test $return (success), expects "xyz" ==> ok
5
 test $fail (failure), expects (0 "error") ==> ok
5
 test $expect (failure), expects (0 "character") ==> ok
5
 <string>-----------------------------------------------------------------------
5
 test $string (success), expects "abc" ==> ok
5
   .
5
  (略)
5
   .
5
 test calculator (success), expects 36 ==> ok
5
 test calculator (success), expects -1 ==> ok
5
 passed.
5
 bash-3.2$ 
5

 

5

参考URL

5
Gauche:VMの最適化EXT
5
Gauche:VM命令セットの変更とビルドEXT
5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_07_23[言語] パーサの勉強のつづき

5

パーサの勉強のため、本を読みつづけている。これも10年前位に買った本。

5

以前勉強していたのと、Schemeプログラミングをやって再起を理解する脳味噌ができあがっているためか、スラスラ読める。

5

昔は擬似コードを読む度にすごく時間がかかっていたのに… 不思議だ。

5

久しぶりに読んだけど、やっぱりいい本だと思う。

5

4781905854  コンパイラ―原理・技法・ツール〈1〉: A. V. エイホ, R. セシィ, J. D. ウルマン, 原田 賢一: 本

5

パーサジェネレータはGauche trunkに入っているparse.pegを使う予定。

5

本当に自分が作りたいものがpegで出来るかどうかはまだわからないけど、いろいろ試してみよう。

5

参考資料は、これくらいしか見つからないけど、これで十分かも。

5
Rui:ParsingExpressionGrammarEXT
5
Parsing expression grammar - Wikipedia, the free encyclopediaEXT
5

実際に何か動かしてみたタイミングで、またブログ記事を書く予定。

5

 

5

COMMENTほげほげお

なつかしい本ですね。あの頃は苦労しました(汗

私は今読んだら、さらに理解不能だと思います。

さすがkiyokaさん。

5

4873111080  CJKV日中韓越情報処理: Ken Lunde

5

COMMENTkiyoka

ほげほげおさん。どうもです。なつかしいですね。

このCJKV本覚えてますか?分厚いやつ。

これ見ながら文字コード関係のデバッグしましたね。

最近は、パーサとか地味な分野から、かなりクリエイティブな分野にシフトされているんですね。

それはそうと、ほげほげおさんに kiyokaさんと呼ばれるのは不思議な感じです(笑)

5

COMMENTほげほげお

覚えてます!これは、今でも買わないと、と思っていたり。

文字コードの知識はどんなプログラム書くときでも必要になりますよね。

昔からWinプログラムをずっとやってみたかったので、今の分野は向いているのかもしれません。

kiyokaさんずっと難しそうな事をやられてますよね(汗)

それはそうと、kiyokaさんにほげほげおさんと言われるのも不思議です(笑)

5

COMMENTkiyoka

> kiyokaさんずっと難しそうな事をやられてますよね(汗)

実は、仕事ではそんな難しい事は一切やってないんです。もっとチャレンジングな仕事がしたんですけどねー。

> それはそうと、kiyokaさんにほげほげおさんと言われるのも不思議です(笑)

(笑)

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_07_20[音楽] ビョークのDVD

5

B0000677IZ  ヴェスパタイン・ライヴ/ロイヤル・オペラ・ハウス: ビョーク: DVD

5

ビョークはCDでかなり頻繁に聞いているのだが、このDVDを見てビョークの音楽の奥行の深さを知ることができた。

5

このライブに使われた楽曲の多くは、世界中の小さな音を大量に集めて、それを上手く混ぜ合せて音楽にしている。

5

例えば、椅子を人差指で叩く様なプツッっというような音や、トランプを机の上でコツコツと揃える音や、砂利の上をザクッザクッと歩く足音なんかがリズムに使われている。

5

ライブでは実際に砂利の上を歩いて音をマイクで拾っている。

5

オーケストラが途中入ってきても絶妙なバランスで両方の音を壊すことなく共存している。

5

音楽好きの人は一度は聞いてみてほしい。

5

また、音楽DVDにしては珍しくTSUTAYAでレンタル可能なので、何かのついでに借りて見てもらえればとおもう。

5

 

5
そういえばアンカテの人もビョークを絶賛していたのを思いだした。
5
bjorkとzawinul、民衆の音楽と地球の音楽 - アンカテEXT
5

 

5
Youtubeで見つけた代表曲を貼っておくよ。
5

  YouTube - Björk - Jóga

5

 

5

  YouTube - bjork-hyper ballad

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_07_18[音楽] BOSE QC3を買った。クラッシックが楽しくなった。

5

早速試してみた。噂通り驚愕の性能だ。

5

音楽なしで電源を入れると、どんな雑踏の中でもプールに潜った時みたいに静寂が訪れる。

5

自分の心臓の音とか、関節の動く音とかが聞こえる。

5

41iF9SREF-L._SL160_AA115_ BOSE QuietComfort3 ノイズキャンセリングヘッドホン

5

そして、iPodにつないで音楽を再生すると、フルオーケストラの小さい音まで全部聞こえる。

5

早速、ウィーン・フィル演奏のラクリモーサを聞いてみた。

5

そんなに大きな音にしなくても細かいところまではっきりわかる。

5

凄いよーこれ。値段も凄いけど。

5

 

5

COMMENTshiro

そう聞くとそそられますねぇ。ただウチは「電気製品壊し魔」がいるのであと数年は我慢が必要そうです。

5

COMMENTkiyoka

shiroさん、らむ太君ですね。

実は、うちもあと数週間で「破壊系ちび怪獣」が出てくるので壊されないように用心します。

5

COMMENTshiro

おお、それはおめでとうございます。

今のうちに安らかな睡眠を堪能しておいてください。しばらく安眠とは無縁になりますよー。

5

COMMENTkiyoka

ありがとうございます。

がんばります^_^

5

COMMENTktat

ヘッドフォンすごい高い...。しかし、関節とか心臓の音て、すごい...。

っと、おめでとうございますー!

お祝いに何かコードを書かなければ(違

5

COMMENTktat

さっき、開いてからだいぶ時間たってからコメントしたら、404になっちゃいました。何かのセキュリティ対策でしょうか?

5

COMMENTkiyoka

> っと、おめでとうございますー!

ktatさん、ありがとうございます。

> 404になっちゃいました。何かのセキュリティ対策でしょうか?

多分、そのころOldTypeを一瞬止めて 0.3.2 をデプロイしたのですが、そのせいかもしれません。

また、なにか不穏な挙動があったら教えてください。

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_07_17[OldType] コメント投稿機能(2)

5

何とか投稿機能が実装できた。

5

Webからの投稿なのにすぐにWebページに反映されないとか、まだまだ不満はあるけど、コメント投稿できるというのは大きな一歩かな。

5

これからは、spamコメントとかにも対応しないといけなくなりそう。

5

それでは記念にコメント投稿を試してみてください。

5

 

5

COMMENTkuwa

コメントしてみます。

5

COMMENTkiyoka

kuwaさんコメントありがとうございます。

誰からもコメント無かったらどうしようかと心配でした...

やっぱ、コメントなしのブログは正直辛かったです。

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_07_13[OldType] コメント投稿機能

5

実装中。

5

なかなかどんくさい見栄えになりそう。

5

とりあえず、1週間後位にはコメントできるようにしたい。

5

カッコよくするのはだいぶ時間が掛かりそうなので、その後じっくり取組もう。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_07_09[OldType] 0.3.0をリリースして一区切り

5

0.3.0から0.4.0の間でコメント機能を完成させる予定。

5

まずは、SVN操作をKahuaから実行できるプラグインを作るところから実装してみる。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_07_07[言語] 突然コンパイラの勉強を始める

5

10年前に熱心に読んだきり、本棚の肥やしになっていたコンパイラの本をひっぱりだしてきた。

5

昔、行実行プロファイラを作った時にC言語のパーサをひととおり書いたことがあるのだ。

5

その時にこの本を何度も読んだ。初めて読む本としても、実用的なものを作る時にもかなりオススメの本。

5

ところで、まだ売ってあるのかな?

5

うわっ、amazonで買えないみたい。中古でなら10000円であるみたいだけど。

5

yaccによるCコンパイラプログラミング (C STEP UPシリーズ): 近藤 嘉雪EXT

5

持ってて良かったー。

5

 

5

なにを作るかは、まだ内緒。たぶん面白いオモチャができると思う。

5

とりあえず四則演算のインタプリタを作るところからリハビリしてみるよ。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_07_06[音楽] BOSE QC3を試す

5

うめだ阪急店 / セレクトショップ / Bose ボーズEXTに行ってきた。

5

main_umeda_01_02  梅田でも、BOSE QC3を試せる店が出来たので行ってきた。

5

 

5

前から気になっていたノイズキャンセリングヘッドホンを試してみた。

5

41iF9SREF-L._SL160_AA115_ 

5

B0016FXR1W  BOSE QuietComfort3 ノイズキャンセリングヘッドホン

5

 

5

まわりのお店はバーゲン中の紳士服の販売のフロアなのでかなりザワザワしている。

5

おもむろにヘッドホンをかけ、あんまり期待しないまま、店員さんに電源ONしてもらった。

5

な、なんと... まわりの雑踏が消えた。静寂と言ってもいいくらい。

5

期待以上だったよ。こんなにノイズキャンセリングが効くとは知らなかった。

5

 

5

もう買うことに決めたぞ。

5

後はamazonで買うか、店で買うかを決めるだけ。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_07_04[Emacs] URLで取得したHTMLのタイトル文字列を取得する関数

5

oldtype-modeでURLをリンク書式に変換する機能をサポートした。

5

この関数はURLで取得したHTMLのタイトルを取得して、書式に埋めこんでいる。

5

といっても、HTMLの解析部分はw3mにおまかせ。

5

なぜならEmacsLispだけでは、到底実現できないからだ。

5

Net上に存在する現実のHTMLは、文字コードが多様すぎるのと、タグの対応がデタラメすぎるのとで、ロバストな処理を実現するのは不可能に近い。

5

こういう場合は外部のプログラムを使うのが一番。

5
;;
5
;; [fetch command]
5
;;   w3m -no-graph -halfdump -o ext_halfdump=1 -o strict_iso2022=0 -o fix_width_conv=1 URL
5
;;       | awk '-F<' '/title_alt/ { print $2; }' | tail -1 | awk '-F"' '{ print $2; }'
5
;;
5
(defun oldtype-fetch-html-title (url)
5
  (cond 
5
   ((string-match "http://" url)
5
    (with-temp-buffer
5
      (shell-command 
5
       (concat
5
        (format "w3m -no-graph -halfdump -o ext_halfdump=1 -o strict_iso2022=0 -o fix_width_conv=1 \'%s\' |" url)
5
        "awk \'-F\<\' \'/title_alt/ { print $2; }\' |"
5
        "tail -1 |"
5
        "awk \'-F\"\' \'{ printf(\"%s\", $2); }\'")
5
       (current-buffer))
5
      (replace-string "[" "<" nil (point-min) (point-max))
5
      (replace-string "]" ">" nil (point-min) (point-max))
5
      (buffer-substring-no-properties (point-min) (point-max))))
5
   (t
5
    "No Title")))
5

このコード、もしよければ使って下さい。

5

この関数を呼ぶと、グローバルのmatchデータが破壊されるので、そこだけ注意するべし。

5

 

5

5

 

5

 

5

kiyoka.2008_07_01[OldType][Scheme][プログラミング] SchemeとKahuaがリファクタリングに向いている理由

5

次はWebブラウザからの更新かな。RSSの実装も一段落したし、Webブラウザからの更新に手を付ける時期が来たかも。

5

ユーザアカウントのサポートからじっくりやるか、それともユーザアカウントは後回しにして、とにかくコメントの投稿から手を付けるか、それが問題だ。

5

Webアプリケーションは、後から作りなおしになってもいいので、動かしながら理解しながら作るという方法も悪くないと思っている。

5

なので、今回は後者でやってみようかな。

5

 

5

さて本題。

5

SchemeとKahuaはそういう作りかたに対しての耐性が強いような気がする。

5

平均的なプログラミング言語(RubyとかPerlとか)だと、後から、リファクタリングコストが高過ぎて、そういう作りかたはシンドイが、SchemeとKahuaの組合せならそんなにしんどくない。

5

これはなんでかな。

5

 

5

思いあたるのがこの文章。

5

KarettaEXT

5
 これは文だから、式が来るべき位置には記述できないとか、ここには複数の文を書けないなど
5
 といった無駄な制約がほとんどありません。 Schemeは自由で、制約があれば感じるであろう
5
 ストレスから解放してくれます。
5
 
5
 Schemeという言語は、決して多くの荷物や重い装備を背負わせるのではなく、無駄なものを徹
5
 底的に削ぎ落とし、プログラマに自由を与えてくれます。
5
 
5
 結果としてリファクタリングという作業が予想しているより楽しくなるでしょう。なぜなら、
5
 S式という木の組み換えにはほとんど限界がなく、木として似ていれば簡単に共通の構造を抽
5
 出できてしまうからです。
5

以下、略。

5

この文章、Schemerの言いたいことが全部詰まっていて、いい文章だと思う。

5

これは、cut-seaEXTさんの文章だ。

5

 

5

多分私が感じているリファクタリングの軽量さはこれかも。

5

SchemeにEmacsとKahuaが組合わさると、まるでねんど細工をコネコネしている様な気持ちよさなのだ。

5

ほんとかね?と思われた方は一度ご自分で体験してみることをオススメする。楽しいよ。

5

 

0

comment (disabled)

5