2015年12月21日月曜日

吾輩は「ふつう」である

吾輩は「ふつう」である。名前はまだ無い。
どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所でカープ!カープ!カープ広島♪と泣いていた事だけは記憶している。
吾輩はここで始めてお好み焼きというものを見た。
しかもあとで聞くとそれは広島風お好み焼きというお好み焼きの中で一番崇高で高貴な食べ物であったそうだ。
このお好み焼きというのは時々広島焼きと呼んだ者を煮て食うという話である。
しかしその当時は何という考もなかったから別段恐しいとも思わなかった。
ただ鉄板の上に載せてヘラでスーと持ち上げた時何だかフワフワした感じがあったばかりである。
鉄板の上で少し落ちついて広島風お好み焼きを見たのがいわゆるお好み焼きというものの食べはじめであろう。
この時妙なものだと思った感じが今でも残っている。
第一具材をかき混ぜて装飾されべきはずの顔がつるつるしてまるでホットケーキだ。
その後関西風お好み焼きにもだいぶ逢ったがこんな片輪には一度も出会わした事がない。
のみならず具材の真中がそばが挟まれている。
そうしてそばの上に豚肉とキャベツが混ざり合い煙を吹く。
どうも咽せぽくて実に弱った。
これがお好み焼きのかけるオタフクソースというものである事はようやくこの頃知った。
このお好み焼きの食べ、しばらくはよい心持に坐っておったが、しばらくすると非常な速力で運転し始めた。

秋田 中略

ここで吾輩は彼のお好み焼き以外の食べ物を再び見るべき機会に遭遇したのである。
第一に逢ったのが広島風つけ麺である。
これは前のお好み焼きより一層強力な食べ物で吾輩を一口入れるや否やいきなり突き抜ける辛さが舌を抛ほうり出した。
いやこれは駄目だと思ったから眼をねぶって運を天に任せていた。
しかし熱いのと辛いのにはどうしても我慢が出来ん。
吾輩は再び広島風つけ麺の隙すきを見て平和公園へ這い出た。
すると間もなく職務質問を受けてまた投げ出された。
吾輩は投げ出されては這い上り、這い上っては投げ出され、何でも同じ事を四五遍繰り返したのを記憶している。
その時に広島風つけ麺と云う食べ物はつくづくいやになった。
この間広島風つけ麺の替え玉を偸すんでこの返報をしてやってから、やっと胸の痞が下りた。
吾輩が最後につまみ出されようとしたときに、この県の知事がサッカースタジアムはサンフレッチェ広島がV3したら建てるといいながら出て来た。
サポーターは垂れ幕をぶら下げて知事の方へ向けて「スタジアムは市民球場跡地に!!広島みなと公園は交通機関が貧弱なので困ります」という。
知事は鼻の下の黒い毛を撚ひねりながら吾輩の顔をしばらく眺ながめておったが、やがてそんなら市民球場跡地へ置いてやれといったまま奥へ這入ってしまった。
知事はあまり口を聞かぬ人と見えた。
かくして吾輩はついにこの広島県を自分の住家すみかと極める事にしたのである。


カッとなってやった。
今は公開している。

2015年12月20日日曜日

これからもIT勉強会(コミュニティ)は必要なのか本気出して考えてみた

とある雑誌の原稿を出したら編集さんに

「そーだいさん、コミュニティに対してもっと熱い想いあるでしょ?そういうの出してください。」

って言われまして。
原稿の校正納期今日なんだけどもっと自分自身を掘り下げる意味で表題の事を考えた。
なのでただのポエムです。

まず最近、大手岡山Web系セミナーに若手が少ないらしい。




参加者平均年齢が40代超えてるであろうDB勉強会からするとまだまだ若いじゃん?とか思ったり。
でもね、中の人がそういう危機感があるって事は「緩やかな死」を感じてるってことだと思うんですよね。
その危機感を中の人が感じてるのだから間違い無いと思う。
そして危機感をこうやって複数の人がアウトプットするのは大切だと思う。
あと緩やかな死とかコミュニティの継続についてはちょっと昔に考えた事があるので興味がある人はどうぞ。

IT勉強会について本気出して考えてみた

僕は同じような状況をバックエンドとかサーバーエンドと人たちのITコミュニティで感じてきた。
若い人が出てこないとか運営スタッフが変わらないとか。
でも僕は「コミュニティに育てて貰った」って強い感謝の想いがあるしそれを若い人に恩送りしたいと思ってる。
だから


  • 世代交代
  • スピーカーの機会を用意する
  • 参加費を無くして学生でも参加しやすくする
  • 学校とコラボ
  • 他のコミュニティとコラボ


