月: 2012年11月

IE7のインストール用ファイルメモ

IE7のインストール用ファイル

今更感満載ですが、IE7で確認しなきゃいけないことになった。
手元にIE7のPCが無いので古いXPのPCをセットアップしてIE7を入れることに。
普通にWindowsアップデートのカスタムアップデートでIE7だけ入れることもできるけど
念のためオフラインでも入れられるようにexeを探しておく。

IE7のインストールのexeファイルはMicrosoft Download Centerで探せるらしい。

Microsoft Download Center

実際のはこれ↓
Windows XP 向け Windows Internet Explorer 7

IE8はこちら
Windows XP 用 Windows Internet Explorer 8

■参考サイト
IE7/IE8 オフラインインストール用インストーラがこんなところにあったとは・・・

パターンランゲージに基づいた3つの有用なパターン

パターンランゲージに基づいた3つの有用なパターン

デザインパターンじゃなくて・・・。

チームでのプロジェクトを成功させる秘訣34項目「コラボレーション・パターン」

この記事が気になったので元サイトに行ってみたら
他にも2つのパターンがあったのでメモ。
コラボレーション・パターン(Collaboration Patterns)

コラボレーション・パターンは、「創造的コラボレーション」の秘訣を言語化したものです。
創造的コラボレーションでは、メンバーが高め合い成長しながら、個人には還元できない
チームレベルの「創発的な勢い」に乗り、世界を変えるような成果を生み出します。
そのようなコラボレーションのデザインにおける視点や方法をまとめたものが、
コラボレーション・パターンなのです

ラーニング・パターン (Learning Patterns)

学習パターンは、自律的で創造的な学び方のコツをパターン・ランゲージという形式でまとめたものです。
どのような状況でどのような問題が生じやすく、それをどのように解決すればよいのかの発想がまとめられています。
このようなコツを「言語」として共有することで、個人の自律的で創造的な学びの支援と、学びのコミュニティの
活性化を目指しています。

プレゼンテーション・パターン (Presentation Patterns)

プレゼンテーション・パターンは、「創造的プレゼンテーション」の秘訣を言語化したものです。
創造的プレゼンテーションには、想いが凝縮されたメッセージがあり、聞き手の想像力をかきたて、
新しい発見をもたらす工夫がなされています。
そのようなプレゼンテーションのデザインにおける視点や方法をまとめたものが、
プレゼンテーション・パターンです。

慶應義塾大学の井庭 崇 研究室で作成されたものらしいです。

活用させていただきます。

mysqlのバイナリログの設定とバイナリログを見るコマンドメモ

mysqlのバイナリログの設定とバイナリログを見るコマンドメモ

設定してるくせによく忘れるので。

my.cnfの設定
■バイナリログを有効にする

[mysqld]
#バイナリログ有効化
log-bin=mysql-bin

mysqlの再起動する。

どこに出力されてるのか?

# pwd
/var/lib/mysql
# ls -al | grep mysql-bin
-rw-rw----   1 mysql mysql    19791 11月 21 17:22 2012 mysql-bin.000001
-rw-rw----   1 mysql mysql   744930 11月 21 17:22 2012 mysql-bin.000002
-rw-rw----   1 mysql mysql      441 11月 21 17:24 2012 mysql-bin.000003
-rw-rw----   1 mysql mysql   335058 11月 27 17:27 2012 mysql-bin.000004
-rw-rw----   1 mysql mysql      106 11月 27 17:27 2012 mysql-bin.000005
-rw-rw----   1 mysql mysql       95 11月 27 17:27 2012 mysql-bin.index

こんな感じでファイルに出る。

# mysqlbinlog mysql-bin.000005
mysqlbinlog: unknown variable 'default-character-set=utf8'

こんなエラーがでたら。。

# mysqlbinlog --no-defaults mysql-bin.000005

とするといいみたい。
これはmy.cnf の [client] セクションに default-character-set があるのが問題らしいです。

■クエリログを有効にする

[mysqld]
#クエリログ設定
log=/var/lib/mysql/mysql_querry.log

