2006-09-29

Google Webmaster Toolsに対応させる

このブログの趣旨は、基本的には技術系の日記であり、自分用のメモ、おぼえがきなので、継続的な読者がつくことは期待していない。しかしもし、自分のはまったのと同じところで誰かがはまっていて、 ピンポイントの単語でググって昔の記事のどれかをみつけて解決の参考にしてもらえるのなら、これほど幸いなことはない。

ただ、せっかく適切な単語でググってもらっても出てこないのでは話にならなので、少しだけSEOしてみた。SEOといっても、あちこちトラックバックしまくったり、コメントしまくったり、PINGしまくったり、2chで晒したりじゃなく、まっとうなごくあっさりした「Google Webmaster Toolsへの登録」である。

基本的には、サイトの登録、サイトの確認(verify)をして、サイト構成が変わるたびにsitemapの再提出をしていけばよい。blogspotを使ったブログのサイト確認は、テンプレートをいじって、指定された<meta>タグを入れるだけである。確認が済めば消せばいい。

問題は、sitemapで、sitemap.xmlをトップディレクトリに置くわけにいかないので、RSS 2.0かAtom 0.3のフィードを食わせることになる。ところが、クリボウ氏の記事を参考にhttp://hsdiary.blogspot.com/atom.xmlを食わせると、 "Your Sitemap or Sitemap index file doesn't properly declare the namespace. (サイトマップまたはサイトマップ インデックス ファイルのネームスペース宣言が不適切です。)" と出てエラーになった。どうやら、beta版bloggerでは、atom.xmlのタグにxmlns属性がつかず、Googleはそれを厳しくチェックしてエラーにするらしい。そのうち直るんじゃない?という意見がある程度で、待つしかなさそう。

追記(10/12)

10月4日の記事に書いたように、atom.xmlではなくrss.xmlを使うことで、エラーを回避可能であることが判明。

2006-09-28

Firefox 2.0 RC1がらみではまる

これまでBon Echo, 2.0 beta 1, beta 2と上げてきて、特に問題は感じなかったが、一度Google Desktopからリンクをクリックして起動したときに古い1.5が起動してしまい、実はProgram Filesに二つインストールされていると知って嫌な感じはしていた。

RC1を入れたり、消したり、古いのも消したりしているうちにレジストリがぐちゃぐちゃになったのか、Google Desktopの写真ガジェットから写真がブラウザで開けなくなった。で、Google Desktopを入れ直したりとか無駄な努力も含めて調べていたら、実はJPEGの関連付けがおかしくなっていた。「プログラムで開く」の「プログラムの選択」の中にもFirefoxがなく、参照して選んでもFirefoxにならない。そういえば、Firefoxはずいぶん前から選択できなかったかもしれない。

さらに、IEをデフォルトにしたりFirefoxに戻したり1.5.0.7を入れたりしてると、htmlのアイコンもいつのまにかexeデフォルト版になってしまい、フォルダオプションでFirefoxのアイコンを指定しても効き目がなく、大混乱。

しかたなく、Firefoxを完全に消し、レジストリからもfirefoxとついたキーや値を消しまくり、壊れてませんようにと祈りながら再起動の成功に安堵し、さらに安全をみて1.5.0.7を入れ、ようやく解決。本当はどこかピンポイントで壊れた箇所があったのだろうが、Windowsに関しては単なる利用者なので詳細は結局わからず。

2.0 RC1に戻すのは、しばらく様子を見てからということで。

moodle利用規約アクセス方法

moodleアカウント作成前に利用規約を読んでもらうためにゲストログインができるようにしたが、 ログインページにサイト内リソースへのリンクを置くと、それをクリックしてもログインページに戻ってくるだけになる。これでは、ゲストログインが必要であることがまったく伝わらず、かえって混乱させるだけ。

moodle.orgみたいなログインなしでもサイトへのアクセスができるようにするのはまだ若干抵抗がある。なので、サイトのトップディレクトリに必要なファイルを直接置くしかなさそうだ。

これで、ゲストアクセスが無駄になったというわけではなく、アカウントなしに雰囲気を見てもらえるので、やや制限の強いこれくらいのアクセス手段があるのはよさそう。

2006-09-26

PDFCreatorもう少しがんばれ

これまでPowerPointからのPDF作成にはPrimoPDF 2.0を使っていたが、オープンソースのPDFCreatorの評判がよさそうなので、0.9.3を試してみる。

インストールは問題なし。出力品質も問題なし。フォント埋め込みも問題なし。ファイル名も Microsoft PowerPoint - とか特定の文字列を除去できる親切設計がありがたい。

しかし、少しだけ問題もあり。

デフォルトではマイ ドキュメントにPDFを作るのはまぁよしとして、毎回そこにリセットされてしまい、出力のたびにダイアログで出力先を選ばされる。もしかすると、パスワードとその確認も毎回入力が必要?

