2006-12-28

FreeBSDでISOイメージファイルをマウントする自分用メモ

年に1回もしない操作で毎回マニュアルをひっくりかえすのが面倒なのでメモ。既にvnは存在しないらしい(いったいいつの知識やら)。

# mdconfig -a -t vnode -f /path/to/image.iso -u 4
# mount -t cd9660 -o ro /dev/md4 /cdrom
# お仕事
# umount /cdrom
# mdconfig -d -u 4

2006-12-26

FreeBSDのlinux-firefoxでも日本語boldを

userContent.cssをいじれば、googleなんかでもFirefoxでちゃんとboldが出るようになるが、ぽっぺん日記で指摘されていたように、これだけではlinux-firefoxでは効果がない。

で調べたところ、SPRの日記(*BSDとかLinuxとかの覚え書き)にて、/compat/linux/usr/X11R6/lib/libXft.so.2.1.2が悪そうという情報を得る。しかし、リンク先のファイルがリンク切れ。

Fedora Core 4関連で続けて調べると、俺の話を聞け!によれば、fc4そのままではボールドが出ず、少なくとも、freetype-2.1.10, fontconfig-2.3.2, libXft-2.1.7を組み合わせれば出そうである。ということは、これらのlinux版ライブラリの新しめのを入手すればいいはず。

ところが、fc5, fc6用のrpmを探してライブラリをつっこむとGLIBC_2.4じゃないからダメと言われる。FreeBSD上でfc4クロス開発環境を構築するという手も考えられるが、あまりにも面倒そう。portsにあってもよさそうなものなのに。さらにfc4の動くマシンもない。

というわけで、最終手段として、fc4の動く仮想環境をVMware Playerで作る。CD-ROMイメージをダウンロードしてしこしこインストールしてもいいが、それも面倒なので、VMTNのVirtual Appliance MarketplaceにてFedora Core 4 operating system, workstation configurationを選んでダウンロードし、展開して実行(ちなみに、こいつのrootのパスワードはpassword)。この環境上でfreetype-2.2.1とlibXft-2.1.7のソースをダウンロードして「この順序で」インストール。fontconfigは不要だが、新しいfreetype中のFT_GlyphSlot_Emboldenが使えることが重要なのでfreetypeは必須で、インストール順序も重要。

そして、できあがった/usr/lib/libfreetype.so.6.3.10と/usr/X11R6/lib/libXft.so.2.1.2(ディレクトリはconfigure時に設定したので、ここになければどこかにあるはず)をFreeBSDの/compat/linux下のしかるべきディレクトリにコピーして、リンクをちゃんと張っておく。

以上で、linux-firefoxを起動すると、ボールドが出た。googleなんかでも出すには、userContent.cssをいじる必要があるのはネイティブ版と同様。かなりの手間をかけたわりにボールドが出るだけかという感じでもあるが、まぁ満足。

fc4あるいはxorg-6.8.2ベースである間の措置だろうと思うので、単独のportsとしてわざわざ作るべきものでもなさそう。早めの更新を期待。

追記(1/14)

SPRの日記(*BSDとかLinuxとかの覚え書き)にLinuxクロスコンパイル環境の構築例が掲載されている。今度必要になったら調べてみよう。

2006-11-30

eclipseとFirefoxの相性が悪い問題

FreeBSDのeclipseを3.2.1に上げようとしたら、ビルドが途中で止まった。xpcom.cppがなんちゃらとか、見た目、単純そうな文法エラーが大量に出る。

で、どうやらWITH_MOZILLA=firefoxではビルドできないらしい。eclipseの問題かFirefoxの問題か2.0の問題かよく読んでないけど、mozillaならいいらしい。

しかし、mozillaをわざわざ入れるのも嫌だし、もともとブラウザを組み込む必要も今のところないので、とりあえず、/usr/local/etc/port.confに
java/eclipse: WITHOUT_MOZILLA
を追加。

ところで、portconfはなかなかいいシステムだけど、make用の環境変数はいじれないものだろうか。

2006-11-22

coreutilsアップグレード失敗

