bar_1

contents_map

2011年2月10日木曜日

gem update/install のふるまい?

いままで、とくに気にしたことはなかったのだけど、
gem update gemパッケージ
は、実はgemパッケージをダウンロードしてくるだけで、インストールはしない……?

2011年1月26日水曜日

作図エディタDiaの環境構築


この記事を更新しようとしたところ、Seesaaブログの不具合で、レイアウトがくずれてしまいます。
新しい記事を参照してください。


TeX で図を描きたいときにどうしようかと、ドロー系の作図ツールを探していた。TeX と言えば tgif という先入観からそれ系のを探していたが、そういえば Dia があったのだった。Dia はドロー系 (Draw) 作図エディタソフトウェア。検索していたところ、Microsoft Visio とよく比較されているようだ。



2011年1月24日月曜日

LyX 1.6.0 on TeX Live 2010

Windows XP環境(今回はCygwinはなし)で、LyX(pLaTeXのGUIフロントエンド)を、
試行していた。ある程度使えることが確認できたので、ここに報告する。

試行したのは、環境のインストールからLyXの機能の確認で、以下のような点:
・LyX環境のインストール(TeX, LyX, GhostScript, GSView)
・LyXで日本語文書の作成とコンパイル、dvi表示
・LyXでフリガナを振る
・LyXでカスタマイズしたデザインの索引・用語集を付ける
・LyXで上記を含んだ文書の親分書・子文書への分割、コンパイル、およびdvi表示
・上記文書のPDF表示、PostScript表示
である。以上で、満足する動作結果を得た。


2011年1月14日金曜日

LyXの日本語版の試行1


今、色々試してるんだけど、結論から言うと、まだうまく行ってない。
→とりあえず、動くようにはなりました(Jan. 24th, 2011: LyX 1.6.0 on TeX Live 2010)


でも日本語のLyX情報は、とても少ない。失敗の例として、このエントリを上げておく。他にもLyXの導入を試している方がおられたら、リンクを貼ってください。助け合いましょう。


■使用したインストーラ



LyX-168-4-26-AltInstaller-Complete.exe


■不具合概要




  1. 日本語の文書のdvi表示ができない。

    1. 英語の文書のdvi表示は、可能である。

  2. babel-japaneseをインストールするためのplatexが、処理できない




●推測される原因:



日本語の場合、インストール先のフォルダのパスにスペース、および日本語が含まれていると、上記不具合の原因となる?


●アドホック対処



スペースも日本語も含まないフォルダに、再インストールする。

→これでも、ダメでした。


■上記インストーラでインストールされるもの


●スタート・メニュー内:




  1. Ghostgum>GSview 4.9(LyXのアンインストールの途中、アンインストールできる)

  2. JabRef>JabRef 2.6(アンインストーラ有り)

  3. LyX 1.6.8>LyX(アンインストーラ有り)

  4. MiKTeX 2.9>(LyXのアンインストーラによってアンインストールできる)

※Aspellも、LyXのアンインストーラで、選択的アンインストールできる



●Program Files\ディレクトリ




  1. Ghostgum\

  2. JabRef\

  3. LyX 1.6.8\

  4. MiKTeX 2.9\




●プログラムの追加と削除




  1. Aspell 0.6 Dictionary (Language: en)

  2. Aspell 0.60.4 Data

  3. GSView 4.9

  4. LyX 1.6.8

  5. MiKTeX 2.9

  6. JabRef 2.6
これらは、スタート・メニュー内のアプリのアンインストーラから、削除できる。





■症状1:LyXドキュメントの表示時の不具合メッセージ



ヘルプ・ドキュメントを読もうとすると:
Message:
"この文書が要求しているレイアウトファイル
jarticle.layout
が利用可能になっていません。この文書が要求
しているLaTeXクラス化スタイルファイルが利
用できないためと思われます。詳細は「カスタ
マイズ」ヘルプファイルをご覧ください。
LyXは出力を生成することができません。
"

とポップアップ・ウィンドウに表示される。


  • ヘルプ>
    -LyXユーザーの手引き(UserGuide)
    -LyXの高度な機能(Extended)
    -埋込みオブジェクト篇(EmbeddedObjects)
    などを開くと、表示される。

  • ドキュメント自体は、メイン・ペインに表示される。

●解析



インストール先のディレクトリ
D:\Program Files\LyX 1.6.8\Resources\layouts\

を見ても、それらしきファイル(jarticle.layout など)は、既に存在する。


日本語関係のスタイルが使用できない状態になっている?

●解決方法



→?
��ドキュメント自体のHTML表示はなされる。)

■症状2:dvi表示時のコマンド実行のエラー



LyX起動後文書を作成しdvi表示のために、dviボタンを押下すると:
"
java -jar htmltolatex.jar -input "newfile1.html" -を実行している間にエラーが発生しました。
"


●解析



ランチャ(LyX)が実行するコマンドに、なにかが欠けている?

■症状3:LyXドキュメント開いたときのエンコード関連のメッセージ



LyX起動後文書を作成しでdvi表示しようとすると、
“使用中の文書のパス「xxxxxxxx」には、現在の文書エンコーディング(すなわち***)で表すことのできないグリフが含まれています。このため、出力は不完全となる可能性が大きいです。
��utf8など)適切な文書エンコーディングを選択するか、パス名を変更してください。”

と表示される。


xxxxxxxxは、LyXファイルの名前。***は、ファイル内の記述文字。

●解析



作成中の文書のクラスが想定する文字コードと、ファイル・システムが使用している文字コードが違うのではないか?

●解決方法



LyXのメニューで
設定>パス>作業ディレクトリ


設定>パス>一時ディレクトリ

に、日本語とスペースを含まないものにする。


文書(D)>設定>文書の設定>言語>言語(L):英語
→日本語にする。

■症状4:DVI表示時にエラー



MiKTeX Problem Report
MiKTeX Problem Report
Message: Not all fonts could be loaded. See 'File->Document Properties', for details.
Data:
Source: Programs\MiKTeX\Yap\MFC\DviDoc.cpp
Line: 636
MiKTeX: 2.9
OS: Microsoft Windows XP Home Edition Service Pack 3 (build 2600)
Invokers: lyx
SystemAdmin: yes
PowerUser: no
Root0: C:\Documents and Settings\日本語のアカウント名\Application Data\MiKTeX\2.9
Root1: C:\Documents and Settings\日本語のアカウント名\Local Settings\Application Data\MiKTeX\2.9
Root2: C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9
Root3: D:\Program Files\MiKTeX 2.9
UserInstall: C:\Documents and Settings\日本語のアカウント名\Application Data\MiKTeX\2.9
UserConfig: C:\Documents and Settings\日本語のアカウント名\Application Data\MiKTeX\2.9
UserData: C:\Documents and Settings\日本語のアカウント名\Local Settings\Application Data\MiKTeX\2.9
CommonInstall: D:\Program Files\MiKTeX 2.9
CommonConfig: C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9
CommonData: C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9

■症状5:babel-japaneseインストール時platexが機能しない

babel-japaneseを展開し、japanese.insをコンパイルしたいが、platex.exeが処理不能。
下記のログを出して、コマンドラインからのplatexが処理されない:
D:\tex\MiKTeX\tex\generic\babel\japanese>platex japanese.ins
This is pdfTeX, Version 3.1415926-1.40.11 (MiKTeX 2.9)
platex: The memory dump file could not be found.
platex: Data: platex.fmt

■検討資料


��:
��:ツール>言語設定>デフォルト
��:文書>言語
��:結果
��      2          3
日本語(CJK) ユニコード(CJK)(utf8) 長考の後、エラー
��         1     2           3
ファイルの中身utf8 日本語(CJK) ユニコード(CJK)(utf8) dviビューワ立ち上がるがエラー
→フォントの設定?

●メモ

・"Managing Memory Dump files"
http://docs.miktex.org/manual/formats.html
・MiKTeX Optionsを起動。
MiKTeX Options>General>
1)Refresh FNDB.
Ok.
2)Update Formats
エラー発生。
Formatsタブのリスト内のPLaTeXのexcludedをはずし、Updateを行うと:
ウィンドウ:MiKTeX Maintainance というウィンドウに、
Creating format file for:
PLaTeX
というメッセージが表示され、Transcriptウィンドウに:
" miktex-makefmt: The input file could not be found.
initexmf.EXE: The operation failed for some reason.
initexmf.EXE: Data: D:\tex\MiKTeX\miktex\bin\miktex-makefmt.exe
"
というログを出力する。
・PLaTeXフォーマットが使用するplatex.iniというファイルは、
d:\tex\MiKTeX\miktex\config\
に存在する。
・pdftexが使用するpdftex.iniというファイルは、
d:\tex\MiKTeX\miktex\config\
d:\tex\MiKTeX\tex\plain\config\
に存在する。

■その他資料・メモ

■LyX設定

●フォントの設定

