apnea - Another Nights,another sights

Another Nights,another sights

まず1曲目「SKYSCRAPER」のイントロがカッコいい。
イントロって大事だなー、うむ。

アジカンっぽさもちょっとあるロックバンド。
けど、どちらかというとマスロック的なサウンドにボーカルが乗る形かな。
こりゃ人気でそうだなー。

バックサウンドがカッコ良い。
アジカンとはバックグラウンドが確実に違うのが良く分かる。
けどボーカルが弱いなあ、そこがもったいない。
そういう声が合う曲もあるんだろうけど、やっぱ全体的に弱い気がする。
サウンドが良いだけに残念。
でも、下手って訳じゃないから、そういう狙いなんだろうなあ、好みの違いか。
ライブだとラウドになってもっと良さそう。

アルバムの最後の方がビジュアル系っぽい曲になってた。
曲のクオリティも安定してないなー。

バンドのメンバーで特にボーカル以外の人達はこれで良いと思ってんのかな。
今後に期待。

MySpace.com - apnea

Curly Giraffe - Curly Giraffe

Curly Giraffe

歌詞は全部英語。
こう見えて日本人のアーティスト。
GREAT3ってバンドのベーシストさんのソロらしい。

ベーシストって良いね、どれだけアコースティックなサウンドにしたりしても、ベースをちゃんと効かしてくれる。
絶妙なサウンドで気持ちが良い。
ベースを久しぶりに弾きたくなったな。
打ち込みも入っているけど、なんだろ、そんなにピコピコしていないので全然聴ける。
サンプリングっぽいな。

とになく音が気持ちい。
カッコいいなあ。
あと、ジェケも好き。
女の子受けも良さそう、オススメ。

MySpace.com - Curly Giraffe

Plastic operator - Different Places

Different Places

ピコピコいってるエレクトロサウンド。
歌って踊れるけど、ちょっと切ないメロディライン。
んー絶妙かも。

なんだか時代がこういうのを求めているのかな?
日本でも最近こういうの流行っている気がする。

なんか休みの日にガーってこれ聴いてドライブする感じ?
楽しいです。
さて、こういうのが比較的苦手な僕が、どこまで持つかなあ。
飽き易いのが玉にキズ。

MySpace.com - Plastic Operator

miimi - ephyra

ephyra

1曲目のサビを聴いてCoccoみたいって思った。
ありがちだけど、確実にこういうサウンドが好きな人はいるわけで、定期的にこういうバンドって出てくるね。
僕もまんざらじゃない一人なんだよなあ。

けど、これを聴いてCoccoって凄かったんだなあって思ってまったわ。
やっぱ変だものね、あの人。
歌詞も凄いし、やっぱ表現力が馬鹿みたいにあったなあ。

ボーカルの彼女の声はちゃんと特徴があって良い声だと思うけど、まだまだCoccoに届かない感じ。
本人が一番分かっているんだろうけど。
声質だけじゃないんだね、ボーカルってのは。

どうしても比較されてしまうようなサウンドなので、Coccoを越えるか他のやり方を探すかだね。
まだまだ若そうだから、今後期待。
雰囲気、やろうとしていることは好きです。
そうだなあ、まさに夏の夜、野外で聴きたいな。

MySpace.com - miimi

Ovum - Microcosmos

microcosmos

聴いた瞬間好きな音だと思った。
こういう音を出すバンドってなかなかいないので、出会えたことが嬉しいな。
toeとかte'に似てるかな。
toeはドラムが神がかっていて、なんといっても曲が良いんだけど、このバンドはそれ程でもない。
te'程パワフルで刺々しくも無いから、ちょっと個性が足りないかなって思う。
1stでこの完成度は凄いけど、伸びしろあるのか不安だ。

インストでエモっつうかポストロックぽいサウンドなんだけど、ちゃんとメロディを聴かしてくれるバンドって外国じゃあんまりいないから、頑張って欲しいな。
日本人特有なのかな、こういうメロディアスなサウンドが好きなのは。

ぜひライブを見たいな。

MySpace.com - OVUM

自分だけお酒を飲んでの説教には気をつけねば

今日は家族総出の墓参りだった。
墓参りが終わり、実家で皆でご飯を食べた。
親は酒を飲んだが僕は車だったので飲まなかった。
今日はやたら僕が標的にされ、結婚しろだ、相手の親に会いに行けだしつこく言われた。
いつもは上手く聞流せているつもりだったけど、今日は本気でイラッとした。
穏やかムードを壊したくなかったので、必死に堪えたけど。
今日は何でそんなに腹が立ったのかを考えて思ったのが、相手が酔っ払ってこっちがシラフっていう状況でのグチグチした説教が理由な気がした。

あと、いくら親だっていっても子供のことは分かってない部分も多いんだなって思った。
僕は親に言われたから「はいそうですか」って動く人間じゃないのにな。
言うだけ逆効果だと思うんだけど、その辺がわかってない気がする。

ま、そんなもんかもな。
今日は非常に疲れた。

新しい冷蔵庫がやってきた

突然冷蔵庫がまったく冷えなくなった。
アイスは溶けるし、お茶は腐るし。
で、急遽新しい冷蔵庫を買うことになった。

新しい冷蔵庫

いろいろ悩んだんだけど、1~2人暮らしまでには対応できそうな、ちょっと小さめの冷蔵庫を買うことにした。
値段も3万ちょっとぐらいのものなので、全然機能とかも無い。
けど、今まで使っていたのが大きな冷蔵庫だったので、なんだかジャストサイズな今回の冷蔵庫が凄く気持ちが良いんだよね。
無駄が無い感じが。
親や姉には大きさや機能面で全員に馬鹿にされたけど、今は大きな冷蔵庫よりも僕はしっくり来るし、置いた感じもやっぱりしっくり来たし。

なんだか最近親と意見が違って来ているなと思う。
んー、なぜだろう。

「パプリカ」みました

パプリカ

たまに長編アニメ映画を見たくなるんだけど、今回はパプリカで。
映像と音楽の絡みが気持ち良いみたいなことを、どこかで聞いていたので内容はあまり期待していなかったんだけど、結構面白かった。
まあ、深いとか世界観が凄いとかってのは、無いかもしれないけど。

