2010年7月16日金曜日

[Reading] 6月読書リスト

正規表現クックブック Jan Goyvaerts、Steven Levithan、 長尾 高弘
仕事柄正規表現をもっと効果的に使いたいと常々感じていますが、ネット上の情報は使用言語ごとの方言を意識していない(恐らくできない)汎用的なものが多く、参照しても結局トライ&エラーになりがちでした。本書は、正規表現を使用したチェック処理やデータ整形などのテクニックを7種類の言語(Perl、PCRE、.NET、Java、JavaScript、Python、Ruby)ごとの実現方法を明示的に記載しているため、正規表現の使い分けを意識することができ、実装にあたりとても重宝しています。これからも傍らで活躍してくれる一冊です。


Head First PHP & MySQL —頭とからだで覚えるWebアプリケーション開発の基本 Lynn Beighley (著), Michael Morrison (著), 佐藤 嘉一 (翻訳)
前からすごく興味があったこのシリーズ。遂に手を出してしまいました。これまで読んだプログラムの本(PHP以外も含めて)と比べて、とにかく語り口がおもしろくて堅苦しくないのが良いです。逆にいうとがっちりとした構文を学びたいという方には向いていない(本書の冒頭で著者も書いてますが)のではないかと思います。構文なんて置いといてとにかく手を動かして学びたいという私に最適な本だと思います♪


プレゼンテーション Zen Garr Reynolds、ガー・レイノルズ、 熊谷 小百合
初めてプレゼンテーション関連の書籍を手に取りましたが、この本を読んで、私自身、なぜ会社のプレゼンフォーマットが大嫌いなのか分かりました(笑)それだけでもホントに価値のある本でしたし、自分の感覚を信じることができるようになりましたし、いわゆるビジネスフォーマットはこうあるべきという型にはまった考え方を見事に外してくれました。良書です。


虐殺器官 (ハヤカワ文庫JA) 伊藤計劃
宮部みゆきと伊坂幸太郎の推薦文にのせられて購入しました。導入から発想が飛び抜けていると感じさせてくれます。そして、SFの体裁ながら、現代の世界やそこに生きる人々の問題、ジレンマなどを浮き彫りにする一種ノンフィクションを読んでいるかのような卓越した物言いに文字どおり舌を巻きました。作者が他界されていることをあとで知りショックでした。

2010年7月4日日曜日

[Reading] 5月読書リスト

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus) 山本 陽平
著者の並々ならぬ意欲を感じる本。HTTPの基本からRESTfulな設計のスマートさまで、とても勉強になりました。


WEB+DB PRESS Vol.56 WEB+DB PRESS編集部
新人さん向け特集は置いておいて、iPhone向けサービスについてのはてな関連の特集と伊藤直也さんの連載がいつも通り秀逸でした。


2010年6月3日木曜日

[Web] Cookieテスト

Cookieの1レコードに保持できるデータ量はほとんどの環境で4096byteだと思いますが、実際にマルチバイト文字である日本語を何文字登録できるか検証してみました。


//mb_internal_encoding("Shift-JIS");
echo mb_internal_encoding()."

";

echo "SetCookieのテストを実施します

";
$keyword = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=ああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ";
setcookie("KeywordConfig", $keyword, time() + 1000000);
echo urldecode($keyword);


文字エンコード形式による登録可能文字数の違い。
SJISでの最大byte 4082byte → 664文字


以上です。

2010年5月8日土曜日

[Reading] 4月読書リスト

4月に読んだ書籍

・はじめてのGTD ストレスフリーの整理術 (単行本(ソフトカバー)294ページ) (二見書房) デビッド・アレン (著), 田口 元 (監修) (2008/12/24)
GTDの実践。タスク整理に特化せず気になることすべてを書き出し、そのすべてに次の行動を定義するという点が参考になった。少しずつ実践しているが、これまでのタスク管理、時間管理術よりしっくりくると感じている。モバイル版Evernoteを使用することで、より効率的な管理ができるのではないか。

・コンサルタントの「質問力」 (PHPビジネス新書) (新書 208ページ) 野口 吉昭 (著)
コンサルタントに求められる能力の中で質問力の重要さにフォーカスしている内容。質問力がある人とはどのような思考ができる人であるか、モデルケースを挙げている点が参考になった。

2010年3月15日月曜日

[PHP] 標準関数まとめ

PHP関数について、使用例をまとめていきます。

parse_url() — URL を解釈し、その構成要素を返す
$geturl = $_GET['url'];
$aParse = parse_url($geturl);

パース内容は以下の通り
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)

getenv() — 環境変数の値を取得する
$env = getenv('HTTP_REFERER');
$ip = getenv('REMOTE_ADDR');

※スーパーグローバル変数を使用する場合と等価
$ip = $_SERVER['REMOTE_ADDR'];

strpos() — 文字列が最初に現れる場所を見つける
$mystring = 'abc';
$findme = 'a';
$pos = strpos($mystring, $findme); // 0

ereg_replace() — 正規表現にマッチした文字列を置き換える
$string_from = "original_string"; // 変更対象の文字列
$string_before = "~"; // 変更する箇所
$string_after = "~" // 変更する内容

$string_to = ereg_replace($string_before, $string_after, $string_from);

preg_replace() — はPerlの正規表現が使用できる。

配列内に要素があることを確認
in_array()

型チェック(整数値であるかを確認)
in_numeric()


以上です。


[MySQL] CSVやTSVファイルを対象としたデータ入出力方法

入力
文字の囲み文字が「"」のときの使用例。
囲み文字が必要ないときはENCLOSED BY '"'を外す。
[構文]
LOAD DATA INFILE "ファイル名" INTO TABLE テーブル名
FIELDS TERMINATED BY ',区切り文字' ENCLOSED BY '"';

[使用例]
LOAD DATA INFILE "c:/data.csv" INTO TABLE data FIELDS TERMINATED BY ',' ENCLOSED BY '"';

TSVの場合
load data infile "c:/data.tsv" into table data fields terminated by '¥t';

出力
[構文]
SELECT * FROM テーブル名 INTO OUTFILE "ファイル名" FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '囲み文字の指定';

使用例
select * from data into outfile "c:/out/data.tsv" fields terminated by '¥t';

以上です。

2010年3月14日日曜日

[Env] CentOSのセットアップ

MacのVMWare FusionにCentOSをインストールしました。

環境セットアップ情報を記録しておきます。

1.Apache&PHP
$ yum install -y php-mbstring

yumではインストールするパッケージに依存するパッケージもあわせてインストールされるため、php-mbstringを使用する際に必須となるApacheも自動的にインストールされる。






2.MySQL

$ yum -y install mysql-server // MySQLのサーバ
$ yum -y install mysql // MySQLのクライアント
$ yum -y install mysql-libs // MySQL関連のライブラリ
$ yum -y install mysql-devel // プログラムからMySQLへの接続に使用する







//状態を確認
$ service mysqld status
//起動
$ service mysqld start
//停止
$ service mysqld stop


以上です。