タグ

ブックマーク / blog.amedama.jp (7)

  • Python: ユニットテストを書いてみよう - CUBE SUGAR CONTAINER

    ソフトウェアエンジニアにとって、不具合に対抗する最も一般的な方法は自動化されたテストを書くこと。 テストでは、書いたプログラムが誤った振る舞いをしないか確認する。 一口に自動テストといっても、扱うレイヤーによって色々なものがある。 今回は、その中でも最もプリミティブなテストであるユニットテストについて扱う。 ユニットテストでは、関数やクラス、メソッドといった単位の振る舞いについてテストを書いていく。 Python には標準ライブラリとして unittest というパッケージが用意されている。 これは、文字通り Python でユニットテストを書くためのパッケージとなっている。 このエントリでは、最初に unittest パッケージを使ってユニットテストを書く方法について紹介する。 その上で、さらに効率的にテストを記述するためにサードパーティ製のライブラリである pytest を使っていく。

    Python: ユニットテストを書いてみよう - CUBE SUGAR CONTAINER
  • まっさらな状態から Docker イメージを作る - CUBE SUGAR CONTAINER

    Docker イメージというと、一般的には既存の Docker イメージをベースにして作る機会が多い。 そうしたとき Dockerfile にはベースとなるイメージを FROM 命令で指定する。 とはいえ、既存のイメージをベースにしない、まっさらな状態からイメージを作ることもできる。 それが FROM 命令に scratch を指定した場合になる。 今回は FROM scratch でまっさらな状態から Docker イメージを作ってみることにする。 試した環境は次の通り。 $ docker version Client: Version: 18.01.0-ce API version: 1.35 Go version: go1.9.2 Git commit: 03596f5 Built: unknown-buildtime OS/Arch: darwin/amd64 Experiment

    まっさらな状態から Docker イメージを作る - CUBE SUGAR CONTAINER
  • Docker イメージをファイルでやり取りする - CUBE SUGAR CONTAINER

    的に Docker イメージは Docker リポジトリからダウンロードしたりアップロードするものだと思う。 とはいえ、インターネットに疎通がなかったりすることもあるし、自前でリポジトリを運用するのもつらい。 そんなときは Docker イメージを、そのままファイルでやり取りしたいなと思うときがある。 結論から先に言ってしまうと、そんなときは docker save コマンドと docker load コマンドを使うと良い。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.12.6 BuildVersion: 16G29 $ docker version Client: Version: 17.09.0-ce API version: 1.32 Go version: go1.9 Git commit: af

    Docker イメージをファイルでやり取りする - CUBE SUGAR CONTAINER
  • オープンソースの脆弱性スキャナ OpenVAS を使ってみる - CUBE SUGAR CONTAINER

    今回はオープンソースの脆弱性スキャナである OpenVAS を使ってみることにする。 脆弱性スキャナというのは、ホストに既知の脆弱性が含まれないかどうかを自動でスキャンしてくれるツール。 注意: 脆弱性スキャンはポートスキャンやペネトレーションを含むため外部のサーバには実行しないこと 使った環境は次の通り。OS は Ubuntu 16.04 LTS にした。 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.3 LTS Release: 16.04 Codename: xenial $ uname -r 4.4.0-89-generic セキュリティ用途だと Kali Linux を使うことも多いみたい。 インストール Ubuntu で OpenVA

    オープンソースの脆弱性スキャナ OpenVAS を使ってみる - CUBE SUGAR CONTAINER
  • Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER

    今回はソケットプログラミングについて。 ソケットというのは Unix 系のシステムでネットワークを扱うとしたら、ほぼ必ずといっていいほど使われているもの。 ホスト間の通信やホスト内での IPC など、ネットワークを抽象化したインターフェースになっている。 そんな幅広く使われているソケットだけど、取り扱うときには色々なアーキテクチャパターンが考えられる。 また、比較的低レイヤーな部分なので、効率的に扱うためにはシステムコールなどの、割りと OS レベルに近い知識も必要になってくる。 ここらへんの話は、体系的に語られているドキュメントが少ないし、あっても鈍器のようなだったりする。 そこで、今回はそれらについてざっくりと見ていくことにした。 尚、今回はプログラミング言語として Python を使うけど、何もこれは特定の言語に限った話ではない。 どんな言語を使うにしても、あるいは表面上は抽象化さ

    Python: ソケットプログラミングのアーキテクチャパターン - CUBE SUGAR CONTAINER
  • Mac OS X で Golang に入門してみる - CUBE SUGAR CONTAINER

    以前から Golang (Go 言語) にはポスト C 言語として興味があった。 マシン語を出力できる低レイヤー性にもかかわらず、スクリプト言語に近い記述しやすさも併せ持つというのはなかなかに魅力的だ。 今回はその Golang に関する概念を調べつつ開発環境を整えていくことにする。 環境は表題の通り Mac OS X を使っている。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.10.5 BuildVersion: 14F27 Golang をインストールする まずは Golang は Homebrew を使ってインストールする。 Homebrew が入っていない場合には、あらかじめ入れておこう。 $ brew install go これで Golang に関する様々な操作を行うことのできる go コマンドが使えるようになった。 $

    Mac OS X で Golang に入門してみる - CUBE SUGAR CONTAINER
  • Python: python-fire の CLI 自動生成を試す - CUBE SUGAR CONTAINER

    今回は Google が公開した python-fire というパッケージを試してみた。 python-fire では、クラスやモジュールを渡すことで、定義されている関数やメソッドを元に CLI を自動で生成してくれる。 ただし、一つ注意すべきなのは、できあがる CLI はそこまで親切な作りではない、という点だ。 実際にユーザに提供するような CLI を実装するときは、従来通り Click のようなフレームワークを使うことになるだろう。 では python-fire はどういったときに活躍するかというと、これは開発時のテストだと思う。 実装した内容をトライアンドエラーするための CLI という用途であれば python-fire は非常に強力なパッケージだと感じた。 今回使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion:

    Python: python-fire の CLI 自動生成を試す - CUBE SUGAR CONTAINER
  • 1