portmaster使ったcoreutilsのアップグレード中、古いのを消した後のインストールの時点で、エラーで停止。

gmkdirがないらしい。

gmkdirってcoreutilsに入ってるんだから、インストールで使えるわけないじゃんと思いつつ、インストールし直してみる。新規インストールはうまくいったので、configureあたりでgmkdirがあると見て、そいつを使ってしまっているのだろう。freebsd-portsを見てみたら、案の定、既に報告されていた。でも、確かに、ありえるミスだ。クリーンインストールは何度でもテストできるけど、アップグレードのテストって面倒だしなかなかしないものだ。

で、依存関係の再構築をしないといけないんだが、portmasterってやっぱりこういう途中停止が面倒。と思ったら、幸い、どのパッケージも依存していなかった。

じゃあ、何のために入ってるんだろう?依存があったけど消えた?BUILD_DEPENDだった?消してもいいだろうか?

追記(11/24)

coreutils-6.4_1で修正済。

2006-11-13

ja-xdvik-tetexでIPAフォントを使う覚え書き

xdvikでIPAフォントを使うには、基本的には、/usr/local/share/texmf/xdvi/ptex/vfontmapを書き変えればよい。しかし、ただ書き変えただけでは、更新すると失われるので、vfontmap.ipaとかに作成しておき、~/.Xresourcesに

XDvi*vfontmap: /usr/local/share/texmf/xdvi/ptex/vfontmap.ipa

としておくとよい。

本来は、vfontmap.distがあるんだから、vfontmapが変更されてたら無視するようにportsを作っておいてほしいもの。

そろそろKochiフォント排除できるか。

2006-11-03

FreeBSDのFirefoxで正しくboldを

FreeBSDでようやくFirefox 2.0のportsが出て、さっそく上げた。

結局、1.5.0.7でもボールドの文字が完全には解決していなくて、ちゃんと出るサイトもあったが、特にgoodleで出なくて大変不便であった。ちょっと調べて出てきたサイト(ttt: FreeBSDと Firefoxと ボールド体と)には、freetype2 などにWITH_CJKをつけないとボールドにならないと書いてあったが、若干情報が古く、現時点では WITH_CJK オプションは不要で、すべてコメントアウトされている。実際、きちんとボールドで出るサイトもある。

で、例によって、重い腰を上げて(最初からそうすればいいのに)、googleの結果のページと、ちゃんとボールドで出るページのソースを眺めてみた。そうすると、違いは、googleが<b>要素を使ってるのに対し、後者は、<span style="font-weight: bold;">だった。まさか、この二つの意味が違うとは。

Firefoxは<b>をどのように扱っているかを調べたところ、/usr/local/lib/firefox/res/html.css 内で、

b, strong {
font-weight: bolder;
}
などとなっている。

次に、bolderとboldの違いを調べ出したら、bolderはかなり複雑そうだ(W3, Take off with CSS)。そのフォントに割り当てられている次の重みを選択することになっているが、「割り当てられている」というのがかなりあいまいで実装しだいかと思う。

FreeBSDのFirefoxでIPAフォントを使った場合のfont-weightの値ごとの実際の表示が右の感じ。ついでに、<b>を重ねれば、ちゃんとボールドになることもわかった。

とはいえ、<b>を重ねるサイトなんてほとんどあるとも思えず、一つだけでボールドになってくれる方がよほど実用的である。

ということで、userContent.css には、
b, strong { font-weight: bold; }
を加えた。

2006-10-26

ja-xpdfフォント問題2

以前解決したつもりのja-xpdfフォント問題だが、まだぞろぞろ出てくる。

まず、DFGothic-EB-WIN-RKSJ-Hとかいうフォントが出てきた。DynaFontのDF特太ゴシックというものらしいが、埋め込みもせずに送りつけてこないでもらいたいものだ。ためらわずにxpdfrcに追加。が、DF系はまだまだ大量にありそう。ワイルドカードが使えれば楽になりそう。