Tool>Settings
Times New Roman-> JP Gothic
Arial->JP Mincho
Courier New->JP Gothic

●アウトラインの表示

文書>文書構造で、章構造が左端に表示される。

●メニューの言語設定

LyXメニューのツール>設定>言語設定
ユーザインターフェイス:規定値
デフォルト:英語
にすると、メニューが英語になる。

●今回参考にしたリンク

  • http://www.netlaputa.ne.jp/~kuno/lyx/mylyx_p1.html
  • ☆ http://www.int.otaru-uc.ac.jp/lyx-howto/setup/japanize
  • http://old.nabble.com/%22Settings-Update-Formats%22-fails-for-Latex-td29879951.html
    babel-japanese がインストールされているか、確認。

■インストール・ログ

●MiKTeX

Loading package database...
starting package maintenance...
installation directory: D:\tex\MiKTeX
package repository: C:\DOCUME~1\日本語のアカウント名\LOCALS~1\Temp\mik31642
visiting repository C:\DOCUME~1\日本語のアカウント名\LOCALS~1\Temp\mik31642...
repository type: local package repository
loading lightweight database...
lightweight database digest: b8cba40bc9eac2c698e73738f24aed4b
going to install 9316 file(s) (156 package(s))
problem: D:\tex\MiKTeX\miktex/bin\MiKTeX209-core-PS.dll does not exist
problem: D:\tex\MiKTeX\miktex/bin\MiKTeX209-core.dll does not exist
problem: D:\tex\MiKTeX\miktex/bin\MiKTeX209-packagemanager-PS.dll does not exist
problem: D:\tex\MiKTeX\miktex/bin\MiKTeX209-packagemanager.dll does not exist
extracting files from ae.tar.lzma...
extracting files from amsfonts.tar.lzma...
extracting files from amslatex.tar.lzma...
extracting files from avantgar.cab...
extracting files from babel.tar.lzma...
extracting files from bidi.tar.lzma...
extracting files from bookman.cab...
extracting files from carlisle.tar.lzma...
extracting files from cbcoptic.tar.lzma...
extracting files from cm.tar.lzma...
extracting files from courier.cab...
extracting files from dehyph-exptl.tar.lzma...
extracting files from ec.cab...
extracting files from elhyphen.tar.lzma...
extracting files from enctex.tar.lzma...
extracting files from euenc.tar.lzma...
extracting files from eurosym.tar.lzma...
extracting files from float.cab...
extracting files from fontspec.tar.lzma...
extracting files from geometry.tar.lzma...
extracting files from graphics.tar.lzma...
extracting files from helvetic.cab...
extracting files from hoekwater.cab...
extracting files from hyperref.tar.lzma...
extracting files from hyph-utf8.tar.lzma...
extracting files from ifxetex.tar.lzma...
extracting files from jknappen.cab...
extracting files from latex-fonts.tar.lzma...
extracting files from latex2e-help-texinfo.tar.lzma...
extracting files from lm.tar.lzma...
extracting files from ltxbase.tar.lzma...
extracting files from ltxmisc.tar.lzma...
extracting files from lua-alt-getopt.tar.lzma...
extracting files from luainputenc.tar.lzma...
extracting files from lualibs.tar.lzma...
extracting files from luamplib.tar.lzma...
extracting files from luaotfload.tar.lzma...
extracting files from luatexbase.tar.lzma...
extracting files from luatextra.tar.lzma...
extracting files from mflogo.cab...
extracting files from miktex-arctrl-bin-2.9.tar.lzma...
extracting files from miktex-bibtex-base.cab...
extracting files from miktex-bibtex-bin-2.9.tar.lzma...
extracting files from miktex-bibtex8bit-base.cab...
extracting files from miktex-bibtex8bit-bin-2.9.tar.lzma...
extracting files from miktex-bin-2.9.tar.lzma...
extracting files from miktex-cjkutils-bin-2.9.tar.lzma...
extracting files from miktex-config-2.9.tar.lzma...
extracting files from miktex-cweb-base.cab...
extracting files from miktex-cweb-bin-2.9.tar.lzma...
extracting files from miktex-dict-english.tar.lzma...
extracting files from miktex-dict-french.tar.lzma...
extracting files from miktex-dict-german.tar.lzma...
extracting files from miktex-doc-2.9.tar.lzma...
extracting files from miktex-dvicopy-bin-2.9.tar.lzma...
extracting files from miktex-dvipdfm-base-2.7.tar.lzma...
extracting files from miktex-dvipdfmx-base-2.7.tar.lzma...
extracting files from miktex-dvipdfmx-bin-2.9.tar.lzma...
extracting files from miktex-dvipng-bin-2.9.tar.lzma...
extracting files from miktex-dvips-base.tar.bz2...
extracting files from miktex-dvips-bin-2.9.tar.lzma...
extracting files from miktex-dvips-doc.cab...
extracting files from miktex-etex-base.cab...
extracting files from miktex-findtexmf-bin-2.9.tar.lzma...
extracting files from miktex-fontconfig-base.tar.lzma...
extracting files from miktex-fontconfig-bin-2.9.tar.lzma...
extracting files from miktex-fontname-base.tar.lzma...
extracting files from miktex-fonts-bin-2.9.tar.lzma...
extracting files from miktex-freetype-base.cab...
extracting files from miktex-freetype-bin-2.9.tar.lzma...
extracting files from miktex-freetype2-bin-2.9.tar.lzma...
extracting files from miktex-ghostscript-base-2.9.tar.lzma...
extracting files from miktex-ghostscript-bin-2.9.tar.lzma...
extracting files from miktex-graphics-bin-2.9.tar.lzma...
extracting files from miktex-gsf2pk-base.cab...
extracting files from miktex-gsf2pk-bin-2.9.tar.lzma...
extracting files from miktex-hunspell-bin-2.9.tar.lzma...
extracting files from miktex-hyph-french.tar.bz2...
extracting files from miktex-hyph-german.tar.bz2...
extracting files from miktex-hyph-usenglish.cab...
extracting files from miktex-icu-bin-2.9.tar.lzma...
extracting files from miktex-kpathsea-bin-2.9.tar.lzma...
extracting files from miktex-latex-config-2.9.tar.lzma...
extracting files from miktex-lua51-bin-2.9.tar.lzma...
extracting files from miktex-luatex-base.tar.lzma...
extracting files from miktex-luatex-bin-2.9.tar.lzma...
extracting files from miktex-makeindex-base.cab...
extracting files from miktex-makeindex-bin-2.9.tar.lzma...
extracting files from miktex-metafont-base.cab...
extracting files from miktex-metafont-bin-2.9.tar.lzma...
extracting files from miktex-metafont-misc.tar.lzma...
extracting files from miktex-metapost-base-2.7.tar.lzma...
extracting files from miktex-metapost-bin-2.9.tar.lzma...
extracting files from miktex-mft-base.cab...
extracting files from miktex-mfware-bin-2.9.tar.lzma...
extracting files from miktex-misc.tar.lzma...
extracting files from miktex-mkfntmap-bin-2.9.tar.lzma...
extracting files from miktex-mktex-bin-2.9.tar.lzma...
extracting files from miktex-mo-bin-2.9.tar.lzma...
extracting files from miktex-mpm-bin-2.9.tar.lzma...
extracting files from miktex-mthelp-bin-2.9.tar.lzma...
extracting files from miktex-mtprint-bin-2.9.tar.lzma...
extracting files from miktex-omega-bin-2.9.tar.lzma...
extracting files from miktex-pdftex-base-2.9.tar.lzma...
extracting files from miktex-pdftex-bin-2.9.tar.lzma...
extracting files from miktex-pdftex-doc-2.6.tar.bz2...
extracting files from miktex-poppler-base.tar.lzma...
extracting files from miktex-poppler-bin-2.9.tar.lzma...
extracting files from miktex-ps2pk-bin-2.9.tar.lzma...
extracting files from miktex-psutils-base.cab...
extracting files from miktex-psutils-bin-2.9.tar.lzma...
extracting files from miktex-qt4-bin-2.9.tar.lzma...
extracting files from miktex-runtime-bin-2.9.tar.lzma...
extracting files from miktex-teckit-bin-2.9.tar.lzma...
extracting files from miktex-tex-base.tar.lzma...
extracting files from miktex-tex-bin-2.9.tar.lzma...
extracting files from miktex-tex-misc.tar.lzma...
extracting files from miktex-tex4ht-bin-2.9.tar.lzma...
extracting files from miktex-texify-bin-2.9.tar.lzma...
extracting files from miktex-texinfo-base.tar.lzma...
extracting files from miktex-texinfo-bin-2.9.tar.lzma...
extracting files from miktex-texware-bin-2.9.tar.lzma...
extracting files from miktex-texworks-bin-2.9.tar.lzma...
extracting files from miktex-texworks-doc.tar.lzma...
extracting files from miktex-vc100-bin.tar.lzma...
extracting files from miktex-web-bin-2.9.tar.lzma...
extracting files from miktex-xdvipdfmx-bin-2.9.tar.lzma...
extracting files from miktex-xetex-base.tar.lzma...
extracting files from miktex-xetex-bin-2.9.tar.lzma...
extracting files from miktex-yap-bin-2.9.tar.lzma...
extracting files from miktex-zip-bin.tar.lzma...
extracting files from multirow.cab...
extracting files from ncntrsbk.cab...
extracting files from oberdiek.tar.lzma...
extracting files from palatino.cab...
extracting files from pdftex-def.tar.lzma...
extracting files from pslatex.cab...
extracting files from psnfss.cab...
extracting files from pstricks.tar.lzma...
extracting files from rsfs.tar.lzma...
extracting files from ruhyphen.cab...
extracting files from tds.cab...
extracting files from thumbpdf.tar.lzma...
extracting files from times.cab...
extracting files from tools.tar.lzma...
extracting files from ukrhyph.cab...
extracting files from utopia.cab...
extracting files from xetexref.tar.lzma...
extracting files from xetexurl.tar.lzma...
extracting files from xgreek.tar.lzma...
extracting files from xkeyval.tar.lzma...
extracting files from xltxtra.tar.lzma...
extracting files from xunicode.tar.lzma...
extracting files from xypic.tar.lzma...
extracting files from zapfchan.cab...
extracting files from zapfding.cab...
updating package definition directory (D:\tex\MiKTeX\tpm\packages)...
installed 1959 package definition files
visiting repository C:\DOCUME~1\日本語のアカウント名\LOCALS~1\Temp\mik31642...
repository type: local package repository
loading lightweight database...
Registering root directories...
configuring fontconfig\config\fonts.conf
registering D:\tex\MiKTeX\miktex/bin\MiKTeX209-core.dll
registering D:\tex\MiKTeX\miktex/bin\MiKTeX209-core-PS.dll
registering D:\tex\MiKTeX\miktex/bin\MiKTeX209-packagemanager.dll
registering D:\tex\MiKTeX\miktex/bin\MiKTeX209-packagemanager-PS.dll
Skipping user root directory ("C:\Documents and Settings\日本語のアカウント名\Application Data\MiKTeX\2.9")...
Skipping user root directory ("C:\Documents and Settings\日本語のアカウント名\Local Settings\Application Data\MiKTeX\2.9")...
Creating fndb for common root directory ("C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9")...
Creating fndb for common root directory (D:\tex\MiKTeX)...
Making format links...
Making script links...
D:\tex\MiKTeX\miktex/bin\miktex-taskbar-icon.exe
D:\tex\MiKTeX\miktex/bin\miktex-update.exe
Creating language.dat, language.dat.lua and language.def...
Entering administrative mode...
Parsing config file D:\tex\MiKTeX\miktex\config\updmap.cfg...
Parsing D:\tex\MiKTeX\fonts\map\dvips\tetex\dvips35.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\tetex\pdftex35.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\tetex\dvipdfm35.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\tetex\ps2pk35.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\cm.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\cmextra.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\cyrillic.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\euler.map...
Parsing D:\tex\MiKTeX\dvips\eurosym\eurosym.map...
Parsing D:\tex\MiKTeX\dvips\hoekwater\hoekwater.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\latxfont.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\rsfs\rsfs.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\symbols.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\xypic\xypic.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\psnfss\charter.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\psnfss\fpls.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\lm\lm.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\obsolete\mathpi.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\obsolete\mathpple-ext.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\psnfss\pazo.map...
Parsing D:\tex\MiKTeX\dvips\pslatex\pcrr8rn.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\psnfss\psnfss.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\avantgar\uag.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\bookman\ubk.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\courier\ucr.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\helvetic\uhv.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\ncntrsbk\unc.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\palatino\upl.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\times\utm.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\psnfss\utopia.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\zapfchan\uzc.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\zapfding\uzd.map...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\ps2pk.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\download35.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\builtin35.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\psfonts_t1.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\psfonts_pk.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\pdftex\config\pdftex_ndl14.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\pdftex\config\pdftex_dl14.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvipdfm\config\dvipdfm_dl14.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvipdfm\config\dvipdfm_ndl14.map"...
Copying "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\psfonts_t1.map"
to "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\psfonts.map"...
Copying "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvipdfm\config\dvipdfm_dl14.map"
to "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvipdfm\config\dvipdfm.map"...
Copying "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\pdftex\config\pdftex_dl14.map"
to "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\pdftex\config\pdftex.map"...
C:/WINDOWS/Fonts: caching, new cache contents: 719 fonts, 0 dirs
C:/Program Files/Adobe/Reader 9.0/Resource/Font: caching, new cache contents: 16 fonts, 1 dirs
C:/Program Files/Adobe/Reader 9.0/Resource/Font/PFM: caching, new cache contents: 0 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1: caching, new cache contents: 0 fonts, 5 dirs
D:/tex/MiKTeX/fonts/type1/adobe: caching, new cache contents: 0 fonts, 2 dirs
D:/tex/MiKTeX/fonts/type1/adobe/courier: caching, new cache contents: 6 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/adobe/utopia: caching, new cache contents: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/groff: caching, new cache contents: 1 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/hoekwater: caching, new cache contents: 0 fonts, 4 dirs
D:/tex/MiKTeX/fonts/type1/hoekwater/mflogo: caching, new cache contents: 8 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/hoekwater/misc: caching, new cache contents: 1 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/hoekwater/rsfs: caching, new cache contents: 3 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/hoekwater/stmaryrd: caching, new cache contents: 6 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public: caching, new cache contents: 0 fonts, 6 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts: caching, new cache contents: 0 fonts, 6 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/cm: caching, new cache contents: 75 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/cmextra: caching, new cache contents: 15 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/cyrillic: caching, new cache contents: 5 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/euler: caching, new cache contents: 22 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/latxfont: caching, new cache contents: 14 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/symbols: caching, new cache contents: 12 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/cbcoptic: caching, new cache contents: 2 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/eurosym: caching, new cache contents: 12 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/lm: caching, new cache contents: 92 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/rsfs: caching, new cache contents: 3 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/xypic: caching, new cache contents: 23 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw: caching, new cache contents: 0 fonts, 9 dirs
D:/tex/MiKTeX/fonts/type1/urw/avantgar: caching, new cache contents: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/bookman: caching, new cache contents: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/courier: caching, new cache contents: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/helvetic: caching, new cache contents: 14 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/ncntrsbk: caching, new cache contents: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/palatino: caching, new cache contents: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/times: caching, new cache contents: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/zapfchan: caching, new cache contents: 1 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/zapfding: caching, new cache contents: 1 fonts, 0 dirs
D:/tex/MiKTeX/fonts/opentype: caching, new cache contents: 0 fonts, 1 dirs
D:/tex/MiKTeX/fonts/opentype/public: caching, new cache contents: 0 fonts, 1 dirs
D:/tex/MiKTeX/fonts/opentype/public/lm: caching, new cache contents: 72 fonts, 0 dirs
C:/Documents and Settings/All Users/Application Data/MiKTeX/2.9/fontconfig/cache: cleaning cache directory
D:\tex\MiKTeX\miktex\bin\fc-cache.EXE: succeeded
Skipping user root directory ("C:\Documents and Settings\日本語のアカウント名\Application Data\MiKTeX\2.9")...
Skipping user root directory ("C:\Documents and Settings\日本語のアカウント名\Local Settings\Application Data\MiKTeX\2.9")...
Creating fndb for common root directory ("C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9")...
Creating fndb for common root directory (D:\tex\MiKTeX)...
MiKTeX: 2.9
SystemAdmin: yes
PowerUser: no
OS: Microsoft Windows XP Home Edition Service Pack 3 (build 2600)
Root0: C:\Documents and Settings\日本語のアカウント名\Application Data\MiKTeX\2.9
Root1: C:\Documents and Settings\日本語のアカウント名\Local Settings\Application Data\MiKTeX\2.9
Root2: C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9
Root3: D:\tex\MiKTeX
UserInstall: C:\Documents and Settings\日本語のアカウント名\Application Data\MiKTeX\2.9
UserData: C:\Documents and Settings\日本語のアカウント名\Local Settings\Application Data\MiKTeX\2.9
UserConfig: C:\Documents and Settings\日本語のアカウント名\Application Data\MiKTeX\2.9
CommonInstall: D:\tex\MiKTeX
CommonData: C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9
CommonConfig: C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9

