プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

2016年の年末大掃除を始めました

短めにブログ更新。

昨年2015年の年末に行った大掃除が非常に気持ちよかったので、今年も年末に大掃除をしようということで始めています。

去年の大掃除に関しては2015年の振り返りの最後の方にほんの少しだけ書きました。

takuan-osho.hatenablog.com

去年の大掃除で大きな成果が出たのはいいのですが、日々のメンテナンスをまともにおこなっていなかったおかげで、また自室が荒れ始めているので、今年も大掃除をしようと思い、有休を使って12/22で今年の仕事納めにして、大掃除に当てる時間を捻出しています。

昨日から少しずつ始めていて、一応手をつけ始めたので、まあ何とか頑張っていきたいところですね

『インフラエンジニアの教科書2』を読みました

前回のエントリから随分と期間が空いてしまってよくないなあと思ったので、最近勉強で読んだ本の感想を書くことでアウトプットの習慣を取り戻したいと思いながら書いてます。

インフラエンジニアの教科書2 スキルアップに効く技術と知識

インフラエンジニアの教科書2 スキルアップに効く技術と知識

今回読んだ本は『インフラエンジニアの教科書2』です。

読もうと思ったきっかけ

今年の4月に転職し、(ハードウェアを扱わない、クラウド寄りの)インフラエンジニアとして仕事をしていく中で痛感したのが、圧倒的な知識不足でした。

「知識不足」と一言で言ってもどの分野の知識が足りないのかによって取る行動は変わると思います。

ただ、私の場合、「何か全体的に分からないけど、具体的に何が分からないのか分からない…」という状態に陥っていました。

そんな中、チームリーダーや上司と別件で相談した時、「Linuxのプロセス処理とかファイル管理に対する知識が足りなそうだから、その辺りを何かで読んで勉強してみたら?」と言われたので、何かちょうどいい本無いかなと本屋で探してみたところ、内容のレベル・量ともにちょうど良い塩梅だなと思えたのが前述の『インフラエンジニアの教科書2』でした。

読んでみて思ったこと

分量的には2日あれば読み切れるくらい(早い人なら1日)の量だったので、最近書籍を読む週間がなくなりかけていた自分にとってはちょうどよかったです。

内容に関しても個人的にはChapter-02のOSの項目がとてもよく、これだけで買って読んだ価値があったと思いました。プロセスとスレッドに関する知識があやふやだったこともあり、このChapter-02で書かれていたことを読んで結構頭の中が整理できたように感じます。

この本を読む直前、SECTION 13の「インフラエンジニアのファイル管理」の項目内にある「ログ出力でディスク容量を使い果たした」事例と同じような事例を業務中に遭遇していたこともあり、実際の業務の内容と結びついて読める箇所が多かったことも理解を深めるのに一役買っていたと思います。

ただ、(この本の著者も意図しているのでしょうが)この本に書いてある内容の深さはどの項目も基礎となる部分に終始していると思われるので、読んだ後重要なのは、この本を読み終わった後、より深い内容を扱った書籍を読んだりすることが大切なのかなと感じました。

なので次は"Systems Performance"をちょびちょび読んでいます。

Systems Performance: Enterprise and the Cloud

Systems Performance: Enterprise and the Cloud

『インフラエンジニアの教科書2』で扱っている内容と地続きになっているわけではないのでしょうが、現在業務をしていく中で足りなそうな知識が丁度書かれていそうだなと思ったので、次はこれの読破(と得た内容の実践)に挑戦しています。

PyCon JP 2016に参加してきました

表題の通り、PyCon JP 2016に参加してきました。昨年も参加したので何となく記事を見直しながら書いてます。

takuan-osho.hatenablog.com

来年のPyCon JPも楽しく参加したいですね!

昨年の感想で最後にこう書いているように、楽しく参加できました。

思えばPyCon mini JPの様子をUstreamから眺めていて興味を持ち始め、PyCon JP 2012の頃から実際に現地に参加するようになってから随分時間が経っているなあと実感します。

