!kiyoka.blog.2008_06 RSSPLAIN

Related pages: !kiyoka.blog.list OldType.リリースノート OldType.DONE
1421555555555555555555555555555555555555505555555555555555555555555555555550555535555555505555555555555555555555555555555555555555555555555055555555555555555555555555555555555555555555555555555555555555555555555555555055555555555555555505555555555555555555555555555555555505555555555555555555555555555555555555555555550555555555555555505555555555505
1

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

4

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

2

kiyoka.blog_header 

1

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

5

5

 

5

 

5

kiyoka.2008_06_29[プログラミング言語] Rubyの構文が柔軟すぎる(複雑すぎる)件

5

ちょっと思う所があって、Rubyの構文を調べてみた。

5

そんな中Rubyソースコード完全解説EXTがWebで公開されているのを知った。

5

こんなものが公開されているとは...青木峰郎さんに感謝。

5

さて、話をRuby構文に戻す。

5

第10章 パーサEXTのrubyの文法(概要)のあたりを読むと、すごいことが分かってくる。

5

以下引用

5
 Rubyに存在するあらゆる構文は括弧で囲むと primaryになってしまう、即ちメソッドの引数にも代入の右辺にもできるということで
5
 ある。これはとんでもない事実だ。実際に確かめてみよう。
5
p((class C; end))
5
p((def a() end))
5
p((alias ali gets))
5
p((if true then nil else nil end))
5
p((1 + 1 * 1 ** 1 - 1 / 1 ^ 1))
5
 
5
 このファイルを-cオプション付きでrubyにかける。 -cは構文チェックをするオプションだ。
5
 
5
% ruby -c primprog.rb
5
Syntax OK
5
 
5
 実に信じ難いことだが、本当に通ってしまった。どうやら勘違いではないようである。
5

 

5

なぬー。

5

実際は、後で構文木の構築を行う際にエラーになるパターンもあるだろうが、このパーサのルールはトンデモない。

5

Pythonと比べてRubyがPerlの如き柔軟性を感じさせる理由はこのへんかもしれない。

5

YARVのプレゼンで、ささださんがRubyは何でも式に成ってしまうので最適化という面では

5

非常に苦労するという話をされていたが、どうやら、このことだったのか…

5

 

5

ちょっと実験でRubyっぽいサブセット構文のパーサを試作してみようと思ったが、

5

Rubyっぽいだけで結局Rubyの本質が抜け落ちたものに成りそうで、やめた。

5

練習としてはいいと思うけど。

5

 

5

Rubyソースコード完全解説EXTの他の章も読んでみるといい。Rubyの奥行きはかなり深い。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_06_22[プログラミング] perl.TMTOWTDIの謎を探る

5

perl.TMTOWTDIの謎を探るについて

5

オリジナルは2002/05/10に書いた文書をOldTypeに移してリンク切れ等をメンテナンスした。

5

実は、このエントリはPerlの話かと思えばGaucheの話に終始している。Perl Loveの人はごめんなさい。

5

 

5

Larry Wallは深い

5

私は、2005年にSumibi.orgを開発したあたりから、Perlは使わなくなった。

5

久しぶりにこの文書を自分で読んでみたが、Larry Wall深いなーと思った。(この文書では多くのLarry Wallの文章の引用をしている)

5

特に、Larry Wallが現実が複雑(乱雑)だということに目をつぶるのではなく、むしろそれに対応した言語を設計することによって、現実を単純化することができるということを解ってやっているというところが凄い。その事を知らずにPerlのソースが汚いと言っている人は浅いのでご注意願いたい。

5

 

5

Perl的な、あまりにもPerl的な

5

Gaucheの作者のShiroさんもおそらくその辺は意識的にも無意識的にも狙っているはずで、それはGaucheという名前にも表現されている。

5

Schemeという、本来は乱雑さを嫌う設計思想の素材を使って、現実の乱雑さにも対応できるツールの構築に挑戦されている。

5

Gaucheプログラミング(立読み版):Gaucheの設計思想や誕生の背景EXTから引用させて頂く。

5
 Scheme言語の設計思想の一つに"Right Thing"という考えがあります。物事を
5
 実現するやり方として正しいやり方 をとるべきだ、という意味です。
5

(略) 

5
 Schemeの設計思想は、言語を強化するために機能を追加していくのではなく、
5
 後から機能追加が必要になるような 弱点を削っていくというものです。この
5
 考えはまさに"Right Thing"(正しいやり方)に根ざしています。