などを試してる。
でも劇的な変化があったかと言うとまだない。
(少しは変化があったかなとは思うけど)
理由としてはやっぱ絶対的に対象の母数が足りてないし。
そもそも若い人が「データベースに興味を持つ」事自体難しい感じになってる。
だいたいデータベースって仕事なんですよ仕事。
仕事で初めて触るし。
仕事で苦しむ。
周りに詳しい人がいない。
だからある程度経験して中堅くらいになってからDB勉強会に来る。
って人が半分以上。
ただ僕よりも先輩には少数だけど@nuko_yokohamaさんみたいに「データベースが遊び」って人もいる。
他にもネットワークだったりDNSだったりlibraryみたいな僕が仕事だと思う所に興味を持って遊んでる人たちはいる。
これって昔は時代の「最先端の技術」がこういう「技術が遊びの人たち」と「技術をビジネスにしてきた人たち」によって「枯れた技術」になった事だと思うんだよね。
だからこそ僕はDBみたいな枯れた技術ってのは儲かる大切だと思うんだけど「目新しさは無い」ってわけ。
でね、これと同じことが最近Webでも起こってるのかなって思う時がある。
僕の大好きな岡山のエンジニアの@kazuhisa1976さんが

最近の若者に聞くとね、Webは仕事って言うの。
じゃあ休みの日は何のコード書いてるの?って聞くとスマフォアプリかUnityって言うのよ。

コレを聞いたらあぁなるほど!!ってなりました。
僕も小学校、中学校の将来の夢にはゲームプログラマになる!!って書いた人なんで憧れも含めて凄くわかる。
自分でアプリ作ってリリースしてレスポンスがある、そりゃ面白いですよ。
それがね、僕らの世代の「技術が遊びの人」はWebアプリだったんです。
多分、先輩方はメールや掲示板やネットワークやOSSだったりしたんだと思う。
つまりWebは「技術をビジネスにする人たち」によって枯れた技術になりつつある。
これは悲観することじゃなくて世の中のインフラとして認められたって事。
だからレイヤーが変わったというか流行り廃りがあったけど若者自体は業界には要る。
だけど僕らの観測範囲に居ないってだけなんだと。
これは僕は経済の神の手と一緒で人材の流動がある事は仕方ない事だと思う。
そして「技術が遊びの人」な若者が多いところでは新たなコミュニティが生まれてる。
実際に岡山でもコミュニティの再開発は生まれつつある。

第一回「岡山Androidもくもく会」
(今見たら若者じゃない強そうなおっさんが数名参加してたけど)

僕は凄くいいことだと思う。
僕がオープンラボ備後手伝ったりDB勉強会やりたいですって言った時に周りの先輩方は「おーやれやれ、どんどんやれ!」って言ってくれた意味が今ならわかる。
こういうコミュニティが生まれてくる事が重要だと思うし広い視野での業界の新陳代謝だからだ。
スタッフをするメンバーも一新されるだろうしイノベーションには多様性が必要だ。
ということでIT勉強会(コミュニティ)は必要か?って結論に対しては必要ならば新しく生まれてくるってのが結論。
だから僕達が必至になって今のコミュニティを継続する必要もないのかもしれない。
実際に元々岡山には日本Androidのの岡山支部があるけど最近の活動が少ない。
その実体からこうして新しいコミュニティが生まれている。
なのでコミュニティもイミュータブルな感じで代謝が止まったら捨てるくらいが新陳代謝が早くていいのかもしれない。

ここまでが僕が今年の夏くらいまで思ってた事。


■既存のコミュニティは緩やかな死を待つしか無いのか

