職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

Let's letsencrypt

もしかしたら今更…なのかもしれませんが、無償でSSL証明書を発行してくれるサービス Let's Encrypt を試してみました。

letsencrypt.org

特徴

  • 無償
  • 証明書の有効期限は3ヶ月程度。証明書を更新するタスクを定期自動実行することが推奨されている。revoke が突然走るかもしれないから、という背景もあるらしい。
  • 証明書の作り直しなどには回数制限がある。 https://letsencrypt.org/docs/rate-limits/
  • 多くのブラウザでは信頼されている(root証明書がインストールされている)、らしい。

試したかったこと

  • 簡単に導入できるのか?
  • 長期的な運用で困りそうなものは無いか?
  • 手元のブラウザで、本当に信頼されているのか?
  • ワイルドカード証明書、または SANs のある証明書を作ることができるのか?

Let's Encrypt の仕組み

このページを読むのが一番。英語ですけど。
letsencrypt.org

要は、Let's Encrypt のサーバと通信するクライアントが何かしら必要、ということです。
そのクライアントにも様々なものが存在するようですが、公式に推奨されているものとしてcertbotがあります。以下の 試してみた は全て、certbotを使ったものになります。

試した環境

Amazon Linux で試してみた

certbotのインストール手順の中には Amazon Linux は登場しません。
CentOS/RHEL6 に沿って作業をすると、「Amazon Linux は未だサポートしてないから --debug オプションつけて作業してや」みたいなメッセージが表示されます。
--debug オプションをつけて作業をしようとしましたが、面倒臭くなって途中で匙を投げてしまいました。

Ubuntu で試してみた

すんなり。
事前の Virtual Host の設定がキレイにできていれば、SANs も楽勝でした。

Debian で試してみた

手順の中にある $ sudo apt-get install python-certbot-apache -t jessie-backports が、一部の環境で上手くいきませんでした。
「jessie-backportsなんか知らんわ」といったメッセージでした。
ググったところ、こんなページが出ました。https://community.letsencrypt.org/t/unable-to-install-certbot/17916/11
ここのリンク先、https://backports.debian.org/Instructions/ の指示に従って jessie-backports を有効にしたら、あとは上手くいきました。

まとめと、今後の課題

  • 現時点では、Amazon Linux で使うのは大変そう
  • UbuntuDebian なら簡単そう
  • 長期運用について差し迫った問題は特に見当たらなかった
  • 自動更新の仕組みがコケたことを検知する仕組みは、用意しておくと安心かも
  • ブラウザ対応は、パッと見、問題なさそう
  • SANs 一手間かかるけどイケる
  • ワイルドカードは、今はサポートしてないっぽい:https://letsencrypt.org/docs/faq/

参考図書

本件を試すにあたって買ったりした訳ではないですが、オススメです。

暗号技術入門 第3版 秘密の国のアリス

暗号技術入門 第3版 秘密の国のアリス

マスタリングTCP/IP SSL/TLS編

マスタリングTCP/IP SSL/TLS編

さぁ、PDF手書きの世界へ。

PDFに関して様々な処理を行うためのプログラム pdftk をWebブラウザから呼び出すことができるように、pdftk wrapper という単純なツールを作って公開しました。

github.com

何のために作ったのか?

PDFはテキストではなくてバイナリのファイル。そう認識されている方は多いと思います。私もそうでした。
ところが、PDFのファイルをテキストエディタで開いてみると、どうでしょう? なにやら人間に読める文字がたくさん出てきませんか?
人間に読める文字が多いのなら、テキストエディタでPDFを作ることだって頑張ればできるはずです。
便宜上、テキストエディタでPDFを書くことを「PDF手書き」と呼んでいます。

様々なものを表現することができる、このPDFというファイルを、自分の手で心を込めてイチから組み上げていくという行為、とてもワクワクしてきませんか?
そう思われた貴方は、もう立派なPDF手書き職人です。早速学習を進めていきましょう。

学習を進めていくと、PDFの主要な部分は人間に読める文字だけれども最後あと一歩のところでバイナリを入力したり、相互参照テーブルという、データベースで言うところのインデックスみたいな情報を持たせるところで膨大な機械的作業が必要になることに気がつきます。
そんなときにお世話になるのが pdftk というツールです。

www.pdflabs.com

このツールに、「あと一歩のところだけどもまだ完成じゃない」PDFを与えると、必要な情報を付加したり整理整頓したりして、良い感じにPDFを再構成してくれます。
もちろん他にも数多くの機能があるのですが、pdftk の紹介はこのへんにしておきましょう。
言いたいことは、pdftk はPDF手書きを趣味にしている人たちにとって、面倒臭い単純作業をきちっとこなしてくれる、大変心強い味方であるということです。