パプリカ(表紙の赤紙の女性)が魅力的だったなー。
見る前はそんなに可愛いとは思わなかったんだけど。

こういうアニメの映画がさらっとたくさん出てくると、なんだか嬉しいな。

健康の為のグッズ、ナイキ アテンプト3を買う

健康の為のシューズ

家の近所にある公共のスポーツ施設に行きたいなと思っていて、靴を買った。
近所の冴えない流通なんとかってお店だった気がするけど、安かった、3000円ぐらい。
昔、家の近所を走っていたことがあって、靴が硬くて足が痛くなってしまったことがあったので、運動靴を買うなら絶対エアが入った奴が良いと思っていた。
エアが入っていてこの値段は安いと思ったんだけど、そうでもないのかしら。

吐き倒せば痩せると思われるので頑張りたいな。
といいつつ、ビールを飲んでしまう私。

あと、写真なんだけどなんか靴を良く見せようと配置を考えたり、周りをキレイにするよりも、そのまんま撮った方が俺らしいかなと思って、気にせず撮ったら自分の足も入っていた。
けど、それが思いのほか良い感じな気がするので、これからはそのままあるがまま撮ってみようかなと思った。

田んぼの変化は楽しい

駅までの途中にある田んぼが青々としてきた

出勤時には目もくれないんだけど、帰宅時や休みの日とかに見るとなんだか嬉しくなる。
自然の緑色って綺麗だ。
夏だあね。

北京五輪サッカー 日本 0-1 アメリカ

仕事の関係で後半途中からしか見れなかったけど、僕が見た時にはもう点が入った後だった。

暑いんだろうけど、全然駄目だったな。
アメリカも酷かったけど、日本はもっと酷かった。
なんっちゅうレベルの低い試合してんだか。

今回は将来楽しみな選手もあんまりいないな。
森本は何が武器なんだろう、どっちにしろアメリカ相手にワントップってどんだけびびってんだか・・・。
本田もさあ・・・、まだまだだなあ。

最近グランパスは点取られようが何しようが、「攻めて当たり前」的な雰囲気が漂っているから、余計に違和感があったかも。
つまんない試合してんじゃないよ!っとに情けない・・・。

一生懸命なのは伝わったけどさ、それじゃ勝てないでしょ、弱いんだもん。
ナイジェリア戦は、カードもらっても良いから死に物狂いな感じが伝わる試合をしてほしい。
フェアとかいってられないから、日本は。

OSC 2008 Nagoyaに行ってきました

今日も名古屋は暑かった。
会場に着くときには、10時を過ぎていたから人は全然いなかった。
ホントに今日イベントがあるのかよって感じ。

会場に着いたら早速迷子。
一番近い建物に近づいていったら、看板が出ていた。
もうちょっと親切でも良い気がした。

■日本PostgreSQL 初心者向けセミナー(10:15~)
まずペットボトルの水が全員にもらえた、心遣いに感動。
前半はPostgreSQLの概要みたいなので、ちょっと物足りなかった。
このセッションでの一番の収穫は「PITR (Point In Time Recovery)」という存在を知ったこと。
そんなんあるのか!すげーじゃんって思った。
細かいところまでは説明が無かったのであれだけどね。
PostgreSQLとMySQLどっちでも良いけど、身近にコミュニティがあって知識ある方々にあーだこーだ聞ける方を選ぶっていうのもありかなって思った。
結果的に非常に勉強になりました。

11時からは特に興味をそそられなかったので、お昼に。
というか、実家がこっちなので実家へ。


■名古屋の勉強会大集合!(12:00~)
15分ぐらい遅れてしまったので、結構聴き逃してしまった。
DeLLa.JSさんとか気になっていたんだけど聞けずじまい。
今回のOSCを振り返ってみると一番このセッションが結構面白かった気がする。
toyosystemの人始めてみました。
CPU作ったり変な勉強会をしているなあと以前から思っていたんだけど、やっぱちょっと変な人だった。
けど、面白そうな人なので、自分に興味がある勉強会が開かれる時は行ってみたいかな。
後は、JavaEdgeさんも面白そうだったけど、もう今後はJRubyに行くらしいので、Javaな人じゃない僕にはちょっとあれかなあ。
高蔵寺SE勉強会はお昼が出るし、そんなに遠くも無いので参加してみようかな。
宿題とかが気が重いんだけど、やってこなくても怒られないらしいので。

皆さんノートPCを軽々と持ち運ぶ姿を見て、道具として使いこなしているなーと感心した。
意外にmac率少ない、Let's Note率が高かった。
僕もノート欲しいよう。


■CodeIgniter ~ 2008年大躍進のPHPフレームワーク(13:00~)
案の定眠くなった、やっぱお腹一杯だと眠くなるね。

行けなかったPHPカンファレンス2008にもあったセミナー。
触れ込み通り、凄く分かりやすいフレームワークっぽいなと思った。
コードも書き易そうだし、覚えることも少なそう。
その分、やってくれることも少なそうかなあ・・・。
個人的には、そんなにパフォーマンスを求められることもないし、cakePHPで良いじゃんって思ってまった。
あと、どんなフレームワークを使っているかって聞かれたんだけど、Ethnaがマイノリティってことだけは分かった。
呼ばれて良かったけど。。。
mojavi使っている人がまだいたことに驚き、世の中いろんな人がいるんだなあ。

名古屋でEthna勉強会とかやろうとしたら、人集まらなさそう。
発表者の人は、結構淡々と説明する感じ。
仕事っぽかったのがちと残念。


■TOMOYO Linuxのある暮らし ~Linux の勉強からセキュリティ強化まで~(14:00~)
TOMOYO Linuxってどんなディストリビューション?って思っていたら、全然違った。
発表者の人がUbuntu使って説明してたんだけど、リアルで使っている人を見るの初めて、いやーなんだか良いね。
説明された方のPCの扱いがあまりにも慣れていたのに、力量の差を感じた(コマンド打つのはえー)。
TOMOYO LinuxってSELinuxと同じ位置にいるソフトなんだけど、結構厳しいなあって思った。
TOMOYO Linuxがどうこうっていうよりも、この分野自体が初心者にはまず入れない分野な気がする。
あくまで補助ツール、使いこなすのは自分。
つまり、俺には無理って話。
セキュリティに対する知識があることが大前提。
当たり前なんだけど・・・突き放されてもなんだかなあ。


