デプロイ自動化チェックリスト

デプロイを自動化するために何から手をつけていいやら、やることが多くて方向を見失いがち。そこで、チェックリストにしてみた。http://www.ryuzee.com/contents/blog/4461より、大項目を並べてみる。 # 項目 □ 1 ソースコードのバージョン管理 □ 2 設定ファ…

Chef の公式 cookbook リポジトリが移動してた

いままで、Opscode が管理する Chef の cookbook リポジトリがhttps://github.com/opscode-cookbooks以下に移動していた。今まで1つのリポジトリで管理していたものが、cookbook 単位で管理されるようになった。移動してもう4か月前になるのか。おかしいな…

Emacs で文字コードを指定して開きなおす

Emacs にて文字コードの自動判定に失敗した場合、文字コードを指定して開きなおすのだが、いつも忘れてしまうのでメモ。 C-x RET c 文字コードを入力 RET C-x C-v RET

定義済みのクラス・関数・定数・変数を取得する

PHP

PHP ソース解析のために必要になった。 定数:get_defined_constants() 変数:get_defined_vars() 関数:get_defined_functions() クラス:get_declared_classes() インターフェース: get_declared_interfaces() 命名規則で "defined" 派と "declared" 派が…

Ubuntu で FreeBSD パーティションをマウントする

http://wpblog.onodalaw.com/?p=60 より、 sudo mount -t ufs -r -o ufstype=ufs2 /dev/sdb9 /mnt

Vagrant 1.1 以降は、RubyGems での配布停止、パッケージのみ提供

らしい・・・。意見を募集中とのこと。いろいろ理由が書いてあるので後で読む。https://groups.google.com/forum/#!topic/vagrant-up/kX_wvn7wcds/discussion

Chef 0.10.10 で notifies が動作しない

opscode のレシピ "yum::epel" が動かないと思ったら、chef のバグらしい。 http://tickets.opscode.com/browse/CHEF-3135yum::epel 内で notifies を使わないようにいじって対応した。

Veewee 0.3.0.alpha9 (開発版) を試す

以前、veewee で vagrant 用の仮想サーバ(box)を自動作成 にて、veewee 0.2.0 の動作を確認した。今回は、開発版である 0.3.0.alpha9 を使って CentOS 6.2 のベースBOXを作成してみた。今回動作確認した環境は、 Windows 7 (64bit) VirtualBox 4.1.16 vagran…

Play framework 2.0 を試す(途中)