mysqlの再起動する。

どこに出力されてるのか?(指定してるけど・・・)

# pwd
/var/lib/mysql
# ls -al | grep mysql_querry
-rw-rw----   1 mysql mysql   156836 11月 27 17:41 2012 mysql_querry.log

本番運用する場合はログの容量が大きくなるのでクエリログは
出力しないほうがいいみたい。あくまでデバッグ用で。

■参考サイト
MySQLバイナリログの仕様

7.10. mysqlbinlog — バイナリログファイルを処理するためのユーティリティ

MySQLとログ

Subject: [mysql 12904] Re: mysqlbinlogの動作について

あー鼻水止まらない。のど痛い。

プレ葉ウォーク浜北のKALDIセールは11月末

プレ葉ウォーク浜北のKALDIセールは11月末

2012.11.22から2012.11.25は
プレ葉ウォーク浜北のKALDI浜北店 4周年記念セールが開催されました。
コーヒー豆半額(一部除外品あり)/商品10%OFF

KALDIは店舗毎に○周年記念っていうセールをやるんだけど、
家の近くのプレ葉ウォーク浜北のKALDIのセールの日を忘れるので一応メモ。

KALDIのセール情報はKALDIのサイトの
セール情報のページにあるので大体何月にセールするのか
覚えておいてページをたまにチェックするのがいいと思う。

コーヒー豆半額はかなり重要。豆のまま買って保管。
ワインとか生ハムとかも10%OFFなので買いだめ。。

Redmineのインストール資料

Redmineのインストール資料

すごく丁寧に書かれていて一発でインストールできたのでメモ。

ちなみに…Redmineとは

Redmineはオープンソースのプロジェクト管理ソフトウェアです。

プロジェクトのタスク管理、進捗管理、情報共有が行えます。
SubversionやGitなどのバージョン管理システムとの連携機能も
備えており、ソフトウェア開発やwebサイト制作などのITプロジェクトで
特に威力を発揮します。

※関係者説得用資料(保守派層説得などに)
Redmineとは

■インストール参考ページ(超親切な解説)
Redmine 2.1をCentOS 6.3にインストールする手順

■初期設定(すごくわかりやすい)
Redmineを使い始めるための初期設定

Redmine入門 

ローカル環境のIRCサーバとしてngircdをインストールする

ローカル環境のIRCサーバとしてngircdをインストールする

ircd-hybridをインストールしようとしたけど設定がわからなくて挫折。
この行削除しろとか言われても・・・。
なので簡単そうなngircdをインストールすることにする。

OS:CentOS release 6.3

■普通にyumでインストールする。

# yum search ngircd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
============================================================================================== N/S Matched: ngircd ==============================================================================================
ngircd.i686 : Next Generation IRC Daemon

  Name and summary matches only, use "search all" for everything.
[root@192 ircd]# yum install ngircd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.riken.jp
 * epel: ftp.riken.jp
 * extras: ftp.riken.jp
 * updates: ftp.riken.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package ngircd.i686 0:18-2.el6 will be installed
--> Processing Dependency: libident.so.0 for package: ngircd-18-2.el6.i686
--> Running transaction check
---> Package libident.i686 0:0.32-4.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================================================================================================
 Package                                             Arch                                            Version                                               Repository                                       Size
=================================================================================================================================================================================================================
Installing:
 ngircd                                              i686                                            18-2.el6                                              epel                                            145 k
Installing for dependencies:
 libident                                            i686                                            0.32-4.el6                                            epel                                             13 k

Transaction Summary
=================================================================================================================================================================================================================
Install       2 Package(s)

Total download size: 158 k
Installed size: 437 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): libident-0.32-4.el6.i686.rpm                                                                                                                                                       |  13 kB     00:00
(2/2): ngircd-18-2.el6.i686.rpm                                                                                                                                                           | 145 kB     00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                            375 kB/s | 158 kB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libident-0.32-4.el6.i686                                                                                                                                                                      1/2
  Installing : ngircd-18-2.el6.i686                                                                                                                                                                          2/2
  Verifying  : libident-0.32-4.el6.i686                                                                                                                                                                      1/2
  Verifying  : ngircd-18-2.el6.i686                                                                                                                                                                          2/2

Installed:
  ngircd.i686 0:18-2.el6

Dependency Installed:
  libident.i686 0:0.32-4.el6

Complete!

■設定ファイルを一部変更

# cp /etc/ngircd.conf /etc/ngircd.conf.def
# vim /etc/ngircd.conf
# diff /etc/ngircd.conf.def /etc/ngircd.conf
47c47,48
<       Listen = 127.0.0.1 --- >       ;Listen = 127.0.0.1
>       Listen = 0.0.0.0
51a53
>       MotdFile = /etc/ngircd.motd

■ngircdの起動

# /etc/rc.d/init.d/ngircd start
ngircd を起動中:                                           [  OK  ]

インストールから起動まではこれだけでOK。
あとはLimeChatとかIRCクライアントで接続するだけ。
※あくまでローカル内の話しです。

[Global]セクションの「Password」とか「Ports」も設定したほうがいいかも。
あと「MotdFile」も作成して何かした表示用の文字を入れておくほうが
エラーでなくていいかも。

あと良くわかんないけど[Channel]セクションを定義しておくと
接続時に勝手に表示されていい感じ。

■参考URL
IRC初心者がIRCを通知ツールとして使ってみる,または個人的IRC環境のメモ

Jenkinsとかからの通知を目標にするぞ。。

LPIC レベル2 覚えられないコマンドとか色々5

■lvcreate コマンド

lvcreate [オプション] ボリュームグループ名

-L 続けてボリュームサイズを指定
-n 続けて論理ボリューム名を指定
-s スナップショットを指定

-sがサイズと思ってしまって毎度間違う。。。

■debugfsコマンド

debugfs は ext2/ext3/ext4 ファイルシステムの対話的デバッグを行うコマンド

起動すると専用の debugfs シェル画面となり、その中で使える様々なコマンドを使ってファイルシステムを調査・編集することができる。
きめ細かで高度な操作が行える反面、操作には ext2/ext3/ext4 ファイルシステムに対する十分な知識が必要なので、
e2fsck や tune2fs などの便利なコマンドで解決できる場合はまずそちらの利用を検討するべき。

■modprobeコマンド

modprobe コマンドは依存関係を自動的に解決してカーネルモジュールのロード・アンロードが行えるコマンド。

-f 強制的に操作を行う
-r ロードではなくアンロードを行う
-l ロードできるモジュールを一覧表示
–show-depends 指定したモジュールの依存関係を表示

PHPでSelenium2(WebDriver API)を使うための構成

PHPでSelenium2(WebDriver API)を使うための構成

Seleniumを使っての自動テスト環境を作るときに
いつも何がどの役割なのかわからなくなるので構築
方法をメモする。Seleniumの情報に古いのが多くて
結構はまった。

今回は簡易的なところまででJenkinsと連携して
自動ビルド&自動ユニットテスト&自動UIテストとかは
次の話しということで。
そもそもこのやり方がいいのかちょっとわからないです。。。
おかしなところあったら指摘してください。

■今回の構成

◆クライアントPC(実際にUIテストを行なうPC)

OS:Windows7 32bit
ブラウザ:IE9とFirefox16.0.2
Java:1.7.0_09
IP:192.168.1.10

◆サーバ

VMware上で。
OS:CentOS6.3
Webサーバ:Apache 2.2.15
PHP:5.4.8
PHPUnit:3.7.8
Java:1.7.0_09
IP:192.168.1.100

今回の構成ではクライアントPCとサーバの両方でselenium-server
を起動する形式にする。
selenium-serverはこちらのページの「Selenium Server (formerly the Selenium RC Server)」をダウンロードする。

※この時点でのバージョンは2.25.0

↑今回の構成図

サーバ側はSelenium Gridとして動かし分散実行にも備える。
クライアントPC側は役割をwebdriverとし、ハブとして
サーバ側で起動したSelenium Gridを指定して自身をテスト
マシンとして登録する。