次に、別のpdfで、
Error: Couldn't find '90ms-RKSJ-H' CMap file for 'Adobe-Japan1' collection
とか言われた。adobe-cmapsは入れてあるし、当然aj16/CMapの下にそのファイルはあるのに何言ってるのと思いながらソースを追いかけると、xpdfrcで指定されたcMapDir「しか」探さないようだ。ということは、ja-xpdfのデフォルトがタコなんじゃんと文句をいいつつ、cMapDirのうしろに/aj16/CMapを追加。

最後は科研費がらみ。学振のページで応募情報ファイルというのを作成し、それをダウンロードすると、xpdfでは、上の 90ms-RKSJ-H 問題の他に、
Error: Couldn't find a font for 'lrSvbN'
Error: Couldn't find a font for 'lrSVbN,Bold'
とか出る。なんじゃそのフォントはと、たまたまjlessに通して見たら、なんと
Error: Couldn't find a font for 'MSゴシック'
Error: Couldn't find a font for 'MSゴシック,Bold'
だった。エンコーディングはシフトJIS。とりあえずこのままの名前でxpdfrcにつっこんでシフトJISで保存してみたら、なんとか表示された。ただし、Boldかどうかの区別はできていない。どうすればいい?

誰がこんなフォント名でPDFを作るのかとプロパティを見ると、IOWebDOCというPDFベースの帳票システムらしい。科研応募システムの受注先が、これを入れて納品したって感じか。

で、acroreadはどうやって対処してるのかと、バイナリをシフトJISとみなして覗いてみると、50個ほどの日本語用フォント名が埋め込んであった。そのうち半分が日本語名。どれも「,Bold」は付いていないので、これは一般的なフォントの飾り指示であって、xpdfが対処すべき問題なんだろうと思う。

ところで、xpdfrcでは、フォント名を明示的に指定しなくても、
displayCIDFontTT
で registry-ordering (つまり、Adobe-Japan1 とか)を指定することはできる。こうすればマッチするフォント名がなくてもフォントマッピングができる。しかしこの場合、たぶんGothicやらMinchoやらの区別はできないので、あまり使いたくない。追加すべきフォントも検出できなくなってしまうし。

というわけで、xpdfの改良余地はまだまだありそう、というのが結論。

2006-10-23

linux-flashplugin7

以前の記事で書いたメモに従ってFreeBSDにlinux-flashplugin7を導入。libexec/rtld-elfのパッチも当て、ハンドブックの記述に対してX11BASEがLOCALBASEになったことも簡単に片付けて、firefox about:pluginsで認識することを確認。youtubeも動作。

で、あっさりこれで大丈夫かと思ったら、やっぱり問題があった。

音が出ない:

固まる:
www.sony.jpで固まる。video.google.comのどれかのビデオでも固まる。

日本語の文字が出ない:
Google Analyticsのレポート内の日本語文字がすべて空白に。ルパンのタイトル風フラッシュも文字がまったく出ない。

これらのうち、文字に関してだけ、半分解決した。

LinuxのFlash Playerは日本語フォントとしてKochi GothicとKochi Minchoを使うようにハードコーディングされている。これを、xfsのconfigファイルに記述されたパスの中から探すらしい。xorg.confとかに基づいて探すよりは、確かに楽か。

なので、FreeBSDの場合、まずjapanese/kochi-ttfontsをインストールし(TeXとか入れてたら普通は入っているはず)、/usr/X11R6/lib/X11/fs/config をいじって、catalogue の行に、TrueTypeのディレクトリを追加。

これだけで、Google Analyticsレポートは日本語が出るようになった。ところがルパンフラッシュは、何か文字らしきものは出るようになったが文字化けしている。文字エンコーディングが違っていて、一方にしか対応していないのだろうと推測される。

不意に踏んだリンクがたまたま固まるフラッシュを含んでいたりするのは当然予測できないので非常にやっかいだが、今も解決策なし。音に関しては調査もしていないが、デバイスがらみか。そのうち調べてみよう。

追記(2007/2/6)