PyCon JP 2012の頃から数えるとPyCon JPへの参加は5回目ということになりますが、それだけ参加経験を積んでくると自分なりの参加スタイルをある程度確立できたようで、「無闇に全ての時間帯の発表を聞きに行って体力を消耗して後日体力的に死亡する」といった事態にならないようオープンスペースで休憩したり、久し振りに会う人と色んな話をしたり、無理せず楽しんで有意義な時間を過ごせたように思います。…と言いつつ、これを書いている2016/09/24(日)現在、疲れが出てグッタリしているわけですが!

参加したもの

モチベーションと体力があればスライド含めた各種リンクと感想を個別に書くのがいいとは分かりつつ、そうやろうとしていつも途中で頓挫して、結局参加記事を書かずに終わると言うことを何回も繰り返しているので、"Done is better than perfect"を言い訳にして参加したものだけ書き残しておきます。

リンク張り作業とか結構面倒なんですよね…

まあ、メディアスポンサーに名を連ねているTogetterさんが公式で以下のようなまとめを出していて、基本的にスライド・動画へのリンクをつけているのでそこ見ればいいと思います。

資料も反響もすべてチェック! 秋雨に濡れた早稲田大学西早稲田キャンパス #PyConJP 2016 まとめまとめ

1日目

  • Keynote by Jessica McKellar
  • Python入門コードリーディング (ビギナーセッション)
  • 基礎から学ぶ Webアプリケーションフレームワークの作り方
  • ISUCON大反省会 (オープンスペース)
  • LT & Closing

2日目

  • Keynote by Andrey Vlasovskikh
  • You Might Not Want Async

2日目は体力無くて休んでる時が多かったのでこれくらいです。あと、1日目はフルに参加できたのですが、2日目は空手の昇級審査 & 稽古があって途中17時くらいに一旦帰らざるを得なくてフル参加できなかったので、そこだけが残念でした。

実は今回のPyCon JP 2016のチュートリアルの中にあったSphinxチュートリアルにチューターとしても参加していたのですが、それについては別エントリでまとめようかなと思います。

全体的な感想

参加者としてとても過ごしやすいカンファレンスだったと思います。疲れて休みたくなったら食堂やオープンスペースなどで座れる場所がだいたい確保できましたし、オープンスペースで色々参加者の人が開きたい議論をしていたのに参加して楽しめましたし、ただ「発表を聞いて終わり」というだけではない楽しみ方をすることがしやすい環境だったと思います。

それを実現するには座長はじめをとした運営スタッフの皆様のご尽力があったからだと思います。ありがとうございました。

あと、個人的に驚いたのは早稲田大学の協力によって会場が無料で提供されていたというところですね。普通ならあれくらいの会場を借りるにはたくさんのお金がかかるはずなので。その分参加者側に還元されているはずだと考えるととてもありがたいことです。

2日間のカンファレンスに参加し終わった後少し後悔したのは、スポンサー企業さんのブースを回っておけばよかったなあということです。荷物が重くて余り歩き回りたくないなというのと、結構体力を消耗していて人と会話する気力が出てこなかったという理由はあるのですが、せっかくネット越しではなく現地に参加しているのだから、普段話すことのできない人と話せるチャンスだと考えると、もったいないことをしたなと思いました。

多分来年も参加すると思います。

2日目のLT & Closingには参加できなくて悲しかったので、Closingの部分は後でザッと該当部分の録画を見ましたが、PyCon JP 2017から新しい座長になるというところも驚きました。

PyCon JP 2017の座長は吉田さんということで、まだカンファレンスの詳細は決まっていないみたいですが、来年の開催を楽しみにしています。

あと、個人的な私信みたいになってしまいますが、たかのりさん、座長お疲れさまでした!

セルフホスティングに手を出してみた

種々様々な理由により、前からセルフホスティングとかその辺りに興味があった。

けど、何度か手作業で管理してみて運用に破綻して、たいしたデータではないから作り直しとかをしていていたりしていた。

そういうこともあり、OSS版herokuみたいな仕組みがないかどうかgithubのtrendingを見ながら何となく探したりしていて、最近Hacker Newsを見ていたらCloudronというものを見つけたので試してみることに。

