FreeBSDでself-hostedなFirefox Sync 1.5

Firefox 29でFirefox Syncのバージョンが上がりました。Firefox Sync 1.5は既存のFirefox Syncと互換性がありません。さすがに既につながっているクライアントはとりあえず使えますが、新しい端末から接続しようとすると新しいバージョンのメニューしかありませんね。

さて、Firefox側が用意しているサーバーは充分安全そう(少なくとも自分で用意するよりは安全そう)だとは思いますが、Firefox Syncサーバーは自分で建てられるので、どういうわけかそういうのを自鯖(やVPS)でやりたくなってしまいますよね。というわけで建ててみるわけですが、FreeBSDだといくつか対処すべき点がありましたので記しておきます。

基本的には、Run your own Sync-1.5 Server — Mozilla Servicesに従えば(virtualenvパッケージを無事に入れることができれば)インストールできるようになっています。しかし、sqlite周りでエラーが発生します。まずはpysqlite2がないと言われますが、easy_installでpysqliteをインストールしようとすると、

src/connection.h:33:10: fatal error: 'sqlite3.h' file not found

と言ってきます。

というわけで、これらに対処した操作手順は以下のようになりました。もとよりFreeBSDに特化した内容ですので、これだけ書けば充分でしょう。なお、FreeBSD標準のcshないしtcshを使っていますので、Bシェル系の場合はactivateの操作でactivate.cshではなくactivateとしてください。

% git clone https://github.com/mozilla-services/syncserver
% cd syncserver/
% gmake build
% source local/bin/activate.csh
% setenv CFLAGS "-I/usr/local/include"
% easy_install pysqlite
% deactivate
% gmake test

あとはsyncserver.iniをいじって、 ./local/bin/pserve syncserver.ini とでもするとサーバーが起動します。このあたりも最初にリンクしたMozillaのウェブページに書いてある通りです。

(7/20追記)上記に関わらず、個人としてはFirefox Sync周りに関しては全てMozillaが用意するサーバーを利用することにしました。従って上記の内容で本当に動作するかは確かめていません。

InkscapeやDrawで大きなファイルを作って分割印刷

さて、写真のように、使えるプリンタで印刷可能なサイズより大きな用紙を使いたいこともあるでしょう。Illustratorを使っている場合には優秀なツールが附属していたような気がしますが、自宅にはそんな高価なアプリケーションソフトウェアはない場合が多いことが多いかと思います。

このような場合、適当に分割印刷したりしますが、余白の扱いがどうなるかよくわからなくて困るところです。まあ頑張ればできるのですが、手間削減のために書いておくことにしました。

LibreOfficeやInkscapeといったオープンソースなソフトウェア、あとは無償配布されているAdobe Readerを用いて分割印刷する方法について、余白周りについて確認したのでメモとしてここに記しておきます。Macで確認しましたが、Windowsでも同様だと思います。

# OSが無償じゃないじゃないか、という声はひとまず聞かなかったことにします。まあ、Linux版のAdobe Readerでも同じだと思いますが。

まず、プリンタで印刷可能な余白に余裕をもたせた上で実際に印刷可能なサイズを決定しましょう。例えば、A4は 210mm x 297mm ですので、余白が上下左右各10mmのプリンタでA0印刷(A4 x 16枚)を行いたい場合は 760mm x 1108mm が印刷可能な領域となります。「重なり」を設定したい場合は更にその分を減ずる必要がありますが、今回は余白あり、重なりなしを想定します。

InkscapeやDrawなど、ポスターの編集ないし最終的な出力で使いたいソフトウェア上で、ドキュメント設定/ページ設定から紙の大きさをカスタム(任意サイズ指定)にし、実際にサイズでのドキュメントを作成しましょう。余白は0mmにします。また、背景色は紙の色と明白に区別がつく色にしましょう(それをすることがコストその他の理由でできない場合は他の方法を検討しましょう)。

そのソフトウェア上で印刷したいものを原寸大で作成し、PDFで吐き出します。印刷したい紙より微妙に小さい謎の大きさのPDFができますね。

そのPDFをAdobe Readerで開きます。左下の「ページ設定」ボタンから正しいプリンタを選択しましょう(どうもダイアログ上部の「プリンター」と独立なようです)。その上で、ページサイズ処理で「ポスター」を選択しましょう。倍率が「100%」になっていることも確認しましょう。

予期した通りの枚数でなければなにがおかしかったか考えましょう。多分予期した通りの枚数になると思います。

この状態で印刷ボタンを押せば、原寸大での出力が行われるようです。

印刷された紙から、共通の各2辺をはさみやカッターで裁ち落とします(背景色が紙と明確に区別がつく理由があるのはこのためです)。2辺は隣り合った辺を選ぶ(平行な2辺を選んではいけない)こと、印刷した全ての紙に対して同じ2辺を選ぶこと(1ページで右と下を裁ち落としたなら2ページ以降も右と下を裁ち落とさなければなりません)に注意しましょう。

そうすると、全ての接合が必要な辺に対し、余白がある部分と余白がない部分が噛み合うようになります。あとは気合いで精度よく貼りあわせましょう。可能ならメンディングテープなどをうまく使って位置を合わせた上でクリスタルテープで裏から貼りあわせましょう。

また、当然ですが、この方法で分割印刷した場合には貼り合わせの精度の影響が出やすいので、分割印刷の境界線上に何が印刷されるかについては細心の注意を払いましょう。Adobe Readerのプレビュー画面では実際に印刷される場合のページの境目がどこに来るかを確認することができます。小さなものがそこに含まれると隙間に飲まれて認識できないほど違った形状になる可能性があります。

ところで、冒頭の写真のそれはそういうことをきちんと調べる前に印刷したものです。基本的なやりかたは似ていますが。

何はともあれ、ひとまずこれが通常のプリンタで大きな紙を印刷する簡便な手法として手っ取り早いと思います。A4で印刷してもしょっぱいなぁ、と思う時にお試しください。