PHP を使うのは疲れたので、Java 系のフレームワークとして、Play framework を検討中。バージョン2.0 は、コア部分が Scala で書き直され統一感があって、なかなか良さげ。(1.2 系は Java, Python, Groovy , Scala (オプション) という構成で言語のミックス…

SchemaSpy でテーブル定義書を生成する

SchemaSpy とは、データベースの設計情報をHTMLドキュメント化してくれる java 製ツール。 Graphviz をインストールしておくとリレーションをグラフ化してくれる。http://schemaspy.sourceforge.net/実行例: $ java -jar schemaSpy_5.0.0.jar -dp ./postgres…

Composer で PHPUnit のインストール

php

ちまたで人気の Composer を試してみた。http://getcomposer.org/だが、pear 経由では PHPUnit がインストールに失敗する。もしかしたら Composer の不具合かもしれないが、どうやら PHPUnit のpear の管理情報 (packages.json) に問題(?)があるらしい。http…

Ruby のクラウドサービスライブラリ

ツイートされていて見つけたライブラリ。(サイトをながめただけで、まだ試していない) http://fog.io/1.3.1/index.html Storage (AWS S3, Rackspace, Google) Compute (AWS EC2, Rackspace) DNS (AWS Route 53, Blue Box, DNSimple, Linode, Rackspace, Sli…

Jenkins でビルドパイプライン

http://www.ryuzee.com/contents/blog/4470 より、maven にて結合テスト用のゴールが設定できるようになったので、 新しいプロジェクトを作成し、ビルドのトリガーをチェーンにコミットステージを 追加してみた。次の課題は、コミットステージの成果物をもと…

Pimple を考える

PHP

Pimple とはなんぞや?ということで、ソースコードやドキュメントから、どのようなものかを判断してみた。(つまり実際に動作は確認していないw)Pimple とは、Silex のベースとなっている PHP5.3 上で動作する DI コンテナとのこと。 公式サイト: http://pi…

Capistrano で Vagrant の仮想マシンにアクセス

Capistrano は、ssh でアクセスするので、他のサーバにアクセスするのとほとんど変わらない訳だが、Vagrant の特徴に合わせて設定する必要がある。設定ポイントとしては、 ユーザー名 SSH Port 秘密鍵 を指定すること。設定内容は、vagrant ssh-config コマ…

Maven で JUnit4 の機能を使った単体テストと結合テスト

結合テストは、以下の方法が一番簡単だが、integration-test フェーズで結合テストが実行されないのが何となく気持ち悪かった。http://d.hatena.ne.jp/okinaka/20120413/1334292605以下の記事を参考に、integration-test フェーズにて結合テストが実行できる…

PHPで使えるDBマイグレーションツール phpmig

PHP

dbdeploy 並みにシンプルで、PHP でわりと汎用的に使えるマイグレーションツールはないかと探しているところ。 初めは、 http://www.ryuzee.com/contents/blog/4268 を参考に Doctrine1 を試してみたのだが、ORM用ファイルがたくさん生成されるのが気に入ら…

Vagrant の公式 Ubuntu 12.04 ベースBOX

久々に Google グループを読んで知ったのだが、Vagrant 用に公式の Ubuntu 12.04 ベースBOX が出たらしい。http://files.vagrantup.com/precise32.box http://files.vagrantup.com/precise64.boxvagrant 1.0.3 より古いバージョンは不具合があってネットワー…

CSSで中央配置(センターリング)する方法

http://www.css-lecture.com/log/css-beginner/026.html ブロック要素は、「margin: 0 auto;」(とwidth)を指定 インライン要素は、「text-align: center」を指定

PostgreSQL のテーブル定義書を生成する

dbdeploy のようなDBマイグレーションツールを使っていると、テーブル定義は斬進的に更新されていくため、現時点のテーブル定義書をDB情報から生成したいと思うことは度々ある。(私の知識では、)テーブル名や各項目の型は取得できるが、それだけでは説明が足…

Vagrant 1.0.3 リリース

今回は、Ubuntu 12.04 対応のためのリリース。まだ試していないが、旧バージョンでは名前解決周りがうまく動かないらしい。http://twitter.com/#!/mitchellh/status/197561652038733824次の 1.1 系は、設定やプラグイン周りで機能追加がてんこ盛りみたいなの…

Ubuntu 12.04 リリース!

11.10 からアップグレードしようとしたら、パッケージ管理が残念な結果になってしまったため、クリーンインストールに切り替えることに・・・。現在、ISOイメージをダウンロード中。ダウンロードが完了したら、正しいデータかどうかを md5sum などでチェック…

maven-dbdeploy-plugin の使い方

先日は dbdeploy の設定方法についてまとめたのだが、今度は使い方についてまとめてみる。変更手順 変更管理用SQL文を書く 変更内容をDBに適用する undo (元に戻す) 手順 (無ければ) undo 用ファイルを生成する undo 内容をDBに適用する 変更管理用のSQL文 …

sql-maven-plugin で dbdeploy 用管理テーブルを作成

dbdeploy 用の管理テーブル (changelog) を作成する方法として、sql-maven-plugin を利用してみた。http://mojo.codehaus.org/sql-maven-plugin/PostgreSQL 用のテーブル定義 (src/main/sql/0000_dbdeploy_changelog.sql) は、 CREATE TABLE IF NOT EXISTS c…

継続的デリバリーの一歩: dbdeploy を使ってみた

dbdeploy とは、java 製のデータベース変更管理ツール。コマンドラインツールとしても使えるが、主な用途は ant タスクや maven プラグインとして利用すること。わりと歴史があるツールみたい。http://dbdeploy.com/PostgreSQL の createSchemaVersionTable …

継続的デリバリーへの一歩:自動受け入れテスト(準備編)

自動受け入れテストは、コミットテストが成功して初めて実施されるものであるため、実行タイミングを分けてやる必要がある。ここでは、Java での開発を前提とし、自動受け入れテストは JUnit を使用するものとする。ググってみたところ、 maven で単体テスト…

MsysGit で改行コードの自動変換の抑制

msysgit をインストール時に改行コードが CRLF に自動変換する設定にしてしまって、後から自動変換を止めたくなった場合、以下のコマンドを実行することで、抑制できるらしい。 git config --system core.autocrlf falsehttp://progit.org/book/ja/ch7-1.html

JUnit で JNDI DataSource を使う

サーバーサイドの場合、データベースのコネクションを取得するために DataSource を利用するのが一般的。JUnit を実行するときには、サーブレットコンテナなどは動作していないため、事前にJNDIの準備が必要。JUnit JNDI DataSource helper package というも…

Vagrant を使って VirtualBox のバージョンを調べる

Vagrant 0.9, 1.0 系になってから、VirtualBox のバージョンの取得方法が変わってたので、 ちょっと困っていたのだが、ようやく分かった。 require 'rubygems' require 'vagrant' puts Vagrant::Driver::VirtualBox.new(nil).version Vagrantfile 内だと req…

Perl で HTTPリクエスト

Ubuntu の場合、事前に libwww-perl パッケージをインストールしておく。 use LWP::UserAgent; my $url = "http://www.yahoo.co.jp/"; my $ua = LWP::UserAgent->new(); my $req = HTTP::Request->new("GET", $url); my $resp = $ua->request($req); print $…