image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« 2007年3月24日 | トップページ | 2007年3月26日 »

2007年3月25日

2007-03-25

ピックアップ:質疑問答の技術、Wikiで生産性を上げた企業, etc...

いま地震があった。東京では揺れはちいさかったけどずいぶん長く揺れていたなぁ。
来週からは L25 も R25 と同じに週刊化される。これを確実に入手するために毎週一日ぐらい早出勤するのも悪くないことだ。

- http://www.100shiki.com/archives/2007/03/ruby_on_railsrailscast.html
> > 映像による「Ruby On Rails」チュートリアルが満載!『RailsCast』 | 100SHIKI.COM

- http://www.100shiki.com/archives/2007/03/skypegoogle_earthunype.html
> > SkypeとGoogle Earthを連動させる『Unype』 | 100SHIKI.COM

- http://blog.livedoor.jp/dankogai/archives/50793039.html
> > 404 Blog Not Found:質疑問答の技術

- http://blog.livedoor.jp/dankogai/archives/50791676.html
> > 404 Blog Not Found:perl - 任意のURIからfaviconを取得するAPI

- http://blog.livedoor.jp/dankogai/archives/50787032.html
> > 404 Blog Not Found:tips - Mac OS Xのスクリーンショット

- http://blogs.itmedia.co.jp/hiranabe/2007/03/google_video_f585.html
> > google video でオブジェクト倶楽部の動画公開 - An Agile Way [ITmedia オルタナティブ・ブログ]

- http://www.yasuhisa.com/could/entries/001109.php
> > COULD:Wikiで生産性を上げた企業

- http://gitanez.seesaa.net/article/36784914.html
> > ユーザーテストはデザイナーが自分自身の直感や予測を発見する場:DESIGN IT! w/LOVE

- http://gitanez.seesaa.net/article/36727864.html
> > デザイニング・インターフェース —パターンによる実践的インタラクションデザイン/Jenifer Tidwell:DESIGN IT! w/LOVE

- http://www.milkstand.net/fsgarage/archives/000989.html
> > F's Garage:はてブされるされないは、文章の書き方

- http://www.milkstand.net/fsgarage/archives/000986.html
> > F's Garage:悪いところより良いところを見ろ。

- http://kmo.air-nifty.com/kanamori_marketing_office/2007/03/post_95ac.html
> > Kanamori Marketing Office: 英語じゃなくて国語だろ?

- http://weblogs.java.net/blog/kohsuke/archive/2007/03/xsom_jars_are_n.html
> > Kohsuke Kawaguchi's Blog: XSOM jars are now in the maven repo

- http://zen.seesaa.net/article/36479418.html
> > メディア・パブ: Web2.0が失速?!

- http://www.doblog.com/weblog/myblog/15806/2606209#2606209
> > Doblog - 内山幸樹のほっとBlog:  Google の米国本社に行ってきた

- http://iiyu.asablo.jp/blog/2007/03/24/1340919
> > エッシャーの数理、不可能図形、不可能立体、錯視: ホットコーナーの舞台裏



xvcd で九九の表をつくる: jruby を利用したケース

Xfytutorialplugin20070324

なんとか、xfy + jruby で 九九の表を生成/表示させることができた。
以下にソース一式を置いた。
- http://homepage2.nifty.com/youichi_kato/src.html
 xfy で jruby を実行して九九の表をつくる (2007-03-24)
 jruby 実行のスクリーンショット

jruby で生成した html のデータをそのままつかうのはあきらめ、template を apply させて table を生成した。

その前に jruby インタープリターインスタンスを毎回作らずに、 xpah 関数インスタンスのなかで一度だけ作るようにした。

--------

    private final Ruby runtime = Ruby.getDefaultInstance();

    public Value call(final Arguments args, final Context context)
            throws ValueException {
        // Checking the Number of Function Arguments
        // example:hello(string) takes single argument
        FunctionUtility.checkCount(context, args, 1);

        // Evaluates the first argument as a string.
        final Value v = args.getArgument(0);
        final String rubyCode = v.getAsString();
        String ans;

        try {
            RubyObject rubyStr = (RubyObject) runtime.evalScript(rubyCode);
            ans = rubyStr.toString();
        } catch (final Exception e) {
            System.err.println(e);
            ans = e.getMessage();
        }

        // Returns the result
        if (ans == null) {
            ans = "[null]";
        }
        return new StringValue(ans);
    }

jruby のコードはこれ。

a = ""
a << "<table>¥n"

a << "  <tr>¥n"
a << "    <th></th>"
for x in 1..9
  a << sprintf("<th>%d</th>", x)
end
a << "  </tr>¥n"

for y in 1..9
  a << "  <tr>¥n"
  a << sprintf("    <td>%d</td>", y)
  for x in 1..9
    a << sprintf("<td>%d</td>", x * y)
  end
  a << "¥n"
  a << "  </tr>¥n"
end

a << "</table>¥n"

a

実際の xml ファイル中では <, > を&lt;, &gt; に置換して書き込んでいる。
mx、my はテーブルの横、縦の数を設定することができるようにしてある。

xml の内容の抜粋はこれ。

  <h:ruby1>

a = ""
a &lt;&lt; "&lt;table&gt;¥n"

  省略

a &lt;&lt; "&lt;/table&gt;¥n"

a

  </h:ruby1>

xvcd の内容の抜粋はこれ。

  <!-- ============== -->
  <!-- eval ./text(), insert result in ../h:div -->
  <xvcd:template match="h:ruby1">
    <ctrl:trigger>
      <ctrl:label>Show matrix</ctrl:label>
      <xvcd:action event="ctrl:triggered">
        <instruction:variable name="val"
          select="example:ruby(./text())" />

        <xvcd:delete select="../h:div/*" />
        <xvcd:insert ref="../h:div" position="last-child">
          <xvcd:copy-of select="function:xml-string-to-dom($val)" />
        </xvcd:insert>
      </xvcd:action>
    </ctrl:trigger>

    <ctrl:trigger>
      <ctrl:label>Clear</ctrl:label>
      <xvcd:action event="ctrl:triggered">
        <xvcd:delete select="../h:div/*" />
      </xvcd:action>
    </ctrl:trigger>
  </xvcd:template>

ループ処理は、xvcd よりは jruby だと格段に手軽に書けるなぁ。
ただ スクリプトに <, >  をそのまま書けないので、読みにくい。
(CDATA で記述すればいいのか?)

jruby スクリプトを別ファイルに置いて、それを xvcd で読み込んで、<, > の置換をしてから実行するということも試みているが、まだうまく動作していない。
(公開ファイル中にはその試行ファイルも含まれています)

次は jruby 側の変数の read/write を xvcd 側から行うこと試していきたい。

複合文書を扱える xfy なら、アプリ(プラグイン)記述も複合言語(XSLT 系、他のスクリプト言語系) を扱えるようにするのが良いかもしれない。

« 2007年3月24日 | トップページ | 2007年3月26日 »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク