2011/10/30

【Linux】テスト時にログ監視してリアルタイムにログファイルを見る方法

ということで試験中にログファイルをいちいち確認するのではなく、
監視をしてリアルタイムにどういう値が着ているのかなどを確認できる方法です。


使うコマンドは 「tail」 というコマンドです。
このコマンドは指定されたファイルの末尾から指定した行数を表示するコマンドです。

このコマンドにはオプションで「f」というオプションがあり
このオプションを指定することによりファイルが更新されるたびに新たに追加されたものを
表示します。

つまりこのコマンドを実行中はログが追加されるとそれをリアルタイムに表示してくれる
ということです。

tail -f ファイル名
このように指定します。 また、このコマンドを終了する際には「Ctrl + C」を使用します。 終わり

2011/10/29

【雑記】iPhone4Sがやっとっ届きました

オンライン予約していたiPhone4Sが今朝届きました。

眠かったので少し寝てから開封しました。

箱
オープン
いつものセット
起動!!
それで、USIMの認証をかけてから1時間ほど経過しているのですが、未だに圏外…orz
まあ、気長に待ちましょう 【追記】 どうやら僕のアクティベーションの仕方が悪かったようです。 softbankからの説明では、USIMを挿入後に機種変更処理を行うと書いてありましたが、 僕はUSIMを挿入する前に機種変更処理を行なっていたのでなかなかUSIMが有効にならなかった ようです。 この操作をしてしまった場合、僕の方ではUSIMを挿入しなおしキャリアを手動でsoftbankに 合わせることですぐに有効化されました。 おそらくUSIMの挿入しなおしはしなくても大丈夫だと思いますがこれで解決できました。 終わり

2011/10/28

【PHP】よく使う関数まとめ

ということで今回はよく使う自作関数をまとめておくことにしました。
そのうちライブラリかなんかにしようかなとか

p
function p($val)
{
    echo "<pre>";
    print_r($val);
    echo "</pre>";
}
使い所はデバッグ時の値チェックですね、配列でも通常の変数でも 値を渡すだけで整形して出力してくれます。 getQueryString
function getQueryString($param)
{
    $query = '?':
    foreach ($param as $key => $val)
    {
        $params[] = $key . '=' . $val;
    }
    $query = $query . implode('&', $params);

    return $query;
}
渡された連想配列よりクエリストリングを作成します。 ページ内にリンクを埋め込むときによく使ったりします。 今回は以上です。 また随時追加していきたいと思います。

2011/10/26

【雑記】実はこんなペット飼ってます

実はペットを飼っていまして・・・

それがこいつです。
コーンスネークのスノーという品種です。 今はピンク色ですが、オトナになると真っ白になります。 このことからスノーという品種名がついています。 実は飼い始めてそろそろ3ヶ月がたとうとしています。 写真では水浴びしています。 最近よく水浴びするようになりました。 舌をチロチロだしたりするのがとてもかわいいです。 最近ハンドリングを始めまして、手にもだんだん慣れてきてくれています。 そのうち手の上で餌を食べたりしてるところを撮ってみたいですね。 終わり

2011/10/25

【プログラミング】WHERE 1 = 1 って?

タイトル通りです。
学校を出てからというものたまにSQLを組み立てている箇所に遭遇します。

そこで、「WHERE 1 = 1」という記述に度々出会います。

大抵が複数条件のSQL文を構築している箇所なのですが、なぜ「WHERE 1 = 1」という
記述があるのか、前々から不思議でした。

ですので、少し時間があったので調べて見ました。

まず、「WHERE 1 = 1」はすべての条件が 「true」 
になります。

何があっても通るよってことですね。

次にループでクエリを追加するブロックがあります。
そこでは、下記のようにWHERE句に条件が追加されています。

こんな感じのやつですね。
<?php

$param = array(
    'id'   => 1,
    'name' => 'test',
);
$sql = sql($param);