5
 Gaucheとはフランス語で"左"という意味です。つまり"Right"(右)に対する
5
 "Left"(左)です。
5
 
5
    そんなに厳密に“正しく”やらなくても、実用に使えるならいいじゃん                                                                                    
5
 
5
 といったところでしょうか。名前からも分かるように、Gaucheの設計思想には
5
 こうしたユーモアが隠れています。
5

このPerl的な設計思想の傾倒は、日常の仕事でのGaucheの使いやすさに直結していて、非常にうまく行っていると感じている。

5

PerlというかLarry Wallの影響力はやっぱり絶大なのだと再認識した日だった。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_06_21[音楽][JAZZ] ルパン三世のJAZZ CD決定版を見つけた

3

私は、もともとJAZZピアニストは好きで、ビル・エヴァンスや、キース・ジャレットのCDはかなり持っているのだが、

5

Amazonを徘徊している間に、ルパンのテーマや挿入曲の作曲者がJAZZピアニストだったということを知った。

5

さっそく、大野雄二のCDの中で一番ルパンの曲が多く入っているこのCDを買ってみた。

5

これは当たりだよ。ルパンのタイトルが付いているCDが沢山ある中で迷ったらコレを選べばOK。

5

B00003IQQ3  LUPIN THE THIRD“JAZZ”: 大野雄二トリオ, 大野雄二: 音楽

5

どの曲も原曲を聞いたことある曲ばかりなので、どうアドリブ展開しているかが分かりやすい。

5

かなり抑制され、落ちついた演奏で、アドリブもそんなに飛躍した部分は少ない。

5

JAZZを初めて聞く人にもオススメできるし、JAZZに詳しい人でも十分楽しめる内容だ。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_06_16[プログラミング] 文字コードを自動認識するgrepが欲しい

5

LVEXTというフリーソフトウェアに複数の日本語エンコードを自動認識するlgrepというプログラムが付属している。

5

が、-r ( --recursive ) オプションをサポートしていない。

5

zshの "**/*.java" 形式のワイルドカードを使えば -r を代用できるが、展開後のファイル数が爆発すると問題が発生する。

5
 (1行の長さ制限に捕まると、エラーが出てgrepの実行前に止められる)
5

Gaucheでgrepを書いてみようかなとも思うが、そこまでするほどでも無い気がするんだよな。

5

こういうのを許容時間内に書けるスキルが必要だなーと思う今日この頃。

5

 

5

 

5
ktatさんからコメントをもらったので、追記。
5
 lgrep ですが、 find -print0 -type f | xargs -0 lgrep 'hoge' とかどうでしょうか。
5

いつもこのコマンドで実行しています。何回もコマンドを打ちこみ直すのが大変なんです。

5
 alias lgrep='find -print0 -type f | xargs -0 lgrep ' とか。パス渡せませんが。
5

そうか。aliasか...

5

このアドバイスでbashのfunctionを使えば実現できそうな気がしてきたぞ。

5

うまくいったらまた記事を書きます。

5

 

5

 

5
ktatさんのコメントをヒントにスクリプトを作ったので追記。
5

結局このスクリプトで運用開始した。この程度で十分使えることが判明した。

5
lgrep-rのソースコード
5
#!/bin/bash
5
5
if [ "" = "$1" ] ; then
5
  echo "usage 'lgrep-r [pattern]'"
5
  exit 1
5
fi
5
find . -print0 -type f | grep -z -Z -v '.svn' | xargs -0 lgrep -n $1
5

 

5

出力をUTF-8に揃えたい場合は、最後の行を次の様に変更すればOK。

5
find . -print0 -type f | grep -z -Z -v '.svn' | xargs -0 lgrep -Ou8 -n $1
5

 

5
lgrep-rの動作
5
カレントディレクトリから再帰的に '日本語検索パターン' でgrepする。
5
ファイルの日本語コードは自動判別する
5
Subversionの管理ディレクトリ.svnは除外する
5
grepの結果には行番号も含む ( grep -r '日本語' * の結果に合わせてある )
5

 

5
使いかた
5
コンソールから
5
lgrep-r '日本語検索パターン'
5

 

5
Emacsから
5

カスタマイズ変数grep-commandを '/usr/local/bin/lgrep-r 'に設定しておけば

5

M-x grep で日本語エンコードを自動認識したgrepが使える。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_06_15[OldType][RSS] RSSのdescritptionを概要配信にするか全文配信にするか論争