xorg-fontserverを入れていないFreeBSDでは、/usr/X11R6/lib/X11/fs/configなど存在しないが、普通に日本語が出てしまった。ためしに、xorg-fontserverの入っている(がxfsを使っていない)マシンでconfigファイルを削除してもちゃんと出た。文字化けするフラッシュには効果なし。いらないものは入れるなということか。

厄介者sazanamiフォント

FreeBSD上のFirefoxで、以前からボールドの文字がきちんとボールドで出ないことがあったのを放置していたが、ちょっと調べてみたらあっさり片付いた。

何の依存で入ったのか今となっては思い出せないが、japanese/sazanami-ttfは既にどれからも依存されていなかった。Firefoxを起動した後でたまたまTrueTypeの下をls -ltruしたら、sazanamiだけがアクセスされていて、これはと思って削除した。

その結果、何も問題なくipaフォントが使われるようになり、ボールドもちゃんと出た。こんな簡単なことでストレスの元が一つ減るとは。

2006-10-19

FreeBSD GNOME祭

GNOMEの2.16への更新に伴って、X11BASEやめてLOCALBASEにするぞ祭を開催した。ようやく収束。

UPDATINGに書いてあるとおり、portmaster -r pkg-config\* したら、かれこれ半分はできたろうか、まだまだなんだろうか、というあたりで、sysutils/policykit の更新に失敗して停止。uid=559とかいうユーザが既にあって作れなかったとか。1000未満は全部空けとかなきゃならんのだろうか。

uid問題はクリアにしたものの、再開させることもできず、残りを手動でできるはずもなく、結局最初からやり直し。いちおう速いマシンだったからよかったものの、VMwareの方はどうしようか悩み中。

ついでに、portmasterに関して tips。

パッケージ間のファイル衝突などがあると、portmasterがbackupが作れないとか言って停止することがよくある。この場合は -B オプションでバックアップ作成を抑制すると吉。

追記(10/21)

VMware側はuid問題がないので行けるだろうと更新開始。ところが結局かなり進んだところで停止してしまった。database/grass-i18n+ipafontのところでlibblas.aがないとか。libblas.soはあるのに。何かと競合を起こして消されてしまったのだろうか。

とりあえずmath/blasを入れ直して、対処法を考えていて、ふと思いついた。+IGNOREMEを使えばいいと。pkg-config以降更新されたパッケージ全部に対して+IGNOREMEをtouchしてから、同じようにportmaster -rを動かせばいいわけだ。簡単なことだった。

2006-10-18

科研費マクロ改め科研費LaTeX

これまでお世話になってた科研費マクロから、日本学術振興会公認の科研費LaTeXになった。科研費マクロはゴリゴリとマクロを駆使して種目に応じた罫線を引きまくったが、科研費LaTeXは原始的というか、メンテナンスの手間を抑えた目からウロコの方法だった。

つまり、学振と文科省が出している各種目別のPDF版様式をページごとにバラし、EPS(あるいはPDF)として\includegraphicsで背景として取り込んだ上に、各領域に文章を流し込むという方法である。バラしたものも込みでパッケージとして配布しているので、利用者はいくつか\newcommandに記入していくだけ。図も貼りやすい。

この方法だと種目ごとに別々のパッケージが必要になるが、どうせ一人が書くのって年に一つか二つだし、無理して一つのパッケージにまとめる必要もない。毎年の様式変更(てか、これをどうにかしてほしい)にも対応しやすい。

よい方向に行ってる感じ。今後も世話になります。

Firefox 2.0 RC3導入

RC1ではまってしばらくほうっておいたが、そろそろPC内のほとぼりも冷めたろうと、思い切ってRC3を導入。問題なし。

よく使っていたQuteテーマがいつまでたっても更新されておらず、2.0で使うテーマをそろそろ考えなきゃと思っていたら、Quteのサイトで2.0用の分岐QuBranchがあることを発見。とりあえず満足。

と思ってちょっと違和感があったが、特に何も考えずに日本語版を入れてしまっていた。まぁいっか。

追記(10/29)

Qute 3.2.1が出て2.0に対応。

2006-10-12

eclipseでもnfsロック問題

