!kiyoka.blog.2007_12 RSSPLAIN

Related pages: !kiyoka.blog.list
1531555555555555555555555555555555252555255555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555554055555555555555555555555555555555555555555555555555555
1

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

5

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

3

kiyoka.blog_header 

1

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

5

5

 

5

 

5

kiyoka.2007_12_31[オープンソース]2007年振り返り

5

オープンソース関係でいうと今年は、PredocEXTOldTypeしかやれていない。

5

OldTypeの開発も結局そんなに進まなかったし。

5

Sumibi.orgの開発はOldTypeが落ち着くまでおあずけ状態なので2008年に手をつけれるかどうかあやしいよ…

5

先日、日本語IM飲み会にも行ってきたが、オープンソースの日本語IM関連で活動している人が非常に少なくなっている。

5

やっぱり統計的アプローチのIMを作るのは実験と評価の繰返しに地道な努力が必要とされるので、フルタイムの本業でやらないと辛いのかも知れないと思う。

5

さて、来年はOldTypeを『面白い』と言ってもらえるモノにするのが目標。

5

5

 

5

 

5

kiyoka.2007_12_29[OldType]CodeReposがコードの共有リポジトリなら、OldTypeはドキュメントの共有リポジトリ

5

なんか、最近CodeReposが注目されているけど、OldTypeも同じような形でcommit権を配ればいいかなと考えている。

5

何なら、CodeReposのshare/docs/oldtype にOldTypeのコンテンツを全てつっこんで、

5

CodeReposのcommitterは自動的にOldTypeのコンテンツもいじり放題というアイデアもありかな。

5

どちらにしても、CodeReposと同様に性善説で行きたいと思う。(たぶんCodeReposは性善説だよね?)

5

5

 

5

 

5

kiyoka.2007_12_28[プログラミング]flymakeでPHPのリアルタイム文法チェック

5

ブログではいつも関数型言語の記事ばっかり書いているが、実は仕事ではPHPを使うこともある。

5

言語は自分では選べないというのはITの世界ではもはや常識である。

5

言語選択の自由を唱えるRubyのまつもとさんでもその辺は御存知でしょう(笑)

5

というわけで、少しでもPHPの開発効率の悪さを軽減すべく、flymake modoの設定をおこなってみた。

5

 

5

いろんな所でEmacsのflymakeモードの設定が書かれているが、うまく動かなかった。

5

例えば、このサイトのコードも動かない。

5
 Syntax checking for PHP in Emacs at Blik.it - Web, Technology and CodeEXT
2

動かない理由は『バックスラッシュが全て消えている』のが原因だと思われる。

5

恐らく、HTML化する時に失敗しているんだろうと思われる。

2

試しにHTMLソースを見るとちゃんと必要な所にバックスラッシュがちゃんと入っていたよ。

5

 

5

というわけで、これを試してみられたし。

5

私はCentOS4.4, PHP4, GNU Emacs 22.1.1, php-mode-1.2.0の環境で試した。

2

(このページのテキストをコピペする場合は、ページタイトル右のPLAIN TEXTというアイコンをクリックして欲しい)

5

 