っつうことで、東海市の花火大会へ行くために、今日はこの辺で退散。


■総括
恥ずかしながらこういうイベントに行くのは初めてだったんだけど、ちょっと圧倒された。
「プログラマーらしい人」が多かった、当たり前なんだけど。
俺はこの人たちの一員で良いのかと思ったね、なんか凄いんだよね、情熱っていうか。
その点僕は斜に構えているっていうか、そんなに熱意を持ってないのかなって感じがしてまったかなあ。

変な話なんだけど、もっと見た目に気をつけようと思った。
トイレで見た自分はおっさんぽかったので。

僕は技術力もないし、今日来ていた人たちと比べると技術に対する情熱もそんなにない気がする。
だから、普通のプログラマーとは違う他の部分で個性を出せたらなと思った。
そんなプログラマーがいても良いじゃんね?
上手くいえないけど、彼らより上手く出来ることがある気がするんだよね。
変かしら。
まあ、技術じゃ勝てないなって悟ったってことだな。

あと単純に仲間が欲しいなって思った。
会社じゃ一人だからなあ、プログラマーは。
だから今後は興味のある勉強会は一回は参加してみようかなと思った。

そういう風に思えたことだけでも、良い勉強になったと思う。
行って良かった!

東海まつり花火大会に行ってきました

去年は岐阜の長良川の花火を見に行ったんだけど、今年は東海市。
規模は全然違うんだけど、こじんまりとしていて地元のお祭りって感じの東海まつりは素敵だった。
僕は断然岐阜の長良川よりもこっちの方が好きだな。

車でいったんだけど、早く向かったからかそんなに混むことも無く結構快適に着いた。
実際に花火を見る場所もそんなに人も多くなかったかな、余裕があった。

2車線の道を歩行者天国にして、その両脇を出店がずらーっと並ぶ。
こういうところは、堤防沿いの狭いところに出店が並ぶ長良川よりも十分お祭り気分を味わうことが出来て、僕は好きだな。
港祭りもそんな感じなんだけど、もうちょっと幅が狭い感じがこじんまりとしていて良い。

東海花火まつり9

花火の数は大きな花火大会よりも劣るかもしれないけど、ゆっくりと打ち上げてくれて1時間以上は見ていられるので、十分堪能できた。
良くガイドでは数が載っているけど、数じゃないんだねえ。

とにかく僕にとっては良いこと尽くめ。
ここなら来年も行きたいなーって心から思えた。

やっぱ花火って年に一回はみとくべきだね。

北京五輪サッカー 日本 1-2 ナイジェリア

妥当な結果というのが率直な印象。
もしかしたら、健闘した部類に入るかもしれない。
もう個人のレベルが違いすぎる、こんなんで勝てたらマジックだよ。

印象に残ったのは、内田と安田の両サイドバック。
久しぶりにサイドバックが目立つ試合だった。
彼らがA代表に残れるかはわからないけど、内田は良いところまで行くかもね。
この二人は思ったより悪くなかったかな。

本田はねえ。。。
まだまだだね、スピードが無いってのが結構難しいなあ、あのポジションだと。
海外でやってるっていう割には安定感もないし、発言で自分を追い込んでいくのは良いけど、ここまで発言と差があると・・・。
あと、良く1点返せたな。

あと豊田。
最後の空振りは駄目だ。
グランパスは彼を戻すのかなあ。

谷口とか他にも選手いるけど、特に印象に残らなかったかな。
それが日本の弱さでもある。
個性が無い。

もうJリーグで外国人枠5つまで増やすとかしないと駄目だよ。
J2は外国人枠今までどおりか無しで。
Jリーグはせめてアジア最強リーグを目指すべき。
あんなたるいリーグじゃ、やっぱ人育たないよ。
そこレベル上げないと、無理だ。
ずーっと言われていることだけどさ。
チーム数減らしてレベル下がっているんだからねえ。

アメリカ戦とナイジェリア戦を観戦して思うのが、厳しいボディコンタクトの中での逞しいプレーってのが、決定的に欠けている。
なんとなくアルゼンチンのオルテガが大成しなかったのと似てる気がするなあ。
けど、メッシは小柄なのに倒れないんだよなあ。

やり方はある気がするから、なんとか頑張ってほしい。
オランダ戦は2トップでガンガン攻めて玉砕して欲しいな。
それでこそ価値がある。

後味が悪い飲み会

今日は久しぶりに会社の飲み会だった。

うちの会社の若手は、大概目上の人というか年配者と絡もうとせず、いつも一緒にいるようなメンツで飲むんだけど、今回もそうだった。
若手といっても、僕と2.3歳しか変わらない人もいたり、年上までいたりする。
そういう姿勢の人たちが半分も占める飲み会。

上手くいえないけど、後味が悪かった。
いつもと同じメンツでただ酒が飲みたいだけなら、そのメンツだけでやってもらいたい。
会社全体を巻き込まないで欲しい。
社長とか先輩とか引っ張り出してきて、あの態度はどうしてもない気がするんだよな。
古い考え方かもしれないけどさ。
そりゃ可愛がられないよ、先輩にさ。

そういう行動するのは大概女性だったりするのは、うちの会社だけ?
うちの会社の一番若い男の子も、同じような行動をとるんだけど、今時の若い男の子もそうなの?
そんな人たちとどうやって一緒にやっていけば良いの?

うまく言えてないけど、ホント後味が悪かった。
時には逃げることも大切だけど、逃げ慣れはしたくないなと思った。
愚直だけど、人間味のある人間に僕はなりたい。
だから、そんな消極的で自分勝手な態度はとりたくない。

盆休みにプールに2回行ってきた

今年の盆休みはなんだかよく分からないけど、とても充実してた気がする。
その1つにプールに行ったこと。
でら久しぶりだった。

同僚や社長が最近ジムやプールで汗を流していると聞いて、こんだけ暑いしプールも良いなと思って行く気になった。
海パンは高校生の時に海に遊びに行く為に買ったものが、まだ使えたのでそれで。
帽子とゴーグルは無かったので、近所の潰れかけのスポーツ用品店で買った。
2500円ぐらいで全部揃った気がする。
ミズノたけー。
買ってそのままプールに向かったところが、大人な気がした。