●MiKTeX Updateログ

downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/miktex-zzdb2-2.9.tar.lzma...
522841 bytes, 45.64 KB/Sec
updating package definition directory (D:\tex\MiKTeX\tpm\packages)...
installed 217 package definition files
visiting repository ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/...
repository type: remote package repository
loading lightweight database...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/miktex-zzdb1-2.9.tar.lzma...
105633 bytes, 22.77 KB/Sec
starting package maintenance...
installation directory: D:\tex\MiKTeX
package repository: ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/
lightweight database digest: 8312afd360ec6cd2cfde8e430a7cd502
going to download 28554293 bytes
going to install 325 file(s) (19 package(s))
unregistering D:\tex\MiKTeX\miktex/bin\MiKTeX209-core-PS.dll
unregistering D:\tex\MiKTeX\miktex/bin\MiKTeX209-core.dll
unregistering D:\tex\MiKTeX\miktex/bin\MiKTeX209-packagemanager-PS.dll
unregistering D:\tex\MiKTeX\miktex/bin\MiKTeX209-packagemanager.dll
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/fontspec.tar.lzma...
2955471 bytes, 78.37 KB/Sec
extracting files from fontspec.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/hyperref.tar.lzma...
3328790 bytes, 82.23 KB/Sec
extracting files from hyperref.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/ltxmisc.tar.lzma...
65021 bytes, 11.35 KB/Sec
extracting files from ltxmisc.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/luainputenc.tar.lzma...
424357 bytes, 43.62 KB/Sec
extracting files from luainputenc.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/luamplib.tar.lzma...
317712 bytes, 28.16 KB/Sec
extracting files from luamplib.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/luaotfload.tar.lzma...
277877 bytes, 29.64 KB/Sec
extracting files from luaotfload.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/luatexbase.tar.lzma...
2376249 bytes, 67.94 KB/Sec
extracting files from luatexbase.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/luatextra.tar.lzma...
322873 bytes, 34.49 KB/Sec
extracting files from luatextra.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/miktex-fontconfig-bin-2.9.tar.lzma...
102217 bytes, 25.97 KB/Sec
extracting files from miktex-fontconfig-bin-2.9.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/miktex-ghostscript-bin-2.9.tar.lzma...
9286778 bytes, 83.32 KB/Sec
extracting files from miktex-ghostscript-bin-2.9.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/miktex-misc.tar.lzma...
40762 bytes, 13.13 KB/Sec
extracting files from miktex-misc.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/miktex-mo-bin-2.9.tar.lzma...
85375 bytes, 15.74 KB/Sec
extracting files from miktex-mo-bin-2.9.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/miktex-runtime-bin-2.9.tar.lzma...
854677 bytes, 45.97 KB/Sec
extracting files from miktex-runtime-bin-2.9.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/miktex-yap-bin-2.9.tar.lzma...
392941 bytes, 34.69 KB/Sec
extracting files from miktex-yap-bin-2.9.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/pdftex-def.tar.lzma...
13457 bytes, 7.86 KB/Sec
extracting files from pdftex-def.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/pstricks.tar.lzma...
7481978 bytes, 86.69 KB/Sec
extracting files from pstricks.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/xetexref.tar.lzma...
139771 bytes, 23.17 KB/Sec
extracting files from xetexref.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/xgreek.tar.lzma...
70893 bytes, 19.44 KB/Sec
extracting files from xgreek.tar.lzma...
downloading ftp://ftp.tu-chemnitz.de/pub/tex/systems/win32/miktex/tm/packages/xunicode.tar.lzma...
17094 bytes, 9.63 KB/Sec
extracting files from xunicode.tar.lzma...
configuring fontconfig\config\fonts.conf
registering D:\tex\MiKTeX\miktex/bin\MiKTeX209-core.dll
registering D:\tex\MiKTeX\miktex/bin\MiKTeX209-core-PS.dll
registering D:\tex\MiKTeX\miktex/bin\MiKTeX209-packagemanager.dll
registering D:\tex\MiKTeX\miktex/bin\MiKTeX209-packagemanager-PS.dll
Skipping user root directory ("C:\Documents and Settings\日本語のアカウント名\Application Data\MiKTeX\2.9")...
Skipping user root directory ("C:\Documents and Settings\日本語のアカウント名\Local Settings\Application Data\MiKTeX\2.9")...
Creating fndb for common root directory ("C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9")...
Creating fndb for common root directory (D:\tex\MiKTeX)...
Making format links...
Making script links...
D:\tex\MiKTeX\miktex/bin\miktex-taskbar-icon.exe
D:\tex\MiKTeX\miktex/bin\miktex-update.exe
Creating language.dat, language.dat.lua and language.def...
Entering administrative mode...
Parsing config file D:\tex\MiKTeX\miktex\config\updmap.cfg...
Parsing D:\tex\MiKTeX\fonts\map\dvips\tetex\dvips35.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\tetex\pdftex35.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\tetex\dvipdfm35.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\tetex\ps2pk35.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\cm.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\cmextra.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\cyrillic.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\euler.map...
Parsing D:\tex\MiKTeX\dvips\eurosym\eurosym.map...
Parsing D:\tex\MiKTeX\dvips\hoekwater\hoekwater.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\latxfont.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\rsfs\rsfs.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\amsfonts\symbols.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\xypic\xypic.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\psnfss\charter.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\psnfss\fpls.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\lm\lm.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\obsolete\mathpi.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\obsolete\mathpple-ext.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\psnfss\pazo.map...
Parsing D:\tex\MiKTeX\dvips\pslatex\pcrr8rn.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\psnfss\psnfss.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\avantgar\uag.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\bookman\ubk.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\courier\ucr.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\helvetic\uhv.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\ncntrsbk\unc.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\palatino\upl.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\times\utm.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\psnfss\utopia.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\zapfchan\uzc.map...
Parsing D:\tex\MiKTeX\fonts\map\dvips\zapfding\uzd.map...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\ps2pk.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\download35.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\builtin35.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\psfonts_t1.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\psfonts_pk.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\pdftex\config\pdftex_ndl14.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\pdftex\config\pdftex_dl14.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvipdfm\config\dvipdfm_dl14.map"...
Writing "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvipdfm\config\dvipdfm_ndl14.map"...
Copying "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\psfonts_t1.map"
to "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvips\config\psfonts.map"...
Copying "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvipdfm\config\dvipdfm_dl14.map"
to "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\dvipdfm\config\dvipdfm.map"...
Copying "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\pdftex\config\pdftex_dl14.map"
to "C:\Documents and Settings\All Users\Application Data\MiKTeX\2.9\pdftex\config\pdftex.map"...
C:/WINDOWS/Fonts: skipping, existing cache is valid: 719 fonts, 0 dirs
C:/Program Files/Adobe/Reader 9.0/Resource/Font: skipping, existing cache is valid: 16 fonts, 1 dirs
C:/Program Files/Adobe/Reader 9.0/Resource/Font/PFM: skipping, existing cache is valid: 0 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1: skipping, existing cache is valid: 0 fonts, 5 dirs
D:/tex/MiKTeX/fonts/type1/adobe: skipping, existing cache is valid: 0 fonts, 2 dirs
D:/tex/MiKTeX/fonts/type1/adobe/courier: skipping, existing cache is valid: 6 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/adobe/utopia: skipping, existing cache is valid: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/groff: skipping, existing cache is valid: 1 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/hoekwater: skipping, existing cache is valid: 0 fonts, 4 dirs
D:/tex/MiKTeX/fonts/type1/hoekwater/mflogo: skipping, existing cache is valid: 8 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/hoekwater/misc: skipping, existing cache is valid: 1 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/hoekwater/rsfs: skipping, existing cache is valid: 3 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/hoekwater/stmaryrd: skipping, existing cache is valid: 6 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public: skipping, existing cache is valid: 0 fonts, 6 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts: skipping, existing cache is valid: 0 fonts, 6 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/cm: skipping, existing cache is valid: 75 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/cmextra: skipping, existing cache is valid: 15 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/cyrillic: skipping, existing cache is valid: 5 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/euler: skipping, existing cache is valid: 22 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/latxfont: skipping, existing cache is valid: 14 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/amsfonts/symbols: skipping, existing cache is valid: 12 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/cbcoptic: skipping, existing cache is valid: 2 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/eurosym: skipping, existing cache is valid: 12 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/lm: skipping, existing cache is valid: 92 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/rsfs: skipping, existing cache is valid: 3 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/public/xypic: skipping, existing cache is valid: 23 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw: skipping, existing cache is valid: 0 fonts, 9 dirs
D:/tex/MiKTeX/fonts/type1/urw/avantgar: skipping, existing cache is valid: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/bookman: skipping, existing cache is valid: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/courier: skipping, existing cache is valid: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/helvetic: skipping, existing cache is valid: 14 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/ncntrsbk: skipping, existing cache is valid: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/palatino: skipping, existing cache is valid: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/times: skipping, existing cache is valid: 4 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/zapfchan: skipping, existing cache is valid: 1 fonts, 0 dirs
D:/tex/MiKTeX/fonts/type1/urw/zapfding: skipping, existing cache is valid: 1 fonts, 0 dirs
D:/tex/MiKTeX/fonts/opentype: skipping, existing cache is valid: 0 fonts, 1 dirs
D:/tex/MiKTeX/fonts/opentype/public: skipping, existing cache is valid: 0 fonts, 1 dirs
D:/tex/MiKTeX/fonts/opentype/public/lm: skipping, existing cache is valid: 72 fonts, 0 dirs
C:/Documents and Settings/All Users/Application Data/MiKTeX/2.9/fontconfig/cache: cleaning cache directory
D:\tex\MiKTeX\miktex\bin\fc-cache.EXE: succeeded