もし本当に「緩やかな死を止めれない」のであれば残りのコミュニティの余生を楽しんだほうが良い。
そう考えるなら内輪ノリとか同窓会と批判されても来てくれる人たちに最適化して楽しんでもらえる方がいい。
そう悩んだりもした。
けど最近MySQLを触っててMySQL Casualの人たちを見たりJJUG CCCに参加してそれもまた違うなと思ってきた。
廃れた技術は緩やかな死を待つしか無いけど「枯れた技術」ってのは仕事で使うことが多々ある。
さっきのデータベースの例もだけど「仕事で初めて使った、辛い」みたいな人たちを救う場所が必要だ。
そういった人たちが助けを求め迷った時に「助け合う場所」の一つの選択肢がコミュニティだと思うしそのために継続されることは大きい意味がある。
多分、それを母体となるビジネス側も理解してるからJJUGだったりJPUGだったりに協賛金が集まるわけで。
だから「技術で遊ぶ」若者を見つけるのは難しいけど「技術を仕事にしてる」若者を救い上げる事はできるかなと。
その中で10人に1人はコミュニティに興味を持ってくれるかもしれないし100人に1人はコミュニティに関わろうと思うかもしれないし1000人に1人はそのソフトウェアのパッチを書くかもしれない。
そういうアウトプットを増やすことでコミュニティの新陳代謝は進むだろうし継続されていく。
そう考えると僕がJPUGのスピーカーというポジションで求められてるのはPostgreSQLの機能紹介でも事例紹介でも無く「苦しんでる人が助かる術」のアウトプット。
そんなアウトプットが仕事で使ってる人の心に刺さるアウトプットだと思うし求められてる。
そう考えて書いた資料が




たちで一定数以上の反響はあったと思う。
まだその反響に対してコミュニティに誘導する手法は模索中なのでそこは改善していく必要があるところ。

なので既存のコミュニティでも「枯れた技術」を扱っているIT勉強会(コミュニティ)は必要。
そのコミュニティが継続するには「技術が遊びの人」向けのコンテンツも大事だけどアンチパターン的なコンテンツが重要。
そして引っかかった「技術は仕事の人」から上手くコミュニティへ誘導して新陳代謝をしていく必要がある。
そもそもコミュニティの運営やスピーカーってコードを書く力とは直結しないから「技術は仕事の人」の方がコミュニティ運営には適してる事が多いんじゃないかなと漠然と思ったりしてる。
だから次は如何に誘導するか、だけどそれは如何に的確な小さな問題を与えるかだと思ったりしてる。

問題にチャレンジしてもらうために必要な事を考えてみた

そんな事を思いつつ、でも恩送りだけじゃなくて自分自身のステップアップも見据えなきゃいけない。
そんなことを考えながら書いた年の瀬のポエムでした。

2015年12月18日金曜日

MySQLの暗黙の型変換の話

この記事はMySQL Casual Advent Calendar 2015の18日目です。
昨日はwinebarrelさんの「binlog_cache_sizeにメモリを食われた話」でした。
こういった実践の話は非常に貴重なので勉強になりました。

さて「PostgreSQLと比べてMySQLのいいところ書く!」を書こうと思ってたのですが昨日こんなツイートを見かけました。





公式ドキュメントを見てみると…

NOT NULL として宣言された DATE および DATETIME カラムでは、次のようなステートメントを使用することで、特殊な日付 '0000-00-00' を検索できます。

SELECT * FROM tbl_name WHERE date_column IS NULL
ODBC では '0000-00-00' 日付値がサポートされていないため、一部の ODBC アプリケーションを取得する際に、これが必要になります。


なるほど。
一部のODBCに対する優しさなんですね!!

そして僕もつい先日、MySQLの暗黙の型変換の優しさを味わったのでご紹介します。

-- テーブルの構造 `hoge`

CREATE TABLE IF NOT EXISTS `hoge` (
  `id` int(11) NOT NULL,
  `val` varchar(255) NOT NULL
);

mysql> SELECT * FROM hoge;
+----+--------+
| id | val    |
+----+--------+
|  1 | ONE    |
|  2 | 2      |
|  3 | Three3 |
|  4 | 4Four  |
+----+--------+
4 rows in set (0,00 sec)


こんなtableがあったとします。
そこで次のように検索してみましょう。

mysql> SELECT * FROM hoge WHERE val = "0";
Empty set (0,00 sec)

mysql> SELECT * FROM hoge WHERE val = 2;
+----+-----+
| id | val |
+----+-----+
|  2 | 2   |
+----+-----+
1 row in set, 3 warnings (0,00 sec)


想定した感じですね。

mysql> SELECT * FROM hoge WHERE val = 4;
+----+-------+
| id | val   |
+----+-------+
|  4 | 4Four |
+----+-------+
1 row in set, 3 warnings (0,00 sec)


あれ?文字列がマッチしましたね…
あっ!これPHPの文字列からintにキャストした時と一緒か!?

