sgykfjsm.github.com

DjangoをTango with Djangoで学ぶ - 2 -

DjangoをTango with Djangoで学ぶ - 1 -の続き

これまでは表示するHTML(ただのテキストだけど)をviews.pyに直接記載していたが、Djangoでも他のWebフレームワークと同様にテンプレートシステムを備えている。

テンプレートシステムとは簡単に言うと、独自のシンタックスとHTMLを混ぜておきて、独自シンタックスの部分をサーバーサイドで指定された文字列などに置き換えたりすることだ。場合によっては多少の制御構文を備えており、ループ文やIF文を提供するテンプレートシステムも多い。

GoでSSL証明書の情報を取得したい

タイトルの通り。GoでSSL証明書の検証を行う簡単なコードを書く必要が出てきたので、それを実現するための検証の記録を残す。

ここでいう「検証」というのは、有効期限が現在より未来かどうかを調べるやり方を意味する。

Dockerコンテナの中でsystemdを操作したいの注意点

Dockerコンテナを使ってAnsibleのPlaybookをテストする際に、Playbookでsystemctlを実行しようとして以下のようなエラーが発生した。

1
Failed to get D-Bus connection: Operation not permitted

TR;DL

以下の様にコンテナを起動しておいて、それからdocker execsystemctlを実行すればよい。

1
$ docker run --rm --privileged -d -it --security-opt seccomp=unconfined -e "container=docker" centos:7 /sbin/init

DjangoをTango with Djangoで学ぶ - 1 -

仕事でDjangoアプリケーションを扱うことになったのでDjangoについて勉強を始めた。参考書としてTango With Djangoを購入した。古いバージョンなら無料で入手できるっぽいけど大して高価な本というわけでもないし購入したほうが良いかなと思って買った。

さて、最初は環境の準備を行い、それからViewの基本とURLマッピングについての学習だ。

GoでJSON APIを書く Part2

前回の続き。全体的にちょっとアレなところが多いので、もう少しリファクタリングを行なう。今回のリファクタリングの元ネタは以下。元ネタのほうが説明が簡潔だしコードが綺麗なので、元ネタを読めばコレを読む必要は無い。

Goでfunctionが実行された順番を追いかける

Goはgo routineを使って並行処理を容易に書くことができるが、下手に書くと色々なfunctionが相互に入り乱れて処理が追いづらいときがある。ここではGoでfunctionをトレースする方法をメモしておく。

ベンダリングのためのgomvpkgとgbについて考えてみる

GO言語には多言語にあるようなパッケージマネジメントの仕組みが(公式には)サポートされていない。GOv1.5では実験的に導入されているが、例えばJavaで言うmaven、Pythonで言うpipなどのような共通として用いられているツールなどは無く、基本的には以下の3つのやり方が主流だと思われる。

  • 依存するパッケージを自分のリポジトリに取り込むVendoring
  • 3rd partyツールによるRevison指定などといった擬似的なパッケージマネジメント
  • そもそもパッケージマネジメントをしない

自分の開発では、業務も含めて、あまり外部パッケージに依存するようなことはあまり無いが、もしやるなら1つ目のVendoringになると思う。で、今回はVendoringを行なう際に便利だと思われる2つのツール、gomvpkggbを試してみる。