2010年12月24日金曜日

Rubyにおける代入・参照・参照渡しと、メソッドの仮引数・ローカル変数・グローバル変数

ひさびさにRubyを触って、思い出すまでハマったのでメモっておく。



「Rubyには参照渡ししかない」とだけ覚えていたことから、生じていた思い込み:
×メソッドの引数を介して、グローバル変数の値は変えられる

これは間違い。



以下が正しい:

  • 代入演算子= は、参照先を変更する(だけの)ためのものである

  • メソッドは、オブジェクトに対するメッセージである

  • メソッドの機能の一つには、オブジェクト内部のフィールドの値を変更することがある

  • メソッド定義の仮引数は、メソッドのスコープのローカル変数である







実験



以下のようなt_f, t_f2, t_f3 のメソッドがあるとする:
irb(main):022:0> def t_f( a )
irb(main):023:1>  a='t_f'
irb(main):024:1> end
=> nil

irb(main):029:0> def t_f2( a )
irb(main):030:1> a.push('bar')
irb(main):031:1> end
=> nil

irb(main):036:0> def t_f3( a )
irb(main):037:1> b=a
irb(main):038:1> b.push('t_f3')
irb(main):039:1> end
=> nil









メソッド t_f のテスト



irb(main):025:0> a="boo"
=> "boo"
irb(main):026:0> t_f( a )
=> "t_f"
irb(main):027:0> a
=> "boo"





  1. グローバル・スコープの変数 a の参照が、メソッド t_f の仮引数 a にコピーされる
     (この時点で t_f の仮引数a の参照先は、オブジェクト"boo"である)


  2. メソッド t_f の仮引数 a の参照先が、文字列オブジェクト "t_f" に、変更される


  3. メソッド t_f を抜けたので、メソッド t_f の仮引数 a は破棄される
    ��グローバル・スコープの変数 a の値=参照先は、 "boo" のままであることが、確認される