■実際の実行手順

①サーバ側にselenium-serverを配置、役割をハブ(Selenium Grid)として実行。
※デフォルトは4444ポートで起動

$ java -jar selenium-server-standalone-2.25.0.jar -role hub

ブラウザでSelenium Gridの確認
http://192.168.1.100:4444/grid/console

②次にクライアントPCにselenium-serverを配置。役割をwebdriverとして起動。このときにサーバを指定。
※パスは読み替えてください。

C:\work>java -jar selenium-server-standalone-2.25.0.jar -role webdriver -hub http://192.168.1.100:4444/grid/register

この状態でサーバ側のSelenium Gridの画面を確認すると
クライアントPCが表示されているはず。

ブラウザでSelenium Gridの確認
http://192.168.1.100:4444/grid/console

ここまで設定を行えばあとはPHPUnitのテストケースで
「PHPUnit_Extensions_Selenium2TestCase」をextendsして
テストケースを作成し、実行を行えばクライアントPCで指定
したブラウザが立ち上がりテストが実行される。

記述方法はPHPUnitのページにあります。

サポートしているメソッドとか、実際の記述方法は
PHPUnit_Extensions_Selenium2TestCase のエンドツーエンドテストを確認してください。

以下実際に動かしたサンプルテストケース(SeleneseTest.php)
※seleniumのページを開いてtitleの内容をチェック。
※setHostに「192.168.1.100」、setPortに「4444」を指定する

class Selenese2Test extends PHPUnit_Extensions_Selenium2TestCase {

    protected function setUp() {
        $this->setHost("192.168.1.100");
        $this->setPort(4444);
        //$this->setBrowser("internet explorer");
        $this->setBrowser("firefox");
        $this->setBrowserUrl("https://www.google.co.jp/");
    }

  public function testMyTestCase()
  {
        $this->url('http://seleniumhq.org/');
        $this->assertEquals('Selenium - Web Browser Automation', $this->title());
  }
}

③テストケースを実行する。

$ phpunit SeleneseTest.php
PHPUnit 3.7.8 by Sebastian Bergmann.

.

Time: 14 seconds, Memory: 1.50Mb

OK (1 test, 1 assertion)

Selenium Grid経由で192.168.1.10のFirefoxが立ち上がりテストが始まる。

これで完了。
クライアントでIE9を使うとエラーが表示されるかもしれない。
こんなやつ↓
「リモートデバイスまたはリソースが接続を受け付けません」
これはブラウザの設定で「ツール」⇒「インターネットオプション」⇒「セキュリティ」で
全部のセキュリティゾーンの設定(保護モード)をそろえればいいということらしい。

Selenium2のInternetExplorerDriverでエラーになった

今回はSelenium Gridとphpunitの実行を同じサーバでおこなったけど
別に一緒のサーバでやる必要はないです。
使えるリソースが無かっただけです。。。。

■参考サイト
Selenium2.0 WebDriverで複数ブラウザのUIテスト もう一度、Selenium再入門
PHPUnit Manual 第17章 PHPUnit と Selenium
Selenium 2.0 と WebDriver
Selenium2.0ってどんなもの?とりあえず動かしてみよう!
Selenium + PHPUnitで簡単エンドツーエンドテストを実現する
Seleniumを使ったWeb UI自動テストシステムの構築でやったことまとめ
Selenium2のInternetExplorerDriverでエラーになった

LPIC レベル2 覚えられないコマンドとか色々4

全部覚えられないとか言ってる気がしてきた。。

■マルチホーム接続

マルチホーム (接続) とは、外部(インターネットなど) へ接続する際に、複数の経路を使って接続すること。
これを行うには、外部へ接続するホストに対して、複数の IP アドレスを割り当てる必要がある。