ところがこの pdftk は、Macにインストールするのがなかなか難しかったりします。私は途中で心が折れてしまいました。
そこで、Ubuntu のマシンにインストールしておいた pdftk をMacから操作できるようにしよう、そしてそれはブラウザから操作できるようにしよう、と思って、Webアプリ化しようと思い立ちました。

環境構築

冒頭に掲げた GitHub のページを見て下さい。日本語版が欲しいという人は何らかの手段で筆者に連絡を下さい。要望が多ければ日本語版も書きます。

使い方

インストールしたサイトの index.html にアクセスすると、ファイルのアップロードフォームが表示されますので、ここでアップロードします。すると、pdftkで処理した結果のファイルをダウンロードするためのURLが示されるので、そこにアクセスします。

このwrapperはブラウザから操作できますが、もちろん curl のようなコマンドからでも操作できます。どんなオプションを与えれば良いのかは、index.html を見れば、普段からcurlをお使いのみなさんにはわかるでしょう。

PDF手書きを趣味にしよう

こういう素晴らしい環境も整ってきたので、みなさんにとってもPDF手書きを趣味にする絶好のチャンスです!
やりたい!と思った人は、PDFのファイルフォーマットを学ぶために、次のような本を持っておくと良いでしょう。

PDF構造解説

PDF構造解説

私は、テキストエディタでPDFを読み書きするという行為は2009年頃から始めましたが、PDFの仕様書はとても膨大なものであり読む時間を作ることができず、「見よう見まね」で様々なことをやっていました。
そういう あやふや な知識のまま長い年月が流れましたが、この本に出会ってからは人生が変わりました。PDFの仕様を親切に解説してくれているのです。

原著(英語版)は、こちら。

PDF Explained: The ISO Standard for Document Exchange

PDF Explained: The ISO Standard for Document Exchange

PDF Explained

PDF Explained

原著にはKindle版もあります。
なお、普段から英語版を読まれている方についても、この本に関しては日本語版をお勧めします。その理由は、日本語版には日本語のフォントについての言及が書き加えられているからです。これは貴重な情報です。


それではみなさん、最高のPDF手書き生活をお過ごし下さい!!

2016年11月6日 追記

この本の日本語訳のKindle版は現時点でも出されていませんが、O'reillyさんから電子版を購入することができます。購入はこちらから。
(追記ここまで)

イギリス遠征2016

イギリスへ行ってきた。
f:id:t_motooka:20160708112847j:plain

職業柄、海外へ旅行するのは至難の業である。

3月にはこのような発言をしている程だ。
休みを取ることができない訳ではない。筆者は実際にほぼ毎月2日間以上は休暇を取得している。決して、業界や勤務先がブラックであるという話ではない。(もちろん、参画しているプロジェクトの状態によっては、ブラックな環境に置かれることもあるだろうが)
飛行機に乗るという、インターネットに接続できない時間が長くなってしまうことこそが、海外旅行から我々サーバ管理者の足を遠ざけるのである。
最近では飛行中でもインターネット接続環境を得ることができる機体も徐々に普及してきているようであるが、それが十分に普及したとき、海外旅行への障壁は一段と下がるだろう。
今後の流れに期待したい。

続きを読む

エリントンと寿司

先週末の話であるが、東京へ行ってきた。
目的は3つ。

本記事のタイトルはとても凄いことを言っている形になっているが、そこは気にしないで頂きたい。

演奏を聴く


この言葉は曲名なんだけど、演奏者から聴衆にかける言葉として最高にカッコ良い。

Ad lib on Nippon を生演奏で聴ける機会というのは、かなり貴重なものである。

何故かわからないけど、この記事を書いている今は Lost in Meditation が脳内でリピートされ続けている。

友人との飲み

友人が転職するということで、ちょっと飲みに行った。
「こういう事業に手を出していれば今頃は良い感じだったはずだよね」だとか「これからはこんな事業が当たるんだろうね」みたいな話も交わすことができて、非常に有意義であった。

寿司

日曜日の昼、俗に IT健保寿司 と呼ばれるお寿司屋さんへ行ってきた。予約したのは約2週間前であるが、まさか予約成功するとは思ってなかった。

健保寿司はいいぞ。

関西モバイルアプリ研究会 #関モバ 第12回 に参加

関西モバイルアプリ研究会(通称 関モバ)の第12回に参加してきました。

kanmoba.connpass.com

会場

今回のスポンサーは フリュー株式会社 様!
京都の七条あたりでございます。

発表した内容

speakerdeck.com
5分では話し足りないという感触でした。
需要がありそうであれば、また色んなところで続きの話をしたいなーと思います。

聞いてて気になった発表

他にもいろいろあるけど、書いてたら遅刻する…(汗

さいごに

フリューの皆さん、運営の皆さん、参加者の皆さんに感謝!