Cプログラミングの教育用に、最近はやりの(何を今さら)eclipseが使えないかと、FreeBSDに3.1.2をCDT込みで入れてみたが、なんだかうまく動かず、またしてもnfsのロックに失敗している模様。~/.eclipse以下に残されたログを読むと、java.io.IOExceptionが何やら言っていて、-Dosgi.locking=none をVMの引数につけろと。

そんなこと言われてもどうすればいいのやらさっぱりわからなかったが、ググると、config.ini に osgi.locking=none と書けばよさそうということがわかり、やってみればすんなり動作。OOoの場合と違い、こちらはローカルな設定でなんとかなるので、更新時の手間がなくて楽。

langpack を入れるだけで日本語になっていることに驚く。LC_CTYPE しかいじってないはずだけど、どこ見てるんだろう。

2006-10-10

Google Webmaster Tools確認用タグは残すべし

以前、Google Webmaster Toolsの確認(verification)用のmetaタグは、確認後、消せばいいとか書いたが、どうも消すとまずいらしい?今日、summaryのページを見てみたら、

Verification status: NOT VERIFIED

となってた。

Bloggerではテンプレートに入れるしかないので、当然あらゆるページに無駄にmetaタグが付くが、ご容赦。

2006-10-05

硬軟日記プライバシーポリシー

1. 基本方針 個人ブログサイト硬軟日記(以下「当サイト」といいます)の管理者であるHRT(以下「管理者」といいます)は、当サイトを利用する方(以下「利用者」といいます)の個人情報がプライバシーにかかわる情報であることを認識し、法令を遵守し、その適切な管理に努めます。

2. 収集利用する情報 当サイトで収集利用する情報は、利用者個人が特定できない形態でのアクセス統計情報(アクセスURL、アクセス日時、アクセス元都市、リファラ情報、ユーザエージェント情報を含む)であり、当サイトのコンテンツの改善およびナビゲーションの改善の目的で利用されます。

3. 収集方法 当サイトでは、Google AnalyticsおよびYahoo!アクセス解析を利用しており、それぞれGoogleおよびYahoo! JAPANに解析用のログデータを送信して、匿名のトラフィックデータを収集します。

4. 目的外の利用 当サイトは、収集した情報を第三者に利用させません。また、この情報およびGoogle Analyticsのサービスを個人情報の追跡または収集に利用せず、さらに、この情報を個人情報と関連づけません。ただし、法令による定めがある場合はこの限りではありません。

5. 改訂 当サイトは、随時本プライバシーポリシーを改訂する権限を保有しており、改訂した場合は当サイト上でお知らせします。

更新: 2006年10月5日
更新: 2009年5月27日

2006-10-04

Google Webmaster Tools用feed

Webmaster Toolsにatom.xmlを食わせるとエラーになっていたが、 rss.xmlで成功することがわかった。

Blogger betaのフィードにはいろいろ種類があって、@aka氏の記事に詳しくまとめられている。で、alt=rss以外に、隠しオプションはないのかとフィードの中を見てたら、max-resultsというのがあった。つまり、rss.xmlだけでは最新25個に制限されるフィードだが、http://*.blogspot.com/feeds/posts/full?alt=rss&max-results=100などとすれば、sitemapとして使えるように全記事を含んだフィードも作れる。

が、なかなかうまくいかないもので、Webmaster Toolsでsitemapとして使えるのは、そのサイトのトップディレクトリ内のファイルをさすURLでなければならない。それでは、と、rss.xml?max-results=100としたら、Page Not Foundだった。

やっぱり、Blogger自身が、betaのはずれるころまでに、sitemap.xmlを自動生成するようにしてくれるのが一番じゃないだろうか。あと、atom.xmlのnamespaceも直してくれれば。

moodleカスタマイズその3

以前のカスタマイズに不具合。管理者による学生プロフィールの修正ができなかった。

firstname(に限らず、任意のフィールド)をdisabledにすると、それがフォームデータとして送られないらしい。$usernewでfirstnameがない場合に、それがdisabledによるものかチェックするため、usernameからfirstnameへの変換を関数に分離。該当すれば$userからコピー。