Auto-saveを選べば、ファイル名の生成方法と、ディレクトリを固定できるらしいが、日本語フォルダ名を含むパスをディレクトリとして指定すると、文字数とバイト数を誤って扱い、短い名前のフォルダを作ってそこに書きこんでしまう。

というわけで移行は見送り。

DocuPrint文字化け

コピー機の保守費用圧縮試験のため、FX DocuPrint 280 PS J2を標準的に利用するよう画策。WindowsからNetBEUI的に指定することはできていたが、時間がかかってしかたがないので、LPRを使って呼べるように設定。

しかし、PowerPointの配布資料を印刷すると、数枚目からいくつかの文字が「・」に化けはじめる。fujixeroxのサイトからドライバを最新にしてもだめ。PSが使えるメモリ量を増やしてもだめ。TrueTypeフォントを、ソフトフォントとしてダウンロードにしてもだめ。

結局、印刷時の詳細設定にある PostScript Output Option を Optimize for Speed から Optimize for Portability に変更することで、ようやく解決。

2006-09-23

moodleのバックアップが失敗する問題

以前から、ときどきmoodleの定期バックアップにエラーはあったが、後期用にコースを複製したころか、バージョンを上げたころから、エラーがほぼ毎日出るようになった。 曰く、

いくつかのコースが保存されませんでした!!

で、moodleドキュメントにある記述に従ってphpのmax_execution_timeを大きくしてみたりしても、まったく効果がなく、5分ごとに呼んでいるcron.phpのログを取ることにした。すると、バックアップが始まった後のログが途中で途切れており、30分後ぐらいに残りのバックアップが始まっている雰囲気で、これを繰り返している。ここでハタと思い付いたのが、タイムアウト。

cron.phpの呼出しに使っていたのは、FreeBSD標準のfetch。man pageにはデフォルトのタイムアウト時間は書かれていなかったが、ソースを見るとなんとたった120秒。ちなみにwgetは900秒らしい。

というわけで、fetch -T 3600 ぐらいにしたところ、無事にエラーが出なくなった。ログによると12分ぐらいかかっているらしい。

2006-09-22

NFSでOOo動かない問題

以前から、NFSにホームがある環境で、OpenOffice.org を動かそうとすると、 ロックができないわ、正常終了できなくて何度も同意させられるわ、そもそも動かないわで、どうしようもなかったが、Issue 54586 が鍵だった。

要はロック機能を使わなければいいのだが、これが環境変数 SAL_ENABLE_FILE_LOCKING の有無で制御されていて、/usr/local/openoffice.org-*/program/soffice スクリプトでそれを設定している。なので、このスクリプトで、export しないようにコメントアウトしてしまえばいいだけ。

めでたく動くのを確認した。

バージョンアップするごとにこれもしないといけないのは、何とかならんか?
あと、ロックしないことによる危険性は?

2006-09-20

linux-flashplugin7+linuxpluginwrapperおぼえがき

FreeBSDネイティブFirefoxでlinux-flashplugin7を linuxpluginwrapper経由で使うには、ベースシステムにパッチが必要。ハンドブックとか、FreeBSD Notes(referer spam扱いされるけどそのままリンクをクリック)とか、Sugimura'sとか参照。

2006-09-19

moodleのコースリセットでquiz attemptが残る問題

moodleは1.6あたりから、コースを新学期用にリセットする機能がついたようだが、これがめちゃくちゃ不完全。一番起こりうる問題は、コースの学生数が0になるのに、小テストの受験数が残ってしまい、どうしようもなくなること。この問題は、moodle.orgのフォーラムや、バグトラッカーにも報告されている。

この機能の中身は、学生の削除と、コースモジュールごとのユーザデータの削除が主だが、各コースモジュールの lib.php に modname_delete_userdata とオプショナルの modname_reset_course_form 関数を使って実現している。ところが、これらの関数をもつモジュールは、今のところ forum だけ。当然、小テストの受験データは消えない。

とりあえずのまともな回避策は、バックアップからユーザデータを除いてリストアすることくらいか。それ以外の方法としては、小テストに限れば、一時的に元のコースを子コースとしてメタコース化した上で各受験を手で消せばいいはずだが、課題(assignment)のコメント類は消す手段がないのではないかと予想される。中途はんぱにリセットしたコースのバックアップを、ユーザデータ抜きでリストアしてもいいだろうか?

今月に入って、この機能をきちんと完成させようという話が出てきた。近いうちに1.6系列に組み込まれることを期待。

2006-09-14

moodleカスタマイズその2

ログイン前や登録前に利用規約や個人情報取扱い規定を参照できるよう、トップページへのゲストアクセスを許す方針に変更。ログインページにゲストボタン設置。

この場合、教師が勝手にコースのゲストアクセスを許可したりすると、フォーラム投稿者とかの名前と写真がゲストに漏れてしまう。これが起きないように、各コースのゲストアクセスを強制禁止するコードを course/edit.php に追加。

2006-09-13

moodleカスタマイズ

moodleログイン時のユーザ名にもとづいて、コース作成権限と学籍番号の自動生成をするというカスタマイズを組込む。

