2014年4月26日土曜日

MendeleyのデータベースファイルをDropboxで同期するのは問題があるようだ。

ここまでぐだぐだと書き連ねてきたことのほとんどをひっくり返すこのエントリ。もうこのブログ自体止めちゃえば良いんじゃないかと思う。

まぁ、やり方が間違っていたわけじゃないと思うし、見に来てくれていた人も少しはいたようなので、まるきり無かったことにするよりも警告を発しておいた方がいいんじゃないかとも思うので、ブログ自体を消すのは思いとどまる。

結論から言うと、「Dropbox経由で複数PC間のMendeley環境を無理矢理同期すると、一部の、特定の、PDFに対してリンク切れが発生する模様。従って、Dropbox経由でのMendeley環境の同期はお薦めできない。」

っていうか…状況がよくわかってない。でも、上手くいかないことだけは確かなので、その解決に労力を割くよりは諦める方が簡単かな、と。

具体的な問題は以下の通り。
  1. MendeleyにPDFファイルを読み込ませ、書誌情報を適切に書き換える。
  2. その時点では、PDFアイコンをクリックすれば正しく表示される。
  3. いろいろやってるとお掃除したくなるので、「Tidy Up」を実行する。
  4. すると、「リンク切れファイルがたくさんあるよ」と言われてしまう。
  5. 「Tidy Up」をそのまま実行すると、2.で正しくリンクされていることを確認したはずのPDFファイルの一部が「お片付け」されてしまい、Archiveフォルダに飛ばされてしまう。
  6. 当然、書誌情報のPDFアイコンが消え、クリックしてみると「そんなん無いよ」と言われてしまう。
  7. もう一度、Archive内のファイルを手動で追加してみると、一見上手くいったように見える。1.の状態に戻った感じ。
  8. そして、Tidy Upをかけるとまた同じ事になる。2.以降の繰り返し。無限ループ発生。
さて、Tidy Upをかけなければいいじゃん、という意見もあり得る。でも、正しく動いてくれないのは気持ちが悪い。しかも、どういう規則で無限ループの対象ファイルが決まるのかがわからない。たとえば、ファイル名に特定の文字が使われているとおかしくなるという可能性については、特に目立った文字が見当たらないので、他の「無事」なファイルとの違いがわからない。

一度、意を決して完全にライブラリを消去し、全くのゼロからライブラリを再構築してみた。でもやっぱりダメだった。

なので、もう諦める。

一瞬、EndNoteへの出戻りも考えたが、もしかして…

Dropboxを使って全環境を同期してるのがそもそもMendeley側からすれば想定外なわけで、もしDropboxに環境ファイルを触らせなかったら?

→はい、問題なし。今まで無限ループに陥ってたファイルも全部問題なく、Tidy Up実行後もリンク保持。

ということは、Mendeley的に「正しい」使い方は、やっぱり「正しい」ってことなんだ。「全ファイルへのリンク付きデータベース」はどれか1つのPCに集約し、他のPCはMendeley WebにSyncしたファイルのみが読める状態にする。そして、一応Dropbox上に全ファイルの保管場所を定めておけば、Mendeleyのデータベースからのリンクではアクセスできないけど、ファイル自体はDropboxを使っている全PCで読むことができる。Mendeley Webに上げるのは重要論文・現在進行中のプロジェクトに関連する論文のみにしておけば、無料の範囲内でも収まるんじゃない?

現状、そういう設定にしてみたら問題は全く起きていない。ということは、DropboxがMendeleyの環境ファイルに対して何かしらの変更を加えていたということかな?そこら辺は詳しくないので追求できない。

とにかく、「使える」ことが大事なんでね、敢えて裏技的な使い方で問題を発生させて解決できないといらいらするよりは、「正しい使い方」をしておけば問題ないならそうしましょう、ということ。

ただし、容量の限られたノートPCにDropbox上の全PDFファイル+Mendeley Web Syncで落ちてきたPDFファイルが入っている状態になり、必然的にファイルが被ってしまう。ただでさえ容量が厳しいのに…ま、その辺は自分の仕事に必要なコストと考えて、受け入れるしかないのかな。ノートPCを母艦にするのはさすがに怖くて…。

EndNoteの出戻りは、アップデートでも2万円することを考えると、Mendeleyの有料プランを契約して全ファイルをMendeley Webに上げちゃってもそこまでのコストにはならんと考え、今回の検討では却下という結論。

それに、ちょっとEndNoteの最新版をお試しで入れてみたんだけど、個人的にはMendeleyの方が使いやすそうなんだよね…なので、Mendeleyが使えるならそっちの方がありがたい、ということもあり。

ゆくゆくは有料プランも考えようかな、という覚悟?もできた、という顛末。

2014年4月21日月曜日

MendeleyのFile Organizerの文字化けバグ?

File Organizerで取り込んだファイルに自動的に名前をつけるようにしているが、その命名方法の指定によって、ファイル名が何やら不思議なことになる。

自動でファイル名をつけるとき、何を使って生成するかの指定項目は以下の4つ。

  • Author
  • Year
  • Title
  • Journal
このうち、Titleを指定すると、なぜかファイル名が面白いことになる。WestheimerがÃになってみたり、Fiという綴りが®になってみたり。

で、命名規則からTitleを外してApplyすると、全部のファイル名をいっぺんに書き換えてくれるのだが、そうするときれいに文字化けが直る。

Mendeleyさん、ずいぶん前にこの件でバグレポートされてるのに完全放置ですか。まぁ、Title使わなきゃいいだけなんだけどね。

でも、別件でMendeleyに嫌気がさしてきた。金を払ってもEndNoteの方がまだマシかもしれないと、出戻りを真剣に検討中。ユーザインタフェースはMendeleyの方が好みなんだけど、いろいろとまともに動かない。自分の使い方が悪いんだろうけど…。

2014年4月15日火曜日

WindowsのコマンドプロンプトでUTFなファイル名を扱う。

ちょっとMendeleyにトラブルが発生。よくある話みたいだけど、ファイルのリンクが切れた。

で、SQLiteの中身を見て、登録されているファイルの一覧を書き出す。

そして、Mendeleyに登録したはずのファイル一覧をコマンドプロンプトから取得する。

つまり、ファイルを整理しているフォルダの最上位の階層でコマンドプロンプトを開き、以下のコマンドを実行すれば、「いったんはMendeleyが受け付けて自動的に整理して配置したファイル一覧」が出来上がる。
dir /s /a-b /b > FileList.txt
dirコマンドのオプションは「再帰的に取得」「ファイルのみを取得(フォルダ名は不要)」「ファイル名のみを取得(ファイルサイズや日付などは不要)」という意味。

ところが、これをただ普通に行うと、Shift-JISで出てきちゃう。アクサンとかウムラウトのついた人名のファイルはそういう文字のついたファイル名で整理されてるのに、自動的にその辺を外したプレーンなアルファベットに変換されちゃう。

そりゃ困る。SQLiteから抽出したファイル名はURLエンコードだから、Unicode変換すると一致しているかどうかの判別がめんどくさくなる。

なので、何かできないかと調べてみたら…

コマンドプロンプトを起動するときに/uというオプションをつけるといいんだって。

Windows 8[.1]の場合、とりあえずコマンドプロンプトを実行してから、そのプロンプトでもう一度cmd.exeを/uオプション付きで実行しちゃえばいいわけだ。

そして、さっきのdirコマンドを実行すると、今度はファイル名一覧がUTFエンコードで取得できる。これでMendeleyからリンクがロストしたファイルを抽出できるわけだ。

…そういう問題が起きないのが一番なんだけど。