image

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

検索

最近のトラックバック

無料ブログはココログ

« 2008年1月2日 | トップページ | 2008年1月7日 »

2008年1月5日

2008-01-05

ピックアップ:なぜ福袋は売れるのか、ELLE誌が選んだ2008ベストカレンダー, etc...

- http://d.hatena.ne.jp/zoot32/20080104#p1
> > 2008-01-04 - 空中キャンプ: なぜ福袋は売れるのか

俺は 高島屋地下で、チョコレート詰め合わせ福袋 (1050円) を買った。お得だと思った。
伊勢丹も覗いた。福袋を宅配発送するための行列ができていたのには驚いた。

宅配サービスは重要なインフラだ。各戸/コンビニ/駅 to 各戸/コンビニ/駅 で、格安/無料で配送するサービスを確立し、それをベースにして利益を挙げられる仕組みをつくると良いかもしれない。

荷物に位置発信システムをつけてヒッチハイクのように目的地まで無料で移送させるようなことはできないかなぁ。

- http://ameblo.jp/yahooseo/entry-10063980204.html
> > インターネット業界の弱さ。年末年始にやはり「働かない」現実の業界|web2.0

- http://www.j-cast.com/2008/01/02015049.html
> > J-CASTニュース : 地方自治体 観光PRに 「ユーチューブ」活用広がる

- http://note.openvista.jp/235/
> > Liner Note - 紀伊國屋書店、旭屋書店、ジュンク堂書店の在庫情報をまとめて確認できるサービスーMaking OPAC 2.0 (1)

- http://www.designwalker.com/2008/01/elle-calendar.html
> > ELLE誌が選んだ2008ベストカレンダー - DesignWalker

- http://www.100shiki.com/archives/2008/01/xpenser.html
> > 携帯に向ってレシートを読み上げるだけでデータ入力できる家計簿サイト『Xpenser』 | 100SHIKI.COM

- http://www.afpbb.com/article/environment-science-it/science-technology/2332111/2495494
> > 駅利用客の体温をビルの暖房に、スウェーデン 国際ニュース : AFPBB News

- http://www.ideaxidea.com/archives/2008/01/2007_3.html
> > これがなかったら死んじゃうかもしれないウェブサービス(2007年版) | IDEA*IDEA

- http://japanese.engadget.com/2008/01/02/microvision-ces/
> > Microvision, CESでポケットプロジェクターを発表 - Engadget Japanese

- http://slashdot.jp/developers/article.pl?sid=08/01/02/2331259
> > スラッシュドット ジャパン | 分散型バージョン管理システムはどれが良い?

xfy 1.5 の マニュアルページ中の項目一覧を graphviz で png にしてみた

以前に xfy のマニュアル目次を freemind にしてみたことがある。
  - http://youichi-kato.cocolog-nifty.com/blog/2006/08/xfy_freemind__efe9.html
    > > katoy: cocolog: xfy のオンラインマニュアルの 目次を freemind で作ってみた

  - http://youichi-kato.cocolog-nifty.com/blog/2007/08/xfy15_8c56.html
    > > katoy: cocolog: xfy1.5 マニュアルのマインドマップ (デスティネーション)
  - http://youichi-kato.cocolog-nifty.com/blog/2007/08/xfy15_d9cd.html
    > > katoy: cocolog: xfy1.5 マニュアルのマインドマップ (チュートリアル)

そのときは、すべて手動で作業した。
マニュアル更新毎に 手動での作業するのは大変なので プログラムで生成できないかと思案中。
手始めに、grpahviz に食わせる dot 形式ファイルをつくるプログラムを作成してみた。
(項目一覧とその親子関係の取得ができるようになったら、次は これを freemidn 形式出力すればよいはず)

以下に
- graphviz で png 画像に変換した例
- dot ファイル生成プログラム (ruby で作成)
を示す。


Xfyapidot0

Xfyapidot1