mysql> SELECT * FROM hoge WHERE val = 3;
Empty set, 3 warnings (0,00 sec)


あれ?Three3が出ない…

SELECT * FROM hoge WHERE val = 0;
+----+--------+
| id | val    |
+----+--------+
|  1 | ONE    |
|  3 | Three3 |
+----+--------+
2 rows in set, 3 warnings (0,00 sec)


Why,MySQL People!!

そしたら我らが@yoku0825さんが次のように教えてくれました。

val = 0の場合、0を文字列にキャストするのではなく、valをDOUBLEにキャストして0と比較しています。
英字で始まるSTRINGはDOUBLEにキャストできずにキャスト後の値が0になりますが、123abcのような文字列は「できるところまでキャストする」ので、キャスト後の値は123になります。
つまり123 <> 0です
ってことで、「数字で始まらないval」のものだけが検索に引っかかるわけです。
そして逆に数字から始まらない文字列はWHERE val=0に該当するわけです。

勉強になりますね!!
ちなみに僕が暗黙の型変換僕がハマったのはPHPのSESSIONをDBに保存している場合に検索しようとすると引っかかりました。
DBにSESSIONを保存することは多々あって例えばEC-CUBEやMagic3などのCMSも保存してるのでみなさんも検索の時はご注意ください。

ということで僕のMySQLエキスパートへの道は遠いようですw
それでは最後はとみたさんのお言葉で締めあせていただきます。



みなさんも良いMySQLライフを!!

2015年12月14日月曜日

あなたとPostgreSQL 9.5、今すぐダウンロード

これはPostgreSQL Advent Calendar 2015の14日目の記事です。

昨日はtksyさんの「普段SQLServerを触っている人がPostgreSQLに入門するかも」でした。
tksyさんの体調が心配です。

さて今日は僕がPostgreSQLの本当のポテンシャルをお見せしましょう。
…と思ってたのですがここまでPostgreSQL9.5の話は0。
下手だなぁカイジ君、本当に読者がほしいのはコレ、PostgreSQL9.5の最新情報まとめ。
ということでPostgreSQL9.5の話をします。
PostgreSQLのポテンシャルについては明日の海外さんに期待してください。

1. PostgreSQL 9.5はいつ出るの?

出る出る詐欺進行中のPostgreSQL 9.5はいつ出るのでしょうか。
現在のPostgreSQL 9.5はBeta2です。
当初は年内に出る予定でしたが今の感じでは年明けと見せかけて海外勢のロングバケーション後で2月くらいかなと僕は思ってます。
実際のgit logを見るからには毎日激しく最後の追い込みがかかってるので年内リリースに微かな期待を持っても良いかもしれません。

PostgreSQL本体のgitのSumally

2. PostgreSQL 9.5で何が変わるの?

毎年PostgreSQLの新機能の話でスピーカー業で飯を食うのが僕の生業だったのですが今年はなんと一回も新機能ネタで話してません。
なので自分のスライドが無いので他人の褌で相撲を取ろうと思います!! 
ということでPostgreSQL界のダルシムこと@sawada_masahikoくんの資料が素晴らしいのでご紹介します。



あとPostgreSQL界のラーメンテロリストことぬこさんのブログも細かい情報がまとまっています。
リリース前のPostgreSQLを積極的に検証している情報が貴重です。

日々の記録 別館


3. で結局なにがオススメ機能なのよ

PostgreSQL新機能は色々あるんですけどもうコレだと思うんですよね。

INSERT ON CONFLICT構文


PostgreSQL9.5からMERGE文相当としてINSERT ON CONFLICT構文という機能が追加になりました。
これはMySQLのINSERT ON DUPLICATE KEY UPDATE構文相当の機能になります。
構文も非常に似ており

INSERT INTO table名 (column1, column2, column3) values (value1, value2, value3) 
     ON CONFLICT 制約名
     DO UPDATE SET ( カラム名 = 値 )

と書くことで同様の処理を実行できます。
MySQLと違うところは制約を書くことです。
これは冗長とも言えますが「primary keyなのかUNIQUE制約なのかを選べる」ということです。
今までORMでsave()というメソッドを実装するときに一旦SELECTでDBを検索したりUPDATEの例外を拾って処理していたようなところは全てこれで解決できます。
ついに念願のMERGE(UPSERT)文相当の機能が実装されたということになります。
この機能だけでも新バージョンを使う価値があると思います。
もうちょっと詳しく知りたい人は上記のぬこさんの検証結果を見てみてください。

