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

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

2012年

年が明けた。

今年もよろしくです。

 

さてさて・・・このブログどうしようか、未だに方針たたずw

JavaScriptが使えるっていうんで期待してたんだが

どうやらそんなに何でもってわけではなさそう。

つか、はてなのコードハイライトはイマイチなので

SyntaxHighlighter使いたいなぁ・・・とか思ってたのだが

こちらでも使えなさそう、あるいは使うのにかなり手間がかかりそうな気がする。

さてさて、どうしたものか。。。

PHP Apocalypse に参加した

気がついたら前回更新から半年経ってる・・・
もっとまめに書く癖をつけないとなぁ。。。

さて。昨日は「PHP Apocalypse」に参加しました。
Apocalypse・・・ヨハネの黙示録ですね。
あとは「世の終末」とか「大災害」とかなんかおどろおどろしいですが。
英辞郎調べ)

まぁPHPも普及期は・・・2000年代前半くらいですかね?
それから概ね10年弱が経過して
その間、RubyRuby on Railsがブレイクしてトレンドを作ったり
PythonGoogle App Engineを背景に根強く人気を広げたりして
ここ数年PHPは、新規の書籍発行数をみても、ちょっと一時期の勢いはないのかな・・・
とか思っていたりもしたのですが
でも、こういうイベントに100人近く集まるということは
それ自体がまだまだ健在である証拠ではないでしょうか。

どなたかの発表にもありましたが
PHPはどこまでいっても「現実主義」的な言語なのかなと思います。
確かに、言語構造としてはRubyPythonの方が綺麗なのかもしれない。
でも、PHPで動く環境を用意することの容易さ、手軽さが
Word Pressのような大きなプロダクトを生んだわけですし。
RedminePHP移植プロジェクト「CandyCane」もまた
Redmineの導入の難しさをPHPであれば越えられるという恒例ではないかなと。

余談ですが、今私が働いている会社では
不幸にも?役割分担がきっちりしていまして
サーバのroot権限が必要な作業はインフラ担当部署にしかなく
プログラマは自由にソフトウェアをインストールできないのです。
そういう環境では特に、Wordpress、CandyCane、PukiWikiのような
「置くだけで動く」ソフトというのはとても大事なのです。

あ。
なんかイベントの趣旨とか当日の状況とかをちゃんと説明してないですね(笑)
まぁ簡単に言えばPHP界隈の方々の忘年イベントです(爆)
夕方からはピザ&アルコールで徐々に砕けた感じに。
それにしてもほんとに豪華な面々で
この場でテロでも発生しよう物なら、日本のPHP界が大打撃なくらいにw

発表内容は・・・まぁきっと誰かがまとめてくれてますw
PHP Apocalypse」でググれということで(汗
PHPのテクニカルな話よりは
もうすこし概念的な話というか、どう捉えるか、という話が多かったですね。
@さん、@さんの話とか
ほんとに胸熱で、よかったです。

あと「ワールドカフェ」というの、初体験だったんですが、面白かったです。
普通の勉強会とかだと、発言しにくかったり
コミュニケーション取りづらかったり感じてしまうときもあるんですが
こういう呼び水的なものがあると、自然と会話が出てくるのでいいですね。

最後に、会場を提供していただいたGREE
主催者の@さん、本当にありがとうございました!

過去の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:もう「\」キモイとかはいいよね?機能として便利なんだから。