5
(when 
5
    (string-match "22" emacs-version)
5
  (progn
5
    ;; Flymake PHP Extension
5
    (require 'flymake)
5
    
5
    (defconst flymake-allowed-php-file-name-masks '(
5
                                                    ("\\.php3\\'" flymake-php-init)
5
                                                    ("\\.inc\\'" flymake-php-init)
5
                                                    ("\\.php\\'" flymake-php-init))
5
      "Filename extensions that switch on flymake-php mode syntax checks")
5
    
5
    (defconst flymake-php-err-line-pattern-re '("\\(.*\\) in \\(.*\\) on line \\([0-9]+\\)" 2 3 nil 1)
5
      "Regexp matching PHP error messages")
5
5
    (defun flymake-php-init ()
5
      (let* ((temp-file       (flymake-init-create-temp-buffer-copy
5
                               'flymake-create-temp-inplace))
5
             (local-file  (file-relative-name
5
                           temp-file
5
                           (file-name-directory buffer-file-name))))
5
        (list "php" (list "-f" local-file "-l"))))
5
    
5
    (defun flymake-php-load ()
5
      (setq flymake-allowed-file-name-masks (append flymake-allowed-file-name-masks flymake-allowed-php-file-name-masks))
5
      (setq flymake-err-line-patterns (cons flymake-php-err-line-pattern-re flymake-err-line-patterns))
5
      (flymake-mode t)
5
      (local-set-key "\C-cd" 'flymake-display-err-menu-for-current-line))
5
5
    (add-hook 'php-mode-user-hook 'flymake-php-load)))
5

 

5

5

 

5

 

5

kiyoka.2007_12_27[プログラミング]kahua.elに機能追加した

5

kahua.elの改善パッチをKahuaプロジェクトのメーリングリストに送った。

5

久々にオープンソースプロジェクトにコードをフィードバックした。

5

オープンソースを自分の作りたいものに利用させてもらっているのでもっと貢献しないとね。

5

もっとKahuaフレームワーク本体も改善したい所があるが、ちょっとレベル高いので手が出そうにない。

5

今一番欲しい機能は、高階タグでエラーが出た時にバックトレースを表示してくれる機能かな。

5

Kahuaはまだまだデバッグの為の機能が不足している。

5

5

 

5

 

5

kiyoka.2007_12_26[OldType]OldTypeとAjax

5

Ajaxはあまり使わない予定。

5

Webからのコンテンツ更新はToDoリストの編集と、誤字脱字の編集、

5

それに画像やYouTubeコンテンツの貼付だけに限れば、通常のページ遷移だけでも良いんじゃ無いかという気がしてきた。

5

Ajaxにするメリットは強くは感じられないので後回しにしよう。

5

5

 

5

 

5

kiyoka.2007_12_24[Life]クリスマスといえばサンタ、サンタといえば帽子

5

というわけで、猫のささちゃんにサンタの帽子を被せてみた。

5

結果は...

5

 

5

2129898637_3ae7376663_m_d めちゃくちゃいやがって被ってくれなかったので、寝ている間に頭に乗せた。

5

2129898905_8254e82070_m_d でも、すぐ気づきガシガシガシ。

5

2130681082_903105b8f5_m_d おきにいりのオモチャになり、ペロペロ

5

2130683430_e6e766c0c6_m_d だっこして寝た(笑)

5

 

5

まったりしたクリスマスを過すのだった...

5

5

 

5

 

5

kiyoka.2007_12_21[プログラミング]今作りたいちょっとしたもの

5

興味があるけど後回し。

5

誰か作ってね。

5
Prototype.jsをjrunscriptで動かすためのラッパー
5
bashで関数型プログラミングができるライブラリ集
5

(kiyoka.2007_11_17に書いたやつ)

5

どちらもちょっとしたモノなので必要になったタイミングで作ればいいか。

5

5

 

5

 

5

kiyoka.2007_12_17[OldType]Kahua対応の続き

5

Wikiパーサーが出力するデータをSXMLではなくOldType専用の内部フォーマットにした。(フォーマットの詳細は後日書く予定)

5

SXMLだとKahua側で再度高階タグに変換する時に骨が折れる。

5

要するにSXMLは構文が柔軟すぎてパース処理が複雑になるわけだ。

5

わざわざ高階タグに変換する理由は、1行毎に編集ボタンなどのアクションを設けたい場合でも簡単に実装できるから。

5

Kahuaではアクションはただの関数呼びだしで実現できるので高階タグ形式にしておけば簡単に機能追加ができる。

5

ところで、内部フォーマットを高階タグにする部分はmatch関数を多用した(自分の今のスキルからすると)かなり高度な実装で、1行あたりの密度が非常に高いコードになっている。

5

他の言語で実装するとしたらもっと冗長になるんだろうな。

5

例えば、Rubyとかで書いたらどんな感じになるんだろうか。

5

Rubyでもそこそこの行数で書けると思うが、(使用するライブラリにもよるが)たぶんもっと長めのコードになると思う。

5

Schemeは人を選ぶけれども複雑なデータ構造の処理には向いていると思うよ。

5

簡潔に書ける理由はmatchライブラリが良くできているのと、リスト内包表記が強力なのが一番大きい。

5

5

 

5

 

5

kiyoka.2007_12_16[Emacs]quack.elのλの字形が気にいらないので変更した

5

quack.elの defconstを次の様に変更するとよい。

5

 

5
(defconst quack-lambda-char (string-to-char "λ"))
5

 

5

オリジナルは半角で表示されるが、これで全角のラムダが表示されるようになる。

5

注意点としては、iso-2022-jpで保存しないといけない。

5

忘れるといけないので2行目に次の様なコメントを入れておいた。

5

Emacsがこのファイルを開くときに確実にエンコードをiso-2022-jpと認識してくれるので一石二鳥。

5

 

5
;;; quack.el --- enhanced support for editing and running Scheme code
5
;;; λの表示文字の為、このファイルはiso-2022-jpで保存してください。 (kiyoka)
5

5

 

5

 

5

kiyoka.2007_12_15[OldType][Kahua]Kahua対応で行き詰まる

5

SXMLから高階タグ関数に変換しようとして、行き詰まった...

5

ヤッターできたーと思ったら、出来てなかった。

5
;; utility : sxml to highger-order-sxml
5
(define (sxml->higher-order-tag sxmls)
5
  (let1 tag-list
5
        '(
5
          tt i b big small em strong dfn code samp kbd var cite abbr 
5
          acronym sub sup span bdo br body address div a area link img 
5
          hr p h1 h2 h3 h4 h5 h6 pre q blockquote ins del dl dt dd 
5
          ol ul li form label input select optgroup option textarea fieldset
5
          legend button table caption thead tfoot tbody colgroup col 
5
          tr th td head title base meta style script noscript
5
          applet param object embed noembed html @ @@)
5
5
        (let rec
5
            ((sxmls sxmls))
5
            (match sxmls
5
                   (()  '())
5
                   (((and (name . _) sxml) . rest) ;; generic node
5
                    (cons (rec sxml)
5
                          (rec rest)))
5
                   ((other . rest)
5
                    (cons
5
                     (if (and (symbol? other) (member other tag-list))
5
                         (string->symbol
5
                          (string-append
5
                           (symbol->string other)
5
                           "/"))
5
                         other)
5
                     (rec rest)))))))
5

 

5

この関数を適用すれば、高階タグ関数にできるだろうと思ったが無理だな。

5

このS式をどうやって、関数にするんだっけ?evalするだけで良いのか?

5

実行結果はこんな感じ。

5

 

5
oldtype(a4p:3w1wh)> (sxml->higher-order-tag '(div (@ (lineno 1)) (h2 "行指向のWiki記法")))
5
(div/ (|@/| (lineno 1)) (h2/ "行指向のWiki記法"))
5

 

5

本当はクロージャが返らないと行けないんだけど。

5

この関数は練習で書いてみたが、Wikiパーサーが返す形式としてはSXMLでは柔軟性が無いのでもっと中間的な形式にする予定。

5

 

5

5

 

5

 

5

kiyoka.2007_12_12[OldType]Kahua対応開始

5

Kahuaに対応しはじめる。お正月休みを使ってまったりと進める予定。

5

Wiki IkiEXT(ソースはwiki-iki.kahua)を参考に簡単なサンプルコードを積み上げながら作る。

5

Kahuaの何が良いってあんた、S色をちょっとづつ動かしながらWebアプリを作れるのがいい。

5

参考リンク => emacs eg Kahua HEADEXT

5

KahuaにはEmacs必須かも。

5

これ考えた人/作った人は天才だね。

5

最近、頭がScheme:CPSEXT(継続渡しスタイル)になっているので、Kahuaの考えかたもすっと入ってくる。

5

5

 

5

 

5

kiyoka.2007_12_09[CodeRepos]TzWatchをCodeReposに登録した。

5

TzWatch: Lingr用の時刻表示アプリEXTはオープンソースだけど、リポジトリはローカルのCVSに置いていた。

5

ちなみに 、TzWatch: Lingr用の時刻表示アプリEXTはGaucheで書かれている。

5

今回CodeReposへの登録第一号として、TzWatchを選んだ。

5

誰に興味を持ってもらえるか分からないけど、なにかのキッカケになればと思う。

5

5

 

5

 

5

kiyoka.2007_12_08[コンピュータ]OpenIDってどうなの?

5

OldTypeの開発がのらりくらりしている間に、OpenIDという分散ID認証システムが出てきた。

5

実際にいろんな所で目にするようになったので、普及しはじめているのかな?

5

OldTypeのWeb画面の認証をどうしようかと思っていたがいっその事OpenIDでやるのはどうか。

5

色々調査してみよう。まずはいろんな記事を読んで見ることから。

5

5

 

5

 

5

kiyoka.2007_12_07[プログラミング]Haskellも面白そう

5

LiveCoding#5EXTに参加して、実際にHaskellをコーディングしている所を見るとHaskellも面白そうに感じた。

5

コーディングをしてコンパイルが通ればほぼ動く、型安全なプログラミングというものを体験してみたいと思った。

5

私は実際にHaskellで実用的な物を作った事が無いのでまだ、Haskellの良さが分からないレベルだ。

5

日本語処理に問題があるとか、ライブラリが足りないとか処理系はまだまだこれからと聞いているが今からやっとくのもいいだろう。

5

5

 

5

 

5

kiyoka.2007_12_06[Life]猫におくすりを飲んでもらう方法

5

猫の避妊手術をしたので、抗生物質を5日間飲んでもらう必要がある。

5

2088336129_5a107ba7f8_m

5

問題は猫がそんな得体の知れない?物をどうやったら飲んでくれるか。

5

驚いたことに一日目は白い錠剤を猫の目の前に置いたら... そのまま食べた!

5

でも、二日目からは美味しくないことが分かってたべなくなった。

5

そこで、こんな物を作って食べてもらえばうまく行くことがわかった。

5

2085798253_169dfc4b48_m 大好きなカリカリの餌に、ごはん粒を使って錠剤をくっつける。(ごはん粒とはアイデアがまた昭和だなぁ...)

5

これで『ささみちゃん』は毎日おくすり飲んでるよ。

5

ささみの写真はこちら=>kiyoka.ささみ

4

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2007_12_05[オープンソース]CodeReposに入りたい

5

CodeRepos::Share - TracEXTのsubversionからリポジトリ全体をダウンロードしてみた。

5

.emacsとか.vimrcとかまで置いてあって参考になる。

5

もちろん、RubyやHaskell等のソースコードも多い。(Perlのソースコードが一番多い様だ)

5

早速コミット権が欲しくなった。参加しよーっと。

5

まずは、気軽にさわってもらえそうな TzWatch: Lingr用の時刻表示アプリEXT と predoc_mode.elEXT を入れようかな。

5

 

5

P.S. 早速、コミット権を設定してもらえた。さあ、.emacsファイルとかも登録しよかな。

5

5

 

5

 

5

kiyoka.2007_12_04[OldType]oldtype-modeがいい感じになってきた(自画自賛モード)

5

todo,doneコマンドを追加した。

5
 ##(todo)
5
 ##(done)
5

と書いたら、

5
 TODO
5
 done
5

と表示される。

5

 

5

2083114501_1cc9d11628 Emacsから見るとこんな感じ。

5

 

5

2083115307_eb808611fa ブラウザから見るとこんな感じ。

5

 

5

使いながら必要な機能を追加するのが、無駄が無くて一番効率がいいと思う。

5

 

5

5

 

5

 

5

kiyoka.2007_12_03[本]Amazon.co.jp: バベル17 (ハヤカワ文庫 SF 248): 本: サミュエル R.ディレーニイ,岡部 宏之EXTを読む

5

出版された時期を見るとかなり古く、1977年07月だそうだ。

5

私は図書館で借りて読んだが、ページが色褪せ、茶色がかっている。

5

自然言語を題材にしているせいかストーリーは全然古くなっていなくて驚く。

5

ただ、コンピューター言語への喩えとして『フォートランかアルゴルの様だ』というくだりを読むと、さすがに書かれた時期が分かって良い。

5

ネット上にわかりやすい書評 BABEL-17EXT を見つけた。興味を持った方は読んでみては?

5

 

5

 

5

 

5

5

 

5

 

5

kiyoka.2007_12_02[プログラミング]LiveCoding#5EXTに参加した

5

LiveCoding#5EXTに参加した。参加と言ってもオーディエンスとしてだけど。

5

oxyさんEXT凄かったね。C++のコード書くの早っ!『世界』を見れた気がする。

5

次回はLiveCoderになれる様にネタを考えておこう。

5

見栄えのするプログラムが作れた方が良いのでJavaScriptとかを練習しとくかな。

5

そうそう、こういうイベントで実際に手を動かして何かを作りだしている人達から創作の力をもらう事が多い。

5

関西でもこういうイベントを企画してくれた氏久さん(rubyneko)EXTに感謝。

5

 

5