PostgreSQL 9.5 UPSERTを試してみた

その他にもRow Level Securitなど目玉機能が盛り沢山のPostgreSQL 9.5。
是非、皆さんも試してみてください!!!

2015年12月7日月曜日

FuelPHPを快適に開発するためのNetBeansで設定まとめ

このブログはFuelPHP Advent Calendar 2015の7日目です。

昨日は@wataさんの「DBUnit拡張を使ったFuelPHPのテストを考える」でした。
今日はみんな大好きNetBeansの話します。
それでは早速行きましょう。

まずはNetBeansのダウンロードリンクです。

あなたとNetBeans、今すぐダウンロード


普段IDEを使ってない!って人はこちらも合わせてどうぞ。

PHPerがNetBeansを使いたくなる7つの理由


インストールが済んだら本題です。

1. ルーク、FuelPHPプラグインを使え!!

兎にも角にもまず入れるのはこれです。
@junichi_11さんが作っているこのプラグインを使いましょう。
@junichi_11さんがまとめてるブログはこちらです。

NetBeansではじめる FuelPHP


このプラグインを使うとNetBeans上からスケルトンを作ったり、正しくFuelPHPの補完や関数ジャンプ出来るようになります。
Coreのコードを読んだり、知らないメソッドを知るきっかけにもなるので是非ご利用ください。
僕がPHPStormに完全に移行出来ない理由はこのプラグインがあるからと言っても過言ではありません。
Symfony2書く時とかはもう完全にPHPStormなんですけどね。
完全無料環境なのでお財布に優しいです!!

2. その他の設定


■Windowsの人は必須


  • Show and change line ending
  • Change Line Ending on Save


Show and change line endingは改行コードをLFにしたり今の改行コードを表示したりします。
Change Line Ending on Saveはデフォルトの改行コードを指定して保存するときに一括して改行コードを変更して保存してくれます。
私はLF固定にしてます。
あとはここからはお好みですが私はvagrantプラグインを入れてNetBeans上からを操作できるようにしてます。
vagrantを操作するためだけにターミナルを開かなくていいので便利です。
更にwindowsはsshクライアントがデフォルトで入っていませんがvagrantへのsshは出来るようになります。
gitからvagrantの使い方まで知りたい!って人は@kenji_sさんの本を読むと全部書いてあります。



PHPUnitなどの設定はお好みでどうぞ。
個人的にはPHPUnitのバージョンにテストコードが依存することがあるのでvagrant側で実行する事多いです。
プロジェクトが一つでチームで同じバージョンを共有できる場合などはインストールしてIDE上で実行する方が便利だと思います。

3. インデントの乱れは心の乱れ

PSR-2に準拠しないとプルリクエスト送った時に怒られます(自分は怒られた事がある)
なのでフォーマットを指定しましょう。


  1. ツール→オプション→エディタ→フォーマット
  2. 言語を「PHP」
  3. カテゴリを「中括弧」
  4. クラス宣言とメソッド宣言を「改行」に変更




ちなみにPSR-2準拠だとインデントはタブでは無くスペース4つです。
そしてPHPの予約語は小文字で使用しなければなりません。
つまりNULLはnullです。
デフォルトは大文字なので変更が必要です。
やり方はNetBeansの設定ファイルを直接編集します。
Windowsでエディタで編集する場合は管理者権限が必要ですのでご注意ください。

  \インストールフォルダ\php\phpstubs\phpruntime\Core.php

私はデフォルトの場所にインストールしたので

  C:\Program Files\NetBeans 8.0.1\php\phpstubs\phpruntime\Core.php

です。
それを次の通り編集します。

define ('TRUE', true);
define ('FALSE', false);
define ('ZEND_THREAD_SAFE', false);
define ('ZEND_DEBUG_BUILD', false);
define ('NULL', null);

↓↓↓

define ('true', true);
define ('false', false);
define ('ZEND_THREAD_SAFE', false);
define ('ZEND_DEBUG_BUILD', false);
define ('null', null);

これで補完もバッチシです。


以上を設定すればプロジェクト作成時からFuelPHPの対応が完璧になったはずです。
快適なプログラミングライフをお楽しみください。

明日のFuelPHP Advent Calendar 2015@tanaka8comさんです。
楽しみですね!!

2015年12月4日金曜日

忘年会議を楽しむための3つのTips