ネットで調べたら車で10分ぐらいのところに、良い感じに寂れた室内プールがあったのでそこに行ってみることに。
結構人がいたけど、混雑してるって感じでもなかったのが良かったかな。

最初泳げるかなあと思ったんだけど、案外泳げた。
同僚達は1キロぐらい泳ぐといったので、自分もそれを目標に泳いでみたら1時間ぐらいかかった。
途中肩で息するぐらいしんどい時もあったけど、最後の方は力の抜き方が分かったきたのか、幾分楽になった。

久しぶりに鼻がツーンとなる感じを味わったり、潜水している気持ちよさなどを味わえた。
何より、体全部を使って運動しているという自己満足感が強かったかな。
終った後のスポーツドリンクが美味かった。

1回目のプールを終えて、盆休み中にもう1回行きたいと思った、なんか癖にしたくて。
結局2回目は休みの最後の日曜日になった。
海パンもやっぱ古いし、プールに入ると海パンの中に空気が入ってなんか嫌だったので、新しいのを買った。
そういうところにはポンポンお金を出すのな、不思議。
競技用って感じでもないけど、真っ黒でそれっぽいものを5000円ぐらいで。
ミズノとナイキは高かったので、デザインだけでリーボックのものを。
もう、わかんないからね、何が良いんだか。
競技用のは身体がしまってないとかっこ悪すぎるから、ちょっとカジュアルな感じのものを選んだ。
似合う身体を手に入れられるように頑張ろう!オー!

2回目も1時間ぐらいで1キロ。
日曜日に行ったからか、人が結構多かった。
みんなクロールで泳ぐから、平泳ぎの僕は結構蓋になってしまっていた。
おし、僕もクロールだ!と思って、泳いでみたら溺れそうになった。
でらしんどい、クロール。
まだまだ先だなと思った。

2回目の方が楽になると思いきや、辛かったかな。
水泳に行く直前に筋トレやったからかもしれんけど。

あと、1時間ごとにやるラジオ体操が結構新鮮。
もうやらないものね、普段。

夏の間はちょこちょこいけたら良いなと思う。
冬になると、行きたくなくなりそうなので。

「間宮兄弟」みました

間宮兄弟(通常版)

塚地が結構良かった。
佐々木蔵之介はやっぱ良いなあ、あーゆう人になりたいなあ。
沢尻エリカはやっぱり可愛い、怖いけど。
常盤貴子は演技がうまいのかようわからんなあ、でもハマってた。
北川景子とその彼氏も良かった。

と、並べてみると結構良かったな。
なんてことない映画だけど、ほんわかして良い映画だった。
日曜日の昼下がりにはピッタリ。

「百万円と苦虫女」みました

百万円と苦虫女 [DVD]

盆休みに蒼井優主演の「百万円と苦虫女」観てきた。
全然期待していなかったんだけど、結構良かったなー。

蒼井優は良い役者さんだなって思った。
可愛いんだけど、もうそれだけじゃないのよね、なんか。
若いのにとっても個性的だなー。
今調べたら85年生まれだと、これからどんな風に変わっていくんだろう。
彼女が出ている映画をどんどん観たくなってきた。
そんな風に思う役者さんに出会えるのは久しぶりだ。

森山未来が最近いまいち。
ちょくちょく見かけるんだけど、なかなか脱皮できない感じ。
ある意味自分の思春期を思い出させるような演技なので、なんかちょっとイラッとするときがある。
早く大人になって力抜いて欲しい。

ピエール瀧が結構良い味出してた。
なんかたまに似てるとかいわれるので、親近感が沸いた、ぽっちゃり具合も。
俺あーなるのかなー、それはそれで良いんだけど。

あと、曲もよかった。
エンドロールのバックに原田郁子のフワフワした声が良く似合ってた。

なかなかまとまってて良い映画だったなー。
こういう映画が最近好きになってきたかもしれん。
小さな映画館で、休みの前日にだらだら観たいね。

「畑がついてるエコアパートをつくろう」読みました

畑がついてるエコアパートをつくろう―地球を冷やすワザいっぱいの下町プロジェクト

正直あんまり参考にならなった。
そりゃあ完成したアパートを見ると素敵だなーって思う。
冬は暖かく、夏は涼しい、エアコンとか暖房器具とか要らない暮らし。
そんな環境素敵だなーって思う。
けど、既に「エコ=ただのビジネス」と疑っている僕には、あまり響かない本だったんだよね。
ひねくれてるからなー。

これからアパートでも建てようとする大家さんとか、今からマイホームを立てようとする人たちは参考になるのかもしれない。
エコという面ではなくマーケティングっていうか、そういう面で。
「エコ」って確かに旬なキーワードだと思うしね。

「畑がついているアパート」
それで良いじゃんって思った本でした。

「自転車三昧」読みました

自転車三昧 (生活人新書 252)

結構面白かった。
こんなジャケットからして、ロードバイクの話を延々とされるかなと思いきや、ママチャリの話が結構長かったりして。
現在の道路事情とかの話しもあって、結構参考になる。
なんだか最近サボっている自転車乗りたくなってきたし。

やっぱ気軽に乗るにはママチャリが良いな、断然。
メンテナンスフリーっつうのが一番良いなあ、いろいろ盗られないしさ。
この本でも、そんなことが書かれていた。
本当にそう思うよ、ママチャリ欲しい。
ママチャリでコンビニへ行きたい(小さな幸せ)。

最終的にはロードバイクの話とかになるんだけど、その辺は流し読み。
乗りたいけど、あまりに利用できる範囲が狭すぎる。
もうちょっと年いってからだなー、余暇を楽しめるようになったらとか。

この作者の人は50才からロードに乗り始めたとか。
凄いね。
ちょっと自転車本読んでみようかしら。

「時をかける少女」みました

時をかける少女 通常版

最近気がついたんだけど、アニメ映画が好きだ。
それもテレビアニメでやっていない、短編物。
で、今作もそうだったので観てみた。

想像していたものと違って、SFモノというよりは真っ当なラブストーリー。
高校生時代の淡い感じが良く出てたと思う。