function sql($param)
{
    $sql  = 'SELECT';
    $sql .= '  *';
    $sql .= 'FROM';
    $sql .= '  EMP';
    $sql .= 'WHERE';
    $sql .= ' 1 = 1';

    foreach ($param as $key => $val)
    {
        $sql .= 'AND';
        $sql ,= $key . " = '" . $val . "'":
    }

    return $sql;
}
するとこのようなSQLが出来上がると思います。
SELECT 
  *
FROM 
  EMP
WHERE 
  1    = 1 
AND 
  id   = '1'
AND 
  name = 'test'
これだとただ単にSQL文が出来上がるだけなのですが、 この記述方法のいいところは別にあります。 それは、WHERE句が複数か、ひとつしか無い場合です。 この場合、通常ならWHERE句のパラメータのある無しを判定し、一つめのWHERE句と 一つめ以降のWHERE句で処理をわけなければなりません。 ですが、上の関数のように「WHERE 1 = 1」の記述をしておくだけで そういったパラメータの確認などのブロックが必要なくなるのです。 なんて便利 そもそも生のクエリを投げること自体少ないですが、このような記述方法がわかっていれば 複数の条件があったりなかったりする場合に重宝しそうですね。 終わり

2011/10/24

【雑記】FFTA2が届いた

今回は息抜きがてらITとは関係ないことを

FFTA2が届きました。
今更かよって感じですが、最近FFTAの続編が出たらしいってことを知ったので
今回購入して見ました。

前回から多少システムが変わっているらしく楽しみです。

写真とってみたんですが、iPhoneだからなのか、部屋の明かりが悪いのかわかりませんが
ちょっとわかりづらくなってしまいました。

2011/10/23

【開発環境】TortoiseSVNのインストール

今回はTortoiseSVNのインストールについてです。

環境は、下記になります。
Windows 7 Pro SP1 64bit

下記のリンクよりダウンロードします。
http://tortoisesvn.net/downloads.html

ダウンロードが完了したら、ファイルを実行します。

下記画像のような画面が表示されるので、Nextをクリックします。
次に同意の確認画面が表示されるので、赤で囲まれているところを選択し、Nextを クリックします。
インストールするコンポーネントが表示されるので下記画像のようにすべて選択します。 選択したら、Nextをクリックします。
Installをクリックします。
インストールが始まります。
下記の画面が表示されればインストールは完了です。
終わり

【システム開発】決済システムについて

今回はシステム開発の決済システムについてです。

僕はPHPを中心にシステム開発に携わっているのですが、
最近決済システムに携わることがあったのでそれについてのメモです。

大まかには以下の流れです。

1.ログファイルを作成
2.パラメータのチェック
3.トランザクションを開く
4.決済内容をDBに書きこむ
5.トランザクションを閉じる(成功:コミット、失敗:ロールバック)
6.結果をログに書き込む

この流れで作成しています。

1.ログファイルを作成
では決済を受けた旨をログに書き込みます。
受け付けたパラメータを保存します。

2.パラメータのチェック
不正なパラメータがないかどうかのチェックを行います。
商品が正常なものかどうかなどのチェックです。

3.トランザクションを開く
DBをトランザクションでロックします。
これをしておかないとデータの書き換えなどで不具合が起こったりします。

4.決済内容をDBに書き込む
決済の内容をDBに書き込みます。
ここでコケるかどうかで5.の処理が変わります。

5.トランザクションを閉じる
4.で異常が起きなければコミットを異常が起きていればロールバックを行います。

6.結果をログに書き込む
決済結果をログに書き込みます。
必要があれば管理者にメールを送信したりします。


以上がトランザクションの流れになります。


終わり

【Flex】Eclipse 3.7でAS3開発環境を構築する【Eclipse + Flex + AXDT】

今回はEclipse 3.7でAS3を開発できる環境を構築しました。
その際の覚え書きです。

環境は以下で構築しました。
Windows 7 Pro SP1 64bit
eclipse 3.7
AdobeFlexSDK 3.6

下記が大まかな手順になります。

1.Eclipseのインストール
2.AdobeFlexSDKのインストール
3.AXDTのインストール

以上です。
では詳細な構築手順です。
1.のEclipseのインストールはすでにされているものとして始めます。

AdobeFlexSDKのインストール
ここよりダウンロードして下さい。
必要なバージョンを選択し、次画面で
「I have read the License Agreement(s), and by downloading the software, 
I agree to the terms of the agreement.」
にチェックを入れ「Download Zip」のリンクよりダウンロードして下さい。
ダウンロードが完了したら解凍し、Cドライブの直下に配置します。
ディレクトリ名は「flex_sdk_3」に変更しました。

配置が完了したら環境変数にPATHを登録します。
Cドライブの直下に配置したので、「C:\flex_sdk_3\bin」を追加しました。
これにてAdobeFlexSDKのインストールは完了です。

AXDTのインストール
Eclipseを起動し、ヘルプより新規ソフトウェアのインストールを選択します。
下記の画像のようにURLを入力します。
「http://download.eclipse.org/technology/imp/updates」
追加が完了したらソフトウェアをインストールします。 下記画像のように選択し、次へをクリックします。
インストールするソフトウェアの一覧が出るので、次へをクリックします。
下記画像のように同意するにチェックを入れ次へをクリックします。
ソフトウェアのインストールが完了したら、Eclipseを一旦再起動します。 ソフトウェアのインストール中にセキュリティ警告がでるので、OKを押しましょう。 Eclipseが再起動したら、次にヘルプより新規ソフトウェアのインストールを選択します。 下記の画像のようにURLを入力します。 「http://update.axdt.org/」
追加が完了したらソフトウェアをインストールします。 下記画像のように選択し、次へをクリックします。
インストールするソフトウェアの一覧が出るので、次へをクリックします。
下記画像のように同意するにチェックを入れ次へをクリックします。
ソフトウェアのインストールが完了したら、Eclipseを一旦再起動します。 今回もソフトウェアのインストール中にセキュリティ警告がでるので、OKを押しましょう。 再起動したら、Eclipseのウィンドウより設定を開きます。 するとAXDTという項目があるのでそこに先ほどダウンロードしたAdobeFlexSDKのパスを 入力します。
これにて環境の構築は完了です。 Flexのプロジェクトを作成する場合は、 Eclipseより [ファイル] -> [新規] -> [プロジェクト] -> [AXDT] -> [AXDT Project]より作成できます。 【追記】 Eclipseのプロジェクトツリーの作成したmxmlファイルを右クリックし [アプリケーションより開く] -> [FlexDesignViewer]を選択することで、 mxml上でコンポーネントをドラッグ・アンド・ドロップで配置することができます。 終わり

2011/10/21

【システム開発】ドキュメントのレビューについて


今回はシステム開発でのドキュメントのレビューのついてです。

システム開発には仕様書などのドキュメント作成が必要不可欠です。
さらにドキュメントは作成後にプロジェクトに関わる人全員でレビューをして
ブラッシュアップ、メンバー間での周知を行います。

この時レビューで気をつけなければいけないことがあります。
それは目的意識を持つことです。

何をするレビューなのかきっちり意識を持って取り組まなければ
レビューが次第に脱線してしまい何のレビューだかわからなくなります。

なので何のレビューなのかという目的意識はしっかりもってやっていきたいと思います。

終わり

【Linux】稼働中のプロセスについて

本日のmemo.txt

Linux上でのプロセスについて
本日業務中にサーバのプロセスが暴走してログファイルがおかしくなったので
その際のメモ

Googleで検索するとプロセスは 「top」 というコマンドで確認できるらしい
ということで実行
top
あれ?ログファイルを使用中のプロセスが見つからない・・・ よく調べてみると 「top」は優先順位の高いプロセスを 画面に収まる分しか表示しないらしい・・・ oh… ということで別にまた調べてみると「ps」という コマンドがあるらしい ただこれだけ実行してもどのプロセスがなんなのかわからない ということで 「ax」 をオプションとして実行しました。
ps -ax
これで目的のプロセスを発見できました。 ようやくプロセスを終了できます。 プロセスの終了には 「kill」 コマンドを使用します。
kill
これにて無事ログファイルを復旧することが出来ました。 終わり