Xfyapidot2

画像データサイズが 14M と大きくなり過ぎ。また 文字も重なってしまっている。

$ cat link2.rb

# xfy マニュアルの項目関連の dot ファイルを生成する
#  utf8
# 2008-01-04 katpy  試作
#
# dot ファイルの生成:
#   $ ruby link2.rb > 1.dot
#
# dot ファイルから png を生成する方法:
#   $ dot -KENG -Tpng 1.dot -o 1.png
#      (ENGは次の中から:  circo dot fdp neato nop nop1 nop2 twopi)
#   $ twopi -Tpng 1.dot -o 1.png
#-------------------------------------------------
require 'rubygems'
require 'hpricot'
require 'open-uri'
require 'cgi'
require 'set'
require 'pathname'
require 'pp'

$KCODE="utf8"

class GenDot
  def initialize
    # 処理した URLをコレクションして、同じ node を複数 生成しないようにする
    @visitedURL = Set.new;
    @dquot ='"'   # node 名の囲み文字
  end

  def start
    puts 'digraph "g" {'
    puts '  ranksep=6;'       # 要 調整
    # puts '  ratio=auto;'
  end

  def end
    puts '}'
  end

  def visit(fileName, rootNode="")
    doc = Hpricot(File.read(fileName))
    docTitle = (doc/'title').inner_text
    @visitedURL.add(fileName)
    puts "#{@dquot}#{rootNode}#{@dquot} ->#{@dquot}#{docTitle}#{@dquot}"  if !(rootNode== "")

    # <a href ...> を処理する
    (doc/'a[@href]').each { |a|
      href = a.attributes['href'].strip
      toText = CGI.unescapeHTML(a.inner_text).strip

      begin
        # file自身中への リンク
        if (href.index("#") == 0)
          toLinkFile = fileName
          toURL = fileName + href
          # xfy マニュアル中のナビゲートリンクは無視する
          if !(toText=="目次へ") && !(toText =="このページの先頭へ")
            if !@visitedURL.include?(toURL)
              puts "  #{@dquot}#{docTitle}#{@dquot} ->#{@dquot}#{toText}#{@dquot}"
              @visitedURL.add(toURL)
            end
          end
        elsif (href.index("http") == 0)
          # ネット上へのリンク (http:, https)
          puts "  #{@dquot}#{docTitle}#{@dquot} ->#{@dquot}#{toText}#{@dquot}"
          @visitedURL.add(href)
        else
          # 相対指定のリンクなら、再帰処理する (# 指定は無視
          # 相対パスを絶対パスに変換して @visitedURL への登録内容を正規化する
          toLinkFile = File.dirname(fileName) + "/" + URI.split(href)[5]
          p = Pathname(toLinkFile)
          toURL = p.realpath.to_s
          if !@visitedURL.include?(toURL)
            toTitle = visit(toURL)
            puts "  #{@dquot}#{docTitle}#{@dquot} ->#{@dquot}#{toTitle}#{@dquot}"
          end
        end
      rescue => exception
        $stderr.puts exception
      end
    }
    docTitle   # このファイルの title を返す
  end
end

# 処理するファイルを列挙する
files = [
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/app/client/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/app/debugger/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/app/sdesigner/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/app/vdesigner/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/app/xvcd2jar/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/avcchart/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/avcdatagrid/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/avcxychart/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/calclet/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/cml/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/manifest/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/mathml/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/resource/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/svg/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/ui/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/wsr/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/xfr/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/xfyblogeditor/index.html",
"/Users/kato/Desktop/xfy-be1_5-070322 Folder/doc/jp/manual/compo/xhtml/index.html",
]

# ---- Main -----
gendot = GenDot.new
gendot.start
files.each {|f| gendot.visit(f, "root") }
gendot.end

#--- End of File ---

« 2008年1月2日 | トップページ | 2008年1月7日 »

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 あわせて読みたい

リンク