Catalystプロジェクト作成手順
Catalystはヘルパーが充実しているので使わないと損
コントローラー作成
script/sample_web_create.pl controller hello
ビュー作成(TT or TTSite)
script/sample_web_create.pl view TT TT script/sample_web_create.pl view TT TTSite
モデル作成(DBIC)
mkdir db sqlite3 db/sample.db < db/schema_sqlite.sql script/sample_web_create.pl model DB DBIC::Schema Sample::Schema create=static dbi:SQLite:db/sample.db
DBIx::Class::Schema::Loader
小規模のシステムを即席で作る必要が出たので
最近流行のDBIx::Class::Schema::Loaderを使って楽に開発をやろうと思い調査中。
- OS:WindowsXP
- DB:sqlite3
- Perl:This is perl, v5.8.9 built for MSWin32-x86-multi-thread
- DBIx::Class:0.08112
- DBIx::Class::Schema::Loader:0.04006
CREATE TABLE agent ( agent_id INTEGER PRIMARY KEY, agent_name VARCHAR(50) ); --- --- Load some sample data --- INSERT INTO agent VALUES (0, 'takao0'); INSERT INTO agent VALUES (1, 'takao1'); INSERT INTO agent VALUES (2, 'takao2'); INSERT INTO agent VALUES (3, 'takao3'); INSERT INTO agent VALUES (4, 'takao4'); INSERT INTO agent VALUES (5, 'takao5'); INSERT INTO agent VALUES (6, 'takao6'); INSERT INTO agent VALUES (7, 'takao7'); INSERT INTO agent VALUES (8, 'takao8'); INSERT INTO agent VALUES (9, 'takao9');
test.pl
#!/usr/local/bin/perl use strict; use warnings; use lib 'lib'; # スキーマクラスを use use Test::SchemaLoader; # スキーマクラスのインスタンスを作成 my $schema = Test::SchemaLoader->connect('dbi:SQLite:dbname=db/test.db'); # ResultSet を作成し全レコード取得 # resultsetの引数はagentではなくAgentと書く必要がある # DBIx::Class::Schema::Loaderがテーブルをモジュールに変換するときにTest::SchemaLoader::Agentとしているため my $rs = $schema->resultset('Agent')->search; # 件数を出力 warn $rs->count, " rows"; while (my $row = $rs->next) { warn sprintf "* %s: %s", $row->agent_id, $row->agent_name; }
Test::SchemaLoader.pm
package Test::SchemaLoader; use strict; use warnings; use base qw/DBIx::Class::Schema::Loader/; __PACKAGE__->loader_options( debug => 1, ); 1;
実行。
C:\home\takao\catalyst\test>sqlite3 db\test.db < db\schema_sqlite.sql C:\home\takao\catalyst\test>set DBIC_TRACE=1 C:\home\takao\catalyst\test>perl test.pl Test::SchemaLoader::Agent->load_components("Core"); Test::SchemaLoader::Agent->table("agent"); Test::SchemaLoader::Agent->add_columns( "agent_id", { data_type => "INTEGER", default_value => undef, is_nullable => 1, size => undef, }, "agent_name", { data_type => "VARCHAR", default_value => undef, is_nullable => 1, size => 50, }, ); Test::SchemaLoader::Agent->set_primary_key("agent_id"); SELECT COUNT( * ) FROM agent me: 10 rows --- at test.pl line 16. SELECT me.agent_id, me.agent_name FROM agent me: * 0: takao0 at test.pl line 20. * 1: takao1 at test.pl line 20. * 2: takao2 at test.pl line 20. * 3: takao3 at test.pl line 20. * 4: takao4 at test.pl line 20. * 5: takao5 at test.pl line 20. * 6: takao6 at test.pl line 20. * 7: takao7 at test.pl line 20. * 8: takao8 at test.pl line 20. * 9: takao9 at test.pl line 20.
Webアクセシビリティ認定アドバイザー資格取得
Informix Dynamic Server V9 System Administrator資格取得
Informixデータベース使用暦7年の知識&技術の証明として
Informix Dynamic Server V9 System Administrator資格を取得しました。
この資格は次の2教科を取得することで認定される資格で、
プロメトリックで受けることができます。
- 000-915:System Administration For Informix Dynamic Server V9(日本語)
- 000-910:Managing And Optimizing Informix Dynamic Server Databases(日本語)
System Administration For Informix Dynamic Server V9は
2006年夏に取得していたのですが、
もう1教科(000-910)は取得できていなかったので今回挑戦しました。
Managing And Optimizing Informix Dynamic Server Databasesは
試験名通りパフォーマンスチューニング系の問題が多かったですね。
フラグメント(式,ラウンドロビン)やらオプティマイザの制御関係や、
UPDATE STATISTICS関係の問題が多数出ていました。
制約(CONSTRAINTS)も範囲なのですが
普段使わないのでマニュアルで必死に覚えてから挑戦しました。
取り合えず合格してよかった。
SSDによるデータベース高速化
少し前にチューニングしたデータベースで
さらにパフォーマンスアップする必要が出たので
最近流行?のSSDを使ったデータベースの高速化について検討してみたのでメモ。
ここ間違ってない?等フィードバック下さると嬉しい。
現在のサーバー構成
パフォーマンスアップ対象のデータベースサーバーは
データベースファイルをNAS(NFSv3接続)においている。
数TBレベルの比較的大規模なデータベースサーバー。
SSDの特性
リードは早いがライトが遅い
基本的にはエンタープライズ向け製品であればリード/ライトスピード両方ともがHDDより数倍向上するが
一般向け製品の中にはランダムライト速度がHDDより劣る製品もある。
SLCタイプはMLCタイプに比べてライト速度が早いためデータベース用途ではSLCタイプを選択したほうが良い。
容量あたりの単価がHDDと比較して極めて高価
SSDインターフェース
大きく分けてSATAタイプとPCIExpressタイプと2種類のタイプが存在する。
SATAタイプ
簡単にHDDの代わりとして活用することができRAIDによる大容量化&冗長化も可能だが、
PCIExpressバスに比べてSATAバスは低スピードのためバススピードがボトルネックになりやすい。
SATA2.6の場合は300MB/sec程度のスピードが出る。
PCIExpressタイプ
PCIExpressタイプは大容量化&冗長化は難しいが、
PCI Express1.1の場合は250MB/sec程度のスピードが出る。
PCI Express1.1 x4の場合は1000MB/sec程度のバススピードが出る。
単純にHDDを置き換えるという使い方は出来ないため利用する際は注意が必要。
- 容量1.2TB、転送速度1.5GB/秒の超高速SSD 「ioDrive Duo」 - Engadget 日本版
- http://h50146.www5.hp.com/products/storage/blade/io_accelerator/
HDDとSSDの価格を比較すると同容量で5〜10倍程度の価格差があるため、
現在の数百本あるNASのディスクを全てSSDに変えることは難しい。
またNASのディスクをSSDに変えたところで所詮NFSv3接続のため
ネットワーク&バス側がボトルネックになり応答時間の向上はすぐに限界になる。
今回はPCIExpressのSSDを利用した性能向上にターゲットを絞って検討する事とする。
PCIExpressのSSDを使ったデータベースの高速化
PCIExpressタイプのSSDは容量が限られる為
どの領域をSSD上に移すかがパフォーマンスアップの肝となる。
SSDに移行する領域の判断時は以下の3つの点を考慮するとよい。
- セグメント容量:容量が限られるため少ない容量でいかに高速化するかを考える
- I/O頻度:アクセス頻度の高い領域を移さないと勿体無い
- I/O特性:ライトよりリードの多い領域をSSDに移すと効果的
ログ領域
セグメント容量:小さい
I/O頻度:高い
I/O特性:ライトが多い
ログ領域はライトが多いため逆に遅くなる可能性があるが、
HPのSSDはデータ転送速度:Read時 最大700MB/s、Write時 最大600MB/s、
最大100,000 IOPS、遅延約50マイクロ秒のため検証の価値はある。
テンプ領域
セグメント容量:小さい
I/O頻度:高い
I/O特性:リード&ライト
ETLアプリケーションではテンプ領域でソートと集計を行う事が多いので効果的。
データベースの物理アクセス情報の取り方
OracleだとAWRレポートにあるSegments by Physical Readsが判断の材料になる。
Informixだと以下のサイトのスクリプト等を活用して情報をとるとよい。
PCIExpress SSDのバックアップ方法
データベースファイルレベルのバックアップを行っている場合は
NASのバックアップに合わせてSSD内のファイルもバックアップする必要がある。
データベース静止モードでバックアップをとっている場合は
SSD to NASの場合はデータベース静止時間が長くなるため
PCIExpressのカードを2枚挿し同一筐体内でのSSD to SSDバックアップが現実的と思われる。
(製品によってはカード内部でバックアップ機能?を持つものもあるようだ)
たとえばデータベースのデータファイルをSSD-1とSSD-2に交互に作成し、
お互いファイルを相手のSSDにバックアップするという泥臭い方法も検討。
参考情報
検証にあたって以下のエントリーを参考にさせていただいた。Blog主に感謝。
- Leo's Chronicle: Flash-Based DBMSの最前線
- 2009-03-25
- SSD(半導体ディスク)とDBMS データベースコンサルタントのノウハウちょい見せ
- 漢(オトコ)のコンピュータ道: 爆速SSD Fusion-io ioDrive Duo現る。ただしインターフェイスはPCI Expiress
またOracle OpenWorld Tokyo 2009のDELL社&EMC社のSSDに関するセッションも非常に参考になった。
DELL社から近いうちにOracle&DELL&EMCの検証に関するホワイトペーパーが出るようだ。
EMC社が公開している以下の情報も参考になった。
技術情報を公開してくださっているOracle社&DELL社&EMC社に感謝。
男のスーツスタイル基本の「き」
最近ファッション指南が流行っているとのことで
僭越ながら私も男のスーツスタイルについて纏めてみたのでここで公開します。
- ファッションに興味が出てきたやつにオススメする10アイテム
- 大学生ファッションを脱出するための10アイテム
- 脱大学生ファッション(20代後半)の基本を考える
- 女子目線でみるとこうなった(都度追記)
- http://taf5686.269g.net/article/13169601.html
ビジネスマン5年目になってやっと分かり始めてきた男のスーツスタイル基本の「き」です。
技術と同じで奥が深い世界ですね。
スーツ
スーツの命はラペル!
ラペルを見れば良い仕立てのスーツか見分けれると言われるほどラペルは重要です。
スーツの命であるラペルロールを潰さないように収納には注意しましょう。
・肩に厚みのあるハンガーを使う
・スーツ同士の間隔を空けて収納する
最近の3つボタンの主流は段返り3つボタン
第1ボタンの下でラペルがロールを描いて反り返る"段返り"タイプが最近の主流です。
ボタンを留める位置
上着は一番下のボタンを外します。
ラペルの折り返しが第1ボタンより下で始まる3つボタンの場合は2つ目のボタンだけ留めます。
ボタン位置はウエストの一番細い部分で留めるのが最適とされています。
座ったときはボタンを外し、立ったときはボタンを留める
スーツは立った状態で着用しボタンを留めたときに一番綺麗に見えるように作られています。
イスに座る際はボタンを外してから座るようにするとジャケットにシワが入ったり、着崩れを防ぐことができます。
また立ったときにボタンを留めないのはだらしなく見え時には礼を顧みない行為とみなされます。
お客様先では立ったらボタンを留めるようにしましょう。
ポケットに物を入れすぎない
ポケットが膨らんだスーツはシルエットを崩すのでポケットに入れるものは最低限にする必要があります。
二つ折りの財布をパンツの後ろポケットに入れるとパンツの形が崩れるので気を使う人はお札を長財布、小銭は別途小銭入れに入れたりします。
パンツの裾のタイプはダブルが一般的
冠婚葬祭ならシングル、ビジネスではダブルが一般的です。
パンツのプリーツ
クラシックスタイルなら1か2プリーツ、モードスタイルならノープリーツです。
パンツのクリース
クリースとはパンツの前面に入れられた縦の折り目の事です。
消えかかったクリースは品位を損なうので常に美しい折り目を保つようにしないといけません。
スーツはローテーション
3〜4着のスーツを着まわすのが基本です。
スーツを休ませずに連日着用すると生地のハリが衰え寿命が縮まります。
体に合うスーツが無いときはオーダー
イージーオーダーで10万前後、フルオーダーで15万以上です。
値段は仕立ての良さと生地によって変わります。
標準体型から外れている体型の場合は仮縫いで体に合わせれるフルオーダーがお勧めです。
同じ店でオーダーを繰り返すと、より体にフィットした最高の一着に近付きます。
質の良いスーツはクリーニングに注意
質の良いスーツは体に合わせて立体的に作られます。
クリーニングに出すときは十分に注意しましょう。
素材はウールが一般的
ドレスシャツ(ワイシャツ)
ワイシャツというのは日本にドレスシャツを広めた大和屋シャツ店の創業者がwhite shirtを聞き間違えたため
ドレスシャツの元は下着のシュミーズ
海外では一般的にドレスシャツ自体が下着なので下に下着は着ない
日本では高温多湿の気候の関係でドレスシャツの下に下着を身に着けてる人も居ます。
汗でベチョベチョのドレスシャツは見苦しいというのもありますね。
下着を身に着けるなら透けないようにするのが鉄則
間違っても柄入りや色付きの下着を着ないようにしましょう。
透けないタイプのTシャツも発売されています。
ノーネクタイスタイルの時に下着を身に着けるならV or Uネックシャツを着用し見えないようにする
色は白無地か淡細系ブルーがビジネスの定番
白をベースにしたストライプもお勧め
クレリックシャツで変化をつけるのもありです。
シャツの袖は1cm出す
気を付けの姿勢でシャツの袖が見えないと上着がオーバーサイズに見えるので気をつけましょう。
シャツの襟は1.5cm,2cm出す
襟と袖の2つの部分をのぞかせる事でバランス良く見えます。
体に合うシャツが無いときはオーダー
1万5000円〜4万円程度でオーダーできます。
スーツと同じく生地によって値段が大きく変わります。
素材はコットンが一般的
スリーピーススーツ
スリーピースのベストはスーツと同じで一番下のボタンは外すのがルール
ネクタイ
ベルトのバックルに少しかかるぐらいがベストな位置
ネクタイは小紋柄、ドット柄(水玉)、ソリッド(無地)が基本
ストライプ(レジメンタル)は英国の艦隊旗に由来し、
特定の団体や大学に属する象徴となっているため
国際舞台では身に着けないほうが無難です。
素材はシルクが一般的
靴下(ホーズ)
靴 or スーツの色に合わせるのが基本
客先で靴を脱いでスリッパに履き替える可能性があるので
スーツの色に合わせるほうが無難ですね。
比較的薄めで透けないものを選ぶ
スーツスタイルに白の靴下はタブー
白はスポーツソックスです。スーツには絶対にあわせません。
これしてしまうと"恥"ですので気をつけましょう。
ただお茶会などで白足袋の代わりに白の靴下を使う場合もあります。
すねの地肌が見えるのはスーツスタイルではタブー
十分な長さのビジネスソックス選びを心がけましょう
ベルト
革製品の中ではベルトは一番濃い色にする
明るい色が体の中心に来ると色彩バランスが崩れやすいので
ベルトを一番濃い色にするとうまくまとまります。
ベルト穴の中央でとまる長さに合わせる
5穴のときは真ん中の3穴で合わせると良いです。
靴
スーツより濃い色を履く
足元が引き締まります
革靴のフォーマル度(世界共通)
フォーマル度の高いもの順にカジュアル系へ
ストレートチップ
プレーントウ
キャップトウメダリオン
ウイングチップ
モンクストラップ
Uチップ
ローファー
ローファーはカジュアル系になるので
スーツスタイルでは止めとくほうが無難です。
靴はメンテナンスをしっかりと
靴を見ればその人の事が分かるとまでも言われたりします。
綺麗な服を着ても靴が汚れてボロボロだと意味がありません。
メンテナンスはしっかりしましょう。
靴購入時は十分にフィッティングを
足のサイズは1日でも微妙に変化します。
夕方が一番足が大きくなる時間なので午後5時以降フィッティングするとベストです。
フィッティング時はプロに十分な時間をかけて見てもらいましょう。
靴はローテーション
革は汗や湿気などで湿った状態になると弱くなります。
3足以上でローテーションがベストです。
通勤時しか履かないのであれば2足ローテーションでもいいでしょう。
ポイント
革小物の色は揃えるのが基本
靴,ベルト,時計,名刺入れ,財布など色は出来るだけ揃えましょう。
金具の系統をそろえる
カジュアルスタイルでも基本ですが
ゴールド系、シルバー系など金具の系統をそろえると
ちぐはぐな印象になりません。
シャツとネクタイは3色以内におさえる
シャツとネクタイの色を合わせて3色以内にするとバランスが良くなります
ストライプのスーツ・シャツ・ネクタイ等を合わせるときは幅を変える
ストライプの幅を変える事でバランス良く見えます。
お金をかけるポイント
スーツ数十万、シャツ数万、靴数万とスーツスタイルを徹底すると高くなります。
予算が限られる場合はまず靴にお金をかけましょう。
靴=>ネクタイ=>シャツ=>スーツにお金をかけるのがベストです。
「クラシックで上質な靴とネクタイは、スーツが上質でもそうでなくても、
スーツスタイルを際立たせる。
逆に靴とネクタイが貧相であれば、それが例え注文服であっても、
全体の印象は驚くほどみすぼらしくなる」落合正勝氏
参考書籍
スーツスタイルに関する定番本です。
- 作者: 落合正勝
- 出版社/メーカー: PHP研究所
- 発売日: 2004/01/22
- メディア: 単行本
- 購入: 54人 クリック: 1,561回
- この商品を含むブログ (26件) を見る
iPhoneを1日触った感想
16GBブラックを買ったのですが噂どおり指紋付き捲りです。
指紋が気になるひとはホワイトを買うといいでしょう。
ソフトバンクの3Gネットワーク回線スピードは
私の自宅近辺だと0.23Mbpsと少し低速です。
電波のよいところにいっても0.35Mbps程度ですね。
これは少し気に食わない結果です。速度制限かけてる感じがしますね。
GPSは屋内だと位置情報を取得できませんでした。
車で走りながらカーナビ代わりに使えるかやってみましたが、
誤差数メートル程度で中々の精度です。
文字入力はやはり既存の携帯電話より劣ってる感はあります。
メール打ち捲くる人にとっては現状は不満だと思います。
まあこれは今後改善されるでしょう。
標準のYouTubeはWi-Fiで接続すると高画質ですが
3Gで接続すると画質落とされてしまいイマイチです。
これは正直画質を落としすぎです。。
YouTubeの初期ページさえも遅いのは改善の余地ありですね。
今回AppleはAppStoreというアプリケーション提供のサービスを展開しています。
ここでリリースされているアプリを見てみると小規模のアプリが多いです。
無償のアプリが多いですが有償のアプリでも価格は100円〜2000円程度と比較的安価です。
今日使って高い可能性を秘めたガジェットであることは確信できました。
このiPhoneの潜在能力が発揮されるかは
これから発売されるアプリ&アイデア次第ですね。