メソッド t_f2 のテスト



irb(main):028:0> b=['boo']
=> ["boo"]
irb(main):033:0> t_f2( b )
=> ["boo", "bar"]
irb(main):034:0> b
=> ["boo", "bar"]





  1. グローバル・スコープの変数b の参照が、メソッドt_f2の仮引数a にコピーされる(この時点でt_fの仮引数a の参照先は、オブジェクト["boo"]である)


  2. メソッドt_f2の仮引数a に、メッセージpush("bar")が渡され、仮引数a の参照先のオブジェクトは["boo", "bar"]に、変更される


  3. メソッドt_f2 を抜けたので、メソッドt_f2 の仮引数a は破棄される
    ��グローバル・スコープの変数b の値=参照先のオブジェクトの値は、["boo", "bar"]と変更されていることが、確認される


メソッド t_f3 のテスト



irb(main):042:0> b=["boo", "bar", "bar"]
=> ["boo", "bar", "bar"]
irb(main):043:0> t_f3( b )
=> ["boo", "bar", "bar", "t_f3"]
irb(main):044:0> b
=> ["boo", "bar", "bar", "t_f3"]





  1. グローバル・スコープの変数b の参照が、メソッドt_f3の仮引数a にコピーされる
     (この時点でt_fの仮引数a の参照先は、オブジェクト["boo", "bar", "bar"]である)


  2. メソッドt_f2のローカル変数b の参照先は、仮引数a の参照先に設定される


  3. メソッドt_f2のローカル変数b の参照先に、"t_f3"がpushされ、オブジェクト["boo", "bar", "bar", "t_f3"]に、変更される


  4. メソッドt_f2 を抜けたので、メソッドt_f2 の仮引数a 、ローカル変数b は、ともに破棄される
    ��グローバル・スコープの変数b の値=参照先のオブジェクトの値は、["boo", "bar", "bar", "t_f3"]と変更されていることが、確認される

2010年12月2日木曜日

Cygwin上のruby環境でgithubとgist, gistyの環境を整えてみた


■問題点
例によって、躓きまくりました。
  • nokogiriのgemインストールができない。
  • gistyのgemインストールができない。

■解決法
時間のない人のために、最初に、今回試した手順のまとめを示します:
  1. Cygwinのライブラリ(lib*)のインストール(gistyに必要とされるもの)
    Cygwinのインストーラ:setup.exeで、libxml2, libxslt, libiconv, (+libiconv2) をインストール。
  2. gemの設定1(環境変数GEM_HOME, APPDATA)
    export GEM_HOME="/cygdrive/your/gem/home"
    export APPDATA="${GEM_HOME}"
  3. gemの設定2(gemの取得先の設定追加)
    $ gem sources -a http://gems.github.com/
  4. gemインストール1(nokogiri)
    $ gem install nokogiri
  5. gemインストール2(gisty)
    $ gem install swdyh-gisty
  6. gistyの設定(GISTY_DIR)
    export GISTY_DIR="${HOME}/your/gisty/directory"
  7. githubの設定(SSH公開鍵の登録)
    github.comにログインし
    アカウントの設定>アカウントの概要>SSH公開鍵
    にて、登録。
  8. gitのローカル環境の設定(githubのidとAPIトークン)
    git config --global github.user your_id
    git config --global github.token your_APItoken
  9. gistyの設定(パスの通ったディレクトリにコピー)
    cd /cygdrive/${GEM_HOME}/gems/swdyh-gisty-0.0.14/bin
    cp -i gisty /usr/bin/.
以下は試したときの時系列ログ的書き物です。


●gemインストール1

$ gem install nokogiri
Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/usr/bin/ruby.exe extconf.rb
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... yes
checking for xsltParseStylesheetDoc() in -lxslt... yes
checking for exsltFuncRegister() in -lexslt... yes
checking for xmlFirstElementChild()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
creating Makefile
/usr/lib/ruby/1.8/mkmf.rb:1322: warning: global variable `$preload' not initiali
zed
make
Makefile:119: *** target pattern contains no `%'. Stop.
Gem files will remain installed in d:/home/gems/nokogiri-1.4.4 for inspection.
Results logged to /cygdrive/d/home/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out

エラーログからは、なにが悪いのかさっぱり分からない。そこで、エラーメッセ
ージをぐぐってみる。
http://stackoverflow.com/questions/1225703/cant-build-gem-native-extension-build-fails-can-you-see-why
どうやら、Cygwin環境のライブラリを再インストールする必要があるようだ。。。
●足りないと思われるライブラリ
上記gemエラーログから、想像したライブラリ名は以下の通り:
  • ?libxml
  • libxml2
  • libxslt
  • ?libexslt
  • libiconv
  • (+iconv2)

��は、存在しないようだった。
Cygwinのインストーラ:setup.exe を使って、上記をReinstallした。
次に再度、gemのインストールを試す。
●再度gemインストール
また失敗。
$ gem install nokogiri
cygwin warning:
MS-DOS style path detected: C:\Documents and Settings\All Users\Application Data/gemrc
Preferred POSIX equivalent is: /cygdrive/c/Documents and Settings/All Users/Application Data/gemrc
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
Building native extensions. This could take a while...
ERROR: Error installing nokogiri:
ERROR: Failed to build gem native extension.
/usr/bin/ruby.exe extconf.rb
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... yes
checking for xmlParseDoc() in -lxml2... yes
checking for xsltParseStylesheetDoc() in -lxslt... yes
checking for exsltFuncRegister() in -lexslt... yes
checking for xmlFirstElementChild()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetParserStructuredErrors()... yes
checking for xmlRelaxNGSetValidStructuredErrors()... yes
checking for xmlSchemaSetValidStructuredErrors()... yes
checking for xmlSchemaSetParserStructuredErrors()... yes
creating Makefile
/usr/lib/ruby/1.8/mkmf.rb:1322: warning: global variable `$preload' not initiali
zed
make
Makefile:119: *** target pattern contains no `%'. Stop.
Gem files will remain installed in d:/home/gems/nokogiri-1.4.4 for inspection.
Results logged to /cygdrive/d/home/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out

