100% Hardcore! RSS
大森スケーター 太田 大田 スケート スケートボード 尾崎恭一 Kyoichi Ozaki
2000|06|
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|
<< 2006/06/ 1 1. 6/1リリースサイト2件
2 1. 見た事無いよ、こんなvmstatの値
2. モジュール単位でユーザ定義設定 module.yml
3. livedoor Reader + YouTube + はてなブックマークで最速動画ウォッチング
4. PHPを使って大きいデータを吐き出すバッドノウハウ
3 1. HMDT Third Edition をプレゼント!
2. Gmailのアドレス拡張
4 5 1. 任意のSQLをsfPropelPagerに渡す場合
6 1. perl.com:FEAR-less Site Scraping
2. afromania.orgのサーバ
3. 今週中には読みたい本
7 1. 社内にyumレポジトリを設置
8 1. Google Spreadsheet
9 1. 閉じたネットワークのコンテンツ閲覧制御
2. Gmail for you domain
10 11 12 1. 5本指サンダル
2. Plaggerをインストール
3. Control飲み会@六歌仙
4. 簡易MySQLバックアップスクリプト
13 1. ワールドカップ
2. symfonyでMySQLのreplication (master/slave)構成をハンドリング
3. white-space: pre;
4. ゲートウェイの調子が悪すぎ
5. Google Sketchup for Mac OSX
6. KDDI、「DION」の顧客情報約400万人分流出を発表
14 1. ネットワークが快調に
2. MySQL Workbench
3. データベース(テーブル)に権限追加
15 1. DBDesigner 4
2. 6月21日はGO SKATEBOARDING DAY
3. Xenインストール
4. XenのホストはちゃんとMACアドレスをもっている
5. Xenのインストール超速編
6. QEMU+colinuxのインストールがクソ遅かった件
7. fc5 xen と不要なパッケージ
8. Apache 2.2 のreverse proxy (load balancer) way too slow
16 1. Mapionキョリ測自転車
2. しょこたんブログ写メール更新分 (自動更新)
3. しょこたん写メのミラーリング
4. php 5.1.4 (5.1.3) と mysql 5.0.22 の組み合わせでconfigureが通らない件について
17 1. しょこたん写メのミラーリング
2. しょこたんブログ写メール更新分 (自動更新)
3. しょこたん写メのミラーリング
18 1. しょこたんブログ写メール更新分 (自動更新)
2. コメントSPAMうぜぇ
3. shokotan-get-2.0.plプチ改良
4. 最近の行事まとめ
5. Vバック
6. 最近みた映画まとめ
7. lightbox
8. 錦糸町 ORINAS
9. サッカー
19 1. しょこたんブログ写メール更新分 (自動更新)
2. session情報をデータベースで管理
3. エスキモー「pino(ピノ) ミント」
4. dodolook
5. Red Hot Chili Peppers
6. Destiny's Child
20 1. しょこたんブログ写メール更新分 (自動更新)
2. R. Kelly Trapped in the Closet 全編
3. propelでtimestamp型なフィールドをunix timestamp(あるいは任意の形)として取得する
21 1. しょこたんブログ写メール更新分 (自動更新)
2. Roach Egg - 50 CentのIn Da Clubのパロディ
3. Carbon Emacs 20060616 build
4. MewでSpotlightを使う
22 1. しょこたんブログ写メール更新分 (自動更新)
2. コードが似すぎている件について
3. Formの入力値をValidatorを使って変換する
4. 28色揃ったカスタムMacBook
5. phpファイルの終わりに ?>を入れない事
23 1. しょこたんブログ写メール更新分 (自動更新)
2. 覗き見防止グッズ
3. Ghostscript のインストール(Mac OS X 10.4 Tiger)
4. Emacs から、PDFファイルを作ってプレビューする。(等幅印刷です)
5. Mewの印刷にpdf-preview.elを使う
6. Plantronics Discovery 640 Bluetooth ヘッドセット
24 1. しょこたんブログ写メール更新分 (自動更新)
25 1. しょこたんブログ写メール更新分 (自動更新)
2. ロケフリMAC-OSX
3. 2006 花火カレンダー
4. 4GbのメモリースティックDUO
5. Fjax Forward into Web2.1
26 1. しょこたんブログ写メール更新分 (自動更新)
2. Skypeへの道
3. しょこたんブログ写メール更新分 (自動更新)
4. 金魚すくいの極意
5. %2F in the url leads to a "404 not found"
6. yってフィールド名でエラーになる
7. なぜかmailing list archiveにアクセスできん
27 1. validate/のYAMLでyってフィールド名でエラーになる件
2. 週末の写真
3. 1970以前の日付の扱い方
4. Bluetooth Firmware Updater 1.2
5. フォーム値のtrimとその実装方法
6. converters
28 1. ロケーションフリープレイヤー Machintosh版
2. + プラス記号がうまく処理されない?
29 1. IconFactoryPicadex用のアイコンを全取得
2. IconFactoryその続き
3. Kleggの63インチプラズマディスプレイ
4. うすうす気がついてはいたのだけど
30 >>
トップ 最新

2006-06-01

_ [diary] 6/1リリースサイト2件

いやぁ、今日も晴れているね。ひさびさにオールでサイトリリース。しかも案件2つ重なっているし…これからジムでシャワー浴びてきます


2006-06-02

_ [diary] 見た事無いよ、こんなvmstatの値

昨日リリースしたサイトが予想以上に反響があったのか、システムリソースの見積もりを失敗したのか、リリース開始からload average高め。で、今日も状態を確認するためにvmstat 1を端末で流していたら…サーバが応答しなくなった…ヤバイ…

ていうか、system inが133878って!

_ [develop][symfony] モジュール単位でユーザ定義設定 module.yml

symfonyではアプリケーション単位でのユーザ定義値の設定はsymfony_root/apps/アプリケーション/config/app.ymlで行う。で、モジュール単位での設定はsymfony_root/apps/アプリケーション/modules/モジュール/config/module.ymlで行う。なんだが、ここで設定した値の取得方法がドキュメントに書かれていない。app.ymlの方は説明されているのだけど、module.ymlの方は、「同様に...」と省略されている。実際には

$value = sfConfig::get('mod_モジュール_ネームスペース');

なんだけど、それはドキュメントには書かれていない。書かれているけど、モジュールが抜けていたりする。

Configuration explained

Module configuration

とりあえずどんなYAMLで設定した値がsfConfigの中でどのようなキーで保存されているかは、キャッシュディレクトリを覗くのがてっとり早い。例えばfrontedアプリケーションのprod(商用)環境のprモジュールのmodule.ymlのキャッシュならばこのように確認できる

$ cd symfony_root; cat cache/frontend/prod/config/modules_pr_config_module.yml.php

_ [diary] livedoor Reader + YouTube + はてなブックマークで最速動画ウォッチング

ギザベンリス!と思いインストールしてみましたが、yでYouTube動画が開くものの、どうやって再生すればよいのか分かりませんでした…てか、俺の問題?う〜ん。また余裕があるときに深追いしてみるか

_ [develop][php] PHPを使って大きいデータを吐き出すバッドノウハウ

今回リリースしたサイトは超デカメな素材ファイルをばらまくという素敵なサイトなんだが、これらの素材ファイルをダウンロードするためにはあらかじめ会員情報などから適切な権限確認を行わないといけない。なので、データの吐き出し部分もphpで実装することになる。そこで単にphpの最後の方に

 readfile($file);

したのでは吐き出し対象のファイルがメモリに取り込まれて大変な事になる。てか今日大変な事になっていた…そこで、以下のような魔法を唱えてあげると、メモリには入らない

    flush();
while(@ob_end_flush()) {}
readfile($file);

検証したのはphp-5.1.4とapache-2.2.2。検証方法としては、readfileの後に

error_log(sprintf("memory used: %dKb", intval(memory_get_usage()/1024)));
みたいな事をして確認(実際にはちょっと違うんだけど)。使用前はまるまる対象$fileのファイルサイズ+phpプログラム分のメモリを消費していたのだけど、使用後は読み込み対象のファイルサイズに関係なく、phpプログラム分のメモリ消費だけになりました。単純にphpの設定でoutput_bufferingを0にしたりしてもいいのかな。しかしそれが必ずしもできる環境ではないし、header()とかのからみがよくわからないので、こちらの対策をチョイス。他のバージョンのphpでは扱いが若干違うようです。以下のスレッドが参考になるかも?

*ファイルの出力中にメモリフロー

メモリーフローってなんだってツッコミはおいといて、結局このスレッドもまとまった解がないまま終わってるし。メーリングリストでただでノウハウ教えてもらっているんだからさ、最後に内容まとめてコミュニティにコミットするのは義務なんじゃないかと思うのだけど。ま、俺はメーリングリストに参加していないけど、こうやってウェブ経由で情報を得たのでフィードバックしているわけなんだが。always pass on knowledge!


2006-06-03

_ [develop][osx] HMDT Third Edition をプレゼント!

プレゼントキャンペーンなのでいっちょ応募してみたり。

http://images-jp.amazon.com/images/P/4893699776.01._OU09_PE0_SCTZZZZZZZ_.jpg http://images-jp.amazon.com/images/P/4861001242.09._BO01,224,223,220_PIsitb-dp-arrow,TopRight,12,-22_SH30_OU09_OU09_PE0_SCTZZZZZZZ_.jpg http://images-jp.amazon.com/images/P/4861003075.01._OU09_PE0_SCTZZZZZZZ_.jpg http://images-jp.amazon.com/images/P/4861003806.01._OU09_PE0_SCTZZZZZZZ_.jpg

_ [diary] Gmailのアドレス拡張

gmailのメールアドレスはアカウント部分の最後に"+"を付けて任意の文字列を付け足すことができる。例えばabcというGmailアカウントを持っていたとすると通常のアドレスは

abc@gmail.com

になる。これを下記のように変えても、abc@gmail.comに送信した場合と同様に受信することができる

abc+someml@gmail.com
abc+foo@gmail.com

フィルターを作るのが困難な状況などに、これらのアドレスを利用して宛先フィルターで区別したりする事などができる。でもこの機能、Gmailのサイト上のどこに説明してあるのか分からない。誰か知っている人いたら教えて♪


2006-06-05

_ [develop][symfony][php] 任意のSQLをsfPropelPagerに渡す場合

前にできないと言ったけど、チュートリアル13によると$pager->setPeerMethod()でできる事が判明!


2006-06-06

_ [develop][perl] perl.com:FEAR-less Site Scraping

こりゃ便利だわ。ってことで早速しょこたんブログをスクレープしてみた。しょこたんブログをなめまわして写メールだと思われるイメージを全て抽出するスクリプト

これを実行した結果をリストに保存しる

 g5$ perl shokotan-get.pl > list.txt

4302ものURLを取得。これをwgetにてダウンロードしる

 g5$ wget --no-directories -i list.txt

そして、ダウンロードした画像をiPhotoに追加してみるテスト。

名付けて”10分でなれる中川翔子マニア”ハック666バージョン

_ [diary] afromania.orgのサーバ

なんか重いよね?最近。tDiaryがよくエラーってるし。DELLの23,000円パソコン大量に買えばよかったかな…でも電源が足りなくなるという罠

_ [diary] 今週中には読みたい本

まずは師匠が書いたプロジェクトマネージメント本。全然お手伝いできなかったのに献本まで頂いたのでせめてフィードバックを。

http://images-jp.amazon.com/images/P/4797332743.01._OU09_PE0_SCTZZZZZZZ_.jpg

次はこれ。スケーラブルなウェブサイト構築に関するノウハウ本。最近はネットワーク帯域もサーバ機材も安くなって、オープンソースソフトウェアもロードバランシングやクラスタリングに対応しているため、スケーラビリティのあるアーキテクチャを作るのはマスト。

http://images-jp.amazon.com/images/P/0596102356.01._OU09_PE25_SCTZZZZZZZ_.jpg

本日のツッコミ(全6件) [ツッコミを入れる]

Before...

_ おざき [110ボンバー ]

_ men raped [Hi not for real roleplayinggames.com ]

_ Alfred [Nice site! ]