Linux システムでは、物理的に複数のネットワークインタフェースを用意し、それぞれに IP アドレスを割り当てる方法のほかに、
ひとつのネットワークインタフェースに複数の IP アドレスを仮想的に対応させる方法 (IP エイリアシング) がある。
IP エイリアシングを使い、複数の IP アドレスをネットワークインタフェースに割り当てるには・・・。

# ifconfig eth0:1 IPアドレス

eth0 の後ろに :1 という指定を付け足すことで、コロン (:) の後に続いた別名(エイリアス)に対して新たに IP アドレスを割り当てることができる。
エイリアスは任意の英数字を使えるので、「eth0:lan1」などと指定する事もできる。

■ホスト名に関連した情報を表示するためのコマンド

nslookup DNSでホスト名とIPアドレスを変換
dig nslookupより詳細な情報を表示
hostname 自ホストのホスト名を表示
hostname -d 自ホストのDNSドメイン名を表示
hostname -i 自ホストのIPアドレスを表示
hostname -f 自ホストのFQDNを表示
hostname -a 自ホストのエイリアスを表示

■GRUB Legacyの設定ファイル

/boot/grub/menu.lstの設定パラメータ

timeout メニューを表示している秒数
default デフォルトで起動するエントリ番号
splashimage メニュー表示時の背景画像
title メニューに表示させるエントリ名
root カーネルイメージもしくはOSが格納されているパーティションの指定
kernel カーネルイメージとカーネルオプションの指定
initrd 初期RAMディスクファイルの指定
makeactive ルートパーティションをアクティブ化
chainloader 指定されたセクタの読み込みと実行
hiddenmenu 起動時の選択メニューを表示しない

■GRUB2

設定ファイルは/boot/grub/grub.cfgだけどGRUB Legacyと違い直接編集はしない。
/etc/default/grubで設定を行い、update-grubコマンドで/boot/grub/grub.cfgを生成する。

GRUB2の全体的な設定は /etc/default/grub ファイルに記述する。

カーネルイメージ、ルートパーティションの指定などは /etc/grub.d ディレクトリ内のファイルで行う。

カスタムの設定を記述するファイル内で利用するパラメータ

menuentry 各設定の名前を指定する項目(GRUB Legacy の title に相当)
set root='(hdディスク番号,パーティション番号)’ カーネルイメージや初期 RAM ディスクイメージの含まれているパーティションを指定する項目(GRUB Legacy の root に相当)GRUB Legacy と異なり、パーティション番号は1から数える。
linux カーネルイメージファイルを指定する項目(GRUB Legacy の kernel に相当)
initrd 初期 RAM ディスクイメージファイルを指定する項目(GRUB Legacy の initrd と同様)

■ジャーナリング

ジャーナリングとは、実データをディスクに書き込む前にメタデータを専用の領域に書き込んでおくことで、
不正にシステムが終了してしまいファイルシステム内での整合性がとれなくなってしまう状況を防ぐ機能

ext3/ext4 以外にも ReiserFS, XFS 等、高機能なファイルシステムはジャーナリング機能を持っている。

■初期RAMディスク

初期 RAM ディスクは、システム起動時に仮の環境としてまずメモリ上にファイルシステムを展開し、そこでカーネルを
動作させてから本来のファイルシステムをルートにマウントし直す、といった段階的なブートを実現する機能。

高度な機能を使うにはまずカーネルを動作させる必要があり、仮の環境でまずカーネルを動かして、それから本来の環境をブートさせようという発想。

initrd 形式と initramfs 形式の2種類がある。

○initrd型式

作成方法 mkinitrd 出力ファイル名 カーネルバージョン
展開方法 gunzip initrd.img.gzmount -o loop  initrd.img マウント先

○initramfs形式

作成方法 mkinitramfs  -o 出力ファイル名 カーネルバージョン
展開方法 gunzip initrd.img.gzcpio -id < initrd.img

現在では cpio アーカイブを gzip で圧縮した initramfs 形式の方がよく利用されている。

■RAIDを管理・操作するコマンド

「RAID を管理・操作するコマンド」には mdadm があり、その設定ファイルは
/etc/mdadm.conf

Ping-tがなかなか倒せない。。