コース作成権限については、当初、auth/pop3/lib.php に、auth_iscreator() を作成して実現しようとしたが、この場合、ログインするたびに権限が設定されるため、手動での変更がまったく不可能になる。そこで、user/edit.php に移し、$newaccount のときだけ user_coursecreator に登録するよう変更。

学籍番号については、同じく user/edit.php にて、ユーザ名が既知の学部のものにマッチすれば学籍番号を生成して $user->firstname に設定しつつフラグを立て、フラグが立っていれば javascript で disabled にする。ユーザ名→学部番号の正確な対応表が欲しいところ。

2006-09-12

OOoコンパイル問題

VMware PlayerのFreeBSDでOpenOffice.orgがコンパイルできなかった問題が解決。

2.0.2ならコンパイルできたのに、2.0.3では SlideSorterView.cxx のコンパイルに失敗してしまっていた。デスクトップのFreeBSDなら問題なかった。OSの違いは、6.1-STABLEと6.0-RELEASE程度の違いしかない。そうこうして、VMware Player側でコンパイルする時はメモリ不足で落ちていることがわかり、まさか、g++の正常な動作で何百MBもメモリを消費するとは思わず、メモリリークかなにかのバグだろうとあきらめた。

ところが、ports/98949あたり(実際は、検索にかかった別の記事)をよく見ると、swapが多ければうまくいくらしい。ということで、RAM 256MB, SWAP 512MBに対して、SWAP 512MBを追加すると、swapを700MB程度消費しつつ、無事コンパイル完了(当然、時間ははんぱじゃなくかかる)。

でもこれって、やっぱり g++-ooo が悪いんでないの?

2006-09-07

LaTeXでアンダーラインの自分用メモ

pLaTeXで書いた日本語文書の複数行にまとめてアンダーライン(下線)を引きたくなり、いろいろ四苦八苦したので覚え書き。結論から言えば、使い物になるのは jumoline.sty。

\underline:
素のLaTeXに元からついてるこのコマンドは、引数全体を1行に押し込めたボックスにアンダーラインを引くもの。1単語とかせいぜい短い1フレーズ程度しか使い物にならない。日本語も英語も同じ。

ulem.styの\emph:
素のLaTeXではイタリックでの強調となるこのコマンドは、標準添付のulem.styを使うことで、入れ子可能なアンダーライン用のコマンドになる。
が、日本語には未対応。スペースまでを1単語とみなして、1行におさまるよう単語を集めてボックスを作り、アンダーラインを引くっぽい。

udline.styの\ul:
日本語に関して1文字単位で処理するようになっており、正しく改行が行われる。しかし、英語もそうなっているようで、そのままでは単語内のどこででも改行されよろしくない。英文部分全体を \eiji と \Eiji で囲むか、各単語を {と} で囲む必要がある。引数のあるコマンドも {と} で囲む。
ちなみに、\ucは、指定した文字を指定したピッチで並べて、二重線や飾り線を作るもの。行間が空いてしまう。

umoline.styの\Underline:
ダウンロードしたumoline.tar.gzを展開して、ptex umoline.insすると得られる。CTANにも登録されている。日本語は考慮されていないので、ulem.sty相当。\emphと違い、コマンド直後の空白が無視されるので、{\Underline{...}}とする方がよい。引数のあるコマンドは {と} で囲む。

jumoline.styの\Underline:
umolineの日本語対応版。umoline.styと同じ注意が必要なだけで、まったく問題なく日本語に対応。

他にも、pLaTeX Guideには、いくつか紹介されているが、ここで満足したので、これ以上調査せず。

2006-09-04

Google Image Labelerがおもしろい

イメージ検索の精度を上げるには、結局は人力によるラベル付けが必要という判断からか、ボランティアによるラベル付けをしてもらうサイトGoogle Image Labelerを公開。しかし、タダで働く人はそう多くいるはずもなく、しかもラベルの精度を落とさないような、うまいゲーム性をもたせたのがすばらしい。90秒でどこの誰ともわからないパートナーとラベルを打ちまくり、一致した件数だけのポイントがもらえるしくみ。緊張感もあり、時間設定もちょうどよく、ちょっとした息抜きにぴったり。

日本語を打っても一致する可能性はまずないし、相手の素性もわからないので、当然英語のみ。つづりのあやふやな英単語の多さ、語彙の少なさに、未熟さを感じる。90秒で23件とかいうペアが記録されたりしているが、1件4秒未満なんてどんなスピードで打つんだろう。これまでの最高記録は8件。

ただ、やはりラベルの精度が心配。件数だけのポイント目当てになるので、第一印象で出てくる短い単語でしか一致しない。オリジナルのサイズで、ページとつきあわせてよく調べれば、正確なラベルが考えつくようなイメージでも、時間のせいで一般的なありふれたラベルで分類されていってしまう。さらにミスもある。

このイメージで、cd burnerだと言い当てられる?modemっていうラベルが付いちゃったよ。