Updates for TeX Live 2016

年々準備が遅くなっている年賀状ですが、ようやく来年の年賀状を書くか、と重い腰を上げ、 出す枚数を確定し年賀状を購入してきました。

ページサイズがおかしい問題に遭遇

毎年、年賀状印刷で最初にやることは、 宛名印刷用のPDFの生成ツール の動作確認です。更新したCSVから、TeXファイル経由でPDFを生成しているのですが、指定したページサイズが効かずにA4サイズになってしまう、という問題に遭遇しました。

年賀状なので、下記のように100mm × 148mmにしているのですが、これが正常に機能しません。

\documentclass[12pt]{jarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage{verbatim}
\usepackage{plext}
\pagestyle{empty}
\setlength{\textwidth}{100truemm}
\setlength{\hoffset}{0in}
\setlength{\voffset}{0truemm}
\setlength{\headheight}{0truemm}
\setlength{\headsep}{0truemm}
\setlength{\oddsidemargin}{0truemm}
\setlength{\textheight}{148truemm}
\setlength{\topmargin}{0truemm}
\advance\oddsidemargin -1in
\advance\topmargin -1in
\setlength{\footskip}{0truemm}
\begin{document}
\setlength{\unitlength}{1truemm}

{{#address}}

\begin{picture}(100,148)(0,0)

dvipdfmx.defの変更が原因だった模様

TeX Live 2016にしたらページサイズがおかしくなります 」から、 こちらのスレッド を確認し、下記のように [dvipdfmx] オプションを [nosetpagesize] オプションに変更することで解消できました。

diff --git a/template/address.mustache b/template/address.mustache
index 513ee90..948eb3c 100644
--- a/template/address.mustache
+++ b/template/address.mustache
@@ -1,5 +1,5 @@
 <U+FEFF>\documentclass[12pt]{jarticle}
-\usepackage[dvipdfmx]{graphicx}
+\usepackage[nosetpagesize]{graphicx}
 \usepackage{verbatim}
 \usepackage{plext}
 \pagestyle{empty}

ということで

年賀状作成するぞ。

自宅サーバから始まったDebianとのお付き合い

この記事は「 自宅サーバの思い出 Advent Calendar 2016 」、 8日目 のエントリです。

いろいろ記憶が曖昧なところがありますが、思い出を振り返ってみました。


自宅サーバ事始め

自宅サーバを始めたのは、社会人になった頃、仕事と関係なくJavaとかXMLとかを独学で勉強しながら、なんか作って公開したいな、と思ったのがきっかけでした。当時、Windows 2000をデスクトップで使っており、ライセンス的に無理だったので、ベアボーンで RedHat 9か VineLinuxあたりをインストールしたような記憶。GNU/Linuxを使い始めたのもこれが最初。いくつかディストリビューションを試して、インストーラーと、パッケージ管理の操作性が簡単だったことから、VineLinuxを使うようになった記憶。もう15年くらい前になると記憶が定かではないですね。

サーバ公開するのにセキュアなサーバにするのはどうしたら良いんだろう?と思ったことから、趣味も仕事もセキュリティに興味を持ち、そこからサーバやネットワーク絡みの構築&運用が中心になっていったのは余談。 [1]

ベアボーンにする、のはやめた

当初は、ベアボーンで使うときだけ起動していました。で、じきに常時稼働を始めようとして、すぐにやめました。理由は、 うるさいから 。当時1Kロフト付きのアパートに住んでおり、ロフトで寝ていたのですが、狭いのでファンがうるさいので眠れないわけです。さらに、消費電力考えると電気代もかさみます。ということですぐにやめました。

OpenBlockSとの出会い

はじめて購入したマイクロサーバーは、 ぷらっとホームのOpenBlockS 266 (64MBモデル)でした。オンラインショップだったのか、今は亡き、秋葉原にあった店舗だった [2] のか、どちらで先に購入したのかは覚えていません。どちらで?というのは、その後OpenBlockS 266は順調に5台まで増えるからです。

OpenBlockSを選んだ理由は、消費電力が小さいこと、ファンレスだったこと、Linuxだったことです。その後OpenBlockS以外のマイクロサーバーとしては、

自分で購入したのが

譲っていただいたのが

という感じで順調に増えました。 今でも、Armadillo-J、OpenBlockS 600は現役です。(他は休眠中)

当初はセルフビルドだったんだ

OpenBlockS 266を使うにあたり、SSD/Linuxが割と使いやすかったのでそのまま、クロスコンパイルを環境を作ろうとしました。

もともとWindows 2000を入れていたPCをデュアルブートにして、何らかのGNU/Linuxディストリビューションをインストールしていました。多分、当時は巡りめぐって結局Vine Linuxを使っていたように記憶しています。が、ライブラリのバージョン絡みでうまくできなかったので、OpenBlockS自体でセルフビルド行っていました。

ApacheとかPostfix、SpamAssassin、Hobbitはまあそんなに時間がかからなかったのですが、PostgreSQLが確か6〜8時間、NET-SNMPが12時間オーバーだったような。ビルドしている間は放置していたのですが、まぁ、そんなのにいつまでも耐えられるわけはありません。

そしてDebianとの出会い

ちょうどそんなときにぷらっとホームからDebianのHDDイメージが公開されました。多分2005年ごろ。

VineLinuxで(APT-RPMの) 「apt-get 便利だわー。お、DebianでもAPT使えるのかー、これは使うしかないわー」と思い、OpenBlockS 266でDebianを使い始めたのがDebianとの出会い。APT-RPMがDebianのAPTから派生したものだと知るのはこの後の話です。

でちょうど同じくらいのタイミングで、OSC Tokyoで東京エリアDebian勉強会を知り、参加するようになり、OpenBlockSだけでなく、PCもDebianに変更し、という感じで基本Debianだけを使うようになりました。

自宅サーバの最初の転機

その後、アパートから今のマンションに引っ越し、前述の通り順調にマイクロサーバーも増えていくのですが、最初に訪れた転機は妻と結婚してから猫(こまめ、こまちゃん)を飼いだしたこと。飼いだした当初はまだ生後3ヶ月程度で、色々噛むので電源コードなどを噛んで感電しないように、という対策を打つようになりました。 [3]

こまちゃん対策ではさらに、3.11のとき、妻と二人して帰宅できなかったことから、OpenBlockS 600を使って、こまちゃん監視カメラを作りました。

自由に置けなくなる

次の転機としては、長女(おまめ一号)が産まれ、ママ友が自宅を訪れるようになってからです。 前述のこまちゃん監視カメラは、こまちゃんの滞在時間が一番長いリビングに設置していたのですが、これが「監視されているようで嫌だ」と不評で、撤去する羽目に。 [4]

さらに次女(おまめ二号)が産まれ、僅かなスペースと僅かな電力消費の節約で台数削減ということで、停止して片付けて台数減らしました。

グローバルIPアドレスが使えなくなった

今のマンションに入居して結構時間が経ち、マンション全体で加入している回線の帯域が狭いこともあり、ISPの切り替えに伴い、NAT下でのプライベートIPアドレスになりました。数年前から公開サーバ自体は主にVPSにしていることもあり、特に困らないのですが、なんか書いていたらちょっとさみしくなってきました。

そして今

現状動かしているのは、Armadillo-JでDHCPサーバとOpenBlockS 600でルーターを動かしています。マンションの回線入れ替え前までは、PoEで動かせるOpenMicroServerをルーター兼ファイアウォールとして動かしていたのですが、スループットの問題でOpenBlockS 600に切り替えました。

ちなみに目的が目的なので、これらはDebianではありません。現在、Debianは(公私問わず)開発環境としてのワークステーションと、公開用のサーバとしてVPSにつかっています。

OpenBlockS 600でもNAPTすると速度がかなり遅くなるので、YAMAHAルーターあたりが欲しいなぁ、と思う今日この頃です。

Footnote

[1]前職でプライベートクラウドの開発を行って、現職では認証や管理機能の開発をやっています。
[2]2台目以降は店舗で購入していた記憶です。理由は、ジャンクパーツの Xeonのヒートシンクをおまけでもらえたので。これをOpenBlockS 266に載せて、扇風機を当てるだけで10℃近く冷却できるのでした。
[3]ちなみに噛んで感電というと、大学の卒業研究で在籍していた研究室で、実験用ラットをトレッドミルで走らせていたのですが、そのうちの一匹が電極を噛んで感電死したことを思い出します。
[4]動体検知での監視が目的なので、そりゃそうなんですけどね。

How to use plantuml-mode

PlantUMLを使うことになったので、EmacsでPlantUMLを使うための設定をしたのでそのメモ。

パッケージインストール

$ sudo apt-get install plantuml

plantuml-modeの設定

まずは git clone

$ cd .emacs.d/vendor
$ git clone https://github.com/zwz/plantuml-mode.git

.emacsに下記を追記

(setq plantuml-jar-path "/usr/share/plantuml/plantuml.jar")
(load-file "~/.emacs.d/vendor/plantuml-mode/plantuml-mode.el")

以上。

Repaired Windows tablet

昨年、飯山市へのふるさと納税でもらったマウスコンピューターの Windows tablet を Windows 10にアップグレードしておくか、と久々に妻に代わって [1] 起動してみたら、BIOS画面のあとすぐエラー画面が表示されて何もできない問題が発生しました。この連休入ってすぐのこと。

../../../_images/win-tablet0.png ../../../_images/win-tablet1.png

なんともしようがないの連休明けくらいに返信来ればいいかなとマウスコンピューターのサポートに問い合わせしてみたらすぐ返事きて、結果的修理対応になりました。

なお、最初上記の写真を文章だけで、表示されているメッセージを伝えたのですが、どうもそれだと正確に伝わらなかったらしく、 マウスコンピューターのロゴが表示されてから起動しない場合の手順を案内されました。最初から写真にしておけば良かったですね。

んで、センドバックで送付して、これまた1週間位かかるのかなぁと勝手に思っていたら、修理と発送含めて4日で戻ってきました。速い!

原因はマザーボードの故障とのことでした。今朝、妻の代わりに初期設定やったら、完了後に勝手にWindows 10へのアップグレードが始まって、正常に完了したので、面倒なことやらずに済んで助かりました。 [2] あとは家のどこかに紛失した Office のプロダクトキーの発掘か…。

Footnote

[1]妻がほしいというので、妻用にもらったものの、メンテナンス自体は私がやる、という…。
[2]故障前は Windows 10へのアップグレードが全然表示されなかったので、micro SDをわざわざ購入して、アップグレード用のISOイメージダウンロードしてアップグレードしようかと思っていたので。タイミングの問題だと思いますが。購入した micro SD はもともとアップグレード完了後にカーナビで使う予定だったので特に問題なし。

Appends platforms metadata

Ansible 2.0がリリースされて 二ヶ月経ちました。その後からくらいから、私がメンテしているAnsible moduleがAnsible Galaxyにインポートできなくなっていました。解決したのでメモ。Ansible 2.0がリリースされたのと関係あるのかは知りません。

対応していなかった言い訳

インポートできなくなって、対応していなかったのは、公開済みのモジュールについては ansible-galaxy install コマンドでインストールできたからです。

原因

platformsというメタデータが必須になったためでした。

ということで、 meta/main.ymlgalaxy_info の下に platforms とその値を追加して終わり。platformsに使える値は、 ansible-galaxy init パッケージ名 でrole scafolldingを生成し、その meta/main.yml を参考にすればよろし。

なぜplatforms を設定していなかったのか

他の人のモジュールを参考にして、roleを作成していたので知らなかった、というオチ。