5

識者からのアドバイス

5

迷ったので、いろんな人にアドバイスをもらった。

5

が、やっぱり人それぞれポリシーがあり、三者三様の答えが返ってきた。

5

そんなわけで、ひげぽんEXTさんらのアドバイスを受け、大手ブログサービスプロバイダがどうなっているか調べてみた。

5

私はRSS 2.0で配信したいので、RSS 2.0を中心に調査した。

5

RSS 1.0で配信しているサイトの方がまだまだ圧倒的に多いので参考までにRSS 1.0のサイトも調べた。

5

 

5

結論

5

結論としては、概要配信が多いようだ。

5

OldTypeも概要配信をしておけば間違いなさそうだ。

5

さて、そうなると、何を概要の文章に採用するか、アルゴリズムを考える必要がありそうだ。

5

 

5

調査記録

5
ココログ( 眞鍋かをりのココだけの話 powered by ココログEXTのRSS )
5
RSS 1.0
5
<description>しか記述されていない
5
概要配信
5

5
<description><![CDATA[ケコーンだケコーン!!...
5
<img border="0" width="1" height="1" src="http://rss.rssad.jp/rss/artimg/cnOkyWHtBeSX/55b32b0fc6339c7481d4eb5d28a2d6fe"/>]]></description>  
5

 

5
livedoor blog( 404 Blog Not FoundEXTのRSS )
5
RSS 1.0
5
<description>と<content:encoded>両方存在する
5
概要配信(続きを読むというリンクを含めて短くしてある)
5

5
<content:encoded><![CDATA[<p>では、何を規制すべきか。</p>
5
<a target="_blank" href="http://blogpal.seesaa.net/article/100346463.html">失業が生み出すもの - FIFTH EDITION</a><blockquote>政府におかれましては、きちんと労働市場の問題について取り組んでください。また、この間みたいな、官製不況の原因になるような規制をつくらないでください。
5
</blockquote>
5
<p>「何も規制すべきでない」も含めて考えると、どうも労働時間が最も適切なのではないかいう思いがますます強くなってきている。</p>
5
5
<a href="http://blog.livedoor.jp/dankogai/archives/51065207.html">続きを読む</a>]]>
5
</content:encoded>
5

 

5
XOOPS ( FPN-新規事業とイノベーションを考えるビジネスニュースコミュニティEXTのRSS )
5
RSS 2.0
5
blogシステム: <generator>XOOPS</generator>
5
概要配信
5

5
 <description>&lt;p&gt;iPhoneが日本でもソフトバンクから発売されます。&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://japan.cnet.com/mobile/story/0,3800078151,20374653,00.htm&quot; target=&quot;_blank&quot;&gt;&lt;a href=&quot;http://japan.cnet.com/mobile/story/0&quot; target=&quot;_blank&quot;&gt;http://japan.cnet.com/mobile/story/0&lt;/a&gt;,3800078151,20374653,00.htm&lt;/a&gt;&lt;/p&gt;&lt;p&gt;売れる売れないという議論が各所であるのですが、主にハード面についての議論が多かったので、今回は少し違う切り口で見てみたいと思います。&lt;/p&gt;</description>
5

 

5
MovableType ( IDEA*IDEA - 百式管理人のライフハックブログEXTのRSS )
5
RSS 2.0
5
blogシステム <generator>http://www.sixapart.com/movabletype/</generator>
5
全文配信
5

5
         <description><![CDATA[<p><img alt="ff_top.jpg" src="http://www.ideaxidea.com/archives/2008/06/13/ff_top.jpg" width="500" height="99" /></p>
5
5
<p>Biz.IDの企画でMozillaのCEO、ジョンさんと議論する会を設けることになりました。17日に公開されるFirefox 3についてあれこれ聞いちゃいましょう。</p>
5
5
<p>ブロガー限定企画になりますが、ご興味のある方は是非どうぞ。めったにない機会かと思います。なお、通訳も用意してくださるようなので英語の心配はありませんよ。</p>
5
5
<p>お申し込みや詳細は以下からどうぞ。Firefoxグッズがもらえるのも大きな魅力ですね・・・。</p>
5
5
<p>&raquo; <a href="http://www.itmedia.co.jp/bizid/articles/0806/12/news116.html">ブロガー応援企画:MozillaのCEOに直接聞く? 「Firefox 3」のあんなこと、こんなこと - ITmedia Biz.ID</a><br />
5
</p>]]></description>
5

 