amazonのレビューで酷評している人もいたけど、個人的には面白かった。
こういうシンプルなストーリーは好きだ。
多分、今だから楽しめる気もする。
映画にあまり過度な期待をしていないから。

ただ、気持ちよくみる映画。
最近はそういう映画も好きになってきたからな。

マネージド専用サーバーをいろいろ探してみた

【マネージド専用サーバーにしたい理由】
・コンテンツの制作に集中したい。
・サーバ周りに自信がない
・そこまで手が回らない


【必要条件】
・PHPは5.1.x以上
・DBはMySQL5.xやPostgreSQL8.x
・ソフトウエアの設定代行
・バックアップ&リストアの代行
・セキュリティ関連のアップデート


【専用サーバー候補】
■ファーストサーバ ギャラクティカ・シリーズ
初期費用 \89,250
月額費用 \53,550
         \ 2,100(バックアップ20GBまで)

これ以外だとMysqlの文字コードがEUC-JP
管理ツールは独自のモノっぽい
IPアドレス追加不可


■@YMC マネージド 専用サーバ
初期費用 \57,750
         \10,500(バックアップ)
月額費用 \25,200
         \ 6,300(バックアップ20GB)

Pentium4&メモリー1GBってちょっと無いかな。


■カゴヤ フルマネージド・専用サーバー
初期費用 \157,500
月額費用 \ 90,300

メモリ1GBでCPUがPentiumMでこの値段は、高過ぎると思う。
バックアップもやってくれるのかわかんないし。

■Xunit フルマネージド・専用サーバー
初期費用 \73,500
         \63,000(メモリ2GB)
月額費用 \52,500
         \ 6,300(メモリ2GB)

Pleskで管理する感じかな。バックアップも自分でやる感じ。


■CPI マネージドプラン
初期費用 \378,000
月額費用 \ 47,250

初期費用が高い。
あと、問題はPHPでもMySQLでも文字コードの基本がEUC-JPってとこ。
これ致命的。
変更できないらしいし。


もう、ファーストサーバが一番バランスが良いとしか思えない。
あーあ。
ファーストサーバを提案してみるかね。

「茄子 スーツケースの渡り鳥」みました

茄子 スーツケースの渡り鳥

ずーっと気になっていた「茄子 アンダルシアの夏」の続編見た。
最近自転車乗りたい熱が徐々に上がっているので、余計かもしれないけど、やっぱ面白かったー!
あの自転車を漕いでいるときの静けさ、チェーンの音しか聞こえない感じが気持ち良い。

あと、この映画ってあんまり子供向けじゃないと思うんだよね、ジブリには珍しく。
まあ原作が違うってのもあるんだろうけどさ。
そこがまた良い、大人の甘酸っぱさっていうのも、ちょろっとあったりしてね。

主人公の声優が大泉洋だったとは、今回始めて知った。
前回からだったみたいだけどね。
彼の声は、やっぱ元気をくれるなー。

こういうサラッとした作品って良いなあ。
前回同様秀作。
けど短くてちょっと高めなのが玉に瑕。

カラフルな洗濯物たち

カラフルな洗濯物たち

たまたま洗濯物を干していたら、なんだか綺麗だったので撮ってみた。
こういう生活感が感じられるのって好き。

DSデビュー

もう先々週の話になるんだけど、誕生日にDSもらった。
30歳の誕生日にDSをくれる彼女は、パンクだと思うね。
30歳の誕生日プレゼントにもらったDSとマリオカート

いつのまにか聞き出されていた欲しいソフトも買ってくれた。
でも、マリオカートは一人でやっても楽しくないので、Wi-Fi接続で世界中の人と対戦できるようになりたいともくろみ中。

いやー凄いね、今のゲームって。
画面も綺麗だし。

ありがとう。

「排気量」から「CO2排出量」へ自動車税制の変更検討について思ったこと

「排気量」から「CO2排出量」へ 経産省が自動車税制の変更検討 (1/2ページ) - MSN産経ニュースより。

 経済産業省が平成21年度の税制改正で、エンジン排気量の大きさを中心に税額を決めている自動車税制を見直し、走行1キロメートル当たりの二酸化炭素(CO2)排出量を基準に税額を決める方式への変更を検討していることが23日、わかった。同様の仕組みは欧州各国が取り入れ始めており、地球温暖化を防ぐグリーン税制の目玉にしたい考えだ。しかし、これまで優遇されてきた軽自動車の税負担が大幅にアップするため、自動車メーカーなどの反発は避けられず、調整は難航しそうだ。

 現行の自動車税は、排気量1リットル以下のリッターカーの自家用乗用車で年額2万9500円、最高の6リットル超で11万1000円など、排気量に応じて税額が定められている。排気量660cc以下の場合は税金が優遇される軽自動車税となるため、年額7200円に抑えられている。

 経産省では地球温暖化対策の一環として、こうした自動車税制の見直しに着手する。1リットル当たり2300グラムのCO2が排出されているガソリン消費の削減に向け、CO2排出量そのものを基準にした自動車税制への転換を目指す。すでに同省では自動車メーカーとも協議を始めており、21年度税制改正要望で、CO2排出量を基準とする税制の検討方針を盛り込む。

 ただ、CO2排出量を基準とした税制になると、排気量が大きい大型車が不利になるほか、これまで優遇されている軽自動車の税額が重くなる見通し。自動車メーカーの今後の商品ラインアップに大きな影響を与えるほか、軽自動車ユーザーなどからの反発も予想される。


これで軽に乗る人いなくなるな。
メリットが完全になくなるし、スズキとかダイハツとか潰れるんじゃないか?
CO2削減っていうけど、もう企業や政府が商品売る為の謳い文句にしか聴こえない。
最近みんな車買わないし、買っても軽だし、税収全然増えないし、トヨタも困っててプレッシャー凄いし、よしエコと絡めて税制変更しますかーって感じがする。
なんだかなー。

こういう中途半端でいろんなエゴが見える政策は凄く嫌だ。
こっちもやるし、自転車道を整備するとか、公共交通機関もっと充実させるとかさ、そういう風にやっていこうよ。
本腰入れて、税制とかそういうのばっかじゃなくて。