公式のCLIがnode v6.5では動かなかったり、自分のPCのOpenSSLのバージョンが意図せず古いものを使っていたりで色々はまったけど、今はAWS上に一つ自分用のサイトを構築することには成功。

Cloudronを使うとghostMattermostとかTaigaといったアプリを簡単に複数構築できるようになるので、中々素性が良さそうだなというのが第一印象。

しばらく色々試してみたい。

El Capitanをクリーンインストールして入れ直してみた

ここ最近自分のPCが調子が悪くてしょっちゅう動かなくなり、強制的に再起動せざるを得ない状態が続いていて不便だったので、OSをクリーンインストールしてみたらとりあえず状態がましになって動くようになってよかったという話。

クリーンインストールを検討する前に何で動作がおかしくなってるのかアクティビティモニタと睨めっこしてましたが、原因が特定出来なかったのでやむなくこうした次第。

ただ、SSDの残り容量が3GBとかなりキツキツだったので、これが根本的な原因じゃないかなと思います。

バックアップを取った後、クリーンインストールをしてからデータ移行アシスタントを使いデータを戻してみたところ、特に何か減らしたわけでもないのに空き容量が3GB → 40GBになった。

37GB分もキャッシュが残ったりすることなんてあるのだろうかと思いつつ、とりあえずPCがまともに動くようになったので人権を取り戻せましたね。

人権を取り戻せたのでそろそろブログ更新も復活させたいなと思いました。

以前から取り組んでいたSphinxのEPUB 3 ビルダー追加のプルリクエストがマージされ、v1.4から使えるようになりました

三行まとめ

  • 以前からやっていた「SphinxにEPUB 3 ビルダーを追加する」プルリクエストがmasterブランチにマージされ、バージョン1.4からその機能が使えるようになりました。
  • EPUB3形式のepubが出力できると書きましたが、様々な理由により、validなepub3は現状出力できません。
  • 意外と貢献できるところがあるかもしれないので、(Sphinxに限らず)みんな有名OSSにプルリクしてみるといいのでは?と思いました。

経緯

最近はあまり時間が取れていなくて動向を追えてないですが、割と電子書籍界隈に前から興味があって、その繋がりでEPUB 3についても独学でちょこちょこ勉強していたという背景があります。

そして、私がWeb系ITエンジニア向けの勉強会とかに顔を出すようになったきっかけであるSphinxというドキュメンテーションツールはEPUBの出力機能があるのですが、これがEPUB 2相当のEPUBしか出力できない状態で、誰もEPUB 3を出力できるようにしてなさそうだったので、取り組み始めたという流れではじめた(と思います)。

時期に関しては忘れましたが、このブログを検索してみた限り、2014年以前から取り組んではいたようです

takuan-osho.hatenablog.com

色々EPUB 3の仕様を調べながらやっていましたが、モチベーションが続かなかったり、力不足で色々解決できないなあと思っていたところが多くて、手を付け始めてから実際に取り込まれるまでこれだけ時間がかかってしまったなというところです。

プルリクエストの内容はこれですね。

github.com

できるようになったことと今後の課題

EPUB 3形式のファイルを出力できるようになりました。やり方書こうと思ったんですが、それ書こうとしていて2週間くらい記事のアップが遅れているので、今回は省略します。(また別途書くかも)

epub3 って名前のビルダーを追加してそれを使うので、自動生成されたMakefileをそのまま使っているなら make epub3 で生成できるかと思います。多分。

ただ、最初にも書いたように、以下のような理由があり、epubcheckによる検査を通るvalidな形式のepub3ファイルは現状生成できません。

  • Sphinxが依存しているdocutilsがHTML5形式のHTMLを生成できない
  • EPUB 3で変わった部分の(初期)実装は現状私一人が手がけたため、私のEPUB 3の理解が疎かだったりする部分やそもそも実装が追いついていない部分がある

ビルダーのドキュメントにも書いたのですが、このEPUB 3 ビルダーは現状experimentalなので、使用するならそのことを理解した上で使用するといいと思います。

感想

Sphinxのcontributorとして名前が載ったの、割とうれしいですね。