この記事は大都会岡山 Advent Calendar 2015 4日目です。
明日に控えた忘年会議をより良く楽しむために大切な事をまとめます。
なお、私の主観で全て書くので責任は負いません。


■忘年会議って何?
Tipsに行く前にまずは忘年会議の説明をしておきます。

忘年会議

忘年会議は瀬戸内界隈のITコミュニティが年に一度、集まって酒を交えながら会議する場所です。
決しておもしろLTを見せびらかす場所でも転職しましたと報告する場所でもありません。
会議と言っても瀬戸内界隈で行われているオープンセミナーの日取りと実行委員会を決めるだけなので誰でも参加できます。
しかし残念ながら既に満席です。
最近人気すぎて3ヶ月くらい前には埋まってしまいます。
みんな早すぎて今年は広島勢が誰も参加しておらず、実行委員会の代表が実は居ないという問題が発生したりしてます。
来年参加しようと思ってる人はお早めに登録をオススメします。


というわけで忘年会議を楽しむためのTipsいきます。


1. 開幕を焦る者は渋滞を促す
忘年会議はバイキング形式なので各人で取ってくる必要があります。
60人を超える人が取りに行くと一気に大渋滞です。
そこでオススメは席が一緒になった人と担当を分けましょう。
食事を取る人と飲み物を取りに行く人を分けます。
これでまず並ぶ人が半分になります。
あとビールの冷蔵庫の前にいる人は積極的にビールのバケツリレーを行い、効率化しましょう。
料理を取りに行く人は一気に取り過ぎず最初の一回目はほどほどがオススメです。
どうせLT始まったら誰も見に行きません。
あとお腹すいたら二次会でラーメンを食べに行きましょう。
オススメのラーメンは山富士です。
僕は寺田さんと帰るつもりなのでほどほどで帰ります。

2. LTを制するものは座を制す
東京の懇親会のLTは技術9、ネタ1くらいの割合のLTですね。
岡山はネタ10、少なく見積もってもネタ7くらいです。
あっ僕は真面目な奴演る予定なので数に含めないでください。
TDD?知らない子ですね。
あと当たり前のようにマサカリ野次が飛び交います。
皆さんも空気読まずに野次を飛ばしてあげると登壇者が喜びます。
僕はガラスのハートなので勘弁して下さい。
多分マジ泣きします。
あと野次の相手をしてると5分あっという間です。
登壇者の精神力が問われる場となっています。
あと面白くなかったとしてもLTした人と話す機会が有るときは「面白かったです!」って言ってあげましょう。
「今回のはちょっと残念だったね」って言われるとマジ凹みします。
その後帰りの電車で真面目に反省会とか始まるので嘘でも面白かったと言ってあげましょう。


3. 知らない人に積極的に話しかけてみよう
忘年会議は色んな県のエンジニアと会える貴重な場所です。
どうしても知ってる人と話し込んでしまいがちですが勇気を出して声をかけてみましょう。
大抵みんなシャイなので声をかけられるのを待ってます。
隣の席に知らない人がいたらまずは名刺交換を起点に話しかけたりすると良いでしょう。
あと人気者が数名います。
そういう知ってる人気者に群がってる知らない人に話しかけると大抵同じカテゴリの人なのでオススメです。
Twitterのアカウントの交換をするとその後の繋がりもできるので名刺交換だけで終わらず次のステップとしてもオススメです。
ただエンジニアには時折「リアルでは紳士なのにTwitterだとド変態」みたいな人がいます。
そういう時はそっとリムーブしてください。
決して「ツイートが多いのでリムーブして今後はリストで見ますね」などの連絡は避けましょう。
そっと、そっとリムーブでよろしくお願いします。


さて今回は忘年会議を楽しむための3つのTipsを紹介しました。
明日はいよいよ合同勉強会&忘年会議です。
参加される方は楽しんで来てください!!

2015年12月2日水曜日

負けたことがあるというのがいつか大きな財産になるのは自分次第

このエントリーは、カープとメガフォンと私 Advent Calendar 2015 の2日目 です。
昨日は@tsuchimさんの「今年は今までで一番カープを応援したかもしれない」でした。
明日は予定が埋まってないので誰かカープが好きな人でも好きじゃない人でも是非ともお願いします。