ついでに対応表を入手。1対多の場合があるので関連を聞いておかなければ。

2006-10-02

moodleにSQL Injection脆弱性

1.6以降のすべてのバージョンのmoodleにSQL Injectionの脆弱性が発見された。blog機能によるもの。パッチは1行だけ。urldecodeしていた部分を修正。

テクノラティでmoodleを検索してたら、たまたま奥村さんのブログにぶちあたって知った。

moodle.orgにサイト登録しとけば早めに通知されたっぽいが、どうするか。ゲストログインできるし、そろそろ登録するのがいいのかも。

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っていうラベルが付いちゃったよ。

2006-08-30

ja-xpdfフォント問題

ja-xpdfにもja-ghostscript-gnu-jpnfontと同様の依存問題があるのは判明して、portupgrade -f したが、以前から解決できていなかった一部のPDFで日本語が表示されない問題に着手。

問題は、MS Officeがらみで作成されたと思われるPDFで、
Error: Couldn't create a font for 'MS-PGothic'
Error: Couldn't create a font for 'MS-PMincho'
とやらが大量に出力されて文字のあるべきところが空っぽになる点。

解決するには、/usr/X11R6/etc/xpdfrcをいじる(~/.xpdfrcでもいいが)。MS-*をIPAフォントにマップするように追加し、さらに他のフォントもkochiからIPAを使うように変更。

kochiを使ってるのは、他にja-teTeXとja-xdvik-tetexがあるが、これらもIPAに統一したい。portsとしてはIPAに統一する方向に行かないだろうか?どうせghostscriptとopenofficeはIPA必須だし。

これで、MewからPDFをストレスなく見れるようになるか?うまくいきそうならVMware側にも入れよう。

2006-08-29

linux-sun-jdk15自分用メモ

linux-firefoxのアプレットで日本語が出ない問題で、Sunのドキュメントを探し出す。

問題箇所は/usr/local/linux-sun-jdk1.5.0/jre/libにあるfontconfig.*。その探索順序からインストール状態ではfontconfig.RedHat.bfcが使われるが、このproperties.srcによると、iso10646しか使ってなくて、linuxエミュレータにもそんなフォントは(たぶん)入ってないため、いわゆる豆腐になる。

解決するには、jisx0208を使ってるfontconfig.RedHat.9.0.properties.srcをコピーしてfontconfig.RedHat.propertiesを作り(バージョンがわかれば指定した方がいいか?)、kochiじゃなくipaを使うように修正する。

これでめでたく日本語が表示された。diablo-jdk1.5.0でもファイル名を変えて入れるだけで通用する。もっとも、diabloでは日本語フォントを何も設定していないfontconfig.bfcでも日本語が問題なく出るが、なぜ?

ちなみに、appletviewerをそのまま起動すると(特にVMwareゲストで)なぜか非常に遅い。javavmwrapperを通さない場合は特に問題なさそう。

linux-firefox自分用メモ

linux-firefox と acroread7 を入れた場合、acroread --install-plugin しても当然プラグインとして機能しない。 /usr/local/lib/linux-firefox/plugins に /usr/X11R6/Adobe/Acrobat7.0/JPN/Browser/intellinux/nppdf.so へのリンクを手動作成すれば、まったく問題なく動作。

ついでに、linux-flashplugin7 を入れれば、これも問題なく動作。YouTubeも視聴可能。

linux-sun-jdk15も動作。しかしアプレットで日本語が出ない。なぜ?

追記

jdkの日本語問題解決

2006-08-24

URIの微妙な変遷

moodleの私家版パッチを(手で)当てながら、<a href="?id=..."> とかいうのを <a href="index.php?id=..."> にしている部分が出てきたので、RFCに当たってみた。

結果:
基底URI: http://a/b/c/d;p?q
対象URI: ?y
RFC1808(相対URL): http://a/b/c/d;p?y
RFC2396(URI一般構文): http://a/b/c/?y
RFC3986(URI一般構文): http://a/b/c/d;p?y