5
Movable Type Enterprise ( WIRED VISION - “アカルイ”未来を考えるニュースサイトEXTのRSS )
5
RSS 2.0
5
blogシステム: Six Apart - Movable Type EnterpriseEXT
5
概要配信
5

5
      <description><![CDATA[2週間で400万ビューを獲得した「携帯電話でポップコーン」動画は、ある会社の宣伝であることが判明した。着実に増加している「ステルス・マーケティング」についてご紹介。
5
<img border="0" width="1" height="1" src="http://rss.rssad.jp/rss/artimg/TmRLSTonOF2Y/1da482fdb18b310a5cd2b0034a9b2a0a"/>]]></description>  
5

 

5
WordPress ( WordPress開発ブログEXTのRSS )
5
RSS 1.0とRSS 2.0の混在(どちらでも解釈できる様になっている?)
5
blogシステム: WordPress 2.6 <generator>http://wordpress.org/?v=2.6-bleeding2</generator>
5
RSS 1.0で解釈すると全文配信、RSS 2.0として解釈すると概要配信
5

例:RSS 2.0の概要

5
                <description><![CDATA[Version 2.5.1 of WordPress is now available. It includes a number of bug fixes, performance enhancements, and one very important security fix. We recommend everyone update immediately, particularly if your blog has open registration. The vulnerability is not public but it will be shortly.
5
In addition to the security fix, 2.5.1 contains many bug fixes.  [...]]]></description>
5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_06_11[iPhone] iPhoneは実は分かりにくいプロダクトかもしれない

5

ついにiPhoneが日本国内でも発売される。

5

NHKをはじめとして大手メディアで報道され大きな話題になっている。

5

iPhoneというプロダクトはジョブズのプレゼンが印象的で映像化もしやすく、メディアがこぞって取りあげている。

5

プロダクト自体の見ためも美しく、ユーザインタフェースも直感的でたいへん分かりやすいプロダクトに思える。

5

iphone2

5

しかし、見た目とは裏腹に、既存ケータイユーザにとって日常的な使いかたがイメージできないのではないかと思い至った。

5

それが原因で日本市場ではそんなに売れないのでは無いかと思う。

5

一見とっつきやすそうに見えるが、iPhoneは多くの日本人がイメージしているケータイとは違う。結局のところMacOS Xが載った『スマートフォン』なのだ。

5

あまりに日本のケータイと勝手が違うため、新し物好き(アーリーアダプター)でない限りは乗りかえに躊躇すると予想する。

5

例えば、皆さんもWindowsユーザにMacOS Xが手元にあったらどんなに快適か、便利かを説明しようとして、それがいかに難しいかを思い知った方もいらっしゃるかと思う。

5

まさに、iPhoneも同様の壁があるような気がする。

5

まあ、これは私の勝手な予想なのでおおいに外れる可能性もある。

5

7月11日の発売直後、どれくらい売れるかが楽しみだ。いい意味で期待を裏切ってもらいたい。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_06_10[OldType] RSS feedをサポートした(続:WikiシステムにとってのRSSってなんだろう)

5

先日(kiyoka.2008_06_07)も書いた通り、『WikiシステムにとってのRSSってなんだろう』と考えた結果、こんな結論が出た。

5

OldType 0.2.5では下記の仕様にした。(今後変更になる可能性は十分ある)

5

 

5
全てのページにRSSが付く
5

Wikiページには例外無くRSSが付く。

5

 

5
RSSフォーマットはRSS 2.0のみ
5

 

5
RSS化の方法
5
リンク集形式のWikiページのRSS化
5

箇条書きや、見出しにWikiNameが書かれていたら、リンク集ページと解釈し、そのリンク先Wikiページを記事としてRSSを生成する。

5

例えば、以下の例では、wikiname1,wikiname2,wikiname3というWikiページがRSSの記事(item)となる。

5
- [[wikiname1]] 
5
- [[wikiname2]] 
5
- [[wikiname3]] 
5
  .
5
  .
5

これによって、!RecentChanges等も、自動的にサイト全体の更新情報RSSになる。

5

!kiyoka.blogは、期待した通り、一般的なblogライクなRSSになる。

5

 

5
リンクの存在しないWikiページのRSS化
5

リンクがない場合は、そのページ自体の更新通知ができるだけでも意味があると考える。

5

OldTypeでは、自ページを1件の記事(item)として含んだRSSを生成する。

5

 

5
記事URLは最新更新箇所を示す
5