さて今年、サンフレッチェはリーグを二年ぶりに制覇する反面、カープはCSに行くことすら出来ませんでした。
この違いは何かと考えたところ、やっぱ勝負所の勝てるかどうかだなと感じています。
実際にCSのかかったカープ最終戦。中日に0封されてしまったカープ。
そもそもその前に二日酔いのヤクルトに勝ち切れない時点でうーんって感じですがこれが今年のカープの勝負弱さを表していたと思います。
今年は優勝候補とすら言われたカープ。
1点差で負けた数はセパ合わせて1位。
また延長戦の末負けた数もセパ合わせて一位。
沢村賞を取ったマエケンに最優秀防御率のジョンソンが居てこの結果です。
これはもう貧打でしか応えは無いと思います。
緒方監督には来年はスクイズしてでも点を取る気概で打線を考えていただきたい所存ですね。

さてそんなカープですが僕は来年は大瀬良に期待してます。
野村や中田廉など去年の活躍に対して今年は今ひとつだった選手の一人です。
本来なら先発でローテーションを投げる選手が急にセットアッパーを任せられたのだから難しいのもわかります。
そして最終戦のあの涙。
私はあの涙を今年は糧に大ブレイクして欲しいと思ってます。
打たれた事も負けた事も勝負事なので仕方ない。
来年、マエケンが抜けたあとのエースを担うのは私は大瀬良だと思ってます。
そんな大瀬良に私が大好きな名言の画像を貼ってこの言葉を送りたいと思います。

2015年12月1日火曜日