ダイハツを持っていながら、本体を生き延びさせる為にこういう政策をトヨタが仕向けたんなら、怖いなー。
そんな感じがしないでもないから、怖い。

ま、今の車は軽だけど壊れるまで乗りたいな、それがエコだと思うし何より凄く気に入ってるし。
けど、その次の車ってなんか買う気しないな、こういうことされると。

白いビルケンゲッツ!

30歳の誕生日プレゼントにもらった、ビルケンの白いサンダル

これまた誕生日に買ってもらったものを今頃アップ。
僕は結構サンダルは靴擦れしちゃって長い距離歩けないんだけど、ビルケンは大丈夫。
既に茶色のを2~3年前に買ったんだけど、まったく同じものの色違いを購入。
特に他で欲しいものもなかったしね。

白って良いね。
白いサンダルは本当は女の子が履いている方が好きなんだけど、僕もさわやかに履けるよう頑張る。

いくつもありがとう。

VANSのスリッポンのサイズはかなり違う

週末にゲットした品々はこちら。

ユニクロと大須での戦利品

左から
「VANSのスリッポンのスニーカー」
「ユニクロの長袖シャツ×2」
下に
「ユニクロのナイロン袋」

占めて1万円しない。
お金を使わなくても結構楽しめる。
これがおじさん化って奴かなあ。
けど、最近どうしてもセレクトショップ・オリジナルとかそういうの買えなくなってきた。
ラコステのポロシャツなら買えるんだけど。

まあ、ブランド品で固めるってキャラでもないので良いんだけど。

VANSのスニーカーは定番なんだけど、キャンパス時のは初めて買った。
サイズがなんと28cmのを買った。
いつもは26.5cmとか27cmなのに、これにはびびった。
4000円ぐらいだった。

ユニクロのナイロン袋は、多分あれエコバック的なものなんだろうね。
僕は最近プールに通っているので、水着入れ用に買った。
だから、あんな小さく出来る必要ないんだけど、あれしかなかったので。

ユニクロが秋モノを出してきていたので、ちょくちょく又チェックしたいな。
なんだかんだ好きなものって大体サイズとか早く無くなっちゃうので、ユニクロといえども侮れないんだよな。

MUJIは最近行ったけど、特に無かったなあ。

MySQL3.x.xだってEthna_AppObjectを使いたい場合

EthnaのEthna_AppObjectクラスはなかなか癖はありますが、ちょろっとした小規模のシステムの場合重宝する。
やっぱ楽なので。
古い環境(MySQL3.23.xとか)の場合、ちょっとばかり面倒な箇所があるので、こんなケースレアかもしれないけど、僕にはまだまだ必要なので晒しておく。

MySQLの3と4ではLIMIT/OFFSET句の書き方が違い、そこでこける。

ということで、Ethna_AppObject又はオーバーライドしたクラスの_getSQL_SearchProp()って関数を修正。
 // LIMIT, OFFSET
 $limit = "";

-if (is_null($count) == false) {
-    $limit = sprintf("LIMIT %d", $count);
-    if (is_null($offset) == false) {
-        $limit .= sprintf(" OFFSET %d", $offset);
-    }
-}

+if (is_null($count) == false) {
+    // mysqlの4.0.0未満かどうかのチェック
+    if (
+        ($this->db->type == "mysql") &&
+        (version_compare(
+               preg_replace('|[^0-9\.]|', '', @mysql_get_server_info()),
+               '4.0.0',
+               '<')
+        )
+    // mysqlの4.0.0未満の場合
+    ) {
+        if (is_null($offset) == false) {
+                $limit = sprintf("LIMIT %d", $offset).sprintf(", %d", $count);
+        } else {
+                $limit = "LIMIT 0".sprintf(", %d", $count);
+        }
+    // それ以外の場合(デフォルトのソースのまま)
+    } else {
+        $limit = sprintf("LIMIT %d", $count);
+        if (is_null($offset) == false) {
+            $limit .= sprintf(" OFFSET %d", $offset);
+        }
+    }
+}


MySQL以外のDBの時のは検証してないけど、多分いけるはず。
まー、新規で開発する場合はいらないけどね。

version_compare()とmysql_get_server_info()なんて関数があることにびっくり。
勉強になった。

EthnaのAppObjectをADOdbでも使いたい!

それ程こだわりも無いんだけど、長いこと放置されてきたような気もするし、ADOdb使おうかなと思ったのでやってみた。
結果的にいうと「自分にしては結構大変だわ」でした。

以下、オーバーライドして使うHoge_DB_ADOdbクラスのソースですよ。
require_once 'Ethna/class/DB/Ethna_DB_ADOdb.php';

// PEAR:DBに合わせる為(これがないとnotice出します)
define('DB_FETCHMODE_DEFAULT', null);
define('DB_FETCHMODE_ASSOC',   null);

/**
 *  Hoge_DB_ADOdb
 *
 *  EthnaのフレームワークでADOdbオブジェクトを扱うための抽象クラス
 *
 *  @package    Ethna
 *  @author     longkey1
 *  @access     public
 */
class Hoge_DB_ADOdb extends Ethna_DB_ADOdb
{
    /**#@+
     *  @access private
     */

    /** @var    object  Ethna_Logger    ログオブジェクト */
    var $logger;

    /** @var    object  Ethna_AppSQL    SQLオブジェクト */
    var $sql;

    /** @var    string  DBタイプ(mysql, pgsql...) */
    var $type;

    /** @var    array   DSN (DB::parseDSN()の返り値) */
    var $dsninfo;

    /**#@-*/

    /**
     *  コンストラクタ
     *
     *  @access public
     *  @param  object  Ethna_Controller    &$controller    コントローラオブジェクト
     *  @param  string  $dsn                                DSN
     *  @param  bool    $persistent                         持続接続設定
     */
    function Hoge_DB_ADOdb(&$controller, $dsn, $persistent)
    {
        parent::Ethna_DB_ADOdb($controller, $dsn, $persistent);

        $this->db = null;
        $this->logger =& $controller->getLogger();
        $this->sql =& $controller->getSQL();

        $this->dsninfo = $this->parseDSN($dsn);
        $this->dsninfo['new_link'] = true;
        $this->type = $this->dsninfo['phptype'];
    }