2005年1月からは、"?id=..." でOKになったことになる。
Amaya 9.5は2006年4月なのに、RFC2396で解釈してるのはどうにかして。

2006-08-23

moodle更新その2

FreeBSDの旧ライブラリ削除の余波でmimeTeXが動かなかった。 moodle付属のものではなく、portsから入れて、それを呼ぶようにfilter/tex/pix.phpを修正。

layout editorもTimの改良版を導入。

修正なしでrssフィードができていることを確認。

メールは何もしないとUTF-8で送ってくる。詳細設定メニューで使用コードをISO-2022-JPに固定。それでも本文がquoted-printableになるので、そのうちコードをいじらなければ。



24日:quoted-printableを7bitに変更。プレーンテキスト版はデフォルトの8bitとかになってたので、これも7bitを追加。customheadersの扱いを追加。ISO-2022-JPにしたときReplyToとToのコード変換の対象がArrayになってて無茶苦茶になるのを修正。

moodle更新その1

MySQL 4.1.21では不具合がありうるという警告も無視し(というか、既に4.1.21で、moodle 1.5は指摘された不具合もなかったので)、更新を敢行。

  1. apache停止
  2. utf8用のデータベースを新規作成
  3. 旧データベースをlatin1としてダンプ
  4. 各テーブルのDEFAULT CHARSETをutf8に変更
  5. SET NAMESの行もutf8に変更(これを知らずに、一時はまる)
  6. 新データベースに食わせる
  7. ユーザデータ類を新しいテストデータディレクトリにコピー
  8. moodle 1.6.1+をダウンロードして新しいテストサイトディレクトリに展開
  9. config.phpを作成し、特に$CFG->unicodedb=true
  10. .htaccessをコピー
  11. favicon.icoをコピー
  12. dfwikiと関連langファイルをコピー
  13. apache起動
  14. テストサイトに接続してデータベースの更新が成功するのを確認
  15. 日本語セットインストール。dfwiki日本語セットもコピー
とりあえずめでたしめでたし。
あとは、コードの改変(インデックスがらみ)と、日本語セットの修正作業をしてから、本サイトに昇格させる予定だが、はやくできればいいな。

2006-08-22

delete-old-libsまつり

6.1入れたついでに、(たぶん)いつもどおり make delete-old-libs したら、libc.so.5 をはじめ、古いライブラリが軒並み削除対象に。で、何も考えずに削除したら、動かないpkgがちらほらと。

というわけで、古そうなpkgを探して、全部portupgrade -f。ja-ghostscript-gnu-jpnfontだけは既知だけど、他の依存関係壊れてませんように。

VMware Playerバージョンアップ

いつのまにやら1.0.2が出てた。ExperimentalだがFreeBSD 6.0, 6.1もゲストOSとしてサポートしたらしい。遊ぶのはまた時間のあるときにでも。

気になるのは、EULAがインストール時じゃなくて起動時に出るように変わったらしいこと。もしかして毎回?

2006-08-21

jless文字化け

FreeBSDでportupgradeをがしがしかけていたらjless (ja-less+iso-382.262)で日本語が化けるようになってしまった。いつからほったらかしだったかは不明。

環境は、素のkterm (ja-kterm-6.2.0_8)で、JLESSCHARSET=japanese。JISコードのファイルは問題ないが、jmanとかのEUCコードのファイルだと^[$Bじゃなくて^[$(Qになってしまう。

原因は、japaneseがjapanese-iso7のエイリアスになってしまったこと。JLESSCHARSET=japanese-jisと明示すれば表示できるようになった。

iso7っていうのがどういうものかよく理解してないのと、ktermにJIS X 0213対応させるべきなのかというあたりが、課題。それともJLESSCHARSETのしくみに文句をいうべきなのか?

2006-08-17

c2talk登場

ソーシャルカレンダーのc2talk登場
日本製なのはいいが専用ソフトが必要なのがいまいちか。
Google Calendar単体でもうちょっとよくなってくれればいいのだが。

TableTools更新

BabelZillaからTableToolsが0.16に更新予定の通知。早速翻訳を更新。
正規表現でフィルターできるようになったらしい。