OldTypeでは、更新箇所をURLの末尾に"#行番号"という指定で表示位置を指定できる。

5

RSSに含まれる記事URLは最新更新箇所を"#行番号"で指し示し、ThuderBird等のRSSリーダーで記事をたどった時に、最新更新箇所が自動的に見える様にする。

5

※ 記事はpermalinkだとするのが一般的だと思うが、この方法はそれに反する。今後この方法でよかったかどうか、様子をみて決めたい。

5

 

5

というわけで、早速!kiyoka.blogのRSSを皆さんのリーダーに登録して頂けたらと思う。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_06_07[OldType] WikiシステムにとってのRSSってなんだろう

5

OldTypeにRSSフィードをサポートしようとしているのだが、自分がよく理解していないことに気が付いた。

5

ところで、WikiシステムにとってのRSSって一体なんだろう。

5

ブログにとってのRSSやポッドキャスティングにとってのRSSはイメージしやすい。

5

簡単にいうと最新記事の10件とか30件とかの更新情報だ。

5

 

5

それでは、Wikiシステムにとっては?

5

というわけで、巷のWikiシステムでRSSの位置付けを調べてみた。

5

 

5
TracRss - CodeRepos::Share - TracEXT
5

例えば、TracではWikiページ単体にはRSSは付いていない様だ。

5

RSSが付いているのは、更新情報として意味のある機能だけだ。

5

つまり、RSS feedが付いているのは誰がどのソースコードを更新したか、チケットの更新状況などに限られている。

5

 

5
PukiWiki/プラグイン/1.4 - PukiWiki-officialEXT
5

RecentChangesの情報をRSS形式で出すだけのようだ。

5

 

5

それでは、我らがOldTypeはどうするか。

5

!RecentChangesにRSS feedを付けるのは当然として、

5

!kiyoka.blog.listとか!kiyoka.blog(ブログページ)にも付けたい。

5

なんとか、更新履歴になっているページを自動判別して、更新履歴っぽいページにだけ

5

RSS feedが付くようにならないかと出来ないかとたくらんでいる。

5

例えば、次のような形式の行が1行でも見つかれば、勝手に更新履歴とみなすという方法でいけそうな気がする。

5
- [[wikiname1]] 
5
- [[wikiname2]] 
5
- [[wikiname3]] 
5
  .
5
  .
5

つまり、箇条書きや大見出しにWikiNameが含まれていれば、それを更新情報ページと見なしてRSS feedを生成するわけだ。

5

また、RSSを生成するための情報は、SVNのコミットログ等から得られる。

5
更新日付は?
5

リンク先Wikiページのcommit日付を使う。

5
タイトルは?
5

リンク先のWikiページの1行目を使う

5
descriptionは?
5

リンク先のコンテンツを使う

5
urlは?
5

リンク先のWikiページへのパーマリンクURLにする。

5

 

5

続報を書く予定なのでおたのしみに。

5

追記: kiyoka.2008_06_10に続報を書いた。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_06_06[iPhone] iPhone、ソフトバンクモバイルから登場

5

iPhone、ソフトバンクモバイルから登場--ドコモは「残念」とのコメント:モバイルチャンネル - CNET JapanEXT

5

070425_iphone_revenue_184x138 

5

 

5

何がなんでも買うよ。

5

日本国内では売れないかもしれないという人がいたり、

5

業界再編には繋がらないかもしれないけど、そんなことは関係ない。

5

個人的にはケータイの使いかたが確実に変わると思う。

5

いくら日本語入力がもっさりしているとはいえ、0-9の10個の数字キーによる日本語入力よりも格段に早くなるのは間違いない。

5

私は、何年たっても数字キーの日本語入力が覚えられない。まだキートップの平仮名を見ながら打ってるもん。

5

ブラウザがSafariになるのも大きい。

5

絶対OldTypeをiPhone対応にしてやる。

5

 

0

comment (disabled)

5

5

 

5

 

5

kiyoka.2008_06_02[OldType] リファクタリング一段落

5

OldType 0.2.3をリリースした。

5

0.2.2からはリファクタリングしかしていないので、見た目からは全く変化が感じ取れないだろう。

5

全て関数型スタイルだったのを、Object指向と関数型スタイルのハイブリッドに直した。

5

やっぱりObject思考は偉大だ。人間の脳味噌にやさしい抽象化ができる。

5

 

5

さて、リファクタリングの目的であったRSSの実装を始めようかな。

5

 

0

comment (disabled)

5