    // {{{ getType
    /**
     *  DBタイプを返す
     *
     *  @access public
     *  @return string  DBタイプ
     */
    function getType()
    {
        return $this->type;
    }
    // }}}


    // {{{ getMetaData
    /**
     *  テーブル定義情報を取得する
     *
     *  @access public
     *  @param  string  $table  テーブル名
     *  @return mixed   array: PEAR::DBに準じたメタデータ Ethna_Error::エラー
     */
    function &getMetaData($table)
    {
        $def =& $this->db->MetaColumns($table);
        $deforg = $def;// originalとして退避

        if (is_array($def) === false) {
            return $def;
        }

        foreach (array_keys($def) as $k) {
            // object型で返してくるので
            $def[$k] = array_map('strtolower', (array)$def[$k]);

            // type
            $type_map = array(
                'int'       => array(
                    'int', 'integer', '^int\(?[0-9]\+', '^serial', '[a-z]+int$',
                ),
                'boolean'   => array(
                    'bit', 'bool', 'boolean',
                ),
                'datetime'  => array(
                    'timestamp', 'datetime',
                ),
            );
            foreach ($type_map as $convert_to => $regex) {
                foreach ($regex as $r) {
                    if (preg_match('/'.$r.'/', $def[$k]['type'])) {
                        $def[$k]['type'] = $convert_to;
                        break 2;
                    }
                }
            }

            // len
            if($def[$k]['max_length'] > 0){
                $def[$k]['len'] = $def[$k]['max_length'];
            }

            // flags
            if($def[$k]['primary_key'] == true){
                $def[$k]['flags'][] = 'primary_key';
            }
            if($def[$k]['not_null'] == true){
                $def[$k]['flags'][] = 'not_null';
            }
            switch ($this->type) {
                case 'mysql':
                case 'pgsql':
                    // カウンタあるいは自動インクリメントフィールドであれば sequence
                    if ($this->db->MetaType($deforg[$k], null, true) == 'R') {
                        $def[$k]['flags'][] = 'sequence';
                        break;
                    }
                    break;
                // ADOdbの対応次第かなあ、今のところちと厳しい
//              case 'sqlite':
//                  break;
            }

        }

        return $def;
    }
    // }}}

    // {{{ qstr
    /**
     *  文字列をクオートする
     *  
     *  @access public
     *  @param  string  $s    クオートする文字列
     *  @return string        クオートされた文字列
     */
    function qstr($s, $magic_quotes=false)
    {
        return $this->db->qstr($s,$magic_quotes);
    }
    // }}}

    // {{{ Ethna_AppObject連携のための実装
    // {{{ getNextId
    /**
     *  直後のINSERTに使うIDを取得する
     *  (pgsqlのみ対応)
     *  ※adodbでは特に対応していないのでnullを返す、代わりにgetInsertIDを対応させた
     *
     *  @access public
     *  @return mixed   int
     */
    function getNextId($table_name, $field_name)
    {
        return null;
    }
    // }}}

    // {{{ getInsertId
    /**
     *  直前のINSERTによるIDを取得する
     *  (mysql, pgsql, sqlite対応)
     * ※pgsql用に引数を追加
     *  @access public
     *  @return mixed   int:直近のINSERTにより生成されたID null:未サポート
     */
    function getInsertId($table_name = null, $field_name = null)
    {
        if ($this->isValid() == false) {
            return null;
        } else if ($this->db->Insert_ID($table_name, $field_name) == false) {
            return null;
        }
        return $this->db->Insert_ID($table_name, $field_name);
    }
    // }}}

    // {{{ fetchRow
    /**
     *  DB_Result::fetchRow()の結果を整形して返す
     *
     *  @access public
     *  @return int     更新行数
     */
    function &fetchRow(&$res, $fetchmode = DB_FETCHMODE_DEFAULT, $rownum = null)
    {
        $row =& $res->FetchRow();
        if (is_array($row) === false) {
            return $row;
        }

        if ($this->type === 'sqlite') {
            // "table"."column" -> column
            foreach ($row as $k => $v) {
                unset($row[$k]);
                if (($f = strstr($k, '.')) !== false) {
                    $k = substr($f, 1);
                }
                if ($k{0} === '"' && $k{strlen($k)-1} === '"') {
                    $k = substr($k, 1, -1);
                }
                $row[$k] = $v;
            }
        }

        return $row;
    }
    // }}}

    // {{{ affectedRows
    /**
     *  直近のクエリによる更新行数を取得する
     *
     *  @access public
     *  @return int     更新行数
     */
    function affectedRows()
    {
        return $this->db->Affected_Rows();
    }
    // }}}

    // {{{ quoteIdentifier
    /**
     *  dbのtypeに応じて識別子をquoteする
     *  (配列の場合は各要素をquote)
     *
     *  @access protected
     *  @param  mixed   $identifier array or string
     */
    function quoteIdentifier($identifier)
    {
        if (is_array($identifier)) {
            foreach (array_keys($identifier) as $key) {
                $identifier[$key] = $this->quoteIdentifier($identifier[$key]);
            }
            return $identifier;
        }

        $ret = $this->db->nameQuote . $identifier . $this->db->nameQuote;
        return $ret;
    }
    // }}}

    // {{{ sqlquery
    /**
     *  SQL文指定クエリを発行する
     *
     *  @access public
     *  @param  string  $sqlid      SQL-ID(+引数)
     *  @return mixed   DB_Result:結果オブジェクト Ethna_Error:エラー
     */
    function &sqlquery($sqlid)
    {
        $args = func_get_args();
        array_shift($args);
        $query = $this->sql->get($sqlid, $args);

        return $this->_query($query);
    }
    // }}}

    // {{{ sql
    /**
     *  SQL文を取得する
     *  
     *  @access public
     *  @param  string  $sqlid      SQL-ID
     *  @return string  SQL文
     */
    function sql($sqlid)
    {
        $args = func_get_args();
        array_shift($args);
        $query = $this->sql->get($sqlid, $args);

        return $query;
    }
    // }}}
    // }}}
}


