ありがとう。また会おう。

ゆるいかんじで。かたのちからぬいて。やってます。

過去のLT資料をSlideShareへ移行しました。

今まで勉強会で発表したスライド資料は、handsOutにアップしていたのですが
こちらのサービスが残念ながら終了してしまうとのことで
急遽、SlideShareへ移行しました。

M_norii presentations

それにしても、あまりできのいい資料じゃないなぁ、我ながら。
もっと、「今フォローすべき●●界のスーパーエンジニア」とかに取り上げられるよう、がんばらねば。

そういえば、上のスライドの1つにある、SoftBankSSL仕様変更、まもなくですね。
(もう再延長とか…ないよね?)
みなさん準備は大丈夫でしょうか。
主に影響ありそうなのは、SSL下で、x-jphone系のヘッダが取れなくなるのとShift_JISエスケープシーケンス方式の絵文字記述が使えなくなること、ですかね。

前者は対応漏れてるといろいろ大変だと思うので気をつけましょう。

データベースの日付時刻型に思うこと

MySQLPostgreSQLもだけど、日付・時刻両方を格納するデータ型は、格納サイズとして8バイトが必要*1
で、扱える範囲は、どちらも少なくとも西暦0年〜9999年までいけるので、まぁよっぽど古代の歴史に関することや、宇宙規模の事でない限りは、どんなApplicationでも問題無い。

ただ、ちょっと思うのは…
そもそも一般的なアプリケーションで、そこまでの日付範囲が必要なのはかなり稀なのでは?

例えば、あるデータの「登録日時」を格納するカラムがあったとして。
今から作るアプリケーションであれば、「今以前」の時刻って必要ないですよね、少なくともこのカラムに関しては。
で、アプリケーションの寿命次第ではあるけど、今から初めて、4バイトで表現できる経過秒数(およそ68年)を越えるアプリってそうそうないんじゃないかと。

なので、「エポック日時をデータ型指定時に指定できる日付時刻型」みたいのがあれば、4バイトの格納サイズで、実用的な日付時刻データを扱えるんじゃないかなぁ、とかちょっと思った。

4バイトくらいけちるなよ、と思うかもしれないけど、
ソーシャルゲームなんかで、データ件数1億件とかいくテーブルがあると、この1カラムあたり4バイトの差でも結構でかい*2

まぁやろうと思えば、4バイト整数型で格納して自前で計算すればいいんだけど。
ただそうすると、生データを見た時に、ぱっと見がわかりにくいのと、DBの日付時刻関数が使えない、というデメリットもあるわけで。

まぁ…そのデメリットと、データ領域圧縮のメリットの天秤なのかな…どっちとるかは。

*1:MySQLには、4バイトのtimetamp型があるけど、これは副作用もあって扱いにくいのでここでは除外

*2:ディスク領域的にはそれほどでもないけど、メモリにデータを載せきることまで考えると

facebookはじめました

いろいろのっぴきならない事情で始めることにしました。

https://www.facebook.com/m.norii

始めたばかりで全然慣れてないです。
facebookどんだけアクティブにやるかも…今のところ不明。
twittermixiで充分足りてるしなぁ…

まあでも知り合いの方は申請いただければ承認しますのでお気軽にどうぞ♪

6月4日 第4回Symfony2勉強会

第4回 Symfony2 勉強会[東京]開催のご案内 (6/4 土) | 日本Symfonyユーザー会

参加しました。自分は第2部のみ参加。
しかも後で第1部が補欠から繰り上がっていたことを知るという…
うーん、ATNDはそういうとこ不便だなぁ…

で、詳細はきっと皆さんがすでに素晴らしいレポをあげてると思うのでw
Twitterで#Symfony2studyを見ればいいと思うよ)

個人的な雑感を駆け足で。