PHPerでDBな自分がJJUG CCCで遊びに行ってきた!(ついでに登壇してきた

国内最大のJavaの祭典、JJUG CCCに遊びに行ってきました。
JJUG CCCは1000人を超える参加者申し込みがあります。
これを無料のカンファレンスとして回してるJJUGは素直にすごいと思います。

ということで個人的な感想を書くのですが個別のセッションについては書きません。
どれも面白かったし色んな人がまとめてるので部外者から見たJJUG CCCについて書こうと思います。

私の登壇資料が気になる方はこちらです。

PostgreSQLアンチパターンの話をいっぱいしてきた。


■所感

会場がまず新宿!お洒落!!
スピーカーが豪華!PHPerの自分でも知ってる人ばかり!!!
そして会場に行くと人!人!!人!!!
何から何まで凄くて圧巻でした。
実は2年前にも一度JJUG CCCに遊びに行ったことがあるのですがあの頃より遥かにスケールが大きくなってました。
これはJavaの影響力というかコミュニティが大きくなっていること、重要なポジションに居ることを表していると思います。
また同じように変わったところとして感じたのは女性の参加が凄く増えてました。
Java女子部が出来たり女性スピーカーがLTも含めると数名居たりといった変化もJavaの窓口の広さを感じます。
前日にPostgreSQLカンファレンスがあり、そちらは女性が少なめだったので尚更そう感じたのかもしれません。
2年前にお邪魔してた時は「地方における勉強会事情」と言うテーマでパネルディスカッションさせていただきました。

JJUG CCC 2013 Spring R2-6 [BOF] 地方における勉強会事情

この時から僕が中国地方をの勉強会にどれだけ影響を与えて変えていけたかは怪しいですがJJUGは明らかに進化してるなと思いました。


  • 若手不足とコミュニティの高齢化
  • 女子参加のハードルの高さ
  • ハンズオンなどの参加型セッションの運用コストの高さ
  • てらだよしおリソース問題


どれも僕が居た時にパネルディスカッションの内容として話題にあがりました。
でも現在のJJUGを見てると


  • 若手のスピーカー・幹事雇用と参加者層の拡大
  • 女子部の発足
  • 企業を巻き込んだハンズオンの開催


てらだよしおリソース問題以外は解決してるように思えます。
てらだよしおリソース問題は寺田さんがMSに転職されたりでまた色々と状況が変わってます。
ですが人手不足は変わらないので寺田さんを超える愛されるエバンジェリストの登場が待たれます。
寺田さんの話は良いとしてそれ以外の問題をたった2年で解決しているのは本当にすごいと思います。
例えば若手の多いLL系の言語ならまだしもJavaという流行りとは言い難いコミュニティで行えた事がすごいです。
同じように若手不足に悩む日本PostgreSQLユーザ会ではまだまだ解決出来たとは言えていません。
これは若手が本当に必要か?という前提あるのですが世代交代は大きなコミュニティの転機の一つだと思います。
この世代交代を上手く超えていける基盤がJJUGにはある=10年も20年も続くコミュニティだと確信しています。
その他の女子部やハンズオンについて鈴木会長は

「勝手に他の人達がやりたいとすすんで行なってくれてる、だから特に何もしてないんですよ。」

と仰っていましたが個々にセルフマネージメント力があることが今のJJUGの強みなんだろうなと感じました
また来年以降もどんなJJUGが見れるのか楽しみになってきました。

■Javaコミュニティ





ホントみんなJava好きなんだなぁと思いました。
いや僕もPHP好きですよ。
大きな声で言いますけどデータベース好きですよ。
それを好きでもない人が見て「あぁ好きなんだなぁ、良いな。」と思ってもらえるかは自信がありません。
でもJavaコミュニティの人たちを見てると「あぁ好きなんだなぁ、良いな。」と純粋に嬉しく感じました。
これはJavaって言う一つの言語に拘らず幅広く受け入れてくれる懐の深さがそう感じさせてくれるのだと思います。
実際に僕はCCCで登壇した2回ともJavaの話は1Byteもありませんでしたし、普段からJavaのアウトプットはありません。
それでも暖かく受け入れてもらえるところがJavaコミュニティだと思います。
僕はそういうJavaコミュニティが大好きなんだなと再確認しました。

■そーだいに対する皆さんの反響について




















自分の思っているキャラコンセプトと世の中へ伝わるキャラコンセプトは必ずしも一致しないという例を体験しました。



ただの真面目なおっさんですみません。


ということで色んな方に会えて色んな刺激を貰えたイベントでした。
やっぱJavaコミュニティは最高だぜ!!

PostgreSQLカンファレンスに行ってきた

年に一度のお祭、PostgreSQLカンファレンスに行ってきました。
先週の金曜日なのでもう随分時間が立ってしまいましたがまとめです。
まず、セッションはなんと!全然!!!聞いてません!!!!!
でも一応朝一から行ってお手伝いはしました。



あとPostgreSQLカンファレンスは支部長は地元のお土産を持っていくというタスクがあります。
見事に7000円分相当を東京駅に忘れるというアクシデントがありました。
無事帰ってきたのですが本当に日本で良かったと思います!日本人最高!!
というわけで、全然セッション聞けてないのに忘れ物取りに行ったり仕事したりで忙しい時間でした。
本当は国府田さんとか海外さんとか須藤さんとか聞きたいセッションいっぱいあったのですが聞けなかったものは仕方が無いので下のまとめ読んどきます。

PostgreSQL Conference 2015 #pgcon15j のまとめ


ちなみに僕は最終時間のセッションだったのですがマサカリ尖そうな人は海外さんのセッションに丸っと行ったため誰もツイートしてませんw
資料が気になる方はこちらを見てください。

PostgreSQLアンチパターンの話をいっぱいしてきた。


PostgreSQLカンファレンス、何度行っても良いカンファレンスですし色んな人と話せて楽しかったです!!
次は3月にシンガポールで大きなPostgreSQLのカンファレンスがあるそうです。
CfPをちょうど募集中なので勉強会駆動海外旅行とか皆さんオススメです。

http://2016.pgday.asia/#callforpresentation

ということで今年も残り一ヶ月となりました。
ミカエルさんが言うとおりに今月中に本当にPostgreSQL 9.5が出るか楽しみにしたいですね!!

PostgreSQLアンチパターンの話をいっぱいしてきた。

見せてあげますよ、本当のPostgreSQLアンチパターンを。
とか言ってたわりに半分以上は削除フラグの話でした。
逆にそれが万人受けしたみたいでちょっとはてブいっぱい付いて承認欲求満たされました。
ということでスライドです。


190枚を超える超大作!!とか思ってたけど時間配分バッチシでした。
3回も実践すると3回目はアドリブ効かせたり出来て余裕がありました。
リハ大事w

で本題の伝えたいことですがあとがきツイートしてるのでまずそちらを。











特に最後のツイートが全てだと思ってます。
個人的な経験談を交えて紹介しましたがベースの話は全てこの3つの本を読めば理解できると思います。
あとはホントもっとみんなも経験の共有を積極的にしてほしいですね。
なのでslackやMLで是非「こんな事困ってるんだけど?」とか「これってどうなん?」ってのを投稿してください。
みなさんのお言葉お待ちしております。
あと、みんなに「そーだいさん、苦労されてるんですね」とか「グレて金髪になったんですか?」とか言われました。
大丈夫です、僕は今はMySQL使いです。