まあ、こんな感じ?
今のところちゃんと動いていたEthna_DB_PEARクラスを超参考にしてあるので、自分では使わないメソッドてんこ盛り。
そこはテストもしてないので、ようわかりません。
ポイントとしては、
・getNextId()はADOdbではサポートしてないので、実質放棄
・getInsertId()にpgsqlを対応させるため、引数を変更
・getMetaData()のsqliteはADOdbではサポートしてないので放棄
sqliteに関しては、ちょっと絶望的かもなあ。


あと、Ethna_AppObjectクラスもオーバーライドするのでした。

// {{{ Hoge_AppObject
/**
 *  アプリケーションオブジェクトのベースクラス
 *
 *  @package    Hoge
 *  @author     longkey1
 *  @access     public 
 */
class Hoge_AppObject extends Ethna_AppObject
{
    // {{{ add
    /**
     *  オブジェクトを追加する
     *
     *  @access public
     *  @return mixed   0:正常終了 Ethna_Error:エラー
     */
    function add()
    {
        // next idの取得: (pgsqlの場合のみ)
        // 取得できた場合はこのidを使う
        // ※ADOdb対応でnext id取得できなくなったのでいらないかもだけど、
        //   とりあえず残しておく
        foreach (to_array($this->id_def) as $id_def) {
            if (isset($this->prop_def[$id_def]['seq'])
                && $this->prop_def[$id_def]['seq']) {
                // NOTE: このapp object以外からinsertがないことが前提
                $next_id = $this->my_db_rw->getNextId(
                    $this->prop_def[$id_def]['table'], $id_def);
                if ($next_id !== null && $next_id >= 0) {
                    $this->prop[$id_def] = $next_id;
                }
                break;
            }
        }

        $sql = $this->_getSQL_Add();
        for ($i = 0; $i < 4; $i++) {
            $r =& $this->my_db_rw->query($sql);
            if (Ethna::isError($r)) {
                if ($r->getCode() == E_DB_DUPENT) {
                    // 重複エラーキーの判別
                    $duplicate_key_list = $this->_getDuplicateKeyList();
                    if (Ethna::isError($duplicate_key_list)) {
                        return $duplicate_key_list;
                    }
                    if (is_array($duplicate_key_list)
                        && count($duplicate_key_list) > 0) {
                        foreach ($duplicate_key_list as $k) {
                            return Ethna::raiseNotice('Duplicate Key Error [%s]',
                                                      E_APP_DUPENT, $k);
                        }
                    }
                } else {
                    return $r;
                }
            } else {
                break;
            }
        }
        if ($i == 4) {
            // cannot be reached
            return Ethna::raiseError('Cannot detect Duplicate key Error', E_GENERAL);
        }

        // last insert idの取得: (mysql, postgres, sqlite)
        // primary key の 'seq' フラグがある(最初の)プロパティに入れる
        // ※ pgsql用にテーブルとカラム名をセットするように変更
        foreach (to_array($this->id_def) as $id_def) {
            if (
                (isset($this->prop_def[$id_def]['seq'])) &&
                ($this->prop_def[$id_def]['seq'])
            ) {
                $insert_id = $this->my_db_rw->getInsertId(
                    $this->prop_def[$id_def]['table'],
                     $id_def
                );
                if ($insert_id !== null && $insert_id >= 0) {
                    $this->prop[$id_def] = $insert_id;
                }
                break;
            }
        }

        // IDの設定
        if (is_array($this->id_def)) {
            $this->id = array();
            foreach ($this->id_def as $k) {
                $this->id[] = $this->prop[$k];
            }
        } else if (isset($this->prop[$this->id_def])) {
            $this->id = $this->prop[$this->id_def];
        } else {
            trigger_error("primary key is missing", E_USER_ERROR);
        }

        // バックアップ/キャッシュ更新
        $this->prop_backup = $this->prop;
        $this->_clearPropCache();

        return 0;
    }
    // }}}

}
// }}}</pre>

これで最低限動くかなって感じだ。
next idが絡むところは、全部削除しても良いかも。
無理してsql直書きでってやり方もあるだろうけど、それはADOdbとは完全に違うものになってしまうしなあ。
どうなんだろうね。

とりあえず、ネット上にこういう情報がほぼ皆無だったので、晒しておきます。

※ 2008/10/08 追記
以下を最初の方に追記しました。
<
efine('DB_FETCHMODE_DEFAULT', null);
define('DB_FETCHMODE_ASSOC',   null);</pre>
実働には支障が無い(使ってない)のですが、Noticeだしてsimpletest使う時とかにやたらexceptionsを出すので。

「MOTHER3」やりました

MOTHER3

毎回毎回終わった後の満足感といったら素晴らしい。
今作もやっぱ良かった。
今までやったRPGの中で一番自由度が低かったかもしれない。
今時そんなRPGクソゲーとか言われるのかもしれないけど、僕は好き。
このストーリーを読ませてくれるような一本道のゲームは長編の小説でも読んでいるような感じだった。
そして所々僕らを楽しませてくれる仕掛けが糸井さんのもてなしって感じがして嬉しかった。

途中中だるみはしたことはした。
けど、最後の方は続けてやってしまい、最後はやっぱり泣かされた。
やっぱMOTHERは泣けるなあ。
最後の最後で自分の名前を呼んでくれて、呼びかけてくれて、凄く救われたというか、単純な僕は感動極まったよ。
まったく糸井さんっていう人は!

結局30時間ぐらいだった。
もっとやった感じがしたんだけどね。
賛否両論あるだろうけど、グラフィック、キャラクターデザイン、ストーリー、演出、どれをとってもMOTHERだったと思うし、良かったと思う。

MOTHER4は作らないと糸井さんは宣言してるらしいけど、またどこかでどせいさんには会いたいね。

「ラーメンズつくるひとデコ」読みました

ラーメンズつくるひとデコ

最近忘れていたラーメンズ。
彼らの本、初めて読んだ。
面白かった。

小林賢太郎よりも片桐仁の方が凄いんだなとわかった。
もう天然だもの片桐さん。
久しぶりに写真だけで笑った。
小林さんは、ソフトなダウンタウンのまっちゃんって感じ。
そんなに凄さは感じないなあ。

何はともあれ二人が仲が良いのが良いね。

ライブ行きたいな。
凄い競争率みたいだから、嫌だけどさ。
機会があれば。

アーカイブ

2010

2009

2008

2007

コンタクト

longkey1[at]gmail[dot]com