Behat(@

  • BDDしたい!と思った
  • でもその前にUnitTestすらままならない現状をどうにかせねば
  • 達人出版会の「はじめる!Cucumber」あとで買おう。できれば紙で欲しいが…

Formコンポーネント(@

  • だいぶ使いやすそう。
  • 昔業務で1.0使ってたときは、Formクラス使おうと思ったけど、いろいろ余計なことしてくれたので、断念したんだっけ
  • 他のフレームワークでもたぶん使えそう。PHP5.2系でもいけるのかな?
  • Validatorもいいんじゃないだろうか。
  • Form/ValidatorともZendのより筋がいい作りになってる気がする
  • でも、今ソーシャルゲームやってるけど、ソーシャルゲームはあんま複雑なFormないんだよなw

Silexマイクロフレームワーク(@

  • PHP5.3環境ならいいマイクロフレームワークだと思う
  • 自分の周りはまだ5.2だし、周りの人間も5.3習熟度足りないので、しばらくはLimonadeの方がいいのかもなぁ…
  • ドキュメントが素晴らしい。見習いたい。

よりよいソフトウェアを作るために(@

  • とてもいい発表。資料Upされたら復習したい
  • ドメインモデルが主、フレームワークは従、ってことですね
    • ドメインモデルを意識して設計できてる人って現場にはあまりいない気がする
  • とりあえず、DDD本読んだ方がいい。
  • PofEAA、アジャイルソフトウェア開発の奥義も読んどけ。

LT

  • はじめてのSymfony2(@
    • router:debug便利そう
  • Symfony2でMongoDB(@
  • PHPUnitのMockObject(@
    • PHPUnitのMockObjectは知らなかったが、Mockはほんと便利
      • 使いどころはやはり外部との接続周り
      • 外部データソース使うところはとりあえずDIにしとけば、後々すごく楽。特にテストが。
  • モテるPHP女子力を磨くための4つの心得「symfony1.4を使えない女をアピールせよ」(@)
    • 全てはこれのための前振りだったのか!?というくらい秀逸のまとめLT!www

全体

  • 会場、WiMAX、電波入らなかった…
  • 自分は普段Zend使いで、symfonyは1.0で知識が止まってるんだけど、Symfonyに限らず、一般的なWebアプリケーション作成という観点で役に立つ知識が多かった
  • もっとPHP5.3普及してほしい。名前空間みんな使おうよ。*1
    • Zend_Application_Resource_ResourceAbstractとかもう萎えるw
  • 最近は発表スライドの2枚目にイケメン写真を入れるのが流行りらしいので、なんかそれ用の写真撮っておこう
    • 夏のつま恋がいいかな…

最後に、会場提供していただいたジンガジャパン様、
勉強会運営に携わったスタッフの皆様、ありがとうございました!

*1:もう「\」キモイとかはいいよね?機能として便利なんだから。

コントローラを多層化する

http://d.hatena.ne.jp/noopable/20090205/1233792325
のコメント欄を見て知った。
Zend Frameworkは、コントローラの多層化できるんだ。
もっと早く知っていれば…

具体的な方法。
コントローラは

controllers/Foo/Bar/BazController.php

というパスで、クラス名は「Foo_Bar_BazController」とする。

ビューも同じようにファイルパスは

views/scripts/foo/bar/baz/index.phtml

で、アクセスするURLは

http://example.com/foo_bar_baz/index

となる。

ちなみに、モジュール構造を採用している場合は
クラス名は「<モジュール名>_Foo_Bar_BazController」
ビューのファイルパスは

views/scripts/<モジュール名>/foo/bar/baz/index.phtml

で、URLは

http://example.com/<モジュール名>/foo_bar_baz/index

となる。

ちなみに、コントローラ名が複数語で構成されている場合
例えば「Foo_Bar_MyHogeFugaController」とすると
アクセスURLは

http://example.com/<モジュール名>/foo_bar_my-hoge-fuga/index

となる。
多層化のパスの区切りがアンダーバー。
単語の区切りがハイフン。
…という、ちょっとわかりにくいルール…
まぁこのあたりは、Zend Frameworkのデフォルトルーティング使わず
ちゃんとマッピングルールを作った方がいいでしょうね。

社会人復帰します。

昨日、久しぶりにエントリー書いたんですが、実はこれのため。

ほんとは当日に書きたかったんですが、時節柄、嘘っぽくなるので(笑)
前日にご報告。

昨年暮れから長らくニート生活しておりましたが
4月から社会人復帰します。

勤務先は・・・別に言ってもいいんだろうけど
何となく伏せときます。ここで書くのはどうも気恥ずかしいので。
気になる方は、メールなりツイッターDMいただければ。

就職活動自体は、3月上旬にほぼ終結していて
最終的に結論出したのが・・・3月9日だったんですよね。
こういう言い方はあまりよくないのかもしれないですが・・・
滑り込んだというか・・・3月11日前という意味で。
現実問題、知り合いの新卒の若いやつで、震災を理由に内定取り消されたのを2人ほど知っているもので・・・

こういうご時世で就職先決まったのはほんとによかった。。。

気を引き締めて、4月から、新しい環境で精一杯がんばりたいと思います。

このブログもできるだけ書いて情報アウトプットして行きたいなと思っておりますので
引き続きごひいきいただければ幸いです。
それでは、また。

あの日のこと。

もう3週間経とうとしているんですね・・・

今更ながらではありますが、あの日以来記事を書くのが初なので・・・

東日本大震災にて、亡くなられた方々のご冥福をお祈りいたします。
また、今現在被災地で避難生活を余儀なくされている方々にお見舞い申し上げます。


私自身は、地震の当日、自宅近辺を自転車で走っていまして。
外の比較的開けた場所にいたので、幸い怪我をすることもなく
また、自宅も震度5弱の揺れにしては奇跡的にものが壊れたり
本棚やCDが散乱することもなく。
また、親や親戚縁者もほとんど埼玉在住なので
特に被害を受けることなく済みました。

自分も普通に仕事をしている立場であったならば
おそらく帰宅難民になっていたはずだったのですが
離職中という身が今回は幸いにはたらいて
すぐに自宅に戻って情報収集と、TwitterMixiを通じて
帰宅難民になってる方々に情報提供していたりしました。


あれからほぼ3週間。
余震は関東地方ではほぼ収束に向かいつつあるかなというところですが
一方で、原発問題、そして電力不足・計画停電という
いまだかつて経験したことがない状況になっていますね。
まだ今の季節はエアコン需要がないからいいものの
夏場にどういう状況になるのか・・・今から空恐ろしく思いますね。。。

被災された方々のことを思うと・・・というのもあるのですが
様々な映像・写真・ブログ記事などが伝える現地の状況をみると
僕のようなほぼ何の被害もなかった人間が、
現地の状況を想像すること自体が余りにナンセンスというか
たぶんその想像をはるかに上回る困難さがあるのだろうと思い
打ちひしがれる気持ちにもなってしまうのですが。。。

しかし、いつまでも立ち止まってるわけにもいかないのもまた事実。
特に、元気に動ける人は、より積極的に動いて
日本経済を回していかないと、復興もままならないですからね。

現地で困難を窮している人に思いを馳せつつ。
現地で奮闘している方々に最大限の敬意を抱きつつ。

自分は自分にできることを、精一杯やっていきたいと思います。
今後ともよろしくお願いいたします。