似たようなエラーメーセージだが、若干違うのは”MS-DOSスタイルのパス”が云々
というところ。知らない環境変数が参照されていると見当をつけ、
set | grep -i "パス"
してみた。すると、APPDATAという変数に上記ディレクトリが設定されている
●gemの設定(環境変数)
以前、GEM_HOMEを設定したが、ActiveScriptRubyのためであった。今設定しよう
としているのは、Cygwin上のRubyのためのものである。既存の設定だと、
GEM_HOMEは、ActiveScriptRubyのための環境変数の設定値(当然、こちらはWin 
形式のディレクトリ名)となっており、Cygwinとバッティングする。
また、環境変数APPDATAも、gemから同様な参照をされる。gemは、APPDATAの設定
値(ディレクトリ)からも、gemrcを読もうとしている。
だから、Cygwin上のRuby環境においては、Bashの環境変数:
GEM_HOME, APPDATA両方の設定を、POSIX形式で、行う必要がある;
これらの値の設定を.profileまたは.bashrcにでも書いておけばよかろう。
以下のようにした:
export GEM_HOME="/cygdrive/d/home"
export APPDATA="${GEM_HOME}"

ふー。
もう一度、gemのインストールから・・・(ヽ´ω`)。。。
●nokogiri のインストール
$ gem install nokogiri
Building native extensions. This could take a while...
Successfully installed nokogiri-1.4.4
1 gem installed
/usr/lib/ruby/1.8/rdoc/parsers/parse_c.rb:204: warning: method redefined; discar
ding old progress
Installing ri documentation for nokogiri-1.4.4...
No definition for get_options
No definition for set_options
No definition for parse_memory
No definition for parse_file
No definition for parse_with
Installing RDoc documentation for nokogiri-1.4.4...
No definition for get_options
No definition for set_options
No definition for parse_memory
No definition for parse_file
No definition for parse_with

インストールできたようだ。
次にgistyのgemをインストールする。
●swdyh-gisty のインストール
$ gem sources -a http://gems.github.com/
$ gem install swdyh-gisty
/usr/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:88: warning: instance variable @prerelease not initialized
/usr/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:88: warning: instance variable @prerelease not initialized
Successfully installed swdyh-gisty-0.0.14
1 gem installed
/usr/lib/ruby/1.8/rdoc/parsers/parse_c.rb:204: warning: method redefined; discarding old progress
Installing ri documentation for swdyh-gisty-0.0.14...
Installing RDoc documentation for swdyh-gisty-0.0.14...
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string
/usr/lib/ruby/1.8/rdoc/generators/html_generator.rb:1103: warning: too many arguments for format string

ドキュメント関連のwarningが出るが、インストールできたようだ。
■gistyの設定(GISTY_DIR)
適当なディレクトリを用意しましょう。このディレクトリに、gistyは
GISTY_DIRは、.bashrcに書
いておけばよいでしょう。
export GISTY_DIR="${HOME}/your/directory"

■githubの設定(SSH公開鍵の登録)
ssh-keygenを使って、公開鍵と秘密鍵を生成する。
次に、githubに生成した公開鍵を登録する。登録は、githubにログインして、
 アカウントの設定>アカウントの概要>SSH公開鍵
から行います。
手順の詳細は、
コピペするときに、改行が入らないように気をつけること。改行が入ってしまっ
たら、消してください。
公開鍵を登録し終わったら、ちゃんと登録できたかテスト。テストは以下のよう
な感じで:
$ ssh -T git@github.com
Enter passphrase for key '/home/masa/.ssh/id_rsa':
ERROR: Hi mephistobooks! You've successfully authenticated, but GitHub does not
provide shell access

"successfully authenticated"されれば、オッケイ。
■gitの設定(idとAPIトークン)
APIトークンは、github.com/account の
アカウントの設定>アカウントの概要>アカウントの管理>APIトークン
に表示されます。
下記のコマンドで、githubのidとAPIトークンを設定しましょう。
git config --global github.user your_id
git config --global github.token your_APItoken

■gistyの設定(パスの通ったディレクトリにコピー)
なぜなんだか、gem installしても/usr/bin/に、gistyがコピーされませんでした。
なので仕方なく手で、ディレクトリ:
/cygdrive/${GEM_HOME}/gems/swdyh-gisty-0.0.14/bin から、
cp -i gisty /usr/bin/.
した。
ふー。
■References
・README.rdoc -gisty
https://github.com/swdyh/gisty
・gistコマンドよりちょっと便利なgisty
http://d.hatena.ne.jp/swdyh/20081207/1228655198
・Gistyインストールから利用までの道のりメモ
http://d.zeromemory.info/2009/01/05/install-gisty.html
・Generating SSH keys (Win/msysgit)
http://help.github.com/msysgit-key-setup/
・WindowsでのGit環境構築とその注意点
http://sourceforge.jp/magazine/09/02/12/0530242

2010年11月29日月曜日

Cywin上のRuby環境でgitの環境を整えてみた

これらのサイト

http://sourceforge.jp/magazine/09/02/12/0530242
http://www8.atwiki.jp/git_jp/pub/git-manual-jp/Documentation/gittutorial.html

を参考にした。

もともと、Cygwin環境自体は構築済みなので、Cygwinのsetup.exeで、
  1. git
  2. git-completion
  3. git-gui
  4. git-svn
  5. subversion-perl
  6. lv
の6つパッケージをインストール。ひさびさに更新したら、今回の作業とは関係ないいろんなモノをダウンロードしてしまった。lvは昔インストールした気もするが・・・まぁいいや。
しかし、ちょっと凝ったことしようとすると、Windowsがメインを前提とすると、途端にめんどくささが上がってしまう。。。
漢字コードやらなにやらで。ま、当ブログではマゾヒスティックに、Win環境にも関わっていきます。

8月末からPVががくっと落ちていた件

以前書いていた件だけども、原因は単純で:
テンプレートから、Googleアナリティクスのコードが消えていたこと
であった。いやはや。

これは、時期的に考えて、SyntaxHilighterを導入した際に、発生したと思われる。。。が、自分じゃ消した覚えが無いんですよね。
これ以外にも、seesaaブログでは
消したコードが復活していたりするなど
不審な動作を何回か経験しているのだが、どうしたもんか・・・

いままで、
  • はてな
  • seesaa
  • fc2
などを使ってきたけど、他のサービスも試してみる時期に来ているのかなぁ。。

ちなみに、それぞれのメリット・デメリットは
  • はてな:+エントリを書きやすい。-アフィリエイトしにくい
  • seesaa:+アフィリエイトしやすい -エントリを書きにくい。(とくにHTMLで書くとき、最悪)
  • fc2: -あんまり使わなかったけど、検索ヒットしにくい・・・?
という感じ。あくまで、個人的な感想だけど。

2010年10月21日木曜日

GAE: Windows環境でRubyをつかったGoogle App Engine開発環境導入まとめとコマンドヘルプ

■本稿の目的



Googleによる App Engine のチュートリアルは、とてもわかり易く、手順をシンプルに追った記述となっている。これにより、PythonまたはJavaを使ったGAEの開発の最低限の方法について、知ることができる。



しかしながら、このチュートリアルでは、以下のような難点がある:

  • Rubyの環境については触れられていない

  • 開発用のコマンドの詳細の説明については、省かれている

  • 手順を丁寧に追っているため、記述に若干冗長な感がある




加えて、ネット上の情報を見ると、それらのほとんどはLinuxベースの環境であって、Windows+Ruby環境でのGAE開発に触れた情報は少ない(Googleでキーワード「GAE Ruby Windows dev_appserver appcfg」で検索すると、実際のページ総数はたかだか「約 244 件中 3 ページ目 (0.24 秒)」件である)。



そこで、本稿は:

  • Windows環境(ActiveScriptRuby)

  • RubyをつかったGAE開発

  • Googleのチュートリアルより記述を簡潔に

  • ただし開発用コマンドの説明は詳細まで行う

という方針で、App Engineを利用した開発の手始めについてまとめた。


■凡例


本稿の表記
Googleのチュートリアルの表記、または本稿が想定する環境等

GAEアプリ
App Engineアプリケーション
GAE SDK
App Engineソフトウェア開発キット
GAEリモート動作環境
Googleによって提供されているApp Engine (Python|Java|etc...) ランタイム
 環境。
GAEローカル環境
GAEのソースの記述、ローカルWebサーバーでテストなどをおこなうGAEリモー
ト動作環境の外、すなわちあなたのPCなどのこと。
GAEアプリID
GAEアプリのための任意のID
GAE開発用コマンド
 核となるコマンド: dev_server.rb, appcfg.rb をいう。


■Google App Engineとは



App Engineとは:

  • メールサービス

  • Webサーバー・インタフェース
    Webアプリ
    Webアプリ・開発用コンソール http://(localhost:xxxx|appid.appspot.com)/_ah/admin
     (上記Webアプリは、GAEアプリとしての特徴を有する)

  • ストレージ

を有する、Googleによるサービスの総体のことである。


これらのサービスを使って、ユーザによりGAE SDKを使って開発されるものを、本稿では、GAEアプリと呼ぶ。


GAEアプリを開発、実行する環境は、2つあり:
 GAEリモート動作環境、
 GAEローカル環境
とよぶ。
 
 



■RubyのGoogle App Engine環境



本稿では、単にApp Engineを導入するのでなくて、Rubyを用いた環境を導入する
ことを想定している。実際には、Javaの環境をベースに JRubyを介して、Rubyを
利用する形となる(一般的に提供されている、PythonやJavaによる環境ではない
��。


このRubyを利用するための環境は、 gem形式でGoogleが用意してくれている。
 



■GAEアプリ開発の一連の流れを簡潔に述べる



チュートリアルの流れを、簡潔に表にまとめた。





































ステップ用意するもの得られるものやること

1.GAE開発環境の用意

GAE SDKのダウンロード作業

GAEの開発環境

Ruby用のGAE SDKをインストールする。
方法については、

前回の記事

を参照のこと。 

2.GAEアプリのアカウントを登録

Googleアカウント、
GAEアプリID、
SMSを受信できる携帯電話

GAEアプリのURL(http://GAEアプリID.appspot.com/)

GAEアプリのアカウント登録サイトで、必要とされる情報を入力する※。


3.GAEローカル環境でのGAEアプリの開発

ソースコード

GAEアプリ

GAEアプリのソースコードを記述する。

4.GAEリモート動作環境へのアップロード

GAEアプリ、
アップロード・コマンドの実行(appcfg.rb)、
GoogleアカウントのIDとパスワード

GAEリモート動作環境でのGAEアプリの起動

アップロード・コマンドを実行し、GAEリモート動作環境にアップロードする。




※ステップ2の注意



SMSの登録内容について。電話番号の表記の仕方(81を含むのかそうでないか)、メ
ールアドレスかイマイチ判然としない。何度か試しているうちに、Googleか
らSMSが来たため、どれが正しいかわからなかった。



このサイト

でも、同様の事例をまとめているようだ。


Googleから送信されるSMSには、"Google App Engine Code: xxxxxxx"(xは数
字)という内容で、これがGoogleの GAEアカウント認証サイトによって認証
される必要がある。(当方は、ドコモの携帯電話で2010年 9月に行った。)
 
 
 
 




■GAE開発用コマンドについて



GAE SDKのをインストールすると、チュートリアルに紹介されているコマンド:
dev_appserver.rb, appcfg.rb が、ディレクトリ: %RUBY_HOME%\bin\ などに、
格納される(実際には、BATファイルからなる複数のスクリプトから構成されるが、本稿で
はここのスクリプトについての説明は割愛する)。



◆概要



●dev_appserver.rb



開発用のローカルWebサーバー兼GAEローカル環境でのGAEアプリのランチャ。
使い方:
 dev_appserver.rb [オプション] <warディレクトリ>



「warディレクトリ」にあるGAEアプリを、ローカル環境で起動する。


このローカルWebサーバーは、Googleアカウントをシミュレートしていて、独自
のログイン、ログアウト画面を有する。



●appcfg.rb



GAEアプリの管理コマンド


使い方:
 D:/PROGRA~1/ruby-1.8/bin/appcfg.rb [options] <action> <app-dir> [<output-file>]




管理とは、以下のことを指す:

  • ランタイム環境へのGAEアプリのアップロード
  • index.yamlの更新・削除
  • スケジュール・タスクの管理
  • スケジュール・タスクの管理

  • ランタイム環境へのデータのアップロード

http://code.google.com/intl/ja/appengine/docs/python/tools/uploadinganapp.html




◆GAE開発用コマンドの詳細説明




●dev_appserver.rb



開発用のローカルWebサーバー兼GAEローカル環境でのGAEアプリのランチャ。



使い方:



  <dev-appserver> [options] <war directory>

※--help オプション時も、<war directory>指定が必要



オプション:



--help, -h
 このヘルプメッセージを表示して終了。

--server=SERVER
 -s SERVER
  最新のSDKバージョンを判別に使用するサーバの指定。

--address=ADDRESS
 -a ADDRESS
  WebサーバーがバインドするローカルPC上のインタフェースのアドレスの指
  定(もしくは、0.0.0.0 で全てのインタフェース)。

--port=PORT
 -p PORT
  WebサーバーがバインドするローカルPC上のポート番号の指定。

--sdk_root=root
 格納されているSDKでオーバーライドする場合のSDK格納ディレクトリの指定。

--disable_update_check
  最新のSDKバージョンのチェックを無効に指定。




例:




D:\Program Files\ruby-1.8\usr\local\sinatra_test>dev_appserver.rb --help .
D:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/appengine-tools-0.0.15/lib/appengine-tools/boot.rb:50: warning: `*' interpreted as argument prefix
=> Skipping update check
=> Booting DevAppServer
=> Press Ctrl-C to shutdown server
Usage: <dev-appserver> [options] <war directory>

Options:
--help, -h                 Show this help message and exit.
--server=SERVER            The server to use to determine the latest
-s SERVER                   SDK version.
--address=ADDRESS          The address of the interface on the local machine
-a ADDRESS                  to bind to (or 0.0.0.0 for all interfaces).
--port=PORT                The port number to bind to on the local machine.
-p PORT
--sdk_root=root            Overrides where the SDK is located.
--disable_update_check     Disable the check for newer SDK versions.




●appcfg.rb



GAEアプリの管理コマンド。



使い方:



 D:/PROGRA~1/ruby-1.8/bin/appcfg.rb [options] <action> <app-dir> [<output-file>]




アクション:



<action>は、以下のうちいずれか 1つである必要がある:


 help
  あるアクションのヘルプを出力する
 request_logs
  リクエスト・ログをApache共通ログ形式で出力する。
 rollback
  処理中の更新をロールバックする。
 update
  新しいバージョンのGAEアプリに更新、あるいは新規作成する。
 update_indexes
  GAEアプリのインデックス(注)を更新する。
 update_cron
  GAEアプリのcronジョブを更新する。
 update_queues
  GAEアプリのタスク・キューの定義を更新する。
 update_dos
  GAEアプリの対DoS保護の環境設定を更新する。
 version
  バージョン情報を出力する。
 cron_info
  cronジョブの次回の実行までの時間を表示する。
 run
  ユーザーのGAEアプリ環境でjrubyを実行する。
 bundle
  GAEリモート環境へのデプロイのために、ローカルのGAEアプリをパッケージングする。




'run' コマンドは、カレント・ディレクトリをGAEアプリのディレクトリと、みなします。
'help <action>' で、詳細の説明を見てください。



オプション:



-h, --help            ヘルプを表示して終了。
-s SERVER, --server=SERVER
接続を行うサーバー。
-e EMAIL, --email=EMAIL
利用するユーザ名。省略時は入力待ちに。
-H HOST, --host=HOST  全てのRPCで送られるホストヘッダの上書き。
-p PROXYHOST[:PORT], --proxy=PROXYHOST[:PORT]
指定したプロクシ・サーバを介してリクエストをプロ
する。
--proxy_httpsも指定した場合、HTTPだけがプロクシ
され、そうでなければHTTPとHTTPSの両方がなされる。
--proxy_https=PROXYHOST[:PORT]
HTTPSリクエストをプロクシするプロクシ・サーバ。
--sdk_root=root       GAE SDKの格納場所を上書きする。
--passin              標準入力からログイン・パスワードを読む。
--insecure            管理コンソールとの通信ではHTTPSを使用しない。
--enable_jar_splitting
巨大なjarファイル(> 10M)を小さなファイルに分割する。
Split large jar files (> 10M) into smaller fragments.
--jar_splitting_excludes=SUFFIXES
--enable-jar-splitting が指定された場合、コンマ
区切りでSUFFIXESに指定された拡張子にマッチするファイルは、全ての
jarファイルにおいて、分割から除外される。
When --enable-jar-splitting is set, files that match
the list of comma separated SUFFIXES will be excluded
from all jars.
--retain_upload_dir
GAEリモート環境へのアップロード時に使用した一時ディレクトリを残す。
Do not delete temporary directory used in uploading.
--compile_encoding
JSPをコンパイルするときに使用する文字エンコーディングの指定
The character encoding to use when compiling JSPs.
-n NUM_DAYS, --num_days=NUM_DAYS
ログデータを入手する日数の指定。カットオフ・ポイントは、UTCで12時
である。できるだけ全てのログを得る場合は 0 を指定する。デフォルト
値は 1 である。
Number of days worth of log data to get. The cut-off
point is midnight UTC. Use 0 to get all available
logs. Default is 1.
--severity=SEVERITY ? アプリレベルログメッセージのシビア度の指定。範囲は 0
(DEBUG) から 4 (CRITICAL)である。
Severity of app-level log messages to get. The range
is 0 (DEBUG) through 4 (CRITICAL). If omitted, only
request logs are returned.
-a, --append          既存のファイルに追記する。
-n NUM_RUNS, --num_runs=NUM_RUNS
スケジュールされた計算するための実行時間の数
Number of scheduled execution times to compute




例:



D:\Program Files\ruby-1.8\usr\local\sinatra_test>appcfg.rb --help
D:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/appengine-tools-0.0.15/lib/appe
ngine-tools/appcfg.rb:51: warning: `*' interpreted as argument prefix
D:/Program Files/ruby-1.8/lib/ruby/gems/1.8/gems/appengine-tools-0.0.15/lib/appe
ngine-tools/boot.rb:50: warning: `*' interpreted as argument prefix

usage: D:/PROGRA~1/ruby-1.8/bin/appcfg.rb [options] <action> <app-dir> [<output-
file>]

Action must be one of:
help: Print help for a specific action.
request_logs: Write request logs in Apache common log format.
rollback: Rollback an in-progress update.
update: Create or update an app version.
update_indexes: Update application indexes.
update_cron: Update application cron jobs.
update_queues: Update application task queue definitions.
update_dos: Update application DoS protection configuration.
version: Prints version information.
cron_info: Displays times for the next several runs of each cron job.
run: run jruby in your application environment.
bundle: package your application for deployment.
The 'run' command assumes the app directory is the current directory.
Use 'help <action>' for a detailed description.

options:
-h, --help ? ? ? ? ? ?Show the help message and exit.
-s SERVER, --server=SERVER
? ? ? ? ? ? ? ? ? ? ? The server to connect to.
-e EMAIL, --email=EMAIL
? ? ? ? ? ? ? ? ? ? ? The username to use. Will prompt if omitted.
-H HOST, --host=HOST ?Overrides the Host header sent with all RPCs.
-p PROXYHOST[:PORT], --proxy=PROXYHOST[:PORT]
? ? ? ? ? ? ? ? ? ? ? Proxies requests through the given proxy server.
? ? ? ? ? ? ? ? ? ? ? If --proxy_https is also set, only HTTP will be
? ? ? ? ? ? ? ? ? ? ? proxied here, otherwise both HTTP and HTTPS will.
--proxy_https=PROXYHOST[:PORT]
? ? ? ? ? ? ? ? ? ? ? Proxies HTTPS requests through the given proxy server.
--sdk_root=root ? ? ? Overrides where the SDK is located.
--passin ? ? ? ? ? ? ?Always read the login password from stdin.
--insecure ? ? ? ? ? ?Do not use HTTPS to communicate with the Admin Console.
--enable_jar_splitting
? ? ? ? ? ? ? ? ? ? ? Split large jar files (> 10M) into smaller fragments.
--jar_splitting_excludes=SUFFIXES
? ? ? ? ? ? ? ? ? ? ? When --enable-jar-splitting is set, files that match
? ? ? ? ? ? ? ? ? ? ? the list of comma separated SUFFIXES will be excluded
? ? ? ? ? ? ? ? ? ? ? from all jars.
--retain_upload_dir
? ? ? ? ? ? ? ? ? ? ? Do not delete temporary directory used in uploading.
--compile_encoding
? ? ? ? ? ? ? ? ? ? ? The character encoding to use when compiling JSPs.
-n NUM_DAYS, --num_days=NUM_DAYS
? ? ? ? ? ? ? ? ? ? ? Number of days worth of log data to get. The cut-off
? ? ? ? ? ? ? ? ? ? ? point is midnight UTC. Use 0 to get all available
? ? ? ? ? ? ? ? ? ? ? logs. Default is 1.
--severity=SEVERITY ? Severity of app-level log messages to get. The range
? ? ? ? ? ? ? ? ? ? ? is 0 (DEBUG) through 4 (CRITICAL). If omitted, only
? ? ? ? ? ? ? ? ? ? ? request logs are returned.
-a, --append ? ? ? ? ?Append to existing file.
-n NUM_RUNS, --num_runs=NUM_RUNS
? ? ? ? ? ? ? ? ? ? ? Number of scheduled execution times to compute




■TODO




  • gem について

  • App Engine の設定項目について

  • GAE Ruby で使用されているRuby FWについて






2010年10月7日木曜日

Ruby関連 HTML/Webスクレイピング・ライブラリ・レビュー

HTML/Webのスクレイピング処理の観点から、有名どころのRubyのライブラリについて、現状(2010年10月時点)を調査した。調査項目は凡例に示すとおりである。ライブラリの比較・選定に際して、判断のひとつの材料として資することを、期待している。

なにかご意見がありましたら、お気軽にコメントをどうぞ。
2014-05-06追記: 新しいのはこちら→2014年版



■凡例



  • ■の次に、ライブラリ名 (現時点(2010年)でのバージョン)を記す

  • desc に、ライブラリの目的・機能仕様などの説明を記す

  • update に、ライブラリの更新期間を記す。ここで、yyyy-と記されている場合、yyyy年から現時点でも更新されていることを表す

  • url には、ライブラリのHPを記す。特にない場合、また情報が不足している場合は、補うに足るurl(ソースコードのurl)を追記している

  • ライセンスには、配布条件等のライセンスを記す

  • ソースコードには、ライブラリの格納場所のurlを記す

  • インストールには、ライブラリのインストール方法を記す

  • コメントには、補足の情報、私見などを記す

■Hpricot (0.8.2)


desc:
Hpricot は、非常に柔軟なHTMLパーサーで、田中 哲(TANAKA, Akira)の
HTree とジョン・レッシグ(John Lessig)の jQuery に基づいている。しかし、
コード・スキャナは、C でコーディングし直された。

update:
2006-


ライセンス:
MIT License (see http://github.com/hpricot/hpricot/blob/master/COPYING )


rubyforge:
N/A

インストール:
gem install hpricot

コメント
多くの派生ライブラリを持つHTMLパーサー。webスクレイピングにも使うこと
ができる。
以前の公式サイト(http://code.whytheluckystiff.net/hpricot/)は、リン
ク切れである。

田中 哲氏のhtreeは、 http://www.a-k-r.org/index.html からたどることがで
きる。

■Mechanize (1.0.0)


desc:
Mechanizeライブラリは、webサイト間のやり取りを自動化するために
使用される。Mechanizeは、自動でクッキーを格納して送信、リダイレクトを
フォローし、リンクをたどったり、フォームをサブミットsubmitできる。フォーム・フィ
ールドは増やしたり、サブミットできる。また、履歴となった訪れたサイトを
調査する。

update:
2005-



ソースコード:
github:
http://github.com/tenderlove/mechanize


インストール:
gem install mechanize

コメント:
Andy LesterによるPerlの同名のライブラリ:Mechanize の強い影響のもとに開
発された。webスクレイピングのためのライブラリである。
ruby 1.8.6 と nokogiri に依存している。

インストール時に、エラーが発生するという報告がWeb上に散見される。この場合、gemとRailsの更新等が事前に必要とのこと。
※追記2010/12/7:バージョン1.0.0では、Hpricotではなく、Nokogiriを使用するようになっているようだ。

■ScrAPI toolkit for Ruby (1.2.0)


desc:
CSSセレクタと選択 => 抽出 => 格納 処理ルールを使ったスクレイパーを書く
ためのフレームワーク。

update:
2006-2008



ソースコード:
github:
http://github.com/assaf/scrapi


install:
gem install scrapi

コメント:
少し情報が古い(2007年)が、このような意見もあった:“Web scraping in
Ruby: why I had to use scrAPI instead of WWW::Mechanize and Hpricot”
http://blog.bigsmoke.us/2007/05/02/scrapi-wins-over-mechanize-and-hpricot-for-web-scraping-in-ruby

開発は、止まっているようだ。

■scRUBYt! (0.4.06)


desc:
scRUBYt! は、Rubyで記述された、シンプルだがパワフルなwebスクレイピング・
ツールキットである。目的は、webページ・クローリング、HTMLタグ・属性・
XPath・フォーム名のルック・アップ処理の超めんどくささ、また、その他Web
ページまたはFirebugから直接コピペしたようなサンプルからこれらを理解
するような、典型的な低レベルなwebスクレイピングから、あなたをフリーに
することである。

update:
2007-



ソースコード:
github:
http://github.com/scrubber/scrubyt


インストール:
gem install hpricot
gem install mechanize
gem install scrubyt

コメント:
hpricot と mechanize (選択的に、AJAXのスクレイピングにFireWtir)に依存
している。

■nokogiri (1.4.3.1)


desc:
Nokogiri は、libxmlラッパーである。Nokogiri は、XPathやCSSの検索のため
のインタフェースを持ち、また、HTML, XML, SAX, そしてReaderパーサーの機
能がある。Nokogiri は、Hpricotの寄り道リプレイスメントでもある。

update:
2008-


ライセンス:
The MIT License (via http://nokogiri.org/ )

ソースコード:
github:
http://github.com/tenderlove/nokogiri/


インストール:
gem install nokogiri

コメント:
この中で、一番包括的な機能を持つパーサー。もちろん、webスクレイピングに
も使うことができる。