_ Elisa [ Nice site keep up the good work. [url=http://www.topix.n..]

_ Den Leola [So Ill see you man tomorro. Den Leola.]


2006-06-07

_ [server] 社内にyumレポジトリを設置

ギガビットイーサでyum updateしたい!って事でサーバにyumレポジトリを配置する。といってもDMZはまだ完全にギガビットイーサ化されていなかったりする。まずはレポジトリにするサーバに以下のようなスクリプトを設定して、cronで毎朝実行するように設定する。

次にサーバにこれらのファイルにアクセスできるようにする。今回はapacheを使ったが別にftpでもいい。httpd.confに以下のような調整をして社内からしかアクセスできないようにする(一応DMZ内のマシンも更新できるようにDMZ内に配置したレポジトリのため)

    <Directory /var/www/html/fedora>
Options +Indexes
Order deny,allow
Deny from all
Allow from 211.5.85.240/255.255.255.240
</Directory>

あとはクライアント側のyumの設定を変更する(reposerverの部分を適当に置換)

/etc/yum.repos.d/fedora-core.repo

/etc/yum.repos.d/fedora-updates.repo

/etc/yum.repos.d/fedora-extras.repo


2006-06-08

_ [diary][web2.0] Google Spreadsheet

ちょっと使ってみた。Mac OS XとFirefox 1.5.0.1な環境だととてもバギーで全然使い物にならなかった。まずローカルのエクセルファイルを開いてみたのだけど、このファイル参照のUIは素敵。「ファイル」>「開く」で、ThickBox/Lightbox風なダイアログが表示される。過去に開いたファイルなど、「ファイル参照」を擬似的に演出している。そのボックスの中に実際にOS(ブラウザ)依存なファイル参照ボタンがある。ここでファイルを選択すると(OS依存のファイル選択により)、自動でファイルのアップロードが開始され、Google Spreadsheetの擬似的参照ボックスにて操作できるようになる。で、いざファイルをオープンしてみると、エクセルで編集した通りに表示されている。といっても、サンプル用にでっちあげたもので高度な事はしていないエクセルファイルだった。試しに背景を変えたり、フォント色を変えたりしてみようとしたが、入力されていた情報が消えたり、カラムごと消えたりと不可解な現象が起こりまくり。とりあえずこれをみる限りウィンドウズ環境では正常に動作しているみたいだが…


2006-06-09

_ [diary] 閉じたネットワークのコンテンツ閲覧制御

mixiにも書いたのだけど、正直悩み中なのでこっちのもアップ。

mixiでは日記は友人のみ公開にできたり、アルバム機能は非公開(閲覧キー)にできたり、コミュニティは管理人の承諾が必要(非公開)にする事ができる。

ごく一般的なユーザの解釈では、これらの”非公開”な場所にアップロードする写真は、誰も見る事ができない、もしくは許可したものにしか見る事ができないととらえているのではないかと思う。

実際のところは、アップロードした(されている)写真の場所(URL)が分からないだけで、それさえ分かれば誰でも見る事ができる

例えば、この写真は俺が非公開なアルバムにアップした写真

http://ic11.mixi.jp/photo/album/62/90/6290_2553199009.jpg

多分みんなもリンクを辿れば見る事ができるはず。mixiにログインすらしていなくても見えるはず。本当は非公開なのに(閉じたネットワークのはずなのに)。実際には誰かがこの情報(URL)を流さないと、勝手に見られる事はないというのは事実。

対策としては、URL直打ちでは見ることができないように、画像を表示する前に閲覧しようとしている人に権限があるかどうかの確認を取るようにすることができる。

でもこれをした時点で、じゃ閲覧権限がある人が画像を保存してどっか別の場所で公開しちゃった場合は?なんて事も考えられる。

どこに境界線を引けばいいのか難しいね。でもリンク直打ちで閲覧できるのはセキュリティが甘過ぎるような気がする

う〜ん、自分がSNSを作るとしたらどういった実装にするべきなのか。悩むね。

実際に画像垂れ流し(ウェブサーバまかせ)なのと、プログラム側で画像の閲覧権限を確認して表示するのでは大きなパフォーマンスの差がでる。それと得られるセキュリティのとのバランスなんだけど。

Yahoo!360についても調べてみた。こちらについてもmixi同様。画像のURLさえコピー&ペーストすれば誰もどこからでも閲覧できる。ちなみに、以下がYahoo!360内の日記にアップした写真のURL。特にYahoo!360内では制限を書けていないけど、この日記を見ている人には本来アクセス権の無いものではある

http://proxy.f4.ymdb.yahoofs.jp/blog/446c7200zd2a04ba4/1/__sr_/5b8d.jpg?mgQPPiEBBHvTCaYU

最初は、URLの最後に.jpg?***とQUERY STRINGが付加してあったので、もしかして?と思ったけど、QUERY_STRINGごとコピーしちゃえば問題ないみたい…試しにQUERY_STRINGを削除して、.jpgで終わらせると、”閲覧権限がありませんよ”みたいなエラーがでる。でもこれって閲覧権限をチェックした結果、そういう情報がでているのか、単にURLが間違っているからでているのかまでは分からない。 

というわけで、みんなはどう考えているのだろう。基本、インターネット上にアップロードしたら世界に公開したと同義と捉える方が無難か?みんながそういう考えでいてくれるなら、アプリケーションを開発する側もそんなに神経質にならなくてすむのでハッピーなんだけど

_ [diary] Gmail for you domain

GMailで運用できる独自ドメインメールサービスのbeta tester invitationが送られてきたので早速試してみる事に。ようは自分の持っているドメインのDNS(Domain Name Service)情報のMX(Mail eXchange)レコードをGMailのサーバに向けてあげればいいだけ。自分でDNS管理をしている場合はこの辺りの作業はかなり簡単。Gmailの説明では以下のMXを設定することができると書いてあり、7つもかよ!とか思っていざ設定してみた。
Set any TTL values to the maximum allowed.
MX Server address Priority
ASPMX.L.GOOGLE.COM. 1
ALT1.ASPMX.L.GOOGLE.COM. 5
ALT2.ASPMX.L.GOOGLE.COM. 5
ASPMX2.GOOGLEMAIL.COM. 10
ASPMX3.GOOGLEMAIL.COM. 10
ASPMX4.GOOGLEMAIL.COM. 10
ASPMX5.GOOGLEMAIL.COM. 10
とりあえず自分のドメインにmailホゲホゲなホストを作り、GMailのMXにCNAMEする。で、ちゃんと設定できたかなぁ〜と思ってhostしてみると、7つあるように見せかけて、いくつかCNAMEされているだけじゃん!!
g5$ host -t mx ***.**
***.** mail is handled by 10 mail6.***.**.
***.** mail is handled by 10 mail7.***.**.
***.** mail is handled by 0 mail1.***.**.
***.** mail is handled by 5 mail2.***.**.
***.** mail is handled by 5 mail3.***.**.
***.** mail is handled by 10 mail4.***.**.
***.** mail is handled by 10 mail5.***.**.
g5$ host mail1.***.**
mail1.***.** is an alias for ASPMX.L.GOOGLE.COM.
ASPMX.L.GOOGLE.COM has address 64.233.167.114
ASPMX.L.GOOGLE.COM has address 64.233.167.27
g5$ host mail2.***.**
mail2.***.** is an alias for ALT1.ASPMX.L.GOOGLE.COM.
ALT1.ASPMX.L.GOOGLE.COM has address 66.249.83.27
ALT1.ASPMX.L.GOOGLE.COM has address 66.249.83.114
g5$ host mail3.***.**
mail3.***.** is an alias for ALT2.ASPMX.L.GOOGLE.COM.
ALT2.ASPMX.L.GOOGLE.COM has address 66.249.93.27
ALT2.ASPMX.L.GOOGLE.COM has address 66.249.93.114
g5$ host mail3.***.**
mail3.***.** is an alias for ALT2.ASPMX.L.GOOGLE.COM.
ALT2.ASPMX.L.GOOGLE.COM has address 66.249.93.114
ALT2.ASPMX.L.GOOGLE.COM has address 66.249.93.27
g5$ host mail4.***.**
mail4.***.** is an alias for ASPMX2.GOOGLEMAIL.COM.
ASPMX2.GOOGLEMAIL.COM is an alias for alt1.gmail-smtp-in.l.google.COM.
alt1.gmail-smtp-in.l.google.COM has address 66.249.83.27
alt1.gmail-smtp-in.l.google.COM has address 66.249.83.114
g5$ host mail5.***.**
mail5.***.** is an alias for ASPMX3.GOOGLEMAIL.COM.
ASPMX3.GOOGLEMAIL.COM is an alias for alt2.gmail-smtp-in.l.google.COM.
alt2.gmail-smtp-in.l.google.COM has address 66.249.93.114
alt2.gmail-smtp-in.l.google.COM has address 66.249.93.27
g5$ host mail6.***.**
mail6.***.** is an alias for ASPMX4.GOOGLEMAIL.COM.
ASPMX4.GOOGLEMAIL.COM is an alias for alt1.gmail-smtp-in.l.google.COM.
alt1.gmail-smtp-in.l.google.COM has address 66.249.83.27
alt1.gmail-smtp-in.l.google.COM has address 66.249.83.114
g5$ host mail7.***.**
mail7.***.** is an alias for ASPMX5.GOOGLEMAIL.COM.
ASPMX5.GOOGLEMAIL.COM is an alias for alt2.gmail-smtp-in.l.google.COM.
alt2.gmail-smtp-in.l.google.COM has address 66.249.93.27
alt2.gmail-smtp-in.l.google.COM has address 66.249.93.114
といっても3つのMXホストで支えられていることになる。各ホストは2つIPが割り振られているので実際には6つのホスト
64.233.167.114
64.233.167.27
66.249.83.27
66.249.83.114
66.249.93.27
66.249.93.114

2006-06-12

_ [diary] 5本指サンダル

今年の川遊びはコレに決定でしょう!

_ [develop][perl] Plaggerをインストール

とりあえず、依存関係がすごいという事は聞いていたのだけど、実際はこんな感じ。

g5$ perl -MCPAN -e shell
cpan> install Plagger

Running install for module Plagger
Running make for M/MI/MIYAGAWA/Plagger-0.7.2.tar.gz
Fetching with LWP:

....省略

Plagger-0.7.2/AUTHORS

CPAN.pm: Going to build M/MI/MIYAGAWA/Plagger-0.7.2.tar.gz

*** Module::AutoInstall version 1.02
*** Checking for Perl dependencies...

....省略

Writing Makefile for Plagger
---- Unsatisfied dependencies detected during [M/MI/MIYAGAWA/Plagger-0.7.2.tar.gz] -----
IPC::Run
HTML::Tidy
XML::RSS::LibXML
PDF::FromHTML
POE::Component::Client::DNS
Flickr::API
MIME::Lite
Mail::Address
XML::Feed
WWW::Mixi
URI::Fetch
Search::Estraier
Net::DNS
Text::Kakasi
Net::Delicious
Regexp::Common::profanity_us
Mac::Speech
XML::LibXML
POE
Image::Info
XML::OPML
HTML::Scrubber
Template::Provider::Encoding
Module::Pluggable::Fast
Net::MovableType
Mac::Glue
HTTP::Cookies::Safari
Text::Hatena
HTML::ResolveLink
POE::Component::Client::HTTP
File::Find::Rule
Test::Pod::Coverage
XML::Atom
Text::Tags
XMLRPC::Lite
XML::FOAF
Xango
DateTime
Template::Plugin::JavaScript
DateTime::Format::Strptime
Class::Accessor::Fast
DateTime::Locale
XML::RSS::Liberal
Config::INI::Simple
HTML::TreeBuilder::XPath
Cache::FastMmap
DBIx::Class::Schema
DateTime::Format::Epoch
DateTime::Format::Mail
WebService::Bloglines
JSON::Syck
Text::Emoticon
Date::Parse
DateTime::Format::W3CDTF
File::Copy::Recursive
SVN::Client
Mail::IMAPClient
SVN::Core
Cache::Cache
Test::Pod
Text::CSV_PP
Palm::PalmDoc
Encode::Detect
POE::Component::IKC::Client
HTTP::Cookies::Mozilla
MIME::Types
URI::Find
POE::Component::IRC
XML::Liberal
UNIVERSAL::require
Shall I follow them and prepend them to the queue
of modules we are processing right now? [yes]
....

実際依存関係は自動で入れてくれるので、作業自体はそんなに大変じゃないけど。これ、自力でパッケージしていくのはちょっと面倒かも。依存系を全てcpan2rpmみたいな。Fedora Coreあたりなら誰かやりそうだけど…

もとから入っていたのはこれぐらいか…

- Test::More
- Template
- YAML
- Digest::MD5
- LWP
- HTML::Parser
- WWW::Mechanize

_ [diary][gourmet] Control飲み会@六歌仙

週末は大学の同期との飲み会。毎回朝まで遊び続けるというタフガイイベント(諸事情により俺は3時頃に切り上げてしまったが)。来週末からGが転勤のためアメリカのフロリダ州に行ってしまうため、送別会もかねての集まり。そういう訳もあって今回はかなり集まりがよかったね。ほぼ全員じゃなかったのだろうか。シンガポール在住のKを除けば。このイベント、ただの飲み会なんだが、開催を重ねる度に規模がスケールアップしている感がある。今回は新宿にある焼肉屋六歌仙にて開催。ここの焼肉屋やかなりオススメです。接客もすごいいいし、お肉もめちゃうま。特に自分の好物であるハラミとかが美味しいところが高得点。カルビとかも普通にうまい。次回は海外での開催とか…韓国にて本場焼肉?!それとも、G氏の所に遠征?夏のオーランドーとかめちゃくちゃ楽しそう。フロリダ行った事が無い…

_ [server] 簡易MySQLバックアップスクリプト

とりあえず的なバックアップスクリプト

本日のツッコミ(全33件) [ツッコミを入れる]

Before...

_ gay males fuck [akr5 Stay warm and left through the room covering themsel..]

_ gay male teen [akr5 Soon we were naked the scanty leather harnesses we w..]

_ coed porn by c [akr5 Fuck i heard noises from the shower she had only pre..]

_ coed tied up [akr5 I rolled her over onto her back i felt her gently on..]

_ coed wrestling [akr5 I rolled her over onto her back i felt her gently on..]


2006-06-13

_ [diary] ワールドカップ

なんだか、昨日は会社のみんなが10時前にはさっさと帰っていってなんだか取り残された気分だったので全く興味のないサッカーをちょっとだけ見てみた。オフサイクっていうの?あれもよく分からないし。プレーヤーも知らないし、いまいち見所が分からなかったのだけど。最初のゴールなんて素人目から見たら喜べるもんじゃないし。あれファールじゃないんだ…そして何、この見終わった後の敗北感と苛立ち…見なきゃ良かったよ。てかもう見ないな。精神衛生上よくない。

_ [develop][symfony] symfonyでMySQLのreplication (master/slave)構成をハンドリング

負荷分散する上ではリプリケーションが必要不可欠だと思うのだが、現状ネットにはsymfonyを使ってMySQLのreplicationとうまく連動させる情報が無い。探してみた結果見つかったのが以下の2つ。

*http://www.symfony-project.com/forum/index.php/m/6912/?srch=replication#msg_6912

*http://www.symfony-project.com/content/book/page/model.html

どちらもまともな解になっていないが…

symfonyでは複数のデータベースの操作がサポートがされているので、それを利用する方法がある。しかし、configファイルを異なるslaveに接続させたいウェブサーバ間で統一させるのが難しい。database.ymlは統一して、コードの方で振り分ける事を考えてみた。例えば、database.ymlをサーバを追加する度に以下のように編集する。

all:
master:
class: sfPropelDatabase
param:
dsn: mysql://foobar:foobar@master.localdomain/foobar
192.168.0.1:
class: sfPropelDatabase
param:
dsn: mysql://foobar:foobar@192.168.0.1/foobar
192.168.0.2:
class: sfPropelDatabase
param:
dsn: mysql://foobar:foobar@192.168.0.2/foobar
192.168.0.3:
class: sfPropelDatabase
param:
dsn: mysql://foobar:foobar@192.168.0.3/foobar

そして、モデルクラスを操作するときには以下のようにして設置されたサーバ毎に自動的に読み込む設定が変わるようにする

$users = UserPeer::doSelect(new Criteria, sfContext::getInstance()->getDatabaseConnection($_SERVER['SERVER_ADDR']));

ちょっとこれはコーディングミスを誘発しそうなので却下。2つめの引数は必須じゃないしね。やっぱりベストなのは設置するサーバ毎にdatabase.ymlを書き換える方法なのかなぁ…タコイけど

all:
propel:
class: sfPropelDatabase
param:
dsn: mysql://foobar:foobar@localhost.localdomain/foobar
master:
class: sfPropelDatabase
param:
dsn: mysql://foobar:foobar@master.localdomain/foobar

のようにすれば通常は

$users = UserPeer::doSelect(new Criteria);

みたいな操作ができてあとはsave() とdelete() は以下のようにオーバーライドする習慣をつければよい

  public function save($con = null)
{
$con = sfContext::getInstance()->getDatabaseConnection('master');
try
{
$con->begin();
$ret = parent::save($con);
return $ret;
}
catch (Exception $e)
{
$con->rollback();
throw $e;
}
}

もう一つの方法は、ウェブサーバ上のローカルホストに、そのウェブサーバと対になるMySQLサーバのポートをsshでバインドしちまうっていう方法

web1$ ssh -L 3306:localhost:3306 db1.localdomain
web2$ ssh -L 3306:localhost:3306 db2.localdomain
web3$ ssh -L 3306:localhost:3306 db3.localdomain

みたいな。強引すぎるし、こっちのほうが管理コスト高くなる罠

_ [diary][css] white-space: pre;

一つ前のエントリーでサンプルの貼付けがインデントされずやたら読みづらかったのでcssを見ていたら pre { white-space: normal; } になっていた。何故に。preはpreっぽく表示でしょ。ってそれも意味わからないけど。とりえあずスペースはスペースとして評価されるようにwhite-space: pre;に変更

_ [server][fedora] ゲートウェイの調子が悪すぎ

FC2からFC5にアップグレードしたらpppoeが不安定というか、パケット落ちまくり。とりあえず最新のpppdとpppoeにアップグレードしようとしたらゲートウェイマシンだから開発環境が一切入ってない。もちろんrpmのrebuildできず…rp-pppoeもバージョン3.8のtar.gzの中に3.6のSPECファイルが入っている素晴らしさ。う〜ん。とりあえず

gw$ yum grouplist
gw$ yum -y groupinstall "Development Tools"
gw$ rpmbuild -ba rp-pppoe.spec

_ [osx][software] Google Sketchup for Mac OSX

あのふと3Dを書きたくなったときのために

_ [diary] KDDI、「DION」の顧客情報約400万人分流出を発表

えーと、うちの会社の回線はDION(KDDI)なんですが大丈夫だろうか。それより、今日会社の回線の接続がかなり調子悪くて、pingも30%lossとかでる始末。1日中原因調査して、NICとかも付け替えたり、しまいにはゲートウェイサーバのOS入れ替えたりした。これ、もし明日問い合わせてこの一連の事件が原因(まずそれはないだろうとは思うけど)だとしたら殴り込みに行くぜ…


2006-06-14

_ [diary] ネットワークが快調に

一昨日、昨日のネットワークの不調は結局KDDIの情報流出事件に絡んでいたのだろうか。ゲートウェイのマシンをFedora Core 5からCentOS4.3に入れかえてみた。RHEL互換っぽいのだけど、まだそこまで使い倒してないし、結局ゲートウェイなのでパケットを中継する事ぐらいしかしていなくてハックどころも少ない…

CentOSマシンが手元に一台増えたと思えば昨日の作業も完全に無駄ではないだろう。と自分に言い聞かせてみたり。しかし上流でのネットワークの不調がゲートウェイのOSを入れ替えた翌日に起きるとはな。

今日はパケットロス0%…

_ [develop][mysql][osx] MySQL Workbench

さすがベータ版。MacOSX上ではほとんどまともに動作しなかった。途中まではsaveしまくりながら細かにやっていたのだけど、テーブルが30個以上ぐらいになったところから何やってもすぐ落ちるように…Windows版を入れてみて、そっちで作業したらそれなりにまともに動いた。とりあえずOSX上で起きていたような突然落ちたりするような致命的なバグはなかった。しかしForeign Keyを張り始めたところで問題が…設定したはずのkeyがでてこなかったり、うまく選択できなかったり。そうこうやっているうちに画面上が線だらけに!!しかも、消せない…

てなわけで、Windows上でDBDesignerを使うことに。こっちはすこぶる調子いい。OSX上ではSQLEditorという選択肢もあったのだが、こっちはシェアウェアだし、お試し版を使ってみたところ、DBDesignerの方が使いやすかった。加えてMySQL WorkbenchはDBDesigner互換っぽいので、UIもかなり似ていて作業しやすかったのもあった。

_ [postgres] データベース(テーブル)に権限追加

とりあえずメモ。

pg_hba.confにてアクセス権限を追加。この場合はlocalアクセスにたいして、ユーザが実行者と同じ場合にのみ接続可能

local    chonmagedb      ozaki            ident sameuser

権限のあるpostgresユーザでデータベース内のテーブルに権限を追加。この場合は読み込み(SELECT)権限を付与

chonmagedb=> grant SELECT on table1 to ozaki;
chonmagedb=> grant SELECT on table2 to ozaki;
...

権限が付与されてか確認

chonmagedb=> \z


2006-06-15

_ [develop][mysql] DBDesigner 4

mysqlに特化してしまうけど、結構いい。うちのような小さな会社で一人が大部分のプロジェクト(開発部分)を担当しているような場合はER図なんて必要ないのだけどね。物事が開発者の頭の中に入っているだけではマズいという意見もあるが。

直感的な操作ですいすい作れる。SQLの吐き出しとか、データベースとの同期とかもできるみたい。その辺りは既に他のツールでやっているので今回はER図を作成するという目的だけで使った。MySQLで指定できるテーブルオプションや制約は全て(俺の知る限りでは)使える。データはxmlで吐き出されるが、PNG、BMP画像の出力ができる(下の画像がそれ。実際には実寸大3000x2000とかで吐き出される)。なによりもFOSSであるところが素晴らしい。納品物と一緒にDBDesigner4も同梱してしまうことも可。

ERD

_ [diary][skate] 6月21日はGO SKATEBOARDING DAY

今年は何かあるのかな?みんなで丸の内プッシュツアーとかやりたい。mixiのコミュいま6000人弱だからなぁ。100人集まっても超楽しいと思うんだけど。

_ [fedora] Xenインストール

進行中の案件のテスト環境を作る必要があったのでFedora Core 5にxenをインストールした。拍子抜けするぐらい簡単…5台構成ぐらいのシステムだから仮想OSをあと4つぐらい入れないといけない。FC5はデフォルトでインストールされるパッケージが多すぎるんだよなぁ。それでも1時間もかからなかったかな。あとは、ホストOSのメモリ増やさないと

_ [fedora] XenのホストはちゃんとMACアドレスをもっている

会社のホストは全てDHCPでIP管理がされているわけなのだけど、XENの扱いはどうなるのかなぁと思ってifconfigしてみると

[k-ozaki@xen001 ~]$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3E:00:3D:65
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::216:3eff:fe00:3d65/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:195 errors:0 dropped:0 overruns:0 frame:0
TX packets:153 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:20975 (20.4 KiB) TX bytes:22261 (21.7 KiB)

ちゃんとHWaddrがついている。で、このMACアドレスについて調べてみると、ちゃんとベンダー登録されている

Search results for "00:16:3E"


MAC Address
Prefix Vendor
00163E Xensource, Inc.

当然なんだけど、ちょっと驚き。QEMU、VMWARE、VirtualPCなんかも全部そうなのかなと思って探してみたらとりあえずVMWAREは登録されているみたい。

_ [fedora] Xenのインストール超速編

xen対応カーネルのインストール

# yum install kernel-xen0

上のステップではxen対応カーネルがデフォルトで起動するカーネルになっていないので、xen対応カーネルが起動するようにgrub.confの修正

# vi /etc/grub.conf

再起動

# reboot

ホストOSの使用するメモリを256Mbに縮小

# /usr/sbin/xm mem-set 0 256

ゲストOSのインストールを開始

# /usr/sbin/xenguest-install.py 
What is the name of your virtual machine? vm1
How much RAM should be allocated (in megabytes)? 256
What would you like to use as the disk (path)? /home/xen-vm1
How large would you like the disk to be (in gigabytes)? 4
What is the install location? http://localhost.localdomain/fedora/core/5/i386/os/

インストールは通常のFC5と同様に行う。インストール後、ゲストOSの起動

# /usr/sbin/xm create -c vm1 

_ [diary] QEMU+colinuxのインストールがクソ遅かった件

実は上のxenを使う前にはWindowsマシン上にQEMUとcolinuxを使ってFC5をインストールしたのだけど、ゲストOSをインストールするのに1日かかってウンザリした。このペースで複数もゲストOSインストールできねーよ!って。しかも、がんばってゲストOS一個入れた後に、次のゲストOSをインストールしていたら、最後の最後でコケやがった…それでもーいいやってなってxen使うことにした。xenの方が早いし、楽だし、動作も軽快。最初からxenにしとけばよかった。

_ [fedora] fc5 xen と不要なパッケージ

xenのインストールが終わると、とりあえず不要なパッケージが入りまくり。サーバにはいらないでしょってのがありすぎ。さすがにxenをデスクトップ環境で使いたくないよね?!そんなめでたいやついるのかな…4GbのディスクサイズでゲストOSを入れたのに、インストール直後にこれだよ。

# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
3364488 2856828 333992 90% /
/dev/xvda1 101086 9296 86571 10% /boot
tmpfs 131784 0 131784 0% /dev/shm

これじゃディスクの空き容量がなさすぎてyum updateすらできない。んなわけでイラネーrpmを削除

yum groupremove "Office/Productivity" ?
"GNOME Software Development" ?
"X Software Development" ?
"DNS Name Server" ?
"GNOME Desktop Environment" ?
"Authoring and Publishing" ?
"Network Servers" ?
"X Window System" ?
"Graphics" ?
"Printing Support" ?
"Graphical Internet"

少しはまともになったかな。

# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
3364488 1508788 1682032 48% /
/dev/xvda1 101086 9296 86571 10% /boot
tmpfs 131784 0 131784 0% /dev/shm

_ [server][development] Apache 2.2 のreverse proxy (load balancer) way too slow

とりあえずload balancerの設定をする

<VirtualHost *:80>
ServerName frontend
ServerAlias frontend.lan.bancho.jp

ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass /balancer-manager !
ProxyPass / balancer://mycluster
<Proxy balancer://mycluster>
BalancerMember http://192.168.0.101
BalancerMember http://192.168.0.102
</Proxy>

<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Location>
</VirtualHost>

frontendにアクセスすることによって、リクエストが192.168.0.101と192.168.0.102に振り分けられていることを確認。次に処理速度の測定。

g5$ ab -n 100 "http://frontend.lan.bancho.jp/"
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking frontend.lan.bancho.jp (be patient).....done
Server Software: Apache/2.2.0
Server Hostname: frontend.lan.bancho.jp
Server Port: 80

Document Path: /
Document Length: 3931 bytes

Concurrency Level: 1
Time taken for tests: 10.579 seconds
Complete requests: 100
Failed requests: 0
Broken pipe errors: 0
Non-2xx responses: 100
Total transferred: 412800 bytes
HTML transferred: 393100 bytes
Requests per second: 9.45 [#/sec] (mean)
Time per request: 105.79 [ms] (mean)
Time per request: 105.79 [ms] (mean, across all concurrent requests)
Transfer rate: 39.02 [Kbytes/sec] received

Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 104 105 2.4 104 117
Waiting: 104 105 2.4 104 117
Total: 104 105 2.4 104 117

Percentage of the requests served within a certain time (ms)
50% 104
66% 105
75% 105
80% 105
90% 107
95% 111
98% 116
99% 117
100% 117 (last request)

なに9.45req/secって…そんなはずはないだろうと思い、バックエンドのサーバに個別にabしてみる。

g5$ ab -n 100 "http://192.168.0.101/"
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.101 (be patient).....done
Server Software: Apache/2.2.0
Server Hostname: 192.168.0.101
Server Port: 80

Document Path: /
Document Length: 3931 bytes

Concurrency Level: 1
Time taken for tests: 0.404 seconds
Complete requests: 100
Failed requests: 0
Broken pipe errors: 0
Non-2xx responses: 100
Total transferred: 412800 bytes
HTML transferred: 393100 bytes
Requests per second: 247.52 [#/sec] (mean)
Time per request: 4.04 [ms] (mean)
Time per request: 4.04 [ms] (mean, across all concurrent requests)
Transfer rate: 1021.78 [Kbytes/sec] received

Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 1
Processing: 3 3 0.1 3 5
Waiting: 3 3 0.0 3 4
Total: 3 3 0.1 3 5
ERROR: The median and mean for the initial connection time are more than twice the standard
deviation apart. These results are NOT reliable.
ERROR: The median and mean for the processing time are more than twice the standard
deviation apart. These results are NOT reliable.
ERROR: The median and mean for the waiting time are more than twice the standard deviation apart. These results are NOT reliable.
ERROR: The median and mean for the total time are more than twice the standard
deviation apart. These results are NOT reliable.

Percentage of the requests served within a certain time (ms)
50% 3
66% 4
75% 4
80% 4
90% 4
95% 4
98% 4
99% 5
100% 5 (last request)

g5$ ab -n 100 "http://192.168.0.102/"
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.0.102 (be patient).....done
Server Software: Apache/2.2.0
Server Hostname: 192.168.0.102
Server Port: 80

Document Path: /
Document Length: 3931 bytes

Concurrency Level: 1
Time taken for tests: 0.402 seconds
Complete requests: 100
Failed requests: 0
Broken pipe errors: 0
Non-2xx responses: 100
Total transferred: 412800 bytes
HTML transferred: 393100 bytes
Requests per second: 248.76 [#/sec] (mean)
Time per request: 4.02 [ms] (mean)
Time per request: 4.02 [ms] (mean, across all concurrent requests)
Transfer rate: 1026.87 [Kbytes/sec] received

Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 3 3 0.0 3 4
Waiting: 2 3 0.2 3 4
Total: 3 3 0.0 3 4
ERROR: The median and mean for the processing time are more than twice the standard
deviation apart. These results are NOT reliable.
ERROR: The median and mean for the total time are more than twice the standard
deviation apart. These results are NOT reliable.

Percentage of the requests served within a certain time (ms)
50% 3
66% 3
75% 4
80% 4
90% 4
95% 4
98% 4
99% 4
100% 4 (last request)

どちらも正常な値が返ってくる。明らかにどこかでおかしなことになっているのだけど、設定する項目がfrontendぐらいしかないので悩む。ちなみにabはfrontendのマシン上で実行しているので、ネットワーク的な要因はあまりない。疑うポイントとしては192.168.0.101と192.168.0.102がxenのゲストOSな事?!frontendはホストOSではなく物理的に離れたマシン。とはいえ全て192.168.0.0/24上にGigabitで繋がっている。う〜ん

本日のツッコミ(全1件) [ツッコミを入れる]

_ Craig [Thank you! [url=http://xfmtvtxo.com/bfag/zkef.html]My hom..]


2006-06-16

_ [diary] Mapionキョリ測自転車

mixiでソシ君(かなりのα)が紹介していたのでパクリネタ。彼と同様俺も会社と自宅間は自転車通勤なのでこういった情報は大変重宝する。Mapionキョリ測で移動区間の最適化ができる。

_ [diary][shokotan] しょこたんブログ写メール更新分 (自動更新)

shokotan_images_2006-6-16.zip (124枚)

_ [develop][perl][shokotan] しょこたん写メのミラーリング

とりあえず息抜きがてらにこんなの↑でっちあげました。詳細についてはコード見てくれって話だけど(汚くてすみません)、しょこたんブログの写メールを取得、最初に見つけた写メールを記録(最新の取得分として記録)、サイトをなめまわして過去の最新取得分とマッチする画像が見つかるまで実行。終了後にファイルをZIPファイルにまとめる。ZIPファイルをウェブ公開ディレクトリに置き、置き場所へのリンクをtDiaryに自動書き込み。こんなところでしょうか。とりあえずWWW::Mechanizeやばすぎ

最後にcrontab -eして

01 6 * * * /usr/bin/perl /home/k-ozaki/perl/shokotan-get-2.pl

とか追加。ブログの女王2.0が更新を続けてくれる限り俺のブログ日記も自動更新だ!2.0

_ [develop][php][mysql][fedora] php 5.1.4 (5.1.3) と mysql 5.0.22 の組み合わせでconfigureが通らない件について

詳細についてはリンクを見てもらえばと思う。で、-lmygccをコンパイルオプションに加えればいいという話なので、configureどうこうとかMakefileどうこうとかリンク先で書いてあるような事をしなくても、

$ LDFLAGS="$LDFLAGS -L/usr/local/mysql/lib" LIBS="$LIBS -lmygcc" ./configure ....

とかするとちゃんとコンパイルできるし、apacheも正常に起動するし、phpもちゃんと動く。


2006-06-17

_ [diary][shokotan] しょこたん写メのミラーリング

バグってた。最後に取得した画像の情報を保存しているファイルが相対パス指定だったので多分cronから実行されたときに見つけられなかったと思われ。ダサすぎ。

_ [diary][shokotan] しょこたんブログ写メール更新分 (自動更新)

shokotan_images_2006-6-17.zip (6枚)


2006-06-18

_ [diary][shokotan] しょこたんブログ写メール更新分 (自動更新)

shokotan_images_2006-6-18.zip (7枚)

_ [diary] コメントSPAMうぜぇ

filterを改良して、ツッコミにURLが入っているとSPAM判定するように修正した。なのでツッコミにURLを入れないように宜しくお願いします。URLを入れたい場合は頭のhttp://を入れない形で入れてもらえばと思います。

ま、ほとんどツッコミ入れる人いないけどね。tDiary(ツッコミ日記)なのに。プッ

_ [diary][shokotan] shokotan-get-2.0.plプチ改良

tDiaryの追加書き込みにshokotanカテゴリを付け加えるように。これによって後からこういったリンクでまとめて参照できる。あとは本プログラムの配布リンクを付け加えるように。

_ [diary] 最近の行事まとめ

1:アレゲな会社の設立パーティー@秋葉原

2:アレゲな記念品

3:アンリ・シャルパンティエのデザート

4:970円でゲット

5:最近はまっている米ドラ。7まで見たけど、8〜完がでるのが12月って…間あけすぎでしょ

6:ちょっと前まではキーシャッツっていうの付けたのだけど、かさばるので却下。そしてキーリングの変わりにワイヤーを。キーリングって鍵入れるの面倒だし、最初こじあけるのに苦戦しない?俺はいつも指が痛くなる。でもこのワイヤーはそんなことないし、軽量だし柔らかい。いい感じ★

_ [diary] Vバック

もうノーパンでいいでしょ…

_ [dvd] 最近みた映画まとめ

http://images-jp.amazon.com/images/P/B000FO6H7Q.01._OU09_PE22_SCTZZZZZZZ_.jpg http://images-jp.amazon.com/images/P/B000CS44YI.09._OU09_PE23_SCTZZZZZZZ_.jpg http://images-jp.amazon.com/images/P/B000AOTWLE.09._OU09_PE23_SCTZZZZZZZ_.jpg http://images-jp.amazon.com/images/P/B000BPK5LS.09._OU09_PE0_SCTZZZZZZZ_.jpg http://images-jp.amazon.com/images/P/B000DZI63U.09._OU09_PE23_SCTZZZZZZZ_.jpg http://images-jp.amazon.com/images/P/B000EULV7C.09._OU09_PE22_SCTZZZZZZZ_.jpg

_ [css][web2.0] lightbox

lightbox導入。上の写メールをクリックしてみてください。かっこいいでしょ?Mac OSX TigerのExposeっぽい

_ [diary] 錦糸町 ORINAS

いきなり気合いの入った日本代表発見。創作大福モチクリーム、おすすめです。野の葡萄がいけてる。和食のビュッフェ。

_ [diary] サッカー

クロアチア選手と応援団がみんなピザ屋っぽかった。選手が芝生にツバを吐くのが気持ち悪い。スライディングした後に足に他人のタンとか付いてたらすごい落ちる。テレビの同時通訳と現地の通訳の翻訳が若干異なる点が気になる。これについては前回も気になった。現地の通訳の人が怪しい。中田選手のまゆげが禿げてた。

本日のツッコミ(全2件) [ツッコミを入れる]

_ SJ [更新分いただきます。ありがとうごいざいます! 猫フィルター(もしくはおばぁちゃんフィルター)の開発よろしくおねがいし..]

_ おざき [栄子が… ニーズがあればしょこたん写メ更新分のメール配信サービスなんかも始めたり?w ]


2006-06-19

_ [diary][shokotan] しょこたんブログ写メール更新分 (自動更新)

shokotan_images_2006-6-19.zip (11枚)

この書き込みはshokotan-get-2.0.plより自動生成されています

_ [symfony] session情報をデータベースで管理

あのー、これのやり方が全然本家ドキュメントから見つけられないのですが〜。このページに最後にコメントしている人、かなりイヤーな感じ。

2.) No, Symfony does not require a database to use the
sfUser functionality. However, you CAN integrate it
with a database if you choose. There is documentation on this.

there is documentation on thisってどのdocumentationだよ!教えろこのやろー!んなわけで、調べた内容をまとめます。handling sfUser with a database (saving session information in a database. mysql, creole, postgres,,)

まず、sessionの保存に使えるハンドラーは

symfony/storage/

にあります。0.6.2現在でもこんなのがあります

sfCreoleSessionStorage.class.php        sfSessionStorage.class.php
sfMySQLSessionStorage.class.php sfSessionTestStorage.class.php
sfPDOSessionStorage.class.php sfStorage.class.php
sfPostgreSQLSessionStorage.class.php

今回は、MySQLでsession情報を格納したかったので、それについてのHOW TOになります。他についてもおそらく同様。詳しくはStorageクラスの中身を見れば解決するかと。まずセッション情報保存用のテーブルを作成

DROP TABLE IF EXISTS `my_session`;
CREATE TABLE `my_session` (
`id` VARCHAR(255) not null COMMENT 'セッションID',
`data` TEXT COMMENT 'セッション情報',
`time` TIMESTAMP COMMENT 'セッション時間',
PRIMARY KEY (`id`))Type=MyISAM COMMENT='セッションテーブル';

次に、apps/アプリケーション名/config/factories.ymlを修正

  storage:
class: sfMySQLSessionStorage
param:
database: propel
db_table: my_session
session_name: symfony
db_id_col: id
db_data_col: data
db_time_col: time

終わり。簡単簡単。databaseには、database.ymlで定義した接続名称を指定。db_tableには実際に作成したセッション用のテーブル名。session_nameはsymfony上で保存対象するセッションのnamespace。db_id_col、db_data_col、db_time_colはそれぞれ対応するセッション情報保存用テーブルのカラム名。

つーかこれやんないとクラスター間でのセッション情報の共有ができぬ!session.save_handler = "mm"という手も

_ [diary] エスキモー「pino(ピノ) ミント」

え〜、ピノは絶対プレーン(バニラ)でしょ〜。でも気になる…

_ [neta][idol] dodolook

斜め前のnより。変なところにアンテナはってんな〜。YouTubeに大量に動画がアップされています。

おれ的にはあんまり萌えませんでした…あと、なんかほとんどの動画が一人撮影で、これだけ量があるとちょっと痛い子っぽい。ま、You(おまえの)Tube(テレビ) っていうぐらいのサイトだからこれぐらい使いこなさないとダメなのかもしれません。オレオレテレビ的に。

_ [cd] Red Hot Chili Peppers

買った。Stadium Arcadium。中はMarsとJupitorの2枚組。いいね。RHCPは毎度間違いない。オレの場合、2、3回ぐらい聞いたところからだんだん好きになる

http://images-jp.amazon.com/images/P/B000EMGAOY.01.TZZZZZZZ.jpg

_ [neta] Destiny's Child

はい、張りたいだけです。ミッシェルかっこいい〜


2006-06-20

_ [idol][shokotan] しょこたんブログ写メール更新分 (自動更新)

shokotan_images_2006-6-20.zip (11枚)

この書き込みはshokotan-get-2.0.plより自動生成されています

_ [video] R. Kelly Trapped in the Closet 全編

Chapter 5のファイルが見つからなかったので、1-5セットでご覧ください。10あたりからかなりキテマス

trapped in the closet chapter 1-5
http://www.youtube.com/watch?v=oHFMBpiDkP4
trapped in the closet chapter 1
http://www.youtube.com/watch?v=ms3WabNFWnc
trapped in the closet chapter 2
http://www.youtube.com/watch?v=_CLUDYPpS98
trapped in the closet chapter 3
http://www.youtube.com/watch?v=Vw224Q4k17w
trapped in the closet chapter 4
http://www.youtube.com/watch?v=tllh0Gpk2yk
trapped in the closet chapter 6
http://www.youtube.com/watch?v=K8ySHBcCvVU
trapped in the closet chapter 7
http://www.youtube.com/watch?v=5h5uoGCwX1w
trapped in the closet chapter 8
http://www.youtube.com/watch?v=4z5BPXNWZNk
trapped in the closet chapter 9
http://www.youtube.com/watch?v=vR1vMPF-DFg
trapped in the closet chapter 10
http://www.youtube.com/watch?v=yoerF1sDTVM
trapped in the closet chapter 11
http://www.youtube.com/watch?v=C6Mzp0L_YRo
trapped in the closet chapter 12
http://www.youtube.com/watch?v=h11J1bJtabg

_ [symfony] propelでtimestamp型なフィールドをunix timestamp(あるいは任意の形)として取得する

symfonyでデータベースモデル経由(Propel)でtimestamp型の値を取得する場合、通常のgetterでは"Y-m-d H:i:s"を返すが、引数にstrftimeに使えるフォーマットまたはdateに使えるフォーマットを渡す事で任意の形で値を得る事ができる。また、nullを指定すると、unix timestamp (epoch)で取得することができる。

$member = MemberPeer::doSelectOne(new Criteria);
echo $member->getCreatedAt() . "\n";
echo $member->getCreatedAt("Y-m-d") . "\n";
echo $member->getCreatedAt(null) . "\n";

$ php test_timestamp.php
2006-06-20 22:45:00
2006-06-20
1150811100

本日のツッコミ(全1件) [ツッコミを入れる]

_ payday loans articles [not paying payday loans. no teletrack payday loans 500.00...]


2006-06-21

_ [idol][shokotan] しょこたんブログ写メール更新分 (自動更新)

shokotan_images_2006-6-21.zip (15枚)

この書き込みはshokotan-get-2.0.plより自動生成されています

_ [video] Roach Egg - 50 CentのIn Da Clubのパロディ

有名すぎるあの曲のパロディ。リリックもウケルけど、ラップも普通に上手いw

_ [osx][emacs] Carbon Emacs 20060616 build

Carbon Emacsが更新されていたのでインストール。今回の更新でMewが4系(4.2.53)から5系(5.0.53)に変わったのが嬉しい!

_ [osx][emacs] MewでSpotlightを使う

mewは標準でいくつかの検索エンジンを使うことができるのだけど、OSXの検索機能であるSpotlightもサポートしている。以前にnamazuを使ったときは、いくつかのフォルダでindexできないメールがあった…謎。gigi-mewはRast.pmがうまく動かなくて断念。結局mg使ってたのだけど、Spotlightが使えるなら使うしかないでしょ!ってことで早速試してみることに。mewは標準でSpotlightをサポートしていると書いたが、Indexを作成するためには、MewImporterというツールを導入しないと行けない。タイトルのリンクを辿れば詳細が書かれているので、ここではコマンドのみ記録

g5$ cd tmp
g5$ wget 'http://homepage.mac.com/izawak/spotlight/MewImporter.mdimporter.tar.gz'
g5$ tar xzf MewImporter.mdimporter.tar.gz
g5$ mkdir -p ~/Library/Spotlight
g5$ mv MewImporter.mdimporter ~/Library/Spotlight/
g5$ mdimport -L 2>&1 | grep MewImporter
"/Users/k_ozaki/Library/Spotlight/MewImporter.mdimporter",
g5$ /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep '\.mew,'
tags: .